next up previous
Next: Textbook Up: Computer Science 270 Survey Previous: Prerequisites

Subject Matter

If you're taking this course, you are already comfortable with the notion of writing a program, and you've learned some of the techniques and data structures most often used in computer programs, especially Pascal programs. But Pascal is only one of literally hundreds of computer languages, each with its own strengths and weaknesses. A programmer who approaches every problem thinking about how to solve it in Pascal is like a carpenter who uses a hammer on everything, even when a saw or a screwdriver would be more appropriate. A competent programmer must be able to select the most appropriate language for any given problem. Furthermore, a competent programmer must be able to write idiomatically in each language, i.e, to write in the style to which that language is suited: don't be like a carpenter who chooses a screwdriver as the appropriate tool, but still uses it like a hammer. Finally, a competent programmer must be able to learn a new language and its idiom quickly.

We'll spend the first half of the semester learning the C language. C is similar in many ways to Pascal, but it differs both in superficial ways, like where to put semicolons, and the use of braces rather than begin and end, and in more significant ways, like the relationship between pointers and arrays. C is also the most commonly used language in connection with the Unix operating system, which most of you are studying concurrently in CSC 271. C is also a good introduction to C++, a more powerful (and more complex) language which has become very popular among commercial software developers. We'll also work with the gdb debugger, an immensely valuable program that helps you see where your C programs are going wrong and how to fix them.

After the midterm, we'll switch to a very different language named Scheme. Scheme is a modern dialect of one of the oldest computer languages, Lisp, which was originally written not to deal with numbers and characters, but to deal with symbols, lists, and the process of computation itself. In the 1960's and '70's Lisp developed a reputation as a good language for artificial intelligence programming. In the past decade Lisp and Scheme have become increasingly popular as teaching languages, both for serious computer science students and for non-CS students who want to understand what computers can and cannot do. Scheme requires completely different ways of thinking about programming: some of the problems you worked hard to solve in C are trivial in Scheme, while other problems you wouldn't have even thought of from a C mindset become serious and reasonable questions in Scheme.


next up previous
Next: Textbook Up: Computer Science 270 Survey Previous: Prerequisites

Stephen Bloch
Wed Oct 2 15:37:21 EDT 1996