CIS 120: Programming Languages and Techniques

Course Logistics

Lecture Section 001 - MWF 10:15-11:15am - Stiteler Hall B6

Lecture Section 002 - MWF noon-1:00pm - Stiteler Hall B6

Course Description

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


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 will use the Codio and Eclipse development environments for implementing their projects.

Who can take CIS 120?

CIS 120 students are not expected to have any prior experience with OCaml. We assume previous Java programming experience at the level of a high school computer science class or CIS 110. 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.