CIS24 Programming Languages


Instructor

Topics

Three major programming paradigms (object-oriented, functional, and logic), formal languages for language specification (regular expressions and context-free grammars), scanning and parsing, language implementation techniques, language evolution, OOP characteristics (abstract data types, inheritance, dynamic binding, and polymorphism), Java, functional programming characteristics (single-assignment variables, recursion, pattern-matching, high-order functions, and lazy evaluation), Scheme, constraint logic programming characteristics (logic variables, rule-based programming, unification, recursion, backtracking, and meta-programming), Prolog and CLP, scripting languages, run-time systems and memory management.

Textbook

Useful resources

Grading

Syllabus

  1. Introduction (Chapter 1)
  2. Defining Program Syntax (Section 2.1)
  3. OOP (Chapter 9)
  4. Functional Programming (Chapter 10)
  5. Sample midterm
  6. Logic and constraint programming
  7. Scanning and Parsing (Section 2.2 and 2.3)
  8. Run-time Systems and Memory Management (Chapter 8)
  9. Scripting Languages (Chapter 13)
  10. Final exam May 22 6:20 ( Sample solutions)