Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

19

Week

Day

Date

Lecture Topic and Resources

Work AssignedWork Due

1

Tu

Aug 23

Motivation and the Elements (Constants) of Racket

Skim HTDP First Edition, Part 1 (Ch 1-8), Part 2 (Ch 9-10)Sep 01
 ThAug 25Conditionals, Function Definitions and Computation by Reduction Sep 03

2

Tu

Aug 30Sep 01

Conditionals, Function Definitions and Computation by Reduction

Homework 1

Review Ch 8

HTDP Part 2 (Ch 9-10)

Sep 08
3ThSep 0103

The Program Design Recipe for Racket focusing on using recursion

to process lists and natural numbers

Preface, 9.4

HTDP Part 2 (Ch 11-13)

Sep 10

4

Tu

Sep 06

Data Definitions, Data-driven Structural Recursion,

Homework 2

HTDP Part 3

Sep 15
5ThSep 08Mutually Recursive Definitions and Help FunctionsHTDP Ch 15-17Sep 1715

6

Tu

Sep 13

Local Definitions and Lexical Scope

HW03.txt in GitHub Classroom Repository (private)Homework 3

HTDP Parts 5-6

Sep 22

7

Th

Sep 15

Lambda the Ultimate and Reduction Semantics

LawsOfEvaluationSep 2622

8

TuSep 20

 

Functional Abstraction and Polymorphism Oct 6Sep 29

9

Th

Sep 22

Functions as Values

Homework 4Oct 5Sep 29

10

Tu

Sep 27

Generative (Non-structural) Recursion

 

 Oct 6 

11

Th

Oct 01Sep 29

Lazy Evaluation and Non-strict Constructors

 Homework 5*Oct 11 

12

Tu

Oct 0604

Techniques for Implementing Lazy Evaluation

Homework 5*  Oct 14

13

Th

Oct 0806

A Glimpse at Imperative Racket and Memoization

  

 

Tu

Oct 1311

FP in Racket Review

Sample Exam

Sample Exam Key

 

13

Th

Oct 1513

On to Java!

OO Design Notes  FriOct 16Midterm  

14

Tu

Oct 2218

Adapting the HTDP Design Recipe to Java

Midterm (Through Lecture 13 and HW 5) 7-10pm

Homework 6 Oct 2725

15

Th

Oct 2420

Higher-order Functional Programming in Java

  Oct 31

16

Tu

Oct 2925

Four Key Idioms for Encoding FP in Java

Homework 7Nov 61

17

Th

Oct 3127

The Singleton and Visitor Patterns

  

18

Tu

Nov 0301

Java Generics and Their Role in FP in Java

Homework 8*Nov 1610

19

Th

Nov 0503

Functional Rust IThe Strategy Pattern: Functions as Arguments in Java

  

20

Tu

Nov 10

Core Haskell (call-by-name, lazy constructors) (Agnishom)

 

08

Functional Rust II

Homework 9Nov 15 

21

Th

Nov 12

Haskell Pattern Matching (Agnishom)

Homework 9

10

OO Rust Using Only Traits

  Nov 19

22

Tu

Nov 17

Haskell Type Classes (Agnishom)

 

15

Rust ...

Homework 10*Dec 2Dec 16

23

Th

Nov 17

Rust ...

 

  
24TuNov 24Rust ... 

Haskell Monads (Agnishom)

Final Project** 

*Assignments marked with * are double assignments that count twice as much as regular assignments.  **indicates the project in lieu of a final examination.

...