CPSC 3620 - Algorithms and Data Structures (Spring 2011)
Lecture times and location
| Day | Time | Room
|
| M W F | 9:00-9:50 | D631 |
Office hours: W F 12:00 - 12:50, or by appointment.
Outline
Details about textbook, topics, and grading are in the outline:
[PDF]
Requests for remarking
If you disagree with your mark in an assignment or test, please fill out this
form.
Include the form and your marked test/assignment in an envelope and hand them in
during the office hours or in class
no later than one week after the marked test is returned.
Your entire work will then be re-marked and,
as a result, your mark may go up or down, or remain unchanged.
Midterm
Friday, March 4, in class.
[problem set] :
[solutions]
Assignments
Assignments are due on Mondays. I will collect them from you at
the beginning of the class.
Projects
The projects are individual. Topics: implementing one/some of the
algorithms discussed in class, or implementing algorithms
from the text but that we did not yet discuss, or you may choose
algorithms to solve some other problem. In the later case, please confirm
your choice with me first.
Procedures:
- Choose your topic by Friday, March 18. Write ON A PIECE OF
PAPER: your name + a very brief description of the project (eg: list
the algorithms you will implement). Place
the paper in the envelope that will be attached near my office in
C556.
- Each student will give a 10 min demo, sometime during the last
week of
classes.
- Each student will hand out, at the demo, a project report. Page
limit: at most 4.
Grading scheme:
- Demo (total 15 pts): Just show me that you
implemented something that actually works on some input.
- Report (total 15 pts):
- [1 pt] Mention what algorithms you implemented.
- [4 pts] Describe your experience with the algorithms. Were they
easy to implement or debug? Did you debate what data structures
to use? Did you modify your implementation after running some
experiments? Etc.
- [3 pts] Argue the correctness of your implementation. How did
you verify that your code executes correctly?
- [2 pts] Describe your experiments. What paramenters did you
vary between different runs of the algorithms and why?
- [2 pts] Explain how you created/obtained the data for your
experiments.
- [3 pts] Plot and explain your results.
How much to do?
- As a general rule, implement the algorithms
described in one section of the book. For example, if you want to
implement balanced search trees, then write both 2-3 trees and AVL
trees (section 6.3). IF you chose a sorting algorithm, implement one
or two extra algorithms to compare with. For example, in
sorting by counting (7.1), implement both comparison counting and
distribution counting varieties but write one more sorting algorithm (for
example quicksort) and compare where it makes sense.
- Make sure you test your algorithms on large data sets, too.