CISC 3160 Programming Languages
Basic Information
- Instructor: Prof. Neng-Fa Zhou
- Class hours: Tuesday 11:00AM - 12:15PM, Thursday 11:00AM - 1:05PM (Inger Add 431)
- Office hours: 1:05-2:05 Thursday (1161 Inger)
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
- Compilers: Principles, Techniques, and Tools (2nd Edition), by Alfred V. Aho, Monica S. Lam, Ravi Sethi, Jeffrey D. Ullman.
- Java Online Tutorials
- OOP Wiki
- A Gentle Introduction to Haskell, by Paul Hudak, John Peterson, and Joseph Fasel.
- Constraint Solving and Planning with Picat, by Neng-Fa Zhou, Hakan Kjellerstrand, and Jonathan Fruhman.
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
- Introduction
- Lexical Analysis
- Syntax Analysis
- Midterm (Sample) ( 3/27 Thursday)
- OOP
- Scripting Languages, Julia, and Python
- Functional Programming and Haskell
- Constraint Logic Programming and Picat
- Run-time Systems and Memory Management, JVM
- Project ( Due )
- Final Exam, May 20, 10:30-12:30 (Sample)