Topics | Slides | Old Videos | New Videos | Notes |
(Java,OO) |
![]() ![]() | Jeff skips | ||
Abstract Data Types |
![]() ![]() |
|
![]() ![]() |
![]() |
Positions and Pointers |
![]() | |
![]() |
|
Contracts and Invariants |
![]() |
|
![]() ![]() |
![]() ![]() ![]() |
Running Time |
![]() |
|
![]() ![]() |
![]() ![]() |
Recursion |
![]() |
|
x
![]() ![]() |
![]() |
Midterm Review | ||||
Balanced Trees |
![]() |
|
![]() |
|
Hash Tables |
![]() |
|
![]() ![]() |
Graphs |
![]() |
|
![]() ![]() |
![]() ![]() ![]() |
Algorithmic Paradigms |
![]() |
|
![]() ![]() ![]() ![]() | |
Other |
![]() ![]() | |||
Review |
![]() |
|
![]() ![]() |
Request:
Jeff tends to talk too fast. Please help him go
pole pole slowly.
- Please ask questions.
When you email me something put 2101 in the subject.
- A photos helps if you want me to know who you are.
How to Study:
Watch, Pause, Think, and Unpause the slides/videos.
Watch in the video the pre and post conditions for the next problem.
Pause the video and try to solve it yourself.
If you get stuck, watch for another slide or two.
Repause it. Was that enought of hint so that you can now solve it?
After watching the entire solution, ask yourself what you were missing.
How did Jeff complete the steps?
Maybe set all notes aside and see if you can now write up the solution on your own.
Texts:
Andy's slides:
These are slides of
Andranik
Mirzaian.
My current thinking is to not cover it.
(Partly because I don't know it).
But you may find it useful.
Abstract Data Types:
(ppt,
Notes Data Structures)
(What the user of the data structure needs to know about how it is
used, without needing to know how it is implemented.)
Positions and Pointers:
(ppt)
(One data structure points at another forming linked lists and trees.
They are often a challenge for new programmers in C or Java.)
Contracts, Assertions, and Invariants:
(ppt,
Steps,
Notes Invariants,
Notes Data Structures)
(Big systems need clear specifications about how its parts
communicate. Big systems, data structures, and algorithms alike need
to have clear specifications that never change.)
(Jeff strongly believes that loop invariants is the most important topic in
Algorithms. Instead of worrying about the entire computation, only
worry about one step at a time - make progress while maintaining the
loop invariant.)
Asymptotic Analysis of Time Complexity:
(ppt,
Useful Math)
(We classify algorithms based on whether they are polynomial or
exponential time.)
Recursion:
(ppt,
Notes)
(Again do not try to understand the entire computation. Trust your
friends to solve a smaller instances of your problem and use these to
the solve your own instance.)
Graph Search Algorithms
(ppt,
ass,
ass sol,
Soccer Strategies)
. . . . . . . . . . . . . . . . .
9
Midterm Review:
Jeff's Midterm
Review slides
3101 Steps0
Steps1
Steps2
Jame's Midterm
Review slides
Jame's problem set 1
(solution)
Jame's problem set 2
(solution)
Jame's problem set 3
(solution)
Jame's
Midterm Solutions 2015W
Some midterm 2014
Jeff's midterm 2015
(solution)
Jeff's Sketch of Exam 2015
(solution)
Balanced Trees:
ppt
(A great data structure storing objects is a binary tree. If it is
balanced than its depth is only log(n) with n nodes. Hence, operations
are quick.)
Dictionary/Map ADT
Binary Search Trees
------------ MIDTERM TO HERE ------------
Insertions and Deletions
AVL Trees
Rebalancing AVL Trees
Union-Find Partition
Heaps & Priority Queues
Communication & Hoffman Codes
Maps Hash Tables and Dictionaries:
ppt
(Items are "randomly" placed in at table.)
Dictionary/Map ADT
Direct Addressing
Hash Tables
Random Algorithms
Universal Hash Functions
Key to Integer
Separate Chaining
Probe Sequence
Put, Get, Del, Iterators
Running Time
Simpler Schemes
(Graphs, ie nodes and edges, are very useful for representing
data. The first task on them is to search through the nodes. )
Graph ADT
Generic Search
Breadth First Search
Dijkstra's Shortest Paths Algorithm
Depth First Search
Linear Order
Algorithmic Paradigms:
(ppt,
greedy,
dynamic programming,
NP)
(There are a few programming meta-algorithms that most algorithms fit
into. These should be understood.)
Brute Force: Optimazation Problem
Greedy Algorithm: Minimal Spanning Tree
Dual Hill Climbing: Max Flow / Min Cut
Linear Programing: Hotdogs
Recursive Back Tracking: Bellman-Ford
Dynamic Programing: Bellman-Ford
NP-Complete Problems
Other:
(Andy's Text Processing and
Memory Management:)
Machine Learning: I would love to cover some.
(Pattern Matching)
(Tries)
(Text Compression)
(DNA)
(Text Sequence Alignment)