Computer Science through Program Design
CIS 120 introduces students to computer science by emphasizing the design aspects of programming. Topics include:
- data types and data representation
- abstraction, interfaces, and modularity
- test-driven development
- programming patterns (recursion, iteration, events, call-backs, collections, map-reduce, GUIs, ...)
- functional programming
- how and when to use mutable state
- and object-oriented programming.
Course Logistics
Who can take CIS120?
CIS120 students are not expected to have any prior experience with OCaml. We assume some previous programming experience at the level of a high school computer science class, preferably in Java. If you got at least 4 in the AP Computer Science A or AB exam, you will do great. If you have never programmed before, you should take CIS 110 first.
Technologies
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 Codio or Eclipse development environments for implementing their projects.