Today we’re wrapping up! We’ve made it to the end. Though it is a Friday, there won’t be a MQ today. For the majority of class, we’ll run through examples from across the quarter. I’ll have a poll up at the beginning of class just to ask what sorts of stuff we want to focus on. There won’t be any required participation activities.

We’ve learned a ton of stuff this quarter so there’s a list after the reminders section.

Reminders

  1. If someone on the course staff helped you this quarter, take a second to say thanks via this form!

  2. I like to save the last few minutes of the last class for a more “general” Q&A. Submit an AMA question about CS, NU, industry, academia, the class, the department, etc. here! (can be anonymous)

  3. Don’t forget to submit Exercise 9 (due Friday at 11:59pm) and Ethics Module 9 (due Sunday at 11:59pm)

111 as a List

Look at everything you’ve learned!

  • Calling functions (literally all of the glossary!)
  • Special syntactic forms (things that don’t follow the rules of computation)
  • Composing functions (using output of one function as input of another)
  • Unit testing (using check-expects)
  • Defining Functions with Lambda Abstraction
  • Basics of image generation
    • image iterators
  • List processing (map, foldl/r, filter, apply, …)
  • Recursion (functions can call themselves)
  • Iterative Recursion (recursion with an accumulator which is sometimes referred to as tail recursion)
  • Sussman Form (shorthand function definition)
  • Inductively defined data structures
    • Linked lists (i.e. lists are just “linked” pairs via cons!)
    • Trees (i.e. a node can be connected to more trees that we call its children)
    • Navigating these structures via recursion!
  • Binary search trees (a particular type of organized tree that allows for fast lookups O(lg(n))
  • Imperative programming (via changing state)
    • imperative debugging via the Debugger and via print statements
  • Object-Oriented Programming
    • Custom structs (called Classes in other languages)
    • Mutation (directly modifying an instance’s properties)
    • Inheritance (a struct can inherit properties from a parent type)
    • Methods (data can be composed of multiple properties and actions)
  • Files and Folders
    • Directories are just trees!
    • They’re imperative in nature
    • A relative path is one that shows a path to a file from a given starting point
    • An absolute path is one that shows a path to a file from the root
  • HashMaps (technically a HashTable)
    • an associative data structure
    • has constant (O(1)) access time
    • stores values via a key rather than an index like a list
  • Game Design
    • Model - View - Controller

Today's Resources

1. Exercise Files

Download Exercise Files

2. Slides

3. Pre-Recorded Lecture Video(s), Mini-Quizzes, and Live Recordings

Available Videos
Link Title Type Duration
Video 0 Live Lecture Recording lecture 50:00