Office Hours Schedule

Mon Tue Wed Thu Fri
5:00-8:00pm (Knightsbridge) 5:00-8:00pm (Mayfair) 3:00-4:30pm (Richmond)

Class Schedule

Note: It's likely that the topics will change, but very UNlikely that the dates of labs, homeworks, or exams will. Homeworks are assigned on Friday, and they are due the following Friday at 9:00am (unless otherwise noted). Labs take place every Friday; we're short on space, so make sure you attend the lab section you've signed up for.

Week of Topics Reading HW Lab Exam
August 26 Slides: Lecture Zero

  • Intoduction to Computer Science
  • Introduction to CS2500
September 2 Worksheet: Computational Thinking

Slides: data and functions

Sample code: defining functions

  • WEDNESDAY: LAB -- Bring your laptop!
  • Intro to Dr. Racket / BSL
  • Arithmetic Operators
  • Data types
Prologue, Ch 1.1-1.4 HW1 Lab 0 (Wednesday)
September 9 Slides: numbers, strings, function comments

Sample code: functions with comments and check-expect

Slides: booleans and conditionals

Sample code: exact, inexact

Sample code: conditionals in GOT

  • Programs + Functions
  • Conditional data
  • Booleans, asking questions
  • Animate
Ch 2.1-2.5, 1.5-1.7, 4.1-4.4 HW2 Lab 1
September 16 Slides: Design Recipe + World Programs

Sample code: GOT season finale code with SeasonNumber, EpNumber data designs

Sample code: Traffic Light V1 (on-tick)

Sample code: Traffic Light V2 (any key pressed)

Sample code: Traffic Light V3 (space key pressed)

Slides: Mouse Clicks and Posn

Sample Code: Mouse Click V1 (x-coord only)

Sample Code: Mouse Click V2 (using Posn, and also ends the world!!!!)

  • The Design Recipe
  • World Programs
  • Structures
  • posn in a World Program
Ch 3.1-3.7, 5.1-5.11 HW3
September 23 Slides: Custom structures + union data

Sample code: Custom struct to rep a soccer player

Sample code: Union data for a HotSpur, which can be a Player or a Supporter

Slides: Methodically building templates

Sample code: Template examples from class

Sample code: Heroes, the nested data structure

  • Custom structures
  • Union data (itemizations)
  • Nested data
Ch 4.5-4.7, 6.1-6.2 HW4 Lab 2
September 30 Exam #1 Review Sheet

Slides: Self-Referential Data

Sample code: A Squad has a current hero and rest of squad

Sample code: Lab 2

Slides: Exam Review

  • Self-referential data structures
  • Review/exam prep
  • Fri: Exam #1
Ch 9.3-9.4 EXAM #1 (during lab)
October 7 Sample code: List of Numbers (LoN)

Sample code: List of Songs, calculate total runtime

  • MONDAY: NO CLASS
  • Lists
  • Lists of structures
Ch 8.1-8.4, 9.1-9.6, 10.1-10.4 HW5 Lab 3
October 14 Slides: Abstractions for functions and data

Sample code: Separate functions that ll work on lists of Numbers

Sample code: do-to-all function on a list of Numbers

Sample code: do-to-all function on a list of whatever you feel like

Slides: More List Abstractions

Sample code: collapse

Sample code: keep-if

  • Lists cont'd
  • BSL->ISL
  • Abstractions for functions
  • Abstractions for data
Ch 14.1-14.5, 15.1-15.4, 16.1 HW6 Lab 4
October 21 Slides: Wheel! Of! Fortune!

Sample code: using local to double-then-square every number in a list

Lab 4 sample solution

Lab 4 sample solution USING LOCAL

Sample code: add-three-to-all using local

Sample code: negate -- a function that outputs a function

Sample code: nested local

  • foldr, foldl
  • Scope and local
  • Design Recipe for abstractions
Ch 16 HW7 Lab 5
October 28 Sample code: Versions of Cookie Clicker game

Starter: no files at all, just click and score goes up

V1: Same score in between plays

V2: High score

Exam #2 Study Sheet

Sample code: negate function with lambda

Sample code: calling list abstractions with lambdas

  • File Processing
  • Lambdas
Ch 2.5, Intermezzo 3
November 4 NO CLASS
November 11 Sample code: Binary Trees

Sample code: Arbitrary Trees

Slides: Trees and Baldwins

Slides: Exam Review

  • Trees
  • Binary Trees, Aribtrary Trees
  • Review/Exam prep
  • Weds: Exam #2
Ch 19.1-19.2 HW8 Lab 6 EXAM #2 (during lecture)
November 18 Sample code: multiple trees, multiple lists

Sample code: finding the max value vertex in a graph

  • Trees cont'd
  • Multiple complex inputs
  • Graphs
Ch 23.1-23.7, 29.1-29.2 HW9 Lab 7
November 25 Sample code: A Graph of the London Underground

Sample code: Structural vs. generative recursion

  • Functions on graphs
  • Generative recursion
Ch 25.1-25.2, 29.1-29.2 Lab 8
December 2 Final Exam Study Sheet

Slides: Accumulators

Sample code: accumulate a value, accumulate a list

Slides: Final Exam Review

  • Accumulators
  • Review/Exam Prep
Ch 26.1-26.4
December 9 MON: FINAL EXAM
3:00-5:00pm (Marleybone)
FINAL EXAM