Chapter 1: Introducing ... the Universal Machine

Beginners' Frequently Asked Questions (and answers)
Questions and answers about bits and bytes, floppies and formatting, Pentiums and Windows, modems and e-mail, etc. Click and you shall receive!
An illustrated timeline of people and machines
Learn about the history of computing by clicking on pictures along on a timeline.
Pioneers of computing
Lots of resources about the people who pioneered computing, maintained by J.A.N. Lee.
ENIAC Museum
See the ENIAC museum online and learn about the first fully electronic computer.
Smithsonian Computer History
The Smithsonian Museum's Computer History web page.
Ada Lovelace's notes about Charles Babbage's Analytical Engine
A selection of excerpts from the first programmer's notes
Pioneering women in computing
Denise Gurer's banquet speech at the Grace Happer Conference on seven pioneering women
Turing machine
Check out another animated Turing Machine. This Java applet lets you run four different programs, and even write your own programs!
Alan Turing wiki page
Learn more about the man and his great ideas.

Chapter 2: Problem solving before programming

Informed Hackers Hall of Fame
Here are some famous hackers who knew where they were going. (Remember, it's blind hacking that can get you lost in a jungle.)
Problem solving and learning
Dr. Howard McAllister's lecture notes on the problem solving process.
Dartmouth Project for teaching engineering problem solving
An approach to training people how to solve engineering problems.

Chapter 3: A Taste of C++

A C++ tutorial on the web
Starts with "Hello, World" and you can download examples.  Windows programming.
Other C++ tutorials on the web
A list of tutorials, FAQs (Frequently Asked Questions) and newsgroups about C++.
s
Learn more about C++
A link to the Universal Machine's programming resources page.

Chapter 4: Programming and their translators

Hello World!
The proverbial "Hello World!" program in a few hundred languages, shells, etc.
Yahoo's list of programming languages
Pointers to tutorials and resources for dozens of programming languages
Another list of programming languages
More pointers to tutorials and resources for dozens of programming languages
Java Home Page
This is Sun's Java site. Look here for official Java information and software.
The Scheme Programming Language
Scheme is a dialect of LISP taught as the introductory language at MIT and elsewhere.

Chapter 5: Classes: an outside look

Abstract Data Types
An introduction to ADTs from an online textbook on object-oriented programming in C++.
Frequently asked questions (FAQ) about classes
Questions and answers about classes and objects (a page from FAQs about C++)

Chapter 6: The software development life cycle

Software Engineering: the Software Life Cycle
Succinct lecture notes on material comparable to this chapter, from Walla Walla College.
Spiral model
How is the spiral model different from class waterfall model?   Evolution and risk analysis.

Chapter 7: Structured programming with control structures

Conditional expressions, if-else and switch statements
Lecture notes for C (from which C++ inherits these control structures as is)
Looping structures, while and for loops
Lecture notes for C (from which C++ inherits these control structures as is)

Chapter 8: Peeling the onion: computer architecture

CPU info center
Links to history and news about Central Processing Units (CPU)
Intel's Pentium II
Intel's latest processor chip's floating point capability, MMX for multimedia, bus architecture, etc.
Supplementary lecture on Boolean logic
Boolean operators, Boolean algebra, and Boolean circuits
A Guide to Random Access Memory
Learn more about how memory chips work (SIMMs, DIMMs, SDRAMs), etc.
The RAM Guide
Learn still more about how RAM and memory chips.
A Guide to Hard Disks
Learn more about how HDDs work, what a cache is, and interfaces (IDE, EIDE, SCSI).
Cache for Blockheads
Learn how a cache can speed up access to a slower device such as a hard drive.  A fun site developed by three students (at Lehigh University).

Chapter 9: Functions and decomposition

Functions in C
Function definitions, return types, parameters, in C (from which C++ inherits functions)
Functions in C++
C++ enhancements to functions (prototypes, reference parameters, default parameter values)

Chapter 10:Operating systems and networks

Tutorials for Windows95, WinNT, Unix, Macintosh, X-Windows, etc.
Learn more about "real world" operating systems.
Tutorials for using and creating content for the World Wide Web (WWW)
Learn about various web browsers and HTML (HyperText Markup Language), Java, Javascript, etc..
Macintosh OS
What's Apple doing with the Macintosh environment?
Microsoft Windows
As they say, "Where do you want to go?"
the UNIX reference desk
If you want to learn about the operating system for computing "gurus", stop here....
Linux
Did you know you could install the Unix operating system on your PC, for free?
Big Dummy's Guide to the Internet
A round trip through Global Networks, Life in Cyberspace, and Everything...
An Introduction to Cryptography
Learn more about how how cryptography works, from Caesar to PGP (a public key system)
Netscape Guide to HTML
Resources for style and composition of Web documents using HTML.

Chapter 11: Strings and Arrays

Native arrays in C or C++
IntArrays are nice and safe, but what's under the hood?  Learn how it's done without classes.
ANSI string class
        The new standard string class, of which Lstring is a subset.  (Also Standard Template Library.)
Another introduction to the Standard Template Library
Documentation for the STL, a library of collections and algorithms adopted for standard C++.
Johannes Weidel's Standard Template Library Tutorial
Our department recommends this tutorial and maintains a local copy of it.

Chapter 12: Theory of Computation

Turing's World
A description of Turing machines, with graphics.
Turing machines
Learn more about Turing Machines. This Java applet lets you experiment with various TM programs.

Chapter 13: Object-Oriented Software

Abstract Data Types
An introduction to ADTs from an online textbook on object-oriented programming in C++.
OOther, an Object-Oriented documentation & CASE Tool
Software downloadable free to students and educators, it creates and draws class inheritance diagrams, etc., in Windows. Based on Coad & Yourdon methodology.
The Booch method: an introduction...
A tutorial on a early widely used object-oriented methodology, a precursor of UML (see below).
Unified Modeling Language (UML)
A brief description of an object-oriented methodology that has recently become a de facto standard.
A closer look at UML ("UML can save your next project")
This article looks more closely at how to make effective use of UML in real world software projects.
The Object-Oriented Page
An annotated list of links to information about object-oriented software development.
 

Chapter 14: Classes: an inside look

Implementing classes in C++
Tutorial on implementing classes, public vs. private, constructors and destructors.
Encapsulation in C++ classes
Tutorial on implementing abstract data types as classes in C++.
Inheritance and polymorphism in C++
Inheritance, polymorphism, abstract (virtual) classes, etc., C++.

Chapter 15: Social, ethical and professional issues

Association for Computing Machinery (ACM)
An international professional society for computer scientists.  Students can join!
Automatic Teller Machine (ATM) phobia
Training older people can reduce their fear of ATMs and other new technologies.
Communications Decency Act - 1996
Full text of the Supreme Court's ruling on the Communications Decency Act.
Communications Decency Act arguments
Arguments for and against the CDA, both in and out of court.
Computer Professionals for Social Responsibility (CPSR)
Articles about spam, intellectual property, "Star Wars", computer crime, ethics, etc.
The Privacy Pages
Information privacy on the Internet, encryption, civil rights, lots of links.
Ten Commandments of Computer Ethics
From the Computer Ethics Institute

Chapters 16: Artificial Intelligence

Kasparov vs. Deep Blue
IBM gets to gloat about Deep Blue's chess victory.  An interesting multimedia site.
An Interactive Turing Test
Try interacting with a machine that seeks to pass the Turing test.
Chatterbots, Tinymuds, and the Turing Test
How to build a program for the Loebner Prize competition.
Chat live with an AI natural language program
Talk with "Alice" or a simulated dragon, or about AIDS, epilepsy or career management.
Talk live with a program that claims to be HAL, or download one that claims to learn.
HAL was a computer that originally appeared in 2001: A Space Odyssey; is he on the web now?
Lecture notes on neural networks
Kevin Gurney's notes, the basis for his book introducing the topic.
Mars Rovers
Prototype precursors of NASA's Mars Pathfinder and Rover at the MIT Artificial Intelligence lab.
Cog, the humanoid robot
Another project of Rodney Brooks and the MIT AI lab.
Artificial Intelligence links
Information about research in AI around the world.

Click here to see if there are more interesting web links at the web site for The Universal Machine
Is anything missing?  Sure is! Send suggested additional links to
gdb0(at)lehigh.edu