movement ( http://bit.ly/2oGcQJF) and
the U.S. CS for All movement (http://bit.
ly/2n4WCJS) argue everyone deserves
to learn about CS. If you buy their argument, these are disturbing numbers.
We need a different strategy than simply getting CS into high schools. Now,
we have to get students into the classes.
South Carolina recently revised its high
school computer science standards to require
computer science beyond just keyboarding.
Robin K. Hill
Lessons from a
July 27, 2019
I teach a first-year seminar called “The Beauty and Joy of Computing” (after a course at Berkeley). 3
All freshmen are required to take one
of these seminars, offered in different
subjects; the general pedagogical goal
is teaching them to be college students.
I taught it a year ago, and have a few reflections in preparation for a new round.
I am proud to work at a land-grant
university with almost open enrollment, which requires careful treatment
of disparate student backgrounds. The
challenge presented by the computer
science (CS) version of this course is
that student interest in computing
ranges from nil to avid, and student experience with computing ranges from
none to expertise (the expertise ranges
from narrow to haphazard). I do not
pretend to have resolved these into a
harmonious program of study, but I
can sketch some of my attempts.
To introduce first-year students to
the college environment, the course includes a research paper, group projects,
and oral presentations. They need to
learn to distinguish peer-reviewed results from public relations, and scholarship from argumentation and opinion.
They need to be able to explain AI, Internet, and general hardware and software
concerns to their peers, their families,
and the public.
I hold the pedagogical principle that in
every class, students should come away
with a body of knowledge. In this case,
it’s a few basics of CS. We code or com-
plete rudimentary Java programs with
the BlueJ development environment. We
look at number systems, character codes,
encryption, compression, and similar
topics up to the Fundamental Theorem
of Arithmetic. Components that did not
work for us include the block-style pro-
gramming platform Snap!. I prefer be-
ginners see plain source code in a text
file, for the standard view of how com-
puters are programmed.
To engage students whose strengths lie
in areas other than programming, we
review contemporary Internet issues via
the 2008 textbook by Abelson, Ledeen,
and Lewis, 1 supplemented by journalism from The New York Times and other
sources. A list of issues serves as the
sign-up choices for the group project.
I believe young people interested in
computers should also learn about
the humanities (and so should other
young people). I assign the reading of
a classic novel that shares one of the
themes we study. Last year, the country read Frankenstein in honor of its
200th anniversary. We joined in, discussing it as an account of the unintended consequences of technology, 2
notwithstanding that a 19th-century
novel consisting mostly of lengthy so-liloquies on guilt and misery is heavy
going, with no actual technology.
Other classics that parallel issues of
modern technology (besides 1984 and
surveillance) include The Scarlet Letter
and public shaming. Many great works
of science fiction reflect tech issues,
but I want a distant rather than close
parallel, for purposes of abstracting
the common theme. Suggestions are
General Pedagogy for Freshmen
Here are mixed tips for teachers, organized only by idiosyncrasy:
1. Don’t cover up the difficult, tedious,
fussy bits. Discuss input and output;
variable declarations; defaults and parameters on the installation of software.
These are counterintuitive protocols
people must face to master computers.
2. Expose critical points of misunder-
standing. Give exercises that distinguish
between A[i]+ 1 and A[i+ 1]; that interpret
11010011 as a char, number, and instruc-
tion; that contrast variable names such
as Temperature and temperature.
3. If you mention UTF- 8, or the Fundamental Theorem of Arithmetic, or a
substitution cipher, tell them what it is
right then and there. You can return to
cover it comprehensively later.
Group project: To preclude students
working with friends, have them form
teams with classmates not already in
their phones. Require meeting schedules and regular updates.
Research paper: Give incremental
assignments, with suggestions incorporated into the next draft. Distinguish between objective journalism
and research papers as acceptable
sources, marketing and white papers
I still seek suitable research publications. What journals or magazines provide peer-reviewed articles
on CS for the neophyte? Our library
subscribes to ACM and IEEE publications, but online. For browsing and
discovery, I direct students to special
technology sections or issues of major
newspapers and magazines. Again,
suggestions are welcome!
Teaching at the novice level invokes
standard areas of philosophy:
˲ Metaphysics, in extracting the essence of the subject.
˲ Epistemology, in considerations of
how to convey the essence of the subject.
˲ Ethics, insofar as the teacher answers the question of the subject,
“What good is it?”
˲ Aesthetics, in how to make it attractive to learners. This may be a sly application rather than a scholarly endeavor.
Let’s do our best for our students,
whoever they are.
1. Abelson, H., Ledeen, K., and Lewis, H.
Blown to Bits: Your Life, Liberty, and Happiness after
the Digital Explosion. 2008.
2. Hill, R.K., “FictionStein,” BLOG@CACM, November 21,
3. The Beauty and Joy of Computing. University of
California, Berkeley, Advanced Placement course for
late high school and early college students. Accessed
25 July 2019.
Mark Guzdial is a professor in the Computer Science
& Engineering Division of the University of Michigan,
USA. Robin K. Hill is a lecturer in the Department of
Computer Science and an affiliate of both the Department
of Philosophy and Religious Studies and the Wyoming
Institute for Humanities Research at the University of
© 2019 ACM 0001-0782/19/12 $15.00