Introduction to Computer Science - Honors
Computer science is the study of computation, computing machinery (hardware and software), and information technology in general. A computer scientist builds the tools that others simply use. The goal of this course is to introduce computer science to students possibly interested in a computer science major.
Computer programming is at the heart of computer science, so a primary focus of this course will be computer programming. We will also be looking at the bigger picture and introducing concepts that will be needed for subsequent computer science courses. Students interested only in programming (using tools) and not in computer science (developing tools) should consider taking A201 instead, where the focus is entirely on programming.
The prerequisite for this course is simply high school precalculus math. Note that neither MATH M027, M118, nor M211 are required, despite misleading or out-of-date language to this effect in older course descriptions. Furthermore, you need not be in the honors college to take this course.
In algebra, you solved problems involving symbols (numbers, variables, and operators like "+") by applying rules (usually in the form of laws, axioms, or theorems). The trick in algebra was deciding which rule among many was most promising to lead to the solution of the problem. Computer scientists solve problems in much the same way.
If you really enjoyed high-school math (even if you did not enjoy calculus), you are likely to enjoy this course and to do well in it. If not, you should think carefully about whether to proceed.
For our programming assignments, we use the Scheme programming language. Scheme is an interesting language in that it is both easy to learn and extremely powerful. Both properties derive from its simple, uniform syntax, its provision of a few general features in place of myriad special-purpose features, and its lack of restrictions. Scheme is often used in industry by expert programmers with really hard problems to solve. In subsequent courses, you will learn other languages, like C++ and Java, that build in more special-purpose features and, through various restrictions, help the everyday programmer create correct and efficient programs.