To: Incoming Caltech Students -- AY 2020-2021
From: Michael Vanier, Department of Computing and Mathematical Sciences
Congratulations on choosing Caltech! The Department of Computing and Mathematical Sciences (CMS) looks forward to welcoming you to Caltech this fall.
Are computer science classes required my freshman year?
Probably not. Computer Science is not yet part of the Caltech core curriculum; most majors do not require you to take CS classes in order to graduate. Nonetheless, basic skills in programming computers have become central to most areas of science and engineering. For this reason, most incoming freshman do take at least one term of CS, often in their freshman year. The introductory CS course is called "CS 1".
I read the catalog, but tell me... what is CS 1 really about?
CS 1 is a pragmatic course in computer programming which is suitable for students with no previous programming experience. It will concentrate on fundamental concepts in imperative and object-oriented programming as well as basic skills that all programmers need to know (debugging, testing, documentation). It will not be particularly theoretical in its orientation, but will be oriented towards giving all students immediately practical programming skills. CS 1 will use the Python programming language (http://www.python.org) exclusively.
You mean I won't be able to program in [some popular language] after I've taken CS 1?
You'll be well equipped to learn it quickly. CS also offers a collection of mini-courses in individual languages (C, C++, Java, ...just to name a few) under the name "CS 11". These 3-unit optional courses are available every term and you can take them up to three times for credit. CS 1-level understanding is required for these courses. Many students take CS 1 and then follow up with focused study in CS 11 in later terms/years. Note that CS 11 requires CS 1 (or placing out of CS 1) as a prerequisite, so you won't be able to take CS 11 until you fulfill that requirement.
How hard is CS 1?
Since CS1 assumes no previous experience with computer programming, it is accessible to all Caltech students. However, it is not a trivial course, and you should expect that CS 1 will add a fairly large load on top of the required first-term freshman core curriculum (programming is inherently a time-consuming activity). For this reason, students who do not intend to major in computer science may consider deferring taking the course until a later year.
I already know how to program. Should I take CS 1?
Possibly. Many of you already have computer programming experience – possibly extensive. Nonetheless, just as basic math and physics courses at Caltech take a more rigorous approach to the material than elsewhere, so do our introductory CS courses. Consequently, our curriculum may be very different from what you've seen in high school, a local college or university, or on your own, making it unclear where you should start in our sequence. To help you figure out whether CS 1 will be valuable for you, we offer a placement exam which you may choose to take. The exam must be returned by July 31 in order to be considered.
I've never programmed before. Do I have to take the placement exam in order to take CS 1?
This is by far our most frequently-asked question. The answer is no. The placement exam is completely optional and is not required in order to take CS 1. The whole point of the placement exam is to allow students with a great deal of programming experience who might already know all the material in CS 1 to skip that course and start taking higher-level CS courses immediately. (However, note that if you pass the placement exam for a course you will not get numerical credit for the course, but you will be eligible to take any other course that requires that course as a prerequisite.)
If you've never programmed before, and want to learn, you should take CS 1. If you're not sure whether you know enough to skip CS 1, you can try the placement exam, but don't get upset if you don't pass; it just means that you should start with CS 1. If you have extensive programming experience, you should definitely take the placement exam.
I'm pretty sure I'll be taking CS 1. Is there anything I should do now?
Yes. When you receive your materials for registration please indicate that you would like CS1 to be one of your electives.
I want to take the CS 1 placement exam. Can you spell out the URLs?
This is an untimed exam, so feel free to look at it right away even if you're just curious.
Who do I contact if I have further questions?
Please don't hesitate to send questions directly to me, firstname.lastname@example.org. If email is not an option, please contact the CS 1 course secretary, Maria Lopez, at 626-395-3034.