Programming Languages:
Principles and Paradigms


  • Lectures : Tuesdays and Thursdays, 12:30pm – 1:50pm, CENTR 214
  • Discussion Sections : Wednesdays and Fridays, 9:00am – 9:50am, CSB 001
  • Announcements : Posted on Piazza. Please check often!


Who Email Office Hours
Ravi Chugh (Instructor) Tue, 2:30–3:30pm, CSE 3208
Alexander Bakst (TA) Check Piazza for
latest information on
TA/Tutor office hours
Valentin Robert (TA)
Patrick Torbett (Tutor)


Programming Languages are the duct tape, bricks, mortar and steel of the information age. Over the last thirty years, a variety of languages with diverse features have been developed, expressing radically different perspectives of the idea of computation. CSE 130 is an introduction to these different perspectives, the fundamental concepts of languages, and how modern language techniques and idioms can be used to engineer software systems.

For this purpose, we shall focus on two general paradigms — functional and object-oriented programming — as embodied in the particular languages OCaml and Scala. Many students will be encountering these paradigms, languages, and idioms for the first time. As with spoken languages, these are best absorbed by immersing yourself in the different environments and practicing your skills by experimentation.