
"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). Check the green
resources button under each module for tons
of material.
Tools
for Thought

Specific Course Material
Index:
- Algorithms
and Ancient Machines
- Algorithms
and Modern Machines
- Processing
Numbers
- Processing
Text
- Processing
Images
- Computational
Geometry
- Searching
Data Bases
- Computers
as Models of Brains and Intelligence
- Computers
in Statistics and Exploratory Data Analysis
- Computer
Vision
- Network
Security
- Computer
Graphics and Visualization
- Philosophical,
Ethical and Social Implications of Computers

1. Algorithms
and Ancient Machines:
(1) Pebbles, Knotted Strings, the
Abacus, and other Computing Devices
- Computers:
From the Past to the Present
- Modular
Arithmetic with Ashtrays and Pebbles
- Modular
Arithmetic Calculator
- Modular
Arithmetic Practice Session
- Gravity as a Computer
- Computing
the Centroid of a Polygon with a Plumbline
- The
Knotted String Computer
- Pythagoras' Theorem:
- Pythagoras'
Theorem (An award winning proof and interactive demo)
- Animated
Proof of the Pythagoream Theorem by M. D. Meyerson
- A
Hinged Dissection Proof of the Pythagorean Theorem
- Other
Dissection Proofs (with interactive Java applets)
- The
Chinese Square Proof of the Pythagorean Theorem
- Two
dozen other proofs of the Pythagorean theorem
- The Converse of Pythagoras' Theorem
- The
Abacus
- The
Abacus in various number systems
- Napier's
Bones in Various Bases
- The
Virtual Museum of Computing
- Links
to History of Computing
(2) The Straight Edge and Compass
- Euclid's
Elements
- Euclid
of Alexandria
- More
Euclid on the Web
- Relative computing power of machines
- The
Collapsing Compass
- The
Compass without straight edge (Mohr-Mascheroni)
- Heron's
Shortest Path via a Line (with interactive Java applet)
- More
on Heron's problem and other constrained shortest path problems (with
interactive Java applets)
- More
about Heron of Alexandria
- The
Lunes of Hippocrates
- More
about Hippocrates of Chios
2. Algorithms
and Modern Machines:
- The
Turing machine
- Computability
theory
- Binary
Numbers
- Error
correcting codes
- Logic
gates
- How
logic gates add 2 + 3
- Boolean
logic
- Boolean
logic gates
- Boolean
gates and adders
- Boolean
Algebra
- More
Boolean Algebra
- Logic
and Boolean algebra
- Searching
the Web with Boolean logic
- More
about George Boole
- Computational Complexity
3. Processing
Numbers:
- What
is a Number?
- Elementary
number theory
- Numbers:
Real, rational, integer and binary numbers (bits and bytes)
- Floating
Point Numbers
- Newton's Method:
- Introduction
to Newton's method
- Computing
approximate square roots with Newton's Method
- The
Euclidean factorization algorithm
- Prime Numbers:
- Prime
numbers (FAQ's)
- Historical
introduction to primes
- The Prime
Number Home Page
- Euclid's
Proof of the Infinitude of Primes
- Prime
Number Generator
- Sorting Numbers:
- Selection
sort tutorial
- Bubble
sort tutorial
- Heap
sort tutorial
- Merge
sort tutorial (Divide and Conquer)
- Sorting
Algorithm Animations (Applets also sort your own set of numbers!)
- More
Sorting Algorithm Animations
- Sorting
Code
3.3 Creating Disorder (Randomness)
- Probability
and Random Number Generation
- Visualizing
randomness
- More
on generating random numbers
- Monte Carlo Simulation:
- Buffon's
Needle
- Rolling
Dice
- Randomness
and the Netscape browser
4. Processing
Text:
- Data
compression
- Introduction
to Data Compression
- Fundamental
Concepts
- Shannon-Fano
Coding
- More about Claude
Shannon
- The
Significance of Claude Shannon's Work
- Pictures
of Shannon
- More about Robert Fano
- Huffman
coding
- More About David
Huffman
- Morse Code
- Morse
Code basics
- The
International Morse Code
- More
about Samuel Morse
- Introduction to probability and information theory
- Entropy
- Markov models of natural language (monkeys and typewriters)
- Spelling correction programs.
- Determining unknown authorship of manuscripts.
5. Processing
Images:
- Tiles, pixels and grids.
- Obtaining grey-level images with a digital camera.
- Obtaining binary images from grey-level images (thresholding).
- Finding connected components in binary images (contour
tracing with cellular automata).
- Smoothing:
- smoothing images (noise removal)
- smoothing
polygons
- Sharpening images (spatial differentiation).
- The
Medial Axis of a shape (with interactive Java applet)
- Cellular Automata
6. Computational
Geometry:
- Polygons: crossing, simple and convex.
- Polygonizing
Sets of Points
- The area of a polygon.
- Determining
if a point is inside a polygon.
- Smoothing
polygons and polygonal waveforms.
- Application to point facility location (minimal spanning
circle of a set of points in the plane).
- Convex Hulls:
- Linear
programming and optimization problems (with Java applet)
7. Searching
Data Bases:
- Data Structures.
- Arrays.
- Linked lists.
- Stacks.
- Queues.
- Trees.
- Binary search.
8. Computers
as Models of Brains & Intelligence:
- Real
and Artificial
Neurons
- Threshold
logic units.
- Dr.
Gurney's course on neural networks.
- Perceptrons
& neural networks (learning machines).
- Playing Games
- Artificial Life
- Decision theory.
- Recognizing patterns (how can a robot tell an orange
from a banana).
- The
Poetry Generator
- Artificial
intelligence on-line demos
- Expert Systems
9. Computers
in Statistics and Exploratory Data-Analysis:
- Graphs and networks.
- The minimal spanning tree and its application to cluster
analysis.
- Unsupervised learning.
- Robust estimation of location (onion peeling).
10. Computer
Vision:
- The Hough transform.
- Detecting lines in a digital image with the Hough transform.
- Image segmentation in document analysis.
- Text-line orientation inference in document analysis
(another application of the minimal spanning tree).
11. Computer
Network Security:
- Electronic
mail.
- Coding theory.
- Basics
of classic ciphers
- More
about private-key cryptography.
- Transposition ciphers.
- Substitution ciphers.
- Cryptanalysis (breaking secret codes).
- Creative
Cryptography
- Francis
Bacon and Cryptography
- Are there cyphers
in Shakespeare? (by PennLeary)
- Public-key
encryption
- Basics
of public-key cryptography.
12. Computer
Graphics and Visualization:
- Turtle
geometry.
- Fractals:
- Hidden surface removal.
- The painter's algorithm.
- Virtual reality.
13. Philosophical,
Ethical and Social Implications of Computers:
- Bibliography
on the Philosophy of Artificial Intelligence
- Can a computer think?
- Turing's
test.
- Searle's
Chinese Room Argument.
- The
Robot Reply.
- How to
pass the Turing Test by cheating
- Conversing
with Computer Programs - The Loebner Prize.
- About the program
DEBRA (the Canadian winner of the 1994 Loebner Prize).
- Obtain sex advice from DEBRA
- About
the program JULIA
- Talk to JULIA
about Cats and Dogs.
- About
the program ELIZA
- Obtain free psychotherapy from ELIZA.
- Computer Art
- MONDRIMAT:
competition with Mondrian?
- Privacy.
- Computers
and Law.
- Computers
and Medicine.
- Medical
Robotics and Computer-Assisted Surgery
- Men
and Women in Computing Science:
- Women
and Computer Science
- Past
Notable Women in Computing and Mathematics

Teaching Activities
Homepage
