COS 301: Programming Languages

Sudarshan S. Chawathe
University of Maine

Spring 2024

This course is an undergraduate introduction to programming languages. Its catalog description states:

Introduction to the fundamental concepts of formal languages, as well as the evolution and characteristics of major programming languages. Topics include finite-state automata, regular expressions, parsing, syntax and semantics, scope and binding, data types, and abstract data types.

We study programming languages drawn from four paradigms: imperative, object-oriented, functional, and logic. Specific languages include (not exclusively) an assembly language (Python bytecode), C, C++, Python, Java, Standard ML, and Prolog. We will compare features and styles and learn a bit about implementation aspects. We adopt an active learning approach that emphasizes exploration.

Prerequisites: COS 226 (data structures); COS 250 (discrete structures) with a grade of C or higher; programming maturity.

Goals and Outcomes
 Student Learning Outcomes
Contact Information
Online Resources
Grading Scheme
Textbook and Readings
Exercises, Homeworks, Tests, and Notes
Homework and Project Submissions

News and Reminders: