CISC 320 Agorithms and Advanced Programming, Spring Y2K
-
Fri, May 26: Final exam, 1:00-3:00pm in 103 Gore Hall,
Lecture summary:
-
May 17: Wrap up, review sheet.
RSA Project phase 3 individual writeup due today.
-
May 15: Satisfyability, NP completeness proofs
Read CLR Sections 36.4 and 36.5
Absolute deadline for RSA Project phase 3 code handin.
-
May 12: Hand in HW #8.
Suggested handin date for RSA Project phase 3 code.
No lecture today, but Su Qi will be present to accept homework and
answer project questions. The class hour and class room are available
for teams to discuss their project plans.
-
May 10: Problem classes P and NP.
Read CLR Sections 36.2 and 36.3
-
May 8: Cycle problems in graphs (Eulerian, Hamiltonian, Travelling Sales)
Reference: CLR section 36.5
-
May 5: All pairs shortest path algorithms.
Read CLR Sections 26.1 and 26.2
RSA Project
final phase handout ,
writeup guidelines .
HW assignment 8 due Fri, May 12.
- Exercise 25.2-1
- Exercise 25.2-2
- Exercise 26.2-1
- Exercise 26.2-5 Hint: What happens in 26.2-1 if the direction of the edge (4,5) is reversed?
- Extra credit: Exercise 25.2-4
(Note: P(A and B) = P(A)*P(B) if A and B are independent.)
-
May 3: Single source shortest path (Dijkstra's algorithm).
Read CLR Sections 25.1 and 25.2
-
May 1:
The Union-find data structure for disjoint sets.
Read CLR Chapter 22
RSA Project phase 2 due today. (HW #7)
-
Apr 28: Newton's method applied to integer division.
Project tip: keeping to k+1 digit numbers.
Project tip: Karatsuba's divide and conquer multiplication revisited.
-
Apr 26: Project discussion
-
Apr 24: Kruskal's and Prim's algorithms for MST
-
Apr 21: Minimum Spanning Trees in weighted graphs.
Read CLR Chapter 24
-
Apr 19: Project overview
-
Apr 17: Depth First Search continued.
-
Apr 14: Depth first search
HW assignment 6 due Fri, Apr 21.
- Exercise 23.3-2
- Exercise 23.5-2
- Project Milestone 1:
Implement add, sub, and addmod.
Report times of encryption using keys of length 8, 16, 32, where
addmod is used in place of expmod. Key files and Crypttext files
will be provided in 320/rsaproject/.
-
Apr 12: Breadth first search
Read CLR Chapter 23
-
Apr 10: Synthetic division
-
Apr 7: Division with remainder,
last key topic for RSA Public Key Encryption.
HW # 5 due today.
-
Apr 5:
Primality testing and Matrix multiplication.
Read CLR Section 31.2,
-
Apr 3: Public Key Encryption (RSA)
Read CLR Sections 33.6 and 33.7.
Project Description .
-
Mar 24: Polynomials and integers: FFT
Read CLR Sections 32.1 and 32.2.
HW assignment 5 due Fri, Apr 7:
- Exercise 32.1-1
- Exercise 32.1-2 [Hint: Horner's rule to compute A(xo), and go from there.]
- Problem B - Write a multiple choice question (and answer) on section 32.1.
- Extra Credit: Exercise 32.1-6
-
Mar 22: Divide and conquer arithmetic for matrices, polynomials and integers.
Read CLR pages 776-777 of Chapter 32, and problem 32-1.
-
Mar 20: Midterm review.
-
Mar 17: Midterm exam.
-
Mar 15: Dynamic Set wrapup and exam review.
review guide .
-
Mar 13:
Balanced Binary Trees Read CLR Chapter 13.
and
Red-Black Trees Read CLR Chapter 14.
-
Mar 10: B-Trees Read CLR Chapter 19.
HW 3 due today
HW assignment 4 due Fri, Mar 17.
- Exercise 12.4-1 (linear probing and double hashing only (skip quadratic)).
- Exercise 12.4-2
- Repeat Homework #3 problem 3, but use qSortTestMain.cc in place
of quickSortTestMain.cc. qSortTestMain.cc generates different random test
data.
Some details about optimization:
http://gcc.gnu.org/onlinedocs/gcc_2.html#SEC10.
-
Mar 8: Hash Tables continued.
-
Mar 6: Hash Tables. Read CLR Chapter 12.
-
Mar 3: Dicussion: going from asymptotic analysis to runtime predictions.
Dictionary preliminaries. Read CLR Part III intro
HW assignment 3 due Fri, Mar 10.
-
Mar 1:
Solving Recurrences Read CLR Sections 4.3.
Dictionary preliminaries. Read CLR Part III intro
representing trees. Read CLR Section 11.4
HW 2 due today (but no penalty if handed in Mar 3 in class).
-
Feb 28: Order Statistics, Read CLR Sections 10.1, 10.2.
code
-
Feb 25: It doesn't get any better than this: A limit for sorting speed.
Read CLR Section 9.1
-
Feb 23: Introspective Sort -
effectively combining QuickSort, HeapSort, and InsertSort.
HW assignment 2 due Wed, Mar 1:
- Exercise 7.5-3
- Exercise 7.5-4
- Exercise 8.3-2
- Extra Credit: Problem 8-3 (Stooge Sort)
-
Feb 18 & 21: Quick Sort
Read CLR Chapter 8 (excluding 8.4.2).
HW 1 due today
Label each solution precisely: Exercise c.s-n for CLR
section end exercises, Problem c-n for CLR chapter end problems,
and
Problem X
for a non-textbook problem designated by letter X .
-
Feb 16: Heap Sort, a worst case cost analysis, solving some sums.
Read CLR Chapter 7, scan chapter 3.
-
Feb 14: Summary on analysis using insertionSort and mergeSort examples.
Scan Chapters 3 and 4. For program examples go to
~saunders/public_html/320/ on a composer.
-
Feb 11: Merge Sort, solving recurrences.
Reading: Finish CLR Chapter 1.
-
Feb 9: Intro, syllabus handed out, Insertion Sort.
Read CLR Chapter 1, Scan CLR Chapters 2, 3.
About generic programming in C++, read the Standard Template Library and
the STL Documentation at SGI .
HW assignment 1 (due Fri, Feb 18):
- Exercise 1.3-4,
- 1.3-5,
- Problem 1-1,
- Problem A: 10^3 nanoseconds is a microsecond, 10^6 nanoseconds make a
millisecond, 10^9 for a second, and 10^12 nanoseconds is about 17 minutes
(or about a quarter hour).
Express 10^15 and 10^18 nanoseconds each approximately in a convenient unit. Express the following numbers of nanoseconds each approximately
in a convenient unit: 2^30, 2^40, 2^50 nanoseconds.
You may find Maple useful for problem 1-1 and problem A.
saunders@cis.udel.edu