 "Computer science is no more about computers than astronomy is about telescopes."

E. W. Dijkstra Extrinsic Useful Material:

• A Beginner's Guide to HTML
• The World Wide Web Help Page
• # General Course Material:

• The Analytical Engine Online (Introduction to Computer Science Course on the Web).
• Tools for Thought
• Specific Course Material

Index: ## (1) Pebbles, Knotted Strings, the Abacus, and other Computing Devices

1. Computers: From the Past to the Present
2. A History of Information Technology
3. Modular Arithmetic with Ashtrays and Pebbles
4. Gravity as a Computer
5. The Knotted String Computer
6. Pythagoras' Theorem:
1. Pythagoras' Theorem (An award winning proof and interactive demo)
2. Animated Proof of the Pythagoream Theorem by M. D. Meyerson
3. A Hinged Dissection Proof of the Pythagorean Theorem
4. Other Dissection Proofs (with interactive Java applets)
5. The Chinese Square Proof of the Pythagorean Theorem
6. Two dozen other proofs of the Pythagorean theorem
7. The Converse of Pythagoras' Theorem
7. The Abacus
8. Napier's Bones in Various Bases
9. The Virtual Museum of Computing
10. Links to History of Computing
11. ## (2) The Straight Edge and Compass

12. Euclid's Elements
13. Euclid of Alexandria
14. More Euclid on the Web
15. Relative computing power of machines
16. Heron's Shortest Path via a Line (with interactive Java applet)
1. More on Heron's problem and other constrained shortest path problems (with interactive Java applets)
2. More about Heron of Alexandria
17. The Lunes of Hippocrates

## 3.1 Creating Numbers

3.2 Creating Order
1. Sorting Numbers:
2. Sorting Algorithm Animations (Applets also sort your own set of numbers!)
3. More Sorting Algorithm Animations
4. Sorting Code
5. ## 3.3 Creating Disorder (Randomness)

6. Probability and Random Number Generation
7. Monte Carlo Simulation:
8. Randomness and the Netscape browser

### 4. Processing Text:

1. Data compression
1. Introduction to Data Compression
2. Fundamental Concepts
3. Shannon-Fano Coding
2. The Significance of Claude Shannon's Work
3. Pictures of Shannon
4. Huffman coding
2. Morse Code
3. Introduction to probability and information theory
4. Entropy
5. Markov models of natural language (monkeys and typewriters)
6. Spelling correction programs.
7. Determining unknown authorship of manuscripts.

### 5. Processing Images:

1. Tiles, pixels and grids.
2. Obtaining grey-level images with a digital camera.
3. Obtaining binary images from grey-level images (thresholding).
4. Finding connected components in binary images (contour tracing with cellular automata).
5. Smoothing:
1. smoothing images (noise removal)
2. smoothing polygons
6. Sharpening images (spatial differentiation).
7. The Medial Axis of a shape (with interactive Java applet)
8. Cellular Automata

6. Computational Geometry:

1. Polygons: crossing, simple and convex.
2. Polygonizing Sets of Points
3. The area of a polygon.
4. Determining if a point is inside a polygon.
5. Smoothing polygons and polygonal waveforms.
6. Application to point facility location (minimal spanning circle of a set of points in the plane).
7. Convex Hulls:
8. Linear programming and optimization problems (with Java applet)

### 7. Searching Data Bases:

1. Data Structures.
• Arrays.
• Stacks.
• Queues.
• Trees.
2. Binary search.

### 8. Computers as Models of Brains & Intelligence:

1. Real and Artificial Neurons
2. Threshold logic units.
3. Dr. Gurney's course on neural networks.
4. Perceptrons & neural networks (learning machines).
5. Playing Games
6. Artificial Life
7. Decision theory.
8. Recognizing patterns (how can a robot tell an orange from a banana).
9. The Poetry Generator
10. Artificial intelligence on-line demos
11. Expert Systems

### 9. Computers in Statistics and Exploratory Data-Analysis:

1. Graphs and networks.
2. The minimal spanning tree and its application to cluster analysis.
3. Unsupervised learning.
4. Robust estimation of location (onion peeling).

### 10. Computer Vision:

1. The Hough transform.
2. Detecting lines in a digital image with the Hough transform.
3. Image segmentation in document analysis.
4. Text-line orientation inference in document analysis (another application of the minimal spanning tree).

### 11. Computer Network Security:

1. Electronic mail.
2. Coding theory.
3. Basics of classic ciphers
• Transposition ciphers.
• Substitution ciphers.
5. Cryptanalysis (breaking secret codes).
6. Creative Cryptography
7. Francis Bacon and Cryptography
8. Are there cyphers in Shakespeare? (by PennLeary)
9. Public-key encryption
10. Basics of public-key cryptography.

### 12. Computer Graphics and Visualization:

1. Turtle geometry.
2. Fractals:
3. Hidden surface removal.
4. The painter's algorithm.
5. Virtual reality.

### 13. Philosophical, Ethical and Social Implications of Computers:

1. Bibliography on the Philosophy of Artificial Intelligence
2. Can a computer think?
3. Conversing with Computer Programs - The Loebner Prize.
1. About the program DEBRA (the Canadian winner of the 1994 Loebner Prize).
2. Obtain sex advice from DEBRA 