<HTML>
<HEAD>
<TITLE>Rick and Stu's Home Page</TITLE>
</HEAD>
<BODY BACKGROUND="sand.gif" TEXT="#000000">
<A NAME="Top">
<CENTER><!-- The <CENTER></CENTER> tag places all information
it contains at the horizontal center of the
screen. -->
<IMG SRC="title.gif" WIDTH=406 HEIGHT=87 ALT="Rick and Stu's Home Page" VSPACE=5><BR>
<!-- The <IMG> tag inserts the image specified in the 'SRC='
modifier. All images should contain an 'ALT=' modifier,
which provides text for the browser to display in place
of a problematic image. -->
<BR><BR>
<IMG SRC="network.gif" BORDER=0 USEMAP="#Network">
<MAP NAME="Network"><!-- The <MAP></MAP> tag uses an image to
link to different places based on
where the viewer clicks the mouse. -->
<AREA SHAPE=RECT COORDS="0,0,72,52" HREF="#Rick">
<!-- The <AREA> tag defines a clickable space on an image,
and links the space to the location listed in the
'HREF=' modifier. -->
<AREA SHAPE=RECT COORDS="249,136,308,188" HREF="#Stu">
<AREA SHAPE=RECT COORDS="96,87,189,138" HREF="#Books">
<AREA SHAPE=RECT COORDS="175,26,284,79" HREF="#Classes">
<AREA SHAPE=RECT COORDS="25,158,107,210" HREF="#Links">
</MAP>
</CENTER>
<BR>
<HR SIZE=3>
<BR>
<!-- Rick's bio -->
<A NAME="Rick" HREF="#Top"><IMG SRC="backup.gif" WIDTH=75 HEIGHT=56 ALT="Back to the Top" ALIGN=RIGHT BORDER=0></A>
<FONT COLOR="#336633">
<H1>Rick Decker</H1></FONT>
<IMG SRC="rick.jpg" WIDTH=75 HEIGHT=117 ALT="Rick's head" ALIGN=LEFT>
<H3><I>"The
<FONT COLOR="#999999">Silver</FONT>
Fox"</I></H3>
<FONT FACE="Verdana,Helvetica,Arial" SIZE=2>
<P>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.</P>
<P>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, <I>"Computer Science as a Contact Sport"</I>.
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(!).</P>
<P>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&eacutepublique Fran&ccedilaise, 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.</P>
<BLOCKQUOTE>
<I>"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."</I> ~ Rick
</BLOCKQUOTE>
</FONT>
</TD></TR></TABLE>
<BR><HR NOSHADE><BR>
<!-- Stu's bio -->
<A NAME="Stu" HREF="#Top"><IMG SRC="backup.gif" WIDTH=75 HEIGHT=56 ALT="Back to the Top" ALIGN=RIGHT BORDER=0></A>
<FONT COLOR="#336633">
<H1>Stu Hirshfield</H1>
</FONT>
<IMG SRC="stu.jpg" WIDTH=75 HEIGHT=117 ALT="Stu's head" ALIGN=LEFT>
<H3><I>"Big Daddy"</I></H3>
<FONT FACE="Verdana,Helvetica,Arial" SIZE=2>
<P>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.</P>
<P>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.</P>
<P>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.<P>
<BLOCKQUOTE><I>
"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."</I> ~ Stu
</BLOCKQUOTE>
<P><A HREF="StuSong.wav">Hear one of Stu's old bands!</A></P>
<!-- Linking something to a sound file is accomplished with the <A>nchor
tag, the same as linking to an HTML document. -->
</FONT>
<BR><HR NOSHADE><BR>
<!-- Books -->
<A NAME="Books" HREF="#Top"><IMG SRC="backup.gif" WIDTH=75 HEIGHT=56 ALT="Back to the Top" ALIGN=RIGHT BORDER=0></A>
<FONT COLOR="#336633">
<H1>Books</H1>
</FONT>
<!-- The Analytical Engine -->
<IMG SRC="ae.gif" WIDTH=100 HEIGHT=125 ALT="The Analytical Engine" ALIGN=LEFT HSPACE=20>
<FONT FACE="Verdana,Helvetica,Arial" SIZE=2>
<H4><U>The Analytical Engine</U></H4>
<P>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</P>
<BLOCKQUOTE><STRONG>
Isn't it possible to teach a <EM>rigorous, disciplinary,
</EM>&nbsp;introduction to computer science?
</STRONG></BLOCKQUOTE>
<P>The result was a <STRONG>lab-based</STRONG> 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 <EM>contact</EM>,
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.</P>
<P><U>The Analytical Engine</U> is used at various institutions
around the country, as well as in <I>CS 140: Introduction to
Computer Science</I> at Hamilton.</P>
</FONT>
<BR><BR>
<!-- Pascal's Triangle -->
<IMG SRC="pascal.gif" WIDTH=100 HEIGHT=125 ALT="Pascal's Triangle" ALIGN=RIGHT HSPACE=20>
<FONT FACE="Verdana,Helvetica,Arial" SIZE=2>
<H4><U>Pascal's Triangle</U></H4>
<P>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. <EM>The Analytical
Engine</EM>&nbsp;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.</P>
<P>We had been teaching CS1 with labs for nearly a decade at the time
and were convinced that</P>
<BLOCKQUOTE><STRONG>
The best way to teach introductory programming
is through a comprehensive collection of directed laboratories.
</STRONG></BLOCKQUOTE>
<P>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 <STRONG>breadth-first</STRONG> introduction to
programming, using "Programs in Progress" in the labs to illustrate
such toipics as numerical analysis, cryptography, and lexical
analysis.</P>
</FONT>
<BR><BR>
<!-- The Object Concept -->
<IMG SRC="obcon.gif" WIDTH=100 HEIGHT=125 ALT="The Object Concept" ALIGN=LEFT HSPACE=20>
<FONT FACE="Verdana,Helvetica,Arial" SIZE=2>
<H4><U>The Object Concept</U></H4>
<P>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.</P>
<P>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</P>
<BLOCKQUOTE><STRONG>
Object-oriented programming is an appropriate
paradigm for a first programming course
</STRONG></BLOCKQUOTE>
<P>We settled on C++ as our vehicle and produced a lab-based
introduction to programming, introducing <STRONG>classes from
the very beginning.</STRONG></P>
<P><U>The Object Concept</U> is also used across the country,
as well as in <I>CS 241: Computer Science I</I> at Hamilton.</P>
</FONT>
<BR><BR>
<!-- Working Classes -->
<IMG SRC="wc.gif" WIDTH=100 HEIGHT=125 ALT="Working Classes" HSPACE=20 ALIGN=RIGHT>
<FONT FACE="Verdana,Helvetica,Arial" SIZE=2>
<H4><U>Working Classes</U></H4>
<P>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
<EM>The Object Concept</EM>&nbsp;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</P>
<BLOCKQUOTE><STRONG>
An object-oriented approach is a natural for
a data structures course.
</STRONG></BLOCKQUOTE>
<P>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++.</P>
<P>Like the others, <U>Working Classes</U> is used at various
institutions, as well as in <I>CS 242: Computer Science II</I>
at Hamilton.</P>
</FONT>
<BR><BR>
<!-- programming.java -->
<IMG SRC="java.gif" WIDTH=100 HEIGHT=125 ALT="programming.java" HSPACE=20 ALIGN=LEFT>
<FONT FACE="Verdana,Helvetica,Arial" SIZE=2>
<H4><U>programming.java</U> (Coming soon!)</H4>
<P>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++,
<EM>programming.java</EM>&nbsp; will introduce students to
good programming practices and give them the ability to make Web
pages come alive.</P>
<P><U>programming.java</U> will most likely be available sometime
in 1998, and will be used in the Hamilton CS curriculum at that
time.</P>
</FONT>
<BR><HR NOSHADE><BR>
<!-- Classes -->
<A NAME="Classes" HREF="#Top"><IMG SRC="backup.gif" WIDTH=75 HEIGHT=56 ALT="Back to the Top" ALIGN=RIGHT BORDER=0></A>
<FONT COLOR="#336633">
<H1>Classes</H1>
</FONT>
<FONT FACE="Verdana,Helvetica,Arial" SIZE=2>
<P>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 <I>everything</I>. 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.</P>
<P>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,</P>
<P>The College expects its students to attain a satisfactory level
of achievement in written, oral and quantitative work.</P>
<P>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.</P>
<P>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.</P>
<P>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.</P>
<P>Rick and Stu consistently accomplish some goals of their own:</P>
<P>Treating students with the care and time one would
expect from a school with a 9:1 student to faculty ratio.<P>
<P>Preparing students for the realities of a difficult,
volatile field of study.</P>
<P>Making the process of learning <B>fun</B>, once again.</P>
<P>Like the field of Computer Science, the Hamilton curriculum
is constantly improving itself. At last glance, the classes
offered were as follows:</P>
</FONT>
140 - <B>Introduction to Computer Science</B>.<BR>
An introduction to computer science providing a broad survey of
the discipline while emphasizing the computer's role as a tool for describing, organizing and manipulating
information. Serves as a terminal course for students who want a one-course introduction to the field, as well
as a preliminary course to upper-level computer science offerings.<BR>
<BR>
149 - <B>Applications, Implications and Issues</B>.<BR>
A topics course intended for non-majors. Content, differing
from year to year, typically chosen from current trends and events in the world of computing and technology.
Depending upon topic, may include significant laboratory component.<BR>
<BR>
241 - <B>Computer Science I</B>.<BR>
An overview of the fundamental concepts of computer science, using the vehicle
of a modern high-level programming language. Topics include an introduction to object oriented programming,
program specification and verification and design methodology.<BR>
<BR>
242 - <B>Computer Science II</B>.<BR>
An introduction to the common data structures and algorithms using those
structures. Topics include analysis of algorithms and abstract data types, including lists, stacks, queues, trees,
graphs and sets.<BR>
<BR>
246 - <B>Artificial Intelligence</B>.<BR>
An interdisciplinary study of the relationships between digital computers and
human intelligence. Topics include formal definitions of computation; knowledge representation schemes; AI
programming languages; computer models for problem solving, game playing, theorem proving, pattern
recognition and vision, and natural language processing; philosophical and sociological perspectives.<BR>
<BR>
249 - <B>Topics in Computer Science I</B>.<BR>
Study of an area in computer science. Content, differing from year to
year, typically chosen from computer organization, neural networks and programming languages.<BR>
<BR>
343 - <B>Algorithms</B>.<BR>
Further study of abstract algorithms and their design, analysis and implementation.
Includes design paradigms, time-space tradeoffs, mathematical techniques for analysis and complexity
hierarchies.<BR>
<BR>
346 - <B>Virtual Machines</B>.<BR>
A study of the principles that govern the design and implementation of computer
languages and systems software. Topics include low- level languages, loaders and linkers, macroprocessors,
programming languages, compilers, and operating systems.<BR>
<BR>
348 - <B>Real Machines</B>.<BR>
Study of the organization, structure, and implementation of computer hardware. Topics
include logic circuitry, machine organization, CPU design, memory, external storage, and operating systems.<BR>
<BR>
349 - <B>Topics in Computer Science II</B>.<BR>
An intensive study of an advanced area in computer science. Content,
differing from year to year, typically chosen from parallel computing, system programming, and computer
graphics.<BR>
<BR>
4:30 - <B>Smash++</B>.<BR>
Open forum between faculty and selected concentrators covering
varous topics native to the department. Depending on attendance,
content may include intensive input, processing, and output of
fluid structures.<BR>
<BR>
447 - <B>Senior Seminar in Computer Science</B>.<BR>
Practicum in which teams of students provide computer
expertise and support for faculty research projects. Topics include software engineering analysis, design,
coding, testing, maintenance, and documentation.<BR>
<BR>
500 - <B>Honors Program</B>. A project approved by the Department and resulting in a paper and an oral
presentation. Only open to qualified senior concentrators.<BR>
</FONT><BR>
<BR><HR NOSHADE><BR>
<!-- Links -->
<A NAME="Links" HREF="#Top"><IMG SRC="backup.gif" WIDTH=75 HEIGHT=56 ALT="Back to the Top" ALIGN=RIGHT BORDER=0></A>
<FONT COLOR="#336633">
<H1>Links</H1>
</FONT>
<A HREF="http://www.hamilton.edu" target="_top">
<B>Ham Tech Home Page</B></A> - home base for Rick and Stu.<BR>
<A HREF="http://www.saranac.com/" target="_top">
<B>Saranac.com</B></A> - learn about Rick's favorite beverage.<BR>
<A HREF="http://www.umich.edu/" target="_top">
<B>University of Michigan</B></A> - join Stu in the Cult of the
Blue Wolverines.<BR>
</BODY>
</HTML>