CS 275: Programming Abstractions

DateTopic and reading
Week 1
Mon, Feb 14No class: winter term
No reading
Wed, Feb 16No class: winter term
No reading
Fri, Feb 18Introduction: Pairs and lists [slides]
No reading
Week 2
Mon, Feb 21Pairs, lists, and define [slides]
Reading
  • RPTFW. Chapter 1 through “Symbols, Identifiers, and Keywords”.
  • The Racket Guide. Section 4.10.
Wed, Feb 23Expression evaluation, conditionals, and equality [slides]
Reading
  • RPTFW. Rest of Chapter 1 except for sections “Vectors” and “Using Structs”.
  • The Racket Guide. Section 4.7.
Fri, Feb 25Environments and closures [slides]
Reading
  • RPTFW. Chapter 2, skip “Complex Numbers” and “Infix Notation”.
Week 3
Mon, Feb 28Variations on let [slides]
Reading
  • RPTFW. Chapter 3 “What is a function?”, “Lambda functions,” “Lexical Scoping,” and “Conditional Expressions”.
  • The Racket Guide. Section 4.6 through 4.6.3; 4.6.4 and 4.6.5 are optional.
Wed, Mar 02Accumulator-passing style and tail recursion [slides]
Reading
  • RPTFW. Chapter 3 “I'm Feeling a Bit Loopy!” through “Purity”.
  • The Racket Guide. Section 2.3.
Fri, Mar 04Map and Apply [slides]
Homework due: Homework 1
Reading
  • RPTFW. Chapter 3 “Higher order functions”.
  • The Racket Reference. map, andmap, and ormap documentation.
Week 4
Mon, Mar 07Variadic functions [slides]
Reading
  • The Racket Guide. Section 4.4 through section 4.4.1; the rest of 4.4 is optional.
Wed, Mar 09Fold right [slides]
Reading
Fri, Mar 11Fold left [slides]
Homework due: Homework 2
Reading
Week 5
Mon, Mar 14Y combinator [slides]
No reading
Wed, Mar 16Exam 1 review; Modules and data types [slides]
Reading
Fri, Mar 18Class canceled [slides]
Homework due: Homework 3
No reading
Week 6
Mon, Mar 21Exam 1
No reading
Wed, Mar 23Structs and keyword arguments [slides]
No reading
Fri, Mar 25Backtracking [slides]
No reading
Week 7
Mon, Mar 28Backtracing continued [slides]
No reading
Wed, Mar 30MiniScheme introduction and grammars [slides]
No reading
Fri, Apr 01MiniScheme A and B [slides]
Homework due: Homework 4
No reading
Week 8
Mon, Apr 04No class: spring break
No reading
Wed, Apr 06No class: spring break
No reading
Fri, Apr 08No class: spring break
No reading
Week 9
Mon, Apr 11MiniScheme C [slides]
No reading
Wed, Apr 13MiniScheme C continued [slides]
No reading
Fri, Apr 15MiniScheme D and E [slides]
Homework due: Homework 5
No reading
Week 10
Mon, Apr 18Lexical and Dynamic Bindings [slides]
No reading
Wed, Apr 20Parameter Passing [slides]
No reading
Fri, Apr 22MiniScheme F [slides]
Homework due: Homework 6
No reading
Week 11
Mon, Apr 25MiniScheme G [slides]
No reading
Wed, Apr 27MiniScheme H [slides]
No reading
Fri, Apr 29Exam 2 review [slides]
No reading
Week 12
Mon, May 02Exam 2
No reading
Wed, May 04Implementation details and macros [slides]
No reading
Fri, May 06More macros [slides]
Homework due: Homework 7
No reading
Week 13
Mon, May 09Promises made, promises kept [slides]
No reading
Wed, May 11Streams [slides]
No reading
Fri, May 13More streams [slides]
No reading
Week 14
Mon, May 16Continuation passing style [slides]
No reading
Wed, May 18Continuation passing style continued [slides]
No reading
Fri, May 20Call with current continuation [slides]
No reading
Week 15
Mon, May 23Types [slides]
No reading
Wed, May 25More types and final exam review [slides]
Homework due: Homework 8
No reading
Fri, May 27No class: reading period
No reading
Final Exam
Thu, Jun 02Final exam from 09:00–10:59