CSC 200: Undergraduate Problem Seminar

Ganesh: A deity for researchers.


Course: CSC 200 Undergraduate Problem Seminar
Instructor: Randal C. Nelson
Time: MW 2:00 - 3:15
Room: Meliora 205


This course is intended to provide students with a hands-on feel for what research is like. The experience will tend to be CS- or IT-related, but to a large extent, research is research.

A significant component of the course will revolve around semester-long research projects carried out by small teams in collaboration with a faculty advisor. These projects will develop and exercise the following abilities:

Team members will regularly present project progress the the rest of the class during semi-formal discussion sessions, where team understanding, approaches and progress, will be critiqued, and potentially modified. These discussions will also serve as a venue for coordinating the efforts of different teams. Teams will also prepare weekly written reports

Teams and topics will be established a few weeks into the course. The hope is that most droppers will have dropped by that time, so the teams will be stable.

A second component of the course consists of guest lectures by researchers in the computer science department. The course may also address issues in proposal writing and evaluation.

Attendance is mandatory. Participation in critique sessions is an essential part of the experience, as is attendance at guest lectures. There may be 5-minute "easy" quizzes on material occuring in the previous class as a means of documenting attendance and attention. This could include the content of unscripted discussions.

Students should not undertake this course lightly. It is expected to be a significant amount of work. Research is that way. It is also likely to be the first course where the professor is not providing material and answers, or detailed instructions. That is also how research is. If you are not interested in this sort of experience, don't take the course. If it's your bag however, it could be a bit of fun in addition to a lot of work, and you will learn a lot (not all of it technical knowledge).


The course may require non-trivial programming, so 173 is required. Projects may require the use of multiple source files and libraries, so experience with programming utilities such as make, or more sophisticated systems is desireable. Efficiency may be an issue, so ability to program in a relatively efficient language such as C or C++ (though not assembly) is required. Java, Python or Matlab may not always cut it. Some projects may require efforts outside of the programming arena.

Course Text Books

There are no required texts. However, the following are recommended reading, in whole or in part.


Some combination of:
Attendance/quizzes, class participation, presentations, project reports, project accomplishments.
As a first approximation, 20% each. However, note that quizzes, class participation and presentations can only occur in class, and much of the project work and organization will occur in class, hence most of the grade is dependant on attendance. If you do not attend class regularly, you cannot pass this course, and missing more than a session or two will seriously impact your final mark. If you cannot avoid an absence, contact or email me IN ADVANCE.

The contents of the following may be expected to change regularly.

Back to Randal Nelson's home page