Course Number
Primary Program
Course Format
Asynchronous Online, Synchronous Online

A programming language provides instructions to a computing device to perform tasks. A language has a vocabulary and a set of grammatical rules to shape and frame the communication between the user and the computing device. The Programming Languages course compares and contrasts a wide variety of features of numerous old and new programming languages, including programming language history; formal methods of describing syntax and semantics; names, binding, type checking, and scopes; data types; expressions and assignment statements; statement-level control structures; design and implementation of subprograms; lambda calculus; exception handling; support for object-oriented programming; and concurrency. Our course will also introduce logic programming and theorem proving through Prolog, Objective Caml, and Coq framework. The course will survey the fundamental concepts underlying modern programming languages with the goal of understanding paradigms, but not vocational training in any given language. Several examples will be drawn from C, C++, Java, Python, ML, JavaScript, Scheme, Prolog, and Coq.

Course Offerings

There are no sections currently offered, however you can view a sample syllabus from a prior section of this course.