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
Wed 24 Mar Break - No Class
Mon 29 Mar Declarative Programming 17 Logic Programming Project 4 due Fri 2 Apr 8pm ET Logic Programming
Wed 31 Mar 18 Logic Programming II
Mon 5 Apr 19 Logic, Constraints, and Dependencies Constraints and Dependencies, Macros and Code Generation
Wed 7 Apr Metaprogramming 20 Macros and Code Generation
Mon 12 Apr 21 Template Metaprogramming HW4 due Mon 12 Apr 8pm ET Template Metaprogramming, Example: Multidimensional Arrays
Wed 14 Apr 22 Template Metaprogramming II
Mon 19 Apr Special Topics 23 Advanced C++ Project 5 due Wed 21 Apr 8pm ET
Wed 21 Apr 24 Parallel Computing
Tue 27 Apr Final 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