CISC 3160 Programming Languages


Basic Information

Topics

Formal languages for language specification (regular expressions and context-free grammars), scanning and parsing, programming paradigms and their characteristics, imperative programming, object-oriented programming, functional programming, logic and constraint programming, scripting languages, concurrent programming, language implementation techniques, virtual machines, run-time systems and memory management, programming language examples (including Java, C/C++, Python, Haskell, and Picat).

Resources

Homework

Homework assignments are available here. Please submit homework by email at nzhou (AT) brooklyn (DOT) cuny (DOT) edu. Please write your name, course number, and the number of the assignment in the subject. I prefer receiving plain text emails. If you include an attachment in your email, please make sure it is in either PDF or txt format. Sample answers to the programming questions will be given and selected questions will be reviewed in class. There will be a one-point deduction for each missing homework or late submitted homework. The total deduction will not exceed 10 points.

Exams and Grading

There will be one midterm exam and one final exam, both open-book. Homework and projects account for 30%, the midterm 30%, and the final 40%.

Syllabus

  1. Introduction
  2. Lexical Analysis
  3. Syntax Analysis
  4. Midterm (Sample) ( 3/14 Thursday)
  5. OOP
  6. Scripting Languages, Julia, and Python
  7. Functional Programming and Haskell
  8. Constraint Logic Programming and Picat
  9. Run-time Systems and Memory Management, JVM
  10. Project ( Due )
  11. Final Exam, 5/21 (Tuesday), 10:30-12:30 (Sample)