T 1/14 | Introduction to course: what is computing about? |

R 1/16 | What a computer is: digital logic, registers, and finite state machines |

T 1/21 | What a computer is, part 2: memory and programs, parallelism |

R 1/23 | Programming languages, part 1: types of languages, how languages are constructed |

T 1/28 | Programming languages, part 2: central ideas (loops, recursion, procedures, data abstraction), debugging |

R 1/30 | Translating a problem into computational terms: what does it mean for a problem to be hard? (Introduction to ideas of well-definedness; unsolvability, time complexity) |

T 2/4 | Turing machines; the Universal Turing Machine; decidability and the halting problem; order of growth notiation; P vs. NP |

R 2/6 | Algorithms: a few illustrative examples (Euclids GCD algorithm, minimum spanning tree, convex hull), and heuristics (i.e., what to do when you don't have an algorithm) |

T 2/11 | Simulation and an introduction to the idea of differential equations |

R 2/13 | Cellular automata (Game of Life; Wolfram's classes of 1D automata), Boolean networks |

T 2/18 | Neural networks and backpropagation |

R 2/20 | EXAM 1 |

T 2/25 | Fractals and how to generate them; the Julia and Mandelbrot sets; fractals in dynamical systems |

R 2/27 | Artificial intelligence and the question of whether computers can think |

T 3/4 | Vision by machine: detecting edges, binocular depth perception, shape and object recognition |

R 3/6 | Computation and language: context free grammars, language acquisition |

T 3/11 | Artificial life: Braitenberg's vehicles, Reynold's "boids", Dawkins' blind watchmaker program, Ray's "Tierra" simulation of evolution |

R 3/13 | Game-playing by computer: minimax and pruning search algorithms. What makes some games hard and others easy? |

T 3/18 | Computer Graphics I: Basic computational geometry (how to represent 2- and 3- dimensional shapes), representation of color |

R 3/20 | |

Computer Graphics II Basic ideas of animation | |

T 3/25 | Spring Break |

R 3/27 | Spring Break |

T 4/1 | EXAM 2 |

R 4/3 | Cryptography (Guest lecture?) |

T 4/8 | I/O: the not-so-peripheral part of computing. New output devices: 3D printing, circuit printing. New types of input: gesture recognition, eye tracking, etc. |

R 4/10 | Computer networks and communication |

T 4/15 | Writing big programs: the problems of software design, software testing, and software maintenance |

R 4/17 | Simulating society: the prisoner's dilemma and Axlerod's computer tournament |

T 4/22 | Children and computers: children's programming, AI and toy design, intelligent tutoring systems |

R 4/24 | Computers inside things: embedded systems, augmented reality, ubiquitous computing |

T 4/29 | Smart stuff: piezoelectric materials, shape memory alloys, and other controllable materials |

R 5/1 | The future: quantum computing, biological computing, spintronics |