CSC375 Home Page (Fall 2010)


ANNOUNCEMENTS for week of January 3.

I hope to have the grades available by Tuesday, January 4. If you email me, i will give you your provisional grade. I say provisional as all grades are not final until approved by the Faculty of Arts and Science.

Please consider applying for a Nortel Scholarship. The notice is on the CDF bulletin board. I also wish to call attention to the department's Alumni Mentorship Program .


CSC375 (Enriched Algorithm Design and Analysis) is (as the title indicates) the enriched version of CSC373. To quote the course description, the "course covers the same topics as CSC373, but at a faster pace, in greater depth and with more rigour, and with more challenging assignments". I am mainly using the text "Algorithm Design" by Jon Kleinberg and Eva Tardos. Many students may already have the text "Introduction to Algorithms" (second edition) by Corman, Leiserson, Rivest and Stein. If so, you may want to consider just using the CLRS text in conunction with these KT lecture notes. Other standard undergraduate texts include ``Algorithmics: Theory and Practice" by Brassard and Bratley and "Algorithms" by DsGupta, Papadimitriou and U. Vazirani. Graduate (and more specialized as their titles suggest) texts include "Approximation Algorithms" by V. Vazirani and "Randomized Algorithms" by Motwani and Raghaven. A brief description of the course and course policies are contained in the course info sheet that will be handed out in class. Announcements regarding this courses will be regularly posted on this web page so please check the web page frequently.

Students are encouraged to check the undergrad bulletin board for announcements about things such as job and scholarship opportunities, academic and social events, and reminders of administrative deadlines. Students are also reminded as to guidelines as to How not to plagarize .

Please send any comments or questions to the instructor:


The following grading scheme will be used for this course: 3 assignments (worth 5% each), 3 term tests (closely related to the assignments and worth 15% each) and a final 3 hour exam worth 40%. As will be discussed in class, every (sub) problem in any assignment or test will be worth some multiple of 5 points. You will receive 1/5 points for any (sub) problem for which you state "I do not know how to answer this question". You will receive .5/5 if you leave a question blank. If instead you submit irrelevant or erroneous answers you will lose the 1/5 points. That is, you will receive some credit for knowing what you don't know. You can also receive some additional credit for partial work that is clearly "on the right track". Even if the assignments are worth only 5% each, you are still obliged to submit your own work. In our first lecture, I will give a pragmatic definition for distiguishing between genuine learning together and plagarism. If you have any questions please see the instructor immediately! Any cases of plagarism will be reported to the Faculty.
I will answer questions about the assignments as soon as the assignments are submitted and hence I will not accept late assignments. The schedule for assignments and test are as follows:
  • Assignments: October 6, November 3, December 6
  • Term Tests: October 8, November 5, Dcember 8

  • Here are the free (but quite old)
  • lecture notes
  • that have been used previously in the now obsolete CSC364 and CSC366 courses.

    You may also find it helpful to look at the problem sets and other handouts for the most recent versions of CSC373 and CSC375:

  • CSC373 fall 2005
  • CSC373 winter06
  • CSC375 fall 2007
  • CSC375 fall 2009
  • .

    Problem Sets will be posted here.
  • Problem set 1
  • .
  • Problem set 2
  • .
  • Problem set 3
  • .

    Other Handouts will be posted here.

  • An interesting polynomial dynamic programming algorithm
  • Here is the article which contains the results concerning local search for the exact max-2-sat problem .
  • Here is an except from a text by West which contains the results concerning maximum weight matching in a bipartite graph .