A Computer Science Course to Develop Collaborative Design Skills

Allen Klinger

©7 January 2001

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.


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. In the seventeen past offerings, a variety of practices have been put into place to help those willing to change to work to ameliorate some of their communication and cooperation deficiencies.


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.


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.


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.


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). New projects, Cproc, Pproc, Jpat, Textalk, Inspire, Eventix, & Broadqual are discussion starting points.

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