Class: | MWF 15:00-16:00 @ Dempster 301 |
Coordinator: | Mike Li & Dustin Tseng |
E-mails: | wdtseng at gmail dot com
mike dot liiji at gmail dot com |
Supervisor: | Dr. David Kirkpatrick |
Text (optional): | Cormen, Leiserson, Rivest, Stein: Introduction to Algorithms |
Website: | http://www.ugrad.cs.ubc.ca/~cs490/ |
Objectives: | After completing this course, you will have:
|
||||||
Contents: | Throughout the term, we will explore a variety of topics, and study both their theory, implementation, and usage. The list of topics will be chosen and presented by the student groups, and approved by the coordinators. See topics and presentations below. Each topic is followed by a set of homework designed by the presenting group (see homework). There will be three midterms, but no finals. | ||||||
Resources: |
We will be using an automated judging software for the midterms and homework. Students will submit their problem solutions to the judge and automatically receive feedback as to the correctness and efficiency of their source code. A similar automated judge, along with a large problem archive of over 1000 problems, is available on the University of Valladolid (Spain) website at http://acm.uva.es/p. This on-line judge can be used for practices, as well as a resource for coming up with homework problems. The textbook is available in the bookstore and is the course textbook used in CPSC320 and CPSC420. Either of the two editions will be sufficient. Students presenting topics will also be expected to provide small amounts of notes and sample code. |
||||||
Assessment: | The final grades will be determined from the following components:
The midterms will have two phases: an in-class phase and a take home phase. The in-class phase of the midterm will be just like any ordinary computer science midterms. A series of questions will be posed, and students will need to provide possible solutions on paper (i.e. descriptions, picking algorithms). Students are highly encouraged to use pseudo code. The take home phase will be just like the an ordinary homework. Students will need to implement solutions to some or all of the midterm questions, and submit it through the on-line judge. No collaboration is allowed for the midterm. Note that the in-class phase will have more weight. |
||||||
Homework: |
There will be a problem set assigned for each topic, by the presenting student group. Homeworks are not intended to be time consuming; instead, they should be fairly succinct (in terms of length of solution code), and illustrate the topic at hand. The presenters should come up with 2 to 4 homework problems that will illustrate the topic presented. A mix of "easy" problems (that uses the topic idea in a straightforward manner) and "smart" problems (that require a thorough understanding of the algorithms) is recommended. For the rest of the class, we will be submitting our solutions to the online judge system. The system will tell us whether our code solves the problem correctly under the time limit. We can submit as many times as we want before the deadline to get it right. Late homework submissions are not accepted. Comments are not required for correct solutions, but will help earn part marks if we couldn't get the question completely. |
||||||
Topics: | As noted before, the topics will be set by the students in the first two weeks of school. Here are some possible topic areas:
|
||||||
Presentations: | All students are required to present a topic. A presentation will last a little over one week, and will contain the following elements:
Note that these materials should be ready one to two weeks before the presentation date, so that the coordinators can make sure the amount of content is appropriate and that there are no mistakes in the notes and homework. |