15110 Principles of Computing

Principles of Computing

FALL 2011



Jump Image Fast Links: Slides | Videos/Websites | Articles

Use any posted notes as support material for use in class to help you learn more effectively. Notes will generally be posted AFTER they are presented in class as a means of review. Note that any handouts posted do NOT substitute for going to class. We will discuss more than what you see in the basic slides below. You will need Adobe Acrobat Reader to view the pdf files.


  Part A Part B Part C
Unit 01: History of Computing Pre-Electronic Computing Electronic Computing -
Unit 02: Introduction to Ruby Basics, Class Examples For Loops, Class Examples -
Unit 03: Algorithmic Thinking Algorithms, GCD Arrays, Sieve of Eratosthenes -
Unit 04: Iteration Linear Search Insertion Sort Introduction to Big O
Unit 05: Recursion Recursive Thinking Binary Search Merge Sort
Unit 06: Organizing Data List-Based Data Structures Hash Tables Non-Linear Data Structures
Unit 07: Data Representation Integer, Floating Point, Text Compression Images and Sound
Unit 08: Computer Organization Logic, Circuits, Abstraction Machine Language -
Unit 09: Randomness Random Number Generators Games with Random Numbers More Fractals and Cellular Automata*
Unit 10: Concurrency Sorting Networks Pipelining Multitasking/Deadlock
Unit 11: The Internet Fundamentals Layers and Abstraction Encryption*
Unit 12: Simulation Fundamentals, Robots N-Body Simulation -
Unit 13: Artificial Intelligence Natural Language Processing Games and Search Strategies -
Unit 14: The Limits of Computing Intractability P and NP Non-computability
Epilogue: The Future of Computing DNA & Quantum Computing    
*Special thanks to Dave Feinberg for some of the material used in these lecctures.


NOTE: Since these links all come from web sources, some links may fail due to a video or file being moved or removed.

Abacus video (Digital calculator in Singapore)
Napier's Bones: How They Work
Stepped Drum (used in Liebniz' machine)
Jacquard Loom Walkthrough - view first 2 minutes and start at 5:45 for loom demonstration
Difference Engine in operation
Hollerith tabulating machine
The HP-15C RPN Calculator as a Ipad App!
Josephus Problem (Wikipedia article)
Elevated (Mountain Fractals in 4KB)
Stephen Wolfram: Computing a Theory of Everything (TED2010 Conference)
Quantum Computing


ENIAC: A Computer is Born - C|NET News Article
Algorithms Add Up To Big Business - Pittsburgh Post-Gazette, 4/1/07
Why Software Fails by Robert N. Charette (Article in IEEE Spectrum, September 2005).
On Computable Numbers, with an Application to the Entscheidungsproblem, by Alan Turing
Computing Machinery and Intelligence by Alan Turing
Quantum Computing with Molecules by Neil Gershenfeld and Isaac L. Chuang (Article in Scientific American, June 1998)
Computing with DNA by Leonard M. Adleman