
Rick is the venerable master of all things mathematical and networkable in the Hamilton College CS department. He can usually be found darting through the night, searching for the mythical diligent Hamilton student, or perhaps just a full-bodied stout. Rick has haunted the hot corner at Hamilton since 1985, after seven years of utility infield for Hobart and William Smith. In his time at Hamilton, Rick has maintained the perfect love-hate relationship: his students love him, and they would hate to see him leave.
Together with Stu, Rick turned the CS curriculum at Hamilton on its ear, and helped compose the books that spilled out. As part of the dynamic duo, Rick has collaborated on five textbooks and several articles. He thrilled the MAA with his 1996 lecture, "Computer Science as a Contact Sport". Rick would tell you it is all in a day's work for the holder of three post-graduate degrees, from Penn State, Ohio State, and Stanford(!).
Rick is a saucy capricorn (or a stoic rooster if green is your cup of tea), but has been unavailable since his 1971 union with a wonderful weaver. He has a younger sister who is currently en L'République Française, and a 14 year old son. Double his Christmas giftage, because he was born on the same day as a certain well-known Judean colleague of old.
"On the personal side, I don't have as much of a life as I'd like, but what I do have is quite full enough, thank you." ~ Rick
Stu is the acting head cheese for the Hamilton CS autocracy, and spends most of his time patrolling the sanity of the group. He has been recovering at Hamilton since 1982, when an unruly mob of 400+ Arizona students all attempted to congratulate him at once for excellent teaching. He shares his office space with various apparitions of the Hamilton Mathematics department and is rumored to be running a spa out of his Deansboro home.
In his time at Hamilton sleep away camp, Stu has written five books with Rick, and fathered the CS program at Hamilton. He commanded the coup that led to the recognition of the CS department as an academic entity, and seized its eventual independence. Together with Rick, Stu has created a learning environment that emphasizes all aspects of the liberal arts experience, with a strong scientific base.
Stu is a devout member of the Cult of the Blue Wolverines, and can often be found invoking their prayers in the glow of his television set. He strummed the guitar for several 60s bands with his brother.
"When I first came here (why I came is another story, for another time), I knew it would be a great place for me -- and it has been." ~ Stu
Seven years ago, we were talking about our introductory CS course. At the time, we were following the rubric that was popular at the time--our first course was an introduction to programming in Pascal. With a sense of "You get too soon old and too late smart," we realized that the first course in English, Sociology, Philosophy, and most other disciplines was an introduction to the major areas of the subject and to the ways of thought used by practitioners of the discipline. As it stood at the time, we were doing nothing in our first course to disabuse our students of the notion that "Computer Science = Programming." We asked
Isn't it possible to teach a rigorous, disciplinary, introduction to computer science?
The result was a lab-based survey course, covering what we considered the high points of the discipline. In a very real sense, the labs form the heart of the course. We realized from the beginning that computer science was a contact, rather than a spectator sport, and we built a suite of one or more HyperCard labs for each chapter (or ToolBook, for the PC world). Thus, for example, when we discuss gates and circuits in the hardware chapter, our students can use a "virtual breadboard" to design and test their circuits.
The Analytical Engine is used at various institutions around the country, as well as in CS 140: Introduction to Computer Science at Hamilton.
In 1990, Pascal was pretty much entrenched as the language of choice for the first programming course. The market was mature and there were quite a few good books available. The Analytical Engine was in print and enjoying some initial success. Secure in the knowledge that we actually could write, our editor asked whether we'd like to try a CS 1 text in Pascal.
We had been teaching CS1 with labs for nearly a decade at the time and were convinced that
The best way to teach introductory programming is through a comprehensive collection of directed laboratories.
In a reversal of the usual order of writing programming texts, we then preceded to write the text around our existing labs. The result was a breadth-first introduction to programming, using "Programs in Progress" in the labs to illustrate such toipics as numerical analysis, cryptography, and lexical analysis.
Pascal was designed from the start to be a teaching language. It was simple, elegant, and powerful. In 1992 it was also nearly twenty years old and we had learned quite a lot about how to program efficiently in that time.
Object-oriented programming had been around about as long as Pascal and there was a growing consensus that OOP was an efficient paradigm for designing large programs. At the time, most schools that taught OOP began with an imperative language like C or Pascal and waited until the second or third year to introduce object-oriented programming in Smalltalk or C++. We thought that for a novice, every program was a large program and so decided
Object-oriented programming is an appropriate paradigm for a first programming course
We settled on C++ as our vehicle and produced a lab-based introduction to programming, introducing classes from the very beginning.
The Object Concept is also used across the country, as well as in CS 241: Computer Science I at Hamilton.
The CS 1 and CS 2 curricula are so closely related that it would be appropriate to think of them as a single year-long course. With this in mind, we knew that The Object Concept would need a companion text for CS 2. Whatever questions CS educators may have had about the appropriateness of OOP in CS 1, there was almost no argument with the thesis that
An object-oriented approach is a natural for a data structures course.
This text covers the "canonical" data structures and the algorithms associated with them. We make heavy use throughout of templates, believing that this feature is one of the most powerful and useful aspects of C++.
Like the others, Working Classes is used at various institutions, as well as in CS 242: Computer Science II at Hamilton.
Java is a brand-new language, designed for producing "applets"--programs that run within suitable Web browsers. While Java is very similar to C++ in many respects (it's an object-oriented language with much of its syntax in common with C++), it has the advantage of being much simpler that its "big brother." For instructors who find C++ is too big a pill to swallow in CS 1, we will provide a CS 1 text in a "kindler, gentler" language. Used in a stand-alone Introductory Programming course or as a prerequisite to a CS 2 course in C++, programming.java will introduce students to good programming practices and give them the ability to make Web pages come alive.
programming.java will most likely be available sometime in 1998, and will be used in the Hamilton CS curriculum at that time.
Although the Hamilton CS curriculum has always been on the cutting edge, the early days have been marked by one distinct problem: Rick and Stu can't do everything. The recent additions of intrositter Anita Bhat and hired ringer Mark Bailey will allow the curriculum to finally grow at the same pace as the student base for the major. At this point, the CS curriculum covers all of the major topics of interest for an undergraduate CS education, but the future will see more specific topics classes and several interesting crossover subjects.
Aside from just the classes that they teach, Rick and Stu have developed a relationship with their students that is unparalleled among the departments at Hamilton. In addition to the "big four" goals of Hamilton College,
The College expects its students to attain a satisfactory level of achievement in written, oral and quantitative work.
Each student must earn a minimum of two course credits in each of the four academic divisions, Arts, Historical and Social Sciences, Humanities and Languages, and Sciences and Mathematics.
Students must become better aware of the diversity of human cultures and of assumptions about social relations, power and authority, and world view connected with their own sociocultural heritage.
Each student must complete at least one course that addresses ethical choices, ways of approaching them, and ways the range of choices may be shaped by society and culture.
Rick and Stu consistently accomplish some goals of their own:
Treating students with the care and time one would expect from a school with a 9:1 student to faculty ratio.
Preparing students for the realities of a difficult, volatile field of study.
Making the process of learning fun, once again.
Like the field of Computer Science, the Hamilton curriculum is constantly improving itself. At last glance, the classes offered were as follows:
140 - Introduction to Computer Science.