Dr. Chuck C. Liang Email: chuck.c.liang@hofstra.edu Phone: (516) 463-5559 Office: SIC 213
Academic cheating was a huge problem even before chatGPT. Individuals caught cheating will face disciplinary actions from the university. There will be no warning. Individuals posting course materials and solutions online may also face legal action for violating the university and the instructor’s copyrights. No course materials may be shared with others without consent from the instructor.
You may be given an oral exam at the end of the semester and be asked questions pertaining to assignment materials that you have submitted.
A study of the semantics, specification and behavior of programming languages. The course will focus on various programming language paradigms including functional, imperative, object- oriented and aspect-oriented programming. Programming assignments using example languages from these paradigms will be required. Emphasis will be placed on learning languages such as C#, ML, modern C++ and Rust. Other topics covered include language syntax, control structures, objects and functions.
Prerequisite: CSC 16, 17; CSC 14 and 24 strongly recommended
Recommended Text: "Programming Languages: Concepts and Constructs, 2nd Edition" by Ravi Sethi.
Mathematical Foundations: The Lambda Calculus
Formal Models of Computation:
Lazy versus Eager Evaluation: The Church-Rosser Theorem
Dynamic versus Lexical Scoping
Side-effects and State
Closures
Object Orientation
Types
Typed functional programming
Zero Overhead Abstraction
Approaches to Memory safety
Assignments will be given regularly. There will be a midterm exam and a final. The final exam will be cumulative. Periodic quizzes, including one-on-one quizzes may also be given. The grade distribution will be roughly 70% exams and quizzes and 30% attendance, programming assignments and other homeworks. Grading will be curved but the exact curve can be modified by the instructor. Students are required to keep copies of all programming assignments throughout the semester. When working in a group, all group members must possess current versions of the assignment. Final Note: The contents of this syllabus may be modified depending on the progress of the course.