COS 126 Frequently Asked Questions

Is COS 126 a programming course? You will learn to program if you take COS 126, but the main focus of the course is to introduce you to the important ideas in computer science. You can appreciate these ideas best if you know how to program, and you can be a more effective programmer if you understand the underlying concepts.

What programming language is used in COS 126? Primarily C, though you will also learn Unix and write programs in some other languages, such as PostScript and Java.

I have never programmed before. Should I take some other course before taking COS 126? We make no assumptions about what you know. Students with no programming experience have to pay close attention to the course at the beginning, but our experience is that everyone comes up to speed after the first few programming assignments. We have a large course staff that is prepared to help students get rolling, particularly at the beginning.

I already know how to program. Should I take COS 126? Probably. Even if you have extensive experience, you are not likely to have seen the material that is covered in the lectures, and you might find the assignments interesting. Also, the course will fulfill one of your degree requirements.

How do I decide between COS 126 and COS 111? COS 126 prepares you to use computers effectively for applications in the sciences and engineering and is prerequisite for all other computer science courses. COS 111 covers much of the same material, but at less technical depth, and is primarily intended for students who want a one-course introduction to the field.

Is COS 126 just for computer science majors? No. About 1 out of every 4 (fast approaching 1 out of every 3) Princeton students take the course.

I just can't fit COS 126 into my schedule. Couldn't I just forgo it and pick up programming on my own? One of the prime goals of the course is to provide you with the basic background that you need to be able to use computers effectively. If you get that background early, you'll be able to broaden your knowledge and experience by applying it as you proceed through your Princeton curriculum, whatever your chosen major might be. We have a word for the process of using a computer to attack a problem without attempting to understand the basic underlying principles: "hacking". Paradoxically, as computer systems become more powerful and more complex, the limitations to problem-solving by hacking become more evident. As for your schedule, you might consider postponing some other technical course for which you have advanced placement, for example.

Are there limitations on enrollments? Not currently. Come to the first lecture if you think that you might be interested in the course.

Can I use my own computer? We generally use C in the programming assignments, and we somtimes use other Unix tools, PostScript, and Java. If you have Linux or a similar environment that supports such tools, go for it. More typically, you may prefer to access CIT Unix machines through two telnet windows: one for editing, one for compiling and running programs.

Adventurous souls can look into using lcc on Windows (lcc-win32). Please remeber that your assignments still must work properly with on Unix. Also some assignments require you to use Unix.


www.CS.Princeton.EDU/courses/cs126/faq.html