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
 Goals
 Student Learning Outcomes
Contact Information
Online Resources
Grading Scheme
Policies
Programming
Schedule
Textbook and Readings
Exercises, Homeworks, Tests, and Notes
Homework and Project Submissions

News and Reminders: