Introduction
An introduction to programming language design and implementation, with an emphasis on the abstractions provided by programming languages. Assignments involve problem-solving issues in principles of programming languages such as Scheme and ML. Recursive types and recursive functions; structural induction; abstract data types; abstract syntax; implementing languages with interpreters; static vs. dynamic scoping, closures, and state; exceptions; types: type-checking, type inference, static vs. dynamic typing; object-oriented languages: classes and interfaces, inheritance, and subtyping; polymorphism and genericity; and design patterns and the visitor pattern.
Teacher
David Pfeffer
ADJUNCT PROFESSOR
Email: dpfeffer@stevens.edu
Education
Bachelors of Science in Computer Science
Stevens Institute of Technology
Hoboken, NJ
Honors; Minor in Law and Public Policy
Masters of Science in Computer Science
Stevens Institute of Technology
Hoboken, NJ
4.0 GPA; Graduate Certificates in Computer Systems, Databases & Service Oriented Architecture, Distributed Systems, Enterprise Computing, Quantitative Software Engineering, Service Oriented Computing
Professional Societies
Member of the IEEE Computer Society and ACM.
Courses
CS 521 TCP/IP Networking
CS 570 Introduction to Programming, Data Structures, and Algorithms
CS 465 Selected Topics in Computer Science
SSW 810 Selected Topics in Systems Centric Software Engineering