Abstract: We describe a course offered for six years as part of the Honors Collegium at UCLA. This small seminar introduced non-major honors students to concepts and current issues of computer science, culminating in a field study project applying computing to an area of the student's interest.
Background: The UCLA Honors Collegium offers a series of small seminar classes, designed to provide honors students with the opportunity for close interaction with distinguished faculty on interdisciplinary topics. Roughly a dozen courses per quarter are offered, with titles ranging from "The Geometry of Relativity" through "Mind, Brains, Humans, and Computers" and "Human Dimensions of Global Environmental Change" to "Gender and Race: Construction of Greek Political Thought." Students with grade-point averages of at least 3.0 out of 4.0 who have completed their English Composition requirements are eligible. Faculty from a wide range of disciplines teach in the Honors Collegium, their time reimbursed to their home departments.
Course description: From 1986 through
1991, the author taught an Honors Collegium course called "Computers,
Science, and Computer Science," which was described in the catalog
as follows: "This course will furnish students with an in-depth, fundamental
understanding of computers and the nature of automatic computation, both
in theory and in current practice: what information computers can represent
and how they can process it; the distinctions between human thought and
the computer's processing; the social effects of computerization and
reliance on computed results; the capabilities and limitations of computer
technology both today and in the future. Students will develop the foundation
for making informed decisions relating to computing and the framework for
developing further technical expertise."
The rationale behind this grandiose agenda is partly to help students appreciate some of the intellectual issues that underlie computer science. But there is also a more practical purpose: The students in this course do not plan to become computing professionals, but as university students they will probably manage computing professionals, make purchasing and other management decisions about computing, and influence public policy about computing. We want them to develop a framework for making these decisions in an informed way, given the constraints of a single one-quarter course and their non-technical backgrounds.
One approach to courses like this is to cover programming and algorithms to some degree of mathematical formality. Indeed, an Honors Collegium course created recently does take this approach, using the text by Goldschlager and ListerEndnotes. We took the approach of de-emphasizing some of the more formal content--algorithm design and analysis, for example, and actual coding--because we felt there was hardly enough time to do those topics justice and still cover the larger issues, especially given that few of the students had the mathematical sophistication necessary to appreciate a formal treatment. In the most recent offering we used two texts, a general introduction by BiermannEndnotes and a biographical supplement by SlaterEndnotes. We supplement these with various readings, such as the Daedalus issue on artificial intelligence (reprinted as Endnotes) and the Parnas article on SDIEndnotes.
The course met over a ten-week quarter once a week for three hours, during which discussion (and some lecture) was led by the instructor, usually accompanied by a graduate student TA. We provided electronic mail and Internet news access to the students and encouraged them to explore; beyond that, we required no hands-on computing. The course was graded on class participation, a field-study term project (described below), and on individual half-hour oral final exams, whose purpose was to gauge how conversant the student was with the issues more than to test for a specific set of factual knowledge.
Course outline: To give each student the
basic terminology and concepts of computing--hardware and software, algorithms
and programs, processor and memory, levels and categories of programming
languages--the students were required to view six 50-minute videotapes on
these topics, prior to the start of the class or by the end of the first
week. This provided a common background on which the course itself could
build. The course followed this rough outline:
Week 1: Computers and their context: Survey of current major problems in computing and discussion of scenarios raising ethical issues. Every student could feel comfortable stating an opinion on such issues, even without technical expertise.
Week 2: Computer misuse and abuse: Computer hacking, crime, and security. Review of technical questions raised by videotapes.
Week 3: Hardware and software: Storing numeric, textual, and pictorial information; characteristics and diversity of storage, input, and output devices; interpreting technical specifications. We use the campus computer store's price lists, which include detailed system specifications, as a guide through these issues.
Week 4: Computer systems: operating systems, computer networks and distributed computing, electronic mail and bulletin boards.
Week 5: Limits of computation: intractable and noncomputable problems, dealing with problems of software quality (formal verification vs. testing vs. software fault-tolerance through multiple design teams).
Week 6: Limits of computation: representing complex data (such as human experience and knowledge), simulation of human thought processes, the potential and limits of artificial intelligence (including the Turing Test).
Week 7: Computerization in the long range: Reliance on and hiding behind computer-generated results, increasing reliance on automated processes and resulting changes in human skills, responsibility for malfunction of computer systems.
Weeks 8-10: Students' term project presentations.
Field study project: Most of the students'
work in the course is devoted to a "field study" term project,
for which they are expected to apply computing to their own area of interest.
The project was stated as broadly as possible, and students' projects
ranged from the mundane acquisition of small-business computing systems
through the use of graphics to model the results of plastic surgery and
the computerized scoring of fencing tournaments to the adoption and implementation
of touch-tone telephone course enrollment for the campus. We encouraged
students to use the Internet news system as a source of information.
The project description received by the students appears in an appendix.
Evaluation: Many of the projects were
astonishingly thorough and insightful; others consisted primarily of hand-waving,
which occurred in cases where students did not fully appreciate the limits
of their technical expertise.
The holistically-graded oral final exam was a great success, despite the students' initial trepidation. It afforded the instructor an opportunity to pursue in depth the areas the student knew most about and was most comfortable with, and given the students' high academic standing, embarrassing situations where the student was unable to make a decent showing were rare.
Students' use of electronic mail and network news was less than completely successful; the burden of learning the access protocols to an unfamiliar timesharing system and the distance of the available terminals from their daily ambit proved too great to overcome for most students, who used the system only infrequently. Friendlier systems and more universal access will remedy this.
The course was very well received and was offered even after the instructor had moved his other teaching duties to a different campus of the university. The students appreciated the opportunity to explore these issues, particularly in the seminar environment, and they indicated that their eyes had been opened to the breadth of computer science.
Acknowledgements: The author's teaching assistants contributed immeasurably to the development and success of this course: Jody Paul, Scott R. Turner, Edmond Mesrobian, and John Heidemann.