Courses That I Teach
Scheduled for Fall 2022:
CPSC 220: Introduction to Computer Architecture
You can view the tentative syllabus
No textbook. There will be readings from free, online books
Note: I will retire at the end of December 2022.
Here is a list of courses I have taught, including syllabi from many past terms.
And here is a complete list
of all the Honors projects and Independent Studies
that I have supervised over my years at Hobart and William Smith Colleges.
Free On-Line Java Text
The first programming course at Hobart and William Smith Colleges covers the Java programming language. Since we started teaching Java in 1996, the textbook for the course has been various versions of a free on-line Java textbook that I wrote for the course. The most recent version, Version 9, was released in May 2022. It requires Java 17 or later, and it comes in two editions, one using JavaFX for GUI programming and one using Swing. The two editions can be found at
JavaFX Ediion: https://math.hws.edu/javanotes/
Swing Ediion: https://math.hws.edu/javanotes-swing/
Older versions of the book are also available; see the Preface for links.
The textbook is an introduction to programming and also an introduction to Java directed towards people who do not have any background in programming. You can use it on-line or download a copy for use on your own computer. PDF and print versions are also available. Links can be found at the bottoms of the web pages linked above.
Free Computer Graphics Textbook
An introductory computer graphics textbook, available for use on-line. There are also links on the front page for downloading the web-site version or a PDF version. This book was used in my Computer Graphics course in Fall 2015, Fall 2017, and Fall 2021.
Here are direct links to some of the more interesting examples:
- Genetic Algorithms Demo: Demonstrates the Genetic Algorithm by showing how some simple simulated organisms evolve over a series of generations.
- Mandelbrot Viewer: Explore the famous Mandelbrot set, and make some amazing pictures!
- Pentominos Puzzle Solver: Solves pentominos puzzles, which involve placing twelve pieces of various shapes on a board. Fun to watch.
- Wallpaper Groups: Draw symmetric patterns in the plane, where the symmetry is given by one of the seventeen wallpaper groups.
- xSortLab: Learn about five sorting algorithms and compare their run times.
- Turing Machine Simulation: Create and run simulated Turing machines.
The Mandelbrot set, in particular, is amazing. There is a large collection of images that are visualizations of pieces of that set. Click on any of the small images on that page to load that example into the Mandelbrot Viewer, where you can see a larger version of the image and explore it further.
Free CS Theory Textbook
CPSC 229: Foundations of Computer Science is an introductory course in theoretical computer science. It is a required course in the Computer Science major. For several years, the textbook in this course has been a set of notes written by Professor Carol Critchlow and me. This set of notes is now available for reading on-line or for downloading, at no charge. For more information and links to the PDF version of the book, see:
(A printed textbook can be ordered for the cost of reproduction from lulu.com.)
"The Innocent Eye Test" by Mark Tansey (1981)