Taught by Andy Novocin
Class times: TR 3:30-4:45 located at 209 Smith Hall
Office hours: T 1:30-3:00 W 2:00-4:00 R 9:45-10:45 location Smith 430
Teaching Assistant: Haozhu "Peter" Wang
TA Email: firstname.lastname@example.org
Homework help hours: M 10-12 located at 201 Smith Hall
Text: Skiena, The Algorithm Design Manual, 2nd Edition, Springer, 2010
Basse and Van Gelder, Computer Algorithms , Addison Wesley, 2000.
Cormen, Leiserson and Rivest, Introduction to Algorithms, McGraw-Hill & MIT Press, 1990.
Dasgupta, Papadimitriou, and Vazirani, Algorithms, McGraw-Hill, 2008.
Goodrich and Tamassia, Algorithm Design: Foundations, Analysis, and Internet Examples, Wiley, 2002.
Kleinberg and Tardos, Algorithm Design, Addison Wesley, 2006
Sedgewick, Algorithms in C++, Addison Wesley, 1992.
Along the way you should:
Canonical domains: Models of computation, big-Oh notation, various data structures, graphs and classical graph problems, sorting ad nauseum, P vs NP, basic matrix algorithms, basic polynomial arithmetic, big integers
There will be six homework assignments (HW1-HW6) (at cs.prof.ninja/hw) which you will complete with your partner, turning in a single assignment per group. Please indicate the writer, and alternate throughout the semester. If you cannot find a partner I will assign them randomly. If you are having problems with your partner then I will reassign you and give you a dirty look. You will be allowed one free late assignment without questions asked, use it wisely.
There will be four programming assignments (PA1-PA4) (at cs.prof.ninja/programs). These will be done as a team of four (two sets of partners). For these assignments you will need to have working C/C++ code which you present to me. On the presentation day I will pick one of the four at random to explain your work to me. The programming assignments will always be evaluated on a Wednesday with groups being scheduled 45 minutes apart throughout the day.
There will be two mid-term tests (T1, T2) and a final exam. The vast majority of the problems will be pulled directly from the Skiena text.
There will be daily problems (at cs.prof.ninja/daily) due within the first 10 minutes of every class beginning on August 28th. These will only be checked for your name and some attempt but not graded.
Follow along with my slides at cs.prof.ninja/slides
There will be sporadic extra credit opportunities which will not amount to very much in the final grade.Class calendar
Extra Credit will involve programming challenges and can add no more than 3% to your final grade.
We live in the internet age, I understand that you can probably find ways of solving every problem that I ask of you without any true effort. I ask two things: