Jan-12 - Jan-18
- Assignments:
- Syllabus Quiz: Assigned on Wed, Jan 14
- Basic Environment Setup Quiz: Assigned on Wed, Jan 14 | Assignment
- HtDP Prologue Rocket Ship LargeSoftwareProject: Assigned on Wed, Jan 14 | Assignment
- Wed, Jan 14 Lecture: Basic Calculations with Dr Racket
- Topics:
- Course Introduction
- Questions
- Basic moving about
- Basic data types
- Preparation:
Jan-19 - Jan-25
- Assignments:
- Mon, Jan 19 Lecture: Class cancelled for MLK Day
- Wed, Jan 21 Lecture: More Basic Calculations with Dr Racket
- Topics:
- Parentheses
- Language documentation and help
- Interactions & definitions windows
- Preparation:
Jan-26 - Feb-01
- Assignments:
- First Functions ProblemSet: Assigned on Wed, Jan 28 | Assignment
- Office hours Viva: Assigned on Wed, Jan 28 | Assignment
- Mon, Jan 26 Lecture: Class cancelled - snow day
- Wed, Jan 28 Lecture: Functions, Design, and Manipulating Images
- Topics:
- Images as values
- Definitions
- Table method
- Animation
- Preparation:
- Extra Resources:
Feb-02 - Feb-08
- Assignments:
- Designing with Conditionals Quiz: Assigned on Mon, Feb 02
- Mon, Feb 02 Lecture: Aliens Coordinates; Making Decisions
- Topics:
- The Aliens Attack Project(s)
- Logical coordinates vs image coordinates
- Alien Design
- booleans
- intervals
- enumerations
- designing with conditionals
- Preparation:
- Extra Resources:
- Wed, Feb 04 Lecture: Designing Aliens Attack version 1
- Topics:
- interactive simulations
- big-bang library
- WorldState data definitions
- on-key
- on-draw
- Preparation:
- Extra Resources:
Feb-09 - Feb-15
- Assignments:
- Aliens Attack Version 1 LargeSoftwareProject: Assigned on Mon, Feb 09 | Assignment
- Mon, Feb 09 Lecture: Structured Data & Defining structs
- Topics:
- 2D Posns
- Compound datatypes
- Defining structures
- Functions w/structured data
- Preparation:
- Extra Resources:
- Wed, Feb 11 Lecture: Open lab practice session
- Preparation:
-
๐
Ch 8, "Animated Problem Solving"
- Extra Resources:
Feb-16 - Feb-22
- Assignments:
- Structures ProblemSet: Assigned on Mon, Feb 16 | Assignment
- Aliens Attack Version 2 LargeSoftwareProject: Assigned on Mon, Feb 16 | Assignment
- Mon, Feb 16 Lecture: Aliens Attack v.2
- Topics:
- Refining code
- Subtyping
- Errors and error handling
- format strings
- stop-when? and ending games
- Preparation:
-
๐
Ch 9, "Animated Problem Solving"
- Wed, Feb 18 Lecture: Structures and Variety
- Topics:
- Unions
- Structs and Variety
- Preparation:
- Extra Resources:
Feb-23 - Mar-01
- Assignments:
- Aliens Attack v.3: Assigned on Mon, Feb 23 | Assignment
- Mon, Feb 23 Lecture: Aliens Attack v.3
- Topics:
- adjusting process-tick
- move-shot
- draw-last-world refinement
- Preparation:
- Extra Resources:
- Wed, Feb 25 Lecture: Arbitrarily-sized Data and Lists
- Topics:
- Arbitrarily-sized Data
- Lists
- Templates for Functions on Lists
- Preparation:
- Extra Resources:
Mar-02 - Mar-08
- Assignments:
- Mon, Mar 02 Lecture: NONE - SPRING BREAK
- Wed, Mar 04 Lecture: NONE - SPRING BREAK
Mar-09 - Mar-15
- Assignments:
- Mon, Mar 09 Lecture: Designing w/Lists
- Topics:
- Searching lists
- operating over lists
- Designing by composition
- Desiging for structured data and recursive structures
- Preparation:
- Extra Resources:
- Wed, Mar 11 Lecture: Aliens Attack v.4
- Topics:
- Adding Lists of aliens
- Refining the world
- Refining the shot data definition
- Adding multiple shots at once
- Refining draw world
- Numbers as structured data
- Preparation:
-
๐
Ch. 14, "Animated Problem Solving"
-
๐
Ch. 15, "Animated Problem Solving"
-
๐
Ch. 16, "Animated Problem Solving"
- Extra Resources:
Mar-16 - Mar-22
- Assignments:
- Mon, Mar 16 Lecture: Trees, Mutual Recursion, and Cross-product templates
- Topics:
- Preparation:
-
๐
Ch. 16 "Animated Problem Solving"
-
๐
Ch. 17 "Animated Problem Solving"
- Wed, Mar 18 Lecture: Functional Abstraction
- Topics:
- Using data abstraction over functions
- Using function abstraction over functions
- Some built in higher-order functions
- Preparation:
Mar-23 - Mar-29
- Assignments:
- Lists ProblemSet: Assigned on Mon, Mar 23 | Assignment
- Higher-order functions ProblemSet: Assigned on Mon, Mar 23 | Assignment
- Aliens Attack v.4: Assigned on Mon, Mar 23 | Assignment
- Mon, Mar 23 Lecture: Open lab practice session
- Topics:
- Practicing designing higher-order functions
- Practicing working in groups
- Practice with the ISL+ docs and APIs
- Extra Resources:
- Wed, Mar 25 Lecture: Local definitions and lambda abstraction
- Topics:
- Local definitions and internal functions
- functions as values
- anonymous functions
- Preparation:
Mar-30 - Apr-05
- Assignments:
- Mon, Mar 30 Lecture: Exam 1
- Wed, Apr 01 Lecture: Aliens Attack v.5
- Topics:
- Aliens Ch. 5
- Encapsulation
- Abstraction in context
- Lambda expressions in context
- Refactoring
- Preparation:
-
๐
Ch. 23 "Animated Problem Solving"
Apr-06 - Apr-12
- Assignments:
- Lambda abstractions ProblemSet: Assigned on Mon, Apr 06 | Assignment
- Aliens Attack v.4 Resubmit: Assigned on Mon, Apr 06 | Assignment
- Mon, Apr 06 Lecture: Class cancelled - school closed
- Wed, Apr 08 Lecture: Objects, object-oriented programming
- Topics:
- local blocks
- multiple behaviors
- selecting multiple behaviors
- local values, constructors
- object-oriented style programming
Apr-13 - Apr-19
- Assignments:
- Mon, Apr 13 Lecture: Loops and pattern matching
- Topics:
- "Syntax Sugar"
- Loop constructs
- Pattern matching
- Preparation:
- Wed, Apr 15 Lecture: Mutually Recursive Data
Apr-20 - Apr-26
- Assignments:
- Mon, Apr 20 Lecture: Interfaces
- Topics:
- Preparation:
-
๐
Ch. 25, "Animated Problem Solving"
- Wed, Apr 22 Lecture: Introduction to Distributed Programming
- Topics:
- Protocol diagrams and lifeline diagrams
- Understanding the 2htdp/universe model
- An example distributed programming application
- ping, IP addresses, shell prompt
- 2htdp/universe
- Preparation:
-
๐
Ch. 26, "Animated Problem Solving"
Apr-27 - May-03
- Assignments:
- Distributed Multiplayer tug-of-war, developed in class: Assigned on Mon, Apr 27
- Mon, Apr 27 Lecture: Universe, distributed programming, and you
- Topics:
- What is a distributed program?
- Distributed programming model
- Design recipe for distributed programming
- Preparing to make a game distributed
- Preparation:
-
๐
Ch. 27, "Animated Problem Solving"
- Extra Resources:
- Wed, Apr 29 Lecture: Aliens Attack v.7
May-04 - May-10
- Assignments:
- Mon, May 04 Lecture: Aliens Attack v.8
- Topics:
- Preparation:
-
๐
Ch. 28, "Animated Problem Solving"