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.
References: