
Examine the fundamentals of computers and how they are used to provide useful services.
The goal of this course is to teach you to think like a computer scientist. This way of thinking combines some of the best features of mathematics, engineering, natural science, and philosophy. Like mathematicians, computer scientists use formal languages to denote ideas – specifically, computations. Like engineers, they design things, assemble components into systems, and evaluate trade-offs among alternatives. Like scientists, they observe the behavior of complex systems, form hypotheses, and test predictions. Like philosophers, they create logical constructs that can be carried out by a machine. This is not to deny the value of the arts so that non-practitioners can understand and employ the resulting systems. An important skill for a computer scientist is problem-solving. It involves the ability to detect problems, think creatively about solutions, and express solutions clearly and accurately. As it turns out, the process of learning to program computers is an excellent opportunity to develop and apply problem-solving skills. On one level, you will be learning to write Java programs, a useful skill by itself. On the other hand, you will use programming as a means to an end, that end being the creation of something useful to society.
- Unit 1: Computer Programming
- Unit 2: Variables and Operators
- Unit 3: Input and Output
- Unit 4: Methods and Testing
- Unit 5: Conditionals and Logic
- Unit 6: Loops and Strings
- Unit 7: Arrays and References
- Unit 8: Recursive Methods
- Explain what computers are and what they do;
- Compare software and computers;
- Express human logic in computer programming syntax;
- Describe various variable types and their differences;
- Choose means of performing operations on variables;
- Recognize and repair errors in syntax and logic;
- Explain the ways to get data into and out of a computer;
- Demonstrate Java's basic services;
- Dissect computer programs to reveal subtle errors;
- Convert blocks of oft-used code into reusable methods;
- State the difference between "logical" and "relational";
- Cause programs to vary their activities as the input data changes;
- Create programs that perform repetitive actions;
- Explain how data should be grouped for a given analysis;
- Explain various ways to acquire the values of specific elements within a data grouping; and
- Compare recursive processes to traditional looping;