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.
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.
No data.
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.
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.