A Computer Science Course to Develop Collaborative Design Skills

Allen Klinger
©16 January 2002

This describes the UCLA Computer Science Department course CS 190, Computer Science Design Project. CS 190 is an elective course; since 1994 it has been offered each of the Fall, Winter and Spring terms, as a part of the regular curriculum. The catalog describes the course as for seniors majoring in Computer Science. However, many other types of students have successfully completed CS 190. Some were juniors or graduate Computer Science majors. Others were undergraduates in other Engineering departments (Mechanical and Electrical Engineering). Individuals with varied objectives (including one holding a Ph.D. and another with an M.D.) have found this course beneficial.

Background Individuals with strong communication skills are able to advance more rapidly in careers. Yet rapid changes in the applied sciences lead to crowded curricula and a sense that more technical material must be covered. Outsiders view recent graduates as technically qualified but also see them as having difficulty explaining work ... or even speaking to one another.

The CS 190 course was established by Professor Larry McNamee, then the Computer Science Department's Vice Chair for Undergraduate Studies, to help students gain experience at communicating. Prof. McNamee offered CS 190 two terms. Beginning with Spring 1995, every quarter it has been taught by Prof. Klinger. Many innovations to encourage and support student communication and cooperation appeared in each of the twenty previous courses he has taught. .

Achievement For most of the participants the Design Project course concerns new methods. The primary aspect of novelty is via review. Students comment on and contribute to each other's development via written and oral methods. Regular reading, writing, speaking, dialogues, and technical creativity are elements of the course. Those who do these things with effort and purpose benefit personally and have their activities validated by the course grade.

Measures Although people work cooperatively, each participant gets an individual grade. Slightly more than half the course grade comes from the final joint project report. Student ratings and confidential letters supply a significant part of the final grade.

Cooperation Students in computing often have a curriculum based on competition. This course involves cooperation. Whether one specializes in hardware, software, or modeling, work in computing involves material that can be discussed in simple terms. Questions and insights from dialog with fellow students can provide a means for improving one's work.

Design Knowing what one wants to do leads to an initial edge in beginning a project. For instance, if one wants to work with a computer aided design (CAD) system to develop a new utility, recruiting partners, dividing the overall job into tasks, and managing their accomplishment are key phases of the work. Requirements, specifications, milestones, documentation, and integration are all parts of that effort.

If one doesn't have a project during the first two weeks it is important to engage in intensive discussions with others in the course (including the instructor). A way to create a new project is to seek out someone with a real need. Hospitals and charities are examples of organizations that may not have funds to pay, but whose needs can lead to interesting work. (They often find funds when shown useful starts on their real requirements.)

1/16/02 Version http://www.cs.ucla.edu/~klinger/collaborative.html
©2002 Allen Klinger