Lecture Schedule
Date | Topic | Materials |
Introduction. What is an algorithm? How do we express algorithms? What makes a good algorithm? Examples: adding fractions, finding the maximum in an array |
Lecture 1 typed notes in pdf, class presentation |
|
Algorithm examples: Intersection of student lists. Finding a student in a list. Abstraction |
Lecture 2 typed notes in opdf, class presentation |
|
More on the intersection of student lists. Binary search. Analysis of running time. Recursive version of binary search |
Lecture 3 typed notes in pdf, class presentation |
|
Basics of Java: variables, basic types, casting, loops and conditionals. Introduction to memory organization |
Lecture 4 class presentation Examples of Java code: Welcome.java, TestVariables.java, TestIf.java, TestWhile.java, TestFor.java |
|
Java: Arrays. Methods. More on memory management. |
Lecture 5 class presentation |
|
Java: Classes, objects, methods. Constructors. Public and private. A class for representing polynomials. |
Lecture 6 class presentation Poly.java andTestPoly.java |
|
More on methods, parameter passing. Inheritance |
Lecture 7 class presentation TestPoly.java, PositivePoly.java |
|
Java: More on inheritance, scope and visibility. Keywords: static, this. |
Lecture 8 class presentations TestCircular.java, Circle.java, Sphere.java, Circular.java |
|
Interfaces vs inheritance. Comparable. Generic types. | Lecture 9 class presentation | |
Big-Oh: Examples, definition, properties. | Lecture 10 typed notes in pdf, class presentation | |
Sorting. Selection Sort. | Lecture 11 typed notes in pdf, class presentation, Java code | |
Proofs by induction. Proving correctness of recursive algorithms using induction |
Lecture 12 typed notes in pdf, class presentation |
|
Guest lecture: Inheritance vs interfaces (Prof. Prakash Panangaden) |
Lecture 13 notes in pdf |
|
Guest lecture: More on recursion (Prof. Prakash Panangaden) | Lecture 14 notes in pdf, Hilbert curve code, Sierpinski code | |
Guest lecture: MergeSort (Prof. Michael Langer) | Lecture 15 typed notes in pdf, class presentation | |
Proving correctness and running time of MergeSort | Lecture 16 typed noted in pdf, class presentation, Java code | |
Quicksort: running time analysis | Lecture 17 typed noted in pdf, class presentation | |
More on big-oh, counting and induction. | Lecture 18 class presentation | |
Abstract Data Types: Lists | Lecture 19 class presentation. A package implementing single linked lists and a test class for this package. | |
Abstract Data types: Lists (continued) |
Lecture 20 class presentation |
|
Abstract Data Types: Stacks | Lecture 21 class presentation Implementation using arrays, and a simple application for parenthesis balancing |
|
Guest Lecture: Prof. Mathieu Blanchette. Abstract Data Types: Queues | Lecture 22 class presentation | |
More on linear data structures in Java. Using predefined classes. | Lecture 23 class presentation | |
Abstract Data Types: Trees. Binary trees | Lecture 24 class presentation | |
Binary Search Trees | Lecture 25 class presentation | |
In-class midterm exam, covering lectures 1-23 | Lecture 26 sample exams folder | |
More on binary Search Trees | Lecture 27 class presentation | |
Heaps | Lecture 28 typed notes, code for heap data structure, testing class for the heap data structure, class presentation | |
Hash tables | Lecture 29 typed notes, code to demonstrate the effect of the hash function on the spread of elements, class presentation | |
Programming techniques: dynamic programming, greedy algorithms | Lecture 30 class presentation | |
Graphs | Lecture 31 class presentation | |
Graph traversal | Lecture 32 class presentation | |
Lecture 33 class presentation | ||
Graph problems. Introduction to computational complexity. P vs NP problems | Lecture 34 class presentation | |
More on NP problems. Introduction to computability | Lecture 35 class presentation | |
Introduction to AI. Game search | Lecture 36 class presentation | |
No class (Election Day) | ||
Machine learning | Lecture 37 class presentation | |
Recap of class, final exam preparation | Lecture 38 sample exams folder, some more solved sample problems |