- 3/28/05: Generalities on algorithms, models of computation,
cost criteria and complexity analysis. An example: Bubble Sort, a
quadratic algorithm for the sorting problem.
Textbook: cp. 1.
- 3/30/05: Test.
- 4/4/05: Summation formulae. Logarithms. Binary
representation of integers.
Textbook: cp. 2.1. 2.2.
- 4/6/05: Loop invariants. Examples. Computing integer powers of a number.
Analysis and implementation of the repeated squaring method.
Textbook: cp. 2.2 (all).
- 4/11/05: Modular Exponentiation. A comparative experimental analysis of
the repeated squaring method versus the naive exponentially slower method.
Textbook: cp. 2.2 (all).
- 4/13/05: Analysis of algorithms and asymptotic notation.
Textbook: cp. 2.3.
- 4/18/05: More on asymptotic notation. Parameter estimation.
The Least Squares method.
Textbook: cp. 2.3. (all)
4/20/05: Midterm 1.
- 4/25/05: Review of the Midterm Examination. Divide and
Conquer. Mergesort.
Textbook: cp. 2.4
- 4/27/05: Analysis of Mergesort. Divide-and-conquer
recurrence relations. The master
method.
Textbook: cp. 2.4 (all), 5.2
- 5/2/05: Data Structures: specification and implementation.
Use of Java interfaces. Stacks and Queues: Array and Linked List
implementation. Circular buffers. DEQueues.
Textbook: cp. 3.1,3.2,3.3.
- 5/4/05: Review on loop invariants. The Priority Queue Adt.
Textbook: cp. 3.5
- 5/9/05: Binary min-heaps and max-heaps. Heap-based
implementation of the Priority Queue Adt.
Textbook: cp. 3.5 (all)
- 5/11/05: Graphs and Trees. Adjancency matrix
representation. Adjacency lists. Rooted trees. The Dictionary
Adt. Array implementation and binary search.
Textbook: cp. 2.5,2.6,4.1
- 5/16/05: Midterm 2 (part I). Binary Search Trees (BST). BST
implementation of the Dictionart Adt. Insertion in BST. Discussion on
balancing issues.
Textbook: cp. 3.4
- 5/18/05: Midterm 2, Part II.
- 5/23/05: Review of the Midterm. Cancellation in BST.
- 5/25/05: Greedy Programming. The Single source-All
destinations Shortest Paths Problem. The Dijkstra
Algorithm. Determining a Minimal Spanning Tree in a graph. The
Kruskal's algorithm. The DisjointSets Adt.
- 1/1/05: The DisjointSets Data Structure. Path Compression
implementation. Application to the implementation of the Kruskal's
algorithm. Dynamic Programming. The principle of
suboptimality. The matrix chain multiplication problem and its
solution.