Dr. Chuck C. Liang
Professor of Computer Science, Hofstra University .
102 Adams Hall
Hempstead, NY 11550
Office Phone: (516 463) 5559
Email: firstname.lastname@example.org (<- click to send me mail)
Official Office Hours: MTu 1-2pm, Wed 6-7pm
Course Syllabus and Goals
Lambda calculus in Scheme (UPDATED),
Lambda calculus in Ruby,
Lambda calculus in Perl,
Halting Problem in Lambda Calculus/Scheme
The Triple Dispatch Challenge. Sample
solution available after it's due
F# Tutorial Exercises. This includes the first F# programming assignment.
F# Abstract Machine Assignment and base program dll (original version). 7B test programs: test1.7b, test2.7b (shouldn't work), test3.7b, test4.7b
F# assignment 3: Parsing and Compiling, with parserm.dll and example of how to extend parser-evaluator
AspectJ Optional Assignment, with associated Java base files figure.java and figs.java
Submit all programming assignments (but not first assignment) on blackboard (csc123) (but not the first homework, which is a written assignment).
More Scheme Programs (files in bold are required reading)
Perl Programs (supplements the Perl tutorial. Files in bold are required reading)
C# Programs ( Files in bold are required reading)
Three versions of Fibonacci function and compiled assembly. Illustrating tail recursion optimization.
Scheme style linked lists in C
Are there closures in C?
Simulating dynamic scoping with static scoping in C and Python
Inheritance and dynamic dispatch in pure C (alt version), and C#
A type error in four languages: scheme, perl, C, C#
Multiple Inheritance in C++
About templates in C++ with compiled assembly
Trying stuff (class extensions) in swift
Playing with Kotlin (includes another expression tree example)
Exploring AOP-like features in java-ish languages: decorator design pattern, .Net Attributes, dynamically scoped delegates (my approach)
Reflection in Java and how it can be stopped with AspectJ.
Final exam Monday 12/17, 4-6pm in regular classroom. Use the Study Guide with practice problems and sample solutions. Review Sesson Wednesday 12/12, 10am-11:30am, room Adams 208. Come with questions.