CSC 200 2013 Undergraduate Problem Seminar

Ganesh: A deity for researchers.

Last Year's Project: The Millennium Artifact


Course: CSC 200 Undergraduate Problem Seminar
Instructor: Randal C. Nelson
TA: Adam Purtee,
Office hours TBA, CSC 620
Time: MW 2:00 - 3:15
Room: CSB 601


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 a semester-long impossible project. This will be a team system building effort that will help 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

Several different, possibly coordinated, efforts will be pursued in parallel by teams of 3-5 members. Teams and topics will be selected by the instructor and TAs a couple of weeks into the course on the basis of survey information and some preliminary projects. Our hope is that most droppers will have dropped the course by that time, so we can have stable teams.

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 or matlab may not 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