EECS 398-001: Programming Paradigms

Winter 2021

Survey of programming language features and paradigms, with a focus on how to effectively use them. Introduces common features for structuring program execution, data, and resource management. Exploration of programming paradigms including imperative, functional, object-oriented, and declarative paradigms, as well as advanced techniques such as metaprogramming. Students will gain programming experience in large projects that incorporate these paradigms and techniques.

See the syllabus for all the details.


Open calendar in new window


Day Unit # Lecture Topic Deadline Readings
Mon 18 Jan Foundations No Class - MLK Day Introduction, Basic Python, Basic Elements
Wed 20 Jan 1 Introduction
Mon 25 Jan 2 Basic Elements HW1 due Fri 29 Jan 8pm ET Names and Environments
Wed 27 Jan 3 Names and Environments
Mon 1 Feb 4 Control Flow Project 1 due Mon 1 Feb 8pm ET Control Flow, Value and Reference Semantics, Grammars
Wed 3 Feb 5 Grammars
Mon 8 Feb Functional Programming 6 Scheme and Functions HW2 due Fri 12 Feb 8pm ET Functions, Introduction to Scheme, Recursion
Wed 10 Feb 7 Functions and Recursion
Mon 15 Feb 8 Higher-Order Functions Project 2 due Fri 19 Feb 8pm ET Higher-Order Functions, Lambda Functions
Wed 17 Feb 9 Lambdas
Mon 22 Feb 10 Continuations HW3 due Fri 26 Feb 8pm ET Continuations
Wed 24 Feb Midterm Break - No Class
Mon 1 Mar Midterm Exam Midterm exam Mon 1 Mar 1:30pm ET Functional Data Abstraction
Wed 3 Mar Data Abstraction 11 Functional Data Abstraction
Mon 8 Mar 12 Memory Management Memory Management, Object-Oriented Programming
Wed 10 Mar 13 Object-Oriented Programming
Mon 15 Mar 14 Inheritance and Polymorphism Project 3 due Mon 15 Mar 8pm ET Inheritance and Polymorphism, Static Analysis, Dynamic Typing
Wed 17 Mar 15 Static and Dynamic Typing
Mon 22 Mar 16 Generics and Modules Generics, Modules and Namespaces, Logic Programming
Wed 24 Mar Declarative Programming 17 Logic Programming
Mon 29 Mar 18 Logic Programming II Project 4 due Fri 2 Apr 8pm ET Constraints and Dependencies
Wed 31 Mar 19 Logic, Constraints, and Dependencies
Mon 5 Apr Metaprogramming 20 Macros and Code Generation HW4 due Fri 9 Apr 8pm ET Macros and Code Generation, Template Metaprogramming
Wed 7 Apr 21 Template Metaprogramming
Mon 12 Apr 22 Template Metaprogramming II Example: Multidimensional Arrays
Wed 14 Apr Special Topics 23 TBD
Mon 19 Apr 24 TBD Project 5 due Mon 19 Apr 8pm ET
Wed 21 Apr Final Final Review Session
Tue 27 Apr Final Exam Final exam Tue 27 Apr 4pm ET


Photo of Amir Kamil
Amir Kamil

1:30pm-3pm MW

Photo of Alec Minchington
Alec Minchington

11:30am-12:30pm F

Photo of Scott Guest
Scott Guest

12:30pm-1:30pm F