CS 161 Fall 2011 Lecture 1a Bart Massey About this course Review of syllabus You are expected to keep up Socratic style In-class exercises Time-intensive (2+ hours / day, 5-7 days / week) It's supposed to be fun What is a computer? It's a machine (EE, bio, whatever) It "processes information" (turning power into heat) Parts of a computer It has "storage" (teeny tiny switches) It has a "CPU" (teeny tiny "logic" circuits) It has "I/O" (more electricity and stuff) It is the most complex thing humans can build Modular architecture Layered architecture It is mostly deterministic (= repeatable) How do I program it? Is programming a science, engineering, an art, a craft, math, other? What's the programming "process"? (same as any making) Figure out what you want Figure out how to make it Make it Figure out whether its the right thing made right The more tools / techniques / practices you have access to, the easier it is Who do I program with? Alone With folks online With folks in a room What's hard about it? Lots of thinking per unit typing Easy to make mistakes Hard to estimate how fast it will go What's fun about it? Build really useful stuff Learn a ton as you work (about more than just computers) Makes for great career options Comes with a community (work in cross-disciplinary teams) Fairly "idiot-proof" Demo mode