Programming Languages:
Principles and Paradigms

coordinates

  • 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!

staff

Who Email Office Hours
Ravi Chugh (Instructor) rchugh+130@cs.ucsd.edu Tue, 2:30–3:30pm, CSE 3208
Alexander Bakst (TA) abakst+130@cs.ucsd.edu Check Piazza for
latest information on
TA/Tutor office hours
Valentin Robert (TA) vrobert+130@cs.ucsd.edu
Patrick Torbett (Tutor) ptorbett+130@ucsd.edu

overview

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.