Instructor:
Prerequisites:
Textbook:
T. Cormen, C. Leiserson,
R. Rivest and C. Stein (CLRS)
Introduction to Algorithms
Publisher: McGraw-Hill
2nd edition, 2001
1184 pages
ISBN-13: 9780070131514
Other recommended books:
B. Kernighan and D. Ritchie
The C programming language
Publisher: Prentice Hall
Copyright: 1988
Paper; 274 pp
ISBN-10: 0131103628
ISBN-13: 9780131103627
Bjarne Stroustrup
The C++ Programming Language
Addison Wesley
S. Lippman, J. Lajoie, and B. Myers
C++ Primer
912 pages
Addison-Wesley Professional
4th edition, 2005
ISBN-10: 0201721481
ISBN-13: 978-0201721485
The GNU debugger gdb under
NetBSD is documented here.
Your first resource for help with
assignments is your textbook and then the instructor, in that order.
For typesetting text problems, please
consider TeX.
When submitting a programming problem,
use the Unix script command (e.g. see here)
to
record your input/output. Steps:
0. Start script 1. List (cat) your program 2. Compile your program,
showing no compile errors 3. Do your test runs 4. Close script.
Include this script in your tar or ZIP file containing all program
files.
Simple program timing can be done with
the Unix time command, e.g. see here.
Grading:
There will be homework assignments (20%),
up to four unannounced quizzes (30%), a midterm exam (25%), and a final
exam (25%).
Policies:
| Date |
Topics Covered |
Reading |
Assignments |
| Sep 2, 2009 |
Analysis of Algorithms, Insertion Sort, Mergesort |
Chapters 1-2 |
|
| Sep 9, 2009 |
Asymptotic Notation, Recurrences, Substitution, Master Method | Chapters 3-4 |
|
| Sep 16, 2009 |
Divide-and-Conquer: Strassen, Fibonacci, Polynomial Multiplication | Sections 28.2 and 30.1 | Do: Exercises 2.2-1, 2.2-2. 2.3-3. Submit: Problems 2-1, 2-4 Do: Exercises 3.1-1, 3.1-2, 3-1.3, 3-1.4, 3-1.7, 3-1.8. 3.2-1, 3.2-2 Submit: Problem 3-3 |
| Sep 23, 2009 |
Quicksort, randomized algorithms |
Sections 5.1-5.3 Chapter 7 |
Submit: Exercise 2.3-5 (but: write real C code
for both iterative and recursive approaches, implement the three
parameter passing methods from Problem 4-3 for the recursive
version, do a test run with n = 10, 100, 1000, 10000, 100000,
1000000, time your results, include the script file as described above,
and your conclusions about the respective running times for all 4
versions) Do: Exercises 3.2-6, 4.1-1, 4.1-2, 4.1-6, 4.2-2, 4.2-3 Submit: Problems 4-1, 4-4 |
| Sep 30, 2009 |
NO CLASS TODAY. Linear-time Sorting: Lower Bounds, Counting Sort, Radix Sort |
Sections 8.1-8.3 |
|
| Oct 7, 2009 |
Order Statistics, Medians | |
Do: Problem 4-5, Exercises 5.2-3, 7.1-1 Submit: Exercise 5.2-4, Problems 5-1, 7-4 |
| Oct 14, 2009 |
Applications of Median, Bucketsort | Sections 9.1-9.3 |
Do: Exercises 8.2-1, 8.3-1 Submit: Problem 8-3 |
| Oct 21, 2009 |
Binary Search Trees, Red Black Trees -
MIDTERM |
Chapters 12-13 |
|
| Oct 28, 2009 |
Dynamic programming |
Chapter 15 | |
| Nov 4, 2009 |
Greedy algorithms, minimum spanning trees |
Chapter 16 |
Do: Exercises 9.1-1, 9.2-1, 9.3-1, 9.3-9 Submit: Problem 9.1 (a and c only) Do: Exercise 11.2-1, 11.2-2 Submit: Exercise 11.4-3 |
| Nov 11, 2009 |
Graph searching, BFS, DFS |
Chapters 22-23 |
Do: Exercises 12.3-1 (in C), 12.3-3 (in C),
13.3-3 Submit: Problem 13-1 (also include C code for part b, for all required functions). |
| Nov 18, 2009 |
Shortest Paths: Bellman Ford, Dijkstra's algorithms. | Chapter 24 |
Submit: 23-1 (a, b only) |
| Dec 2, 2009 |
Shortest paths II: all-pairs Shortest Paths, Matrix Multiplication, Floyd-Warshall, Johnson | Chapter 25 |
Submit: Problem: You are a market trader dealing in international currencies. A colleague of yours, the smug programmer, has just been laid off. You are seeking a way to make money fast for your trading company, and have considered arbitrage, a technique described in Problem 24-3. Answer 24-3 a) and b), and add: c) implement it in C using sample data, e.g. from http://finance.yahoo.com/currency-investing#cross-rates or http://www.xe.com/ucc/
|
| Dec 16, 2009 |
FINAL EXAM |