Towne 100 MWF 11:00 - noon
The goal of CIS 120 is to introduce students to computer science
by emphasizing the design aspects of programming. Students
taking CIS120 will learn how to design programs,
- test-driven development
- data types and data representation
- abstraction, interfaces, and modularity
- programming patterns (recursion, iteration, events, call-backs,
map-reduce, GUIs, ...)
- functional programming
- how and when to use mutable state
- inheritance and object-oriented programming.
Note for students who would like to take CIS 120 in Fall
All remaining spots in CIS 120 are currently reserved for incoming Freshman.
If you would like to enroll in CIS 120, please add your name to the wait
list. We are making every effort to admit DECLARED computer science
majors/dual majors as quickly as possible from the wait list. If you are
not a declared major, we hope to have space for you once the semester
starts. There is always considerable churn at the beginning of the
If you are still on the wait list at the start of term, please
plan on coming to class (if at all possible) and on doing the homework so
you are on track when a spot opens up.
CIS 120 teaches programming concepts in two different languages: OCaml
and Java, spending approximately equal time on how to design programs
in each language. Students are encouraged to use the Eclipse
development environment for implementing their projects.
Who can take CIS120?
CIS120 students are not expected to have any prior experience
with OCaml (or even Java). We assume some previous programming
experience at the level of a high school computer science class. If
you got at least 4 in the AP Computer Science A or AB exam, you will do
great. Basic experience with any programming language (for instance C,
C++, Java, VB, or Scheme) will be sufficient. If you have never
programmed before, you should take CIS 110 first.