CIS 120: Programming Languages and Techniques

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

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.