CSC252a
Fall 2000
Ileana Streinu

Projects



Each project is individual. You may discuss your project with your colleagues, but the final presentation, implementation or work on which you are graded should be yours.

Project topics should be chosen by Tuesday Nov. 21 (before Thanksgiving).

Each project has to be presented in class during the last week of classes. Who does what, time and order of presentation will be announced here later.

Number Topic Reading Leda What to do Who
1. Red-Black Trees Cormen et al, ch. 14. gw_bintree
  1. Understand data structure and 1-2 applications.
  2. Experiment: compare several binary search data structures.
  3. Implement: write a small C++ program using Leda red-black trees.
Joe Targowski
2. B-trees Cormen et al, ch. 19. gw_bintree
  1. Understand data structure and 1-2 applications.
  2. Experiment: compare several binary search data structures.
  3. Implement: write a small C++ program using Leda b-trees.
Katherine Gurdziel
3. AVL-Trees Kruse gw_bintree
  1. Understand data structure and 1-2 applications.
  2. Experiment: compare several binary search data structures.
  3. Implement: write a small C++ program using Leda avl-trees.
Amanuel Lemma
4. Binomial Heaps Cormen et al. ch 20 no?
  1. Understand data structure and 1-2 applications.
Melalite Ayenew
5. Fibonacci Heaps Cormen et al. ch 21 no?
  1. Understand data structure and 1-2 applications, plus something in Leda (similar data structure).
Geetika Tewari
6. Disjoint Set Data Structures Cormen et al. ch 22 no?
  1. Understand data structure and 1-2 applications.
Pallavi Moorthy
7. Depth-First Search textbook yes
  1. Understand LEDA implementation of algorithm.
  2. Implement a small C++ program using it.
  3. Experimentation.
8. Breadth-First Search textbook yes
  1. Understand LEDA implementation of algorithm.
  2. Implement a small C++ program using it.
  3. Experimentation.
9. Connected Components textbook yes
  1. Understand LEDA implementation of algorithm.
  2. Implement a small C++ program using it.
  3. Experimentation.
Melissa Patton
10. Strongly Connected Components textbook yes
  1. Understand LEDA implementation of algorithm.
  2. Implement a small C++ program using it.
  3. Experimentation.
11. Biconnected Components textbook yes
  1. Understand LEDA implementation of algorithm.
  2. Implement a small C++ program using it.
  3. Experimentation.
12. Shortest Path textbook gw_shortest_path
  1. Understand LEDA implementation of algorithm.
  2. Implement a small C++ program using it.
  3. Experimentation.
13. Shortest Path - Dijkstra textbook gw_dijkstra
  1. Understand LEDA implementation of algorithm.
  2. Implement a small C++ program using it.
  3. Experimentation.
14. Minimum Spanning Tree textbook gw_min_spanning_tree
  1. Understand LEDA implementation of algorithm.
  2. Implement a small C++ program using it.
  3. Experimentation.
15. Max Flow Cormen et al. ch 27 gw_max_flow
  1. Understand algorithm.
  2. Application or modelling some problem using max flow.
  3. Understand LEDA implementation of algorithm.
  4. Implement a small C++ program using it.
  5. Experimentation.
Hao Xi
16. Max bipartite matching (the "marriage problem") Cormen et al. ch. 27.3 gw_mc_matching, mcb_matching
  1. Understand algorithm.
  2. Application or modelling some problem using matchings.
  3. Understand LEDA implementation of algorithm.
  4. Implement a small C++ program using it.
  5. Experimentation.
Samia Qader
17. String Matching: Rabin-Karp Cormen et al. ch. 34.2 no?
  1. Understand algorithm.
  2. Applications using string matching (Unix string matching tools; web search engines?).
Katey Cruz
18. String Matching: using finite automata Cormen et al. ch. 34.3 no?
  1. Understand algorithm.
  2. Applications using string matching (Unix string matching tools; web search engines?).
Caroline Moore
19. String Matching: Knuth-Morris-Pratt Cormen et al. ch. 34.4 no?
  1. Understand algorithm.
  2. Applications using string matching (Unix string matching tools; web search engines?); DNA sequencing?
Heather Takeguchi
20. String Matching: Boyer-Moore Cormen et al. ch. 34.5 no?
  1. Understand algorithm.
  2. Applications using string matching (Unix string matching tools; web search engines?).
Shana Negin
21. NP-Completeness Cormen et al. ch. 36.5 no?
  1. Understand an NP-completeness proof: clique, vertex cover, Hamilton cycle, Travelling salesman, Satisfiability, etc.
  2. Modelling of problems leading to NP-complete problems.
Christine Kang
22. Approximation Algorithms. Cormen et al. ch. 37. no?
  1. Understand an approximation algorithm for an NP-hard problem. vertex cover, travelling salesman, set-covering, subset-sum, etc.
Vicky Manfredi
23. Modelling problems in social sciences using graphs
(e.g. Graph Coloring, etc.)
Fred Roberts no
  1. Understand how to model a problem using some of the existing graph algorithms.
Kelley Louie
Carmen Frerichs
24. Other topic (of your choice) must discuss with Ileana may use Leda
  1. Modelling
  2. Understanding of other algorithms.
  3. Experimentation with other Leda data structures and algorithms.
  4. Design and analysis: dynamic programming, backtracking, other algorithmic techniques and problems, e.g. parallel sorting.
  5. Implementation of a small program in C++ using some Leda data structure and algorithm.

25. Huffman codes Cormen, Ch. 17.3 no?
  1. Understanding of algorithm.
  2. Implementation of a small program in C++ using Leda data structure and algorithm.
Veronica Morales
26. van Emde Boas trees paper ?
  1. Understanding of algorithm.
  2. Implementation of a small program in C++ using Leda data structure and algorithm.
Elif Tosun
27. Splay Trees textbook, (Cormen?) leda?
  1. Understanding of the data structure.
  2. Implementation of a small program in C++ using Leda data structure and algorithm, if implemented, or other web resources..
Mingda Zhao
28. Travelling Salesman Problem paper ?
  1. Understanding of the problem, proof of NP-completeness, approximation algorithm
Susan Ott