CS 4310 (Spring 2024)

 
   

Projects, Presentations

 

[ home ] [ syllabus ] [ class policy ] [ references ] [ projects ] [ assignments ]

 

 

 

Implement and anlyze an algorithm or compare different algorithms for the same problem. You need to program the algorithm(s). You may add a user interface or graphical display.
Notes:
- Up to 3 students will be allowed per project team.
- Relative scores for the parts of the project deliverables will be as follows:
Proposal: 10 pts.; Prelim. design: 15 points; Design: 20 pts.; Testing design: 10 pts.; Final report and presentation: 45 pts.
- Read in your test data from a file.

Project ideas (exclude project topics that have been given as a regular assignment):
- Problems from computational geometry, e.g., convex hull, intersection problems, geometric searching, visibility and separability, nearest neighbors, Vonoroi diagrams, geometric optimization, triangulation of polygons and point sets, mesh refinement.
- (Other) divide and conquer methods, e.g., multiplication of large integers.
- Karatsuba algorithm
- Greedy methods, e.g., Kruskal's algorithm using min-heap and the union-find disjoint set data structure; its efficiency can be compared (theoretically and in practice) to a version of Prim's algorithm; job sequencing with deadlines.
- Dynamic programming, e.g., string editing, TSP.
- Backtracking, e.g., n-Queens implementation: HSR text Exercises n-Queens ##1, 2. Make a timing graph Time vs. n. Include graph and observations in your report. Implement the Estimate() algorithm for estimating the number of nodes in the tree. Keep track of the actual number of nodes generated, cf., Ex. #2, and compare to the estimated number.
- Backtracking solution for graph coloring.
- Backtracking solution for Hamiltonian cycles.
- Backtracking solution for 0/1 knapsack.
- Branch and bound, e.g., 15-puzzle; path problem in a network; job scheduling
- Branch and bound solution for 0/1 Knapsack.
- Branch and bound solution for TSP.

Project Milestones

Tasks

Deliverables

Deadlines

- Project description

- Project goals

- References

Project proposal:
Proposal document +
Short presentation by team


02/16/24
02/22/24

- Possible approaches

- Research so far

- Preliminary design outline (pseudocode, or flow chart or diagram)

Preliminary specification/
Prelim. Design document

03/12/24

- Design Overview

- Design of testing

Design overview +
Testing document

03/26/24

- Project description

- Research/Design

- Implementation

- Testing/Samples

- Result analysis

- [Goals reached?]

- User guide

- References

Final report
Final presentation
(Overview of report)

04/16-18/24


Notes:
- For the proposal document, upload on Elearning and email to professor.
- For the design overview, submit pseudocode (reasonably detailed) + description in words of the different blocks, packages or software tools to be used, and interfaces. This is basically everything needed to put the project together, in significantly more detail than for the preliminary design.
- For the design of testing, we need test problems for the project, how these will be implemented, and parameters with which they will be run, everything with justification.

 

 

[ home ] [ syllabus ] [ class policy ] [ references ] [ projects ] [ assignments ]