Courses and workshops
Taught at Grinnell College (1983-present)
Courses
- Algorithms
- Algorithms and data structures
- Algorithms and software
design
- Analysis of algorithms
- Artificial intelligence
- Automata, formal languages, and
computational complexity
- Compilers
- Computational linguistics
- Computer networks
- Computer programming with Pascal
- Data structures
- Directed research: Restoring Greek
- Directed summer research: A German spelling checker
- Directed summer research: Grinnell Scheme
- Directed summer research: Syndication software development
- Discrete structures
- Fundamentals of computer science
- Fundamentals of computer science I
- Fundamentals of computer science
II
- Guided reading: Artificial intelligence
- Guided reading: Artificial intelligence and Scheme
- Guided reading: Artificial intelligence and theorem-proving
- Guided reading: Computer science and artificial intelligence
- Guided reading: Copyright alternatives
- Guided reading: The Linux kernel
- Guided reading: LISP
- Guided reading: Logic and set theory
- Guided reading: Scheme and computer science theory
- Independent project: Command languages and directory structures
- Independent project: Computational linguistics
- Independent project: Computer graphics
- Independent project: Computer learning and problem solving
- Independent project: The C++ programming language
- Independent project: Denotational semantics
- Independent project: Extended study in software design
- Independent project: Font recognition
- Independent project: Formalizations of natural languages
- Independent project: FORTRAN programming
- Independent project: Functional programming languages
- Independent project: Logic and languages
- Independent project: Machine problem solving
- Independent project: Modal logic
- Independent project: Philosophy of mathematics
- Independent project: Programming for the common good
- Independent project: Recursion
- Independent project: Set theory
- Independent project: Software design and implementation
- Independent project: Syntactic theory
- Internship: Computer-aided design
- Internship: Head- and hand-position tracking in virtual environments
- Internship: Porting a window system
- Introduction to BASIC programming
- Introduction to computer science
- Introduction to general linguistics
- Mentored advanced project: Biographical natural language generation
- Mentored advanced project: Compression algorithms and techniques
- Mentored advanced project: Parallel corpus generation
- Programming language concepts
- Senior research project: A phonological comparison of Chinese and Korean
- Senior research project: Universal grammar
- Senior research project: Using computational analysis to extract
linguistic data and categorize texts
- Software design
- Thesis: Independent major
- Tutorial: Cryptology
- Tutorial: Free software, free
culture
- Tutorial: Outward from the middle of the
maze: selected plays of Tom Stoppard
- Tutorial: Paradoxes
Workshops and presentations
- Grinnell College Summer Computing Institute (high-school students),
1983: “Starting out with computers,” July 17–22,
repeated July 24–29, and “Software tools,” July
17–22, repeated July 24–29.
- Enrichment Institute (high-school teachers), 1984: “Computer
science,” June 10–15.
- Exotic Programming Language Study
Group: C (fall 1984); LISP (spring 1985); bc (spring 1986); SNOBOL4
(fall 1986); VAX MACRO (spring 1987); C (fall 1987); APL (spring 1988);
TEX and Common Lisp (fall 1988); C++ (spring 1989),
Common Lisp (fall 1989); C (spring 1990); SunView (fall 1990); Icon (fall
1991); SETL2 (fall 1993); Prolog (fall 1995); Common Lisp (spring 1996);
Java (fall 1996); Icon (spring 1997); Haskell (spring 1998); ML (spring
2000); Python (fall 2000); PHP (fall 2001).
- Grinnell-Newburg Teacher Workshops (elementary- and secondary-school
teachers and administrators), 1984: “Microcomputers,” June
18–29, and “Introduction to Pascal,” June 18-29.
- Grinnell College Summer Computing Institute (high-school students),
1984: “Computer programming with Pascal,” July 15–August
3, “Minds and machines,” July 15–20,
“Computability,” July 22–27, and
“Transducers,” July 29–August 3.
- Sloan Grant Summer Seminar (college faculty), 1984: “Programming
in Pascal,” August 6–17.
- Enrichment Institute (high-school teachers), 1985: “Programming
in Pascal,” June 9–14, and “Algorithms and data
structures,” June 16–21.
- Grinnell College Summer Computing Institute (high-school students),
1985: “Computer programming with Pascal,” July 7–August
3, “Resources of a mainframe computer,” July 7–13,
repeated July 14–20, July 21–27, and July 28–August 3,
“A short introduction to LISP,” July 7–13,
“Artificial intelligence,” July 14–20, “Assemblers
and assembly languages,” July 21–27, and
“Computability,” July 28–August 3.
- Grinnell College Summer Computing Institute (high-school students),
1986: “Programming with Pascal,” July 6–19, repeated
July 20–August 2, “Assembly language programming,” July
6–19, “LISP and artificial intelligence,” July
20–August 2, and “Problem solving with computers,” July
20–August 2.
- Sloan Grant Summer Seminar (college faculty), 1986:
“MACSYMA,” August 15–18.
- Grinnell College Summer Computing Institute (high-school students),
1987: “Programming with Pascal,” July 5–18, repeated
July 19–August 1; “LISP and artificial intelligence,”
July 19–August 1.
- Elderhostel (general public), 1988: “Computing: Its past and
future,” June 13–17.
- Grinnell College Summer Computing Institute (high-school students),
1988: “Programming with Pascal,” July 12–23, repeated
July 27–August 8; “LISP and artificial intelligence,”
July 12–23.
- Sloan Grant Summer Seminar (college faculty), 1988: “MathLAN and
its resources,” August 17–18 (with Gene Herman).
- Faculty Writing Seminar (college faculty), July 20–24,
1992.
- “First steps in
HTML” (college students, faculty, and staff), April 13, 1995,
repeated April 19.
- “Scheme”
(college faculty), July 17–21, 1995.
- “A demonstration of the World
Wide Web” (Poweshiek Area Development), January 4, 1996.
- “A demonstration of the
World Wide Web” (Grinnell Computer Users' Group), January 16,
1996.
- “Scheme”
(college faculty), June 10–21, 1996.
- “Government regulation and
censorship of the information superhighway” (alumni), September
7, 1996.
- “A demonstration of the
World Wide Web” (Grinnell Workforce Center), October 23,
1996.
- “Scheme for
UCs” (MathLAN user consultants), December 5, 1996.
- “A demonstration of the
World Wide Web” (teachers from Grinnell Middle School), January 7
and 9, 1997.
- “Using the Internet
wisely” (Poweshiek Leadership Program), January 23, 1997.
- “Computer models of
cooperation, retribution, and forgiveness” (prospective
students), July 18, 1997; repeated June 26, 2000, and June 30, 2001.
- “Arcadia”
(general audience), November 14, 1997.
- “Why software might get
better” (general audience), May 6, 1999.
- “MathLAN 3” (faculty), August 8-9, 2000.
- “Keeping stuff: How to
preserve course papers despite technological change” (general
audience), March 16, 2001; repeated, with revisions, April 13, 2005;
repeated, with further revisions, February 12, 2009.
- “TEX and LATEX” (faculty and staff), June 19-21,
2002.
- “Keeping up with the blogs: using RSS and Atom feed readers to
monitor dynamic Web sites,” August 29, 2006.
- “Xlife is beautiful,” January 25, 2007.
- “Large numbers. Really
large,” September 6, 2007.
- “The
.doc is out: The Open Document Format and its
prospects,” March 6, 2008.
- “Liberty through
license: the GPLv3 and other free-software licenses”, September
4, 2008.
- “Free
knowledge,”, February 24, 2010.
- “Web content management with Drupal” (with Henry M. Walker), March 18, 2010.
- “Software development using R6RS Scheme,”
February 2, 2012.
Taught at Arizona State University (1976-1983)
Courses
- Data structures
- Empiricism
- History of modern philosophy
- Honors colloquium: Recursion
- Honors thesis: Theology and ethics
- Independent study: BASIC
- Independent study: Formal semantics
- Independent study: Symbolic logic for computer science
- Introduction to mathematical logic
- Introduction to philosophy
- Metaphysics
- Philosophical figures and movements: Russell
- Philosophy of language
- Philosophy of mind
- Principles of sound reasoning
- Reading and conference: Modal logic
- Reading and conference: Rhetoric and philosophy
- Reading and conference: Set theory
- Reading and conference: Whitehead
- Seminar: Modal and intensional logic
- Seminar: Philosophy of logic
- Seminar: Truth and universals
- Symbolic logic
created March 30, 1995
last revised January 2, 2013
John David Stone
(stone@cs.grinnell.edu)