David J. Eck
(Ph.D. in Mathematics, Brandeis University, 1980) Department of Mathematics and Computer Science Hobart and William Smith Colleges Geneva, New York 14456 Office: Lansing 301 Phone: (315)781-3398 Fax: (315)781-3860 E-mail: firstname.lastname@example.org
Courses That I Teach
My teaching schedule for Spring Term, 2004:
CPSC 327: Data Structures and Algorithms
You can see the course handout and visit the course website
CPSC 324: Computer Graphics
You can see the course handout and visit the course website
Here is a list of courses I have taught, including course handouts 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.
The Most Complex Machine
My introductory computer science textbook, The Most Complex Machine, was published in July, 1995. The book surveys most of the major areas of computer science, and is suitable as a textbook for a first course in computer science. It is also suitable for self-study. A review of in the April '96 issue of CHOICE magazine says that it is "Strongly recommended as a foundation for guided self-study for gifted high-school students, as well as non-computing majors." You can read more about it here.
A set of applets and labs for use with the text is freely available on-line. These would also be useful for self-study, with or without the text.
An older version of the software is also available as programs for Macintosh computers. These programs can be downloaded along with a set of lab worksheets that use the programs. See this download page for information and links. (These were written for older Macintosh computers, but still work on all Macs.)
Free On-Line Java Text
For the past several years, I have taught an introductory programming course in the Java programming language. The course uses an on-line text, which I wrote for the course. The text is an introduction to programming and also an introduction to Java directed towards people who do not have any background in programming.
You can find the text on-line at http://math.hws.edu/javanotes/. It can be downloaded using links on that page. The current version of the text is the "fourth edition," which was released in July 2002. This is the first edition that covers Java 2 and the Swing user interface library.
"Java Components for Mathematics" Project
JCM (Java Components for Mathematics) is a project that is attempting to make it easier to write educational mathematical applets for use on Web pages. To learn more about it and to try some of the applets that I've written, check out http://math.hws.edu/javamath/.
xFunctions for Java
My xFunctions applet can be use for playing with and learning about functions. Besides being fun to play with, it is suitable for use in calculus and pre-calculus courses. It was designed to be very easy to use, so that it can be used with very little instructional overhead. It is available for on-line use and for downloading at http://math.hws.edu/xFunctions.
An older Macintosh version of xFunctions is also available. See below.
More Java Applets
Besides the software for The Most Complex Machine and my On-line Java Text, I've written a few other Java applets. They might offer a few minutes of diversion, and after all, that's part of what Java is all about. Here are some links:
- Cellular Automata and the Edge of Chaos -- Educational pages and applets dealing with one-dimensional cellular automata. The main applet, EdgeOfChaosCA, can make some very nice pictures, but go to the index page to get full information. This is essentially a stripped-down Java version of my CA program for Macintosh.
- Genetic Algorithms Demo: An applet that demonstrates the Genetic Algorithm by showing how some simple simulated organisms evolve over a series of generations. (This is a direct translation of my Macintosh program, GA.)
- Pentominos Puzzle Solver: An applet that solves pentominos puzzles, which involve placing twelve pieces of various shapes on a board. Fun to watch.
- Maze -- A little applet that creates random mazes and solves them
- Moire -- An even littler applet that shows an animated Moiré pattern
Programs for Macintosh
Here are some rather old programs for Macintosh computers that I have written for one reason or another. These programs were written for older Macintosh computers, but they continue to work on new computers (even under MaxOS X, if you use the OS 9 subsystem). I have rewritten all of these programs as Java applets that have similar functionality. The Java applets can be found above.
Click on a link to download a program:
- xFunctions-2.3 (175K), a program for learning about functions. xFunctions-README.txt is a short text file with more information about this program.
- CA (1-D Cellular Automata) (50K) -- Shows the evolution of one-dimensional cellular automata over time. CA helps you find "interesting" cellular automata using Christopher Langton's "lambda" parameter.
- GA (Genetic Algorithms) (30K) -- Watch the "genetic algorithm" in action, as simulated organisms "evolve" from one generation to the next. You have some control over the world in which the organisms operate.
- Pentominos (17K) -- A little program that solves pentomino puzzles. There are 12 different pentominos, each consisting of 5 connected squares. The puzzle is to place them on an 8-by-8 grid, leaving 4 pre-specified squares blank. This is sort of fun to watch.
Some Stuff to Look At
So, I bought Painter 5.0 in the hope that maybe I could somehow become enough of an artist to carry though on this idea I have for a course in Computers and the Arts. Fat chance. However, Painter is sort of fun to play with, and I've saved some of the abstract pictures I've made (all more or less accidently). For example, the image at the top of the page and the one on the right. Since I actually rather like some of them, I figure why not expose myself and let other people see them (if they've made it this far on my page). So here's a small gallery.
Image #1 Image #2 Image #3 Image #4 Image #5 Image #6 Image #7 Image #8 Image #9 Image #10 Image #11 Image #12
And to give equal time to computer-generated (as opposed to computer-facilitated) "Art," here is a sequence of images generated by my Cellular Automata program for Macintosh. The program is available for download earlier on this page. These images will give you some idea of the range of pictures that can be produced by one-dimensional cellular automata:
Image #1 Image #2 Image #3 Image #4 Image #5 Image #6 Image #7 Image #8 Image #9 Image #10
I made the following images as examples for my computer graphics class, CPSC 324, Spring 2001. They were made using several free programs: Gimp, an image manipulation program with capabilities similar to the commercial Photoshop; POV-Ray, a program that creates three-dimensional images using ray-tracing; and Blender, a three-D modeling and image creation program.
Gimp Image #1 Gimp Image #2 POV-ray Image Blender Image #1 Blender Image #2 Blender Image #3 Blender Image #4 Blender Image #5
"The Innocent Eye Test" by Mark Tansey (1981)