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
- Object-oriented programming
Who can take CIS 120?
CIS 120 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.
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.