Programming Languages

Course
Identifier: 
COM S 441
  1. Credits and contact hours: 3 credits, 3 contact hours
  2. Instructor’s or course coordinator’s name: Hridesh Rajan
  3. Text book, title, author, and year: Benjamin C. Pierce, Arthur Azevedo de Amorim, Chris Casinghino, Marco Gaboardi, Michael Greenberg, Cătălin Hriţcu, Vilhelm Sjöberg, Brent Yorgey, “Logical Foundations”, 2019 edition, Open Source Textbook, https://softwarefoundations.cis.upenn.edu/lf-current/index.html.; Benjamin C. Pierce, Arthur Azevedo de Amorim, Chris Casinghino, Marco Gaboardi, Michael Greenberg, Cătălin Hriţcu, Vilhelm Sjöberg, Andrew Tolmach, Brent Yorgey, “Programming Language Foundations,” 2019 edition, Open Source Textbook, https://softwarefoundations.cis.upenn.edu/plf-current/index.html.
  4. Other supplemental materials: None

Specific course information

  1. Brief description of the content of the course: Survey of the goals and problems of language design. Formal and informal studies of a wide variety of programming language features including type systems. Creative use of functional and declarative programming paradigms.
  2. Prerequisites or co-requisites: COM S 342 or COM S 440
  3. Required, elective, or selected elective? Selected Elective

Specific goals for the course

  1. Specific outcomes of instruction:
  • An ability to analyze a complex computing problem and to apply principles of computing to identify solutions (1)
  • An ability to apply computer science theory and software development fundamentals to produce computing-based solutions (6)

Brief list of topics to be covered

  • Problems in language design
  • Formal and informal studies of a variety of programming languages
  • Functional programming paradigm
  • Declarative programming paradigm