Danny's lectures, CSC148, Winter 2016

Below are lecture materials, listed by date.

January 11th
  • vanilla slides
  • annotated slides
  • mischievous point example. How not to define a point...
  • mischievous turtle example
  • API for Point. Do this based on the exercise, before implementing the bodies.
  • completed point example
  • January 18th
  • vanilla slides
  • annotated slides
  • API for Rational. Do this before implementing the bodies.
  • completed rational numbers example
  • rational numbers with managed attributes Use property to manage num and denom.
  • stand-alone Square and RightAngleTriangle classes Classes with attributes from other classes.
  • General Shape superclass Has the code that is common to Square and RightAngleTriangle.
  • Square subclass of Shape
  • RightAngleTriangle subclass of Shape
  • Client code of Shape that will work for any subclass
  • January 25th
  • vanilla slides
  • annotated slides
  • API for Stack Work on this before you implement Stack.
  • stack implementation Compare this to your solution.
  • tests for Stack You may add to these
  • Python tutor example Try this stack example...
  • API for Sack Work on this before you implement Sack
  • sack implementation Compare this to your solution
  • tests for Sack
  • Abstract Container class
  • client for Container Shows how client code can use Containers of different kinds.
  • February 1st
  • vanilla slides
  • annotated slides
  • matching parentheses code
  • API for linked list classes. Start from this to write your own implementation of methods. Un-comment remaining methods once the first ones are working.
  • linked list append exercise
  • linked list solutions
  • February 8th
  • vanilla slides
  • annotated test and assignment
  • annotated linked list queue
  • stack API Start from this to build a linked-list-based Stack
  • queue API Start from this to build a linked-list-based Queue
  • LinkedList class
  • linked-list-based Queue implementation
  • linked-list-based Stack implementaiton
  • compare containers
  • February 22nd
  • vanilla slides
  • annotated slides
  • reading recursion exercise
  • annotated recursion exercises
  • recursion code example
  • recursive turtle
  • February 29th
  • vanilla slides
  • annotated slides
  • Tree class with methods and functions
  • sample solutions for Tree class methods and functions
  • Queue class used in helper function
  • recursion exercise on contains method
  • recursion exercise on leaf_count function
  • more functions to build for tree
  • sample solutions to more tree functions
  • March 7th
  • vanilla slides
  • annotated slides
  • binary tree implementation
  • binary tree exercises solutions.
  • contains exercise
  • evaluate exercise
  • March 13th
  • vanilla slides
  • annotated slides
  • binary tree insertion and deletion.
  • mirror tree mutation example
  • March 20th
  • vanilla slides
  • annotated slides
  • fibonacci, quick sort, code
  • March 27th
  • vanilla slides
  • annotated slides
  • merge sort code
  • birthday paradox code
  • April 4th
  • vanilla slides
  • annotated slides
  • hash table code
  • function call example
  • subclass search example