Computer Science
>
>

CSE 130: Programming Languages: Principles and Paradigms

Winter 2017

UC San Diego

UC San Diego's CSE 130 provides an overview of basic concepts and design trade-offs related to programming languages. The course covers a wide range of topics like scope, storage management, exceptions, and concurrency, through practical implementation.

Course Page

Overview

This course will cover basic concepts and design trade-offs related to programming languages. The first half of the course focuses on functions, types, scope, storage management, exceptions, and continuations. The second half covers object-oriented features and concurrency. We will conclude with a few special-topics in programming languages. The class also has a number of small labs where students get to implement some of the language features discussed in class.

Prerequisites

No data.

Learning objectives

The course consists of lectures, written homeworks, and programming assignments. The goal of the course is to (1) familiarize you with various modern programming language concepts and paradigms and (2) get you to think about and understand the design trade-offs and implementations of different language features. We will use real-world languages (e.g., JavaScript, Haskell, and C++) to explore the different concepts. But, we will not cover any one language in full – this course is not meant to make you a proficient programmer, learning how to proficiently program in any of these languages is a course in of itself.

Textbooks and other notes

We will be following John Mitchell’s Concepts In Programming Languages textbook and assigning reading from this book and various other online resources and papers. Some of the book chapters have been revised, we will be handing out PDFs of these chapters. Cheaper renting options for the book seem to be available online (e.g., on Amazon).

If you are serious about programming languages Benjamin Pierce’s Types and Programming Languages is a must.

Other courses in Programming Languages

15-312 Foundations of Programming Languages

Spring 2014

Carnegie Mellon University

CS 242 Programming Languages

Fall 2022

Stanford University

CSE 505 Programming Languages

Spring 2021

University of Washington

Courseware availability

Lecture slides, notes, codes, readings available at Syllabus

No videos available

No assignements available

Notes and readings available at Notes

Covered concepts