The bottom-up approach to teaching introductory computer architecture and programming
My passion in teaching is to remove magic. I think this is best done by starting at a level of abstraction that every two-year-old understands, and continually building on what the student knows, continually raising the level of abstraction. We start with the transistor as wall-switch, move to logic circuits, then memory, finite state machines, then the computer and programming, first in machine language, then assembly language, finally C. I/O is physical, a keyboard and monitor. Students are introduced to system service routines and interrupt processing. Parallelism appears naturally, because, with respect to hardware, parallelism is pervasive. ...and not scary. I introduced this model in the freshman curriculum at Michigan in 1995, and have taught it ten times to more than 3000 students. To not teach it every semester, I wrote a textbook with my former PhD student, Sanjay Patel: Intro to Computing Systems: from bits and gates to C and beyond". More than 100 schools have used the book, and the number is growing. More than 1000 schools have not. The book is also available in Chinese and Spanish. Syllabi, handouts, email archives, etc. are on my web site. Click on EE 306 for the desired semester. In this talk, I will quickly take you through EE 306. I hope to show why this paradigm makes sense, why the correct name of the paradigm is "motivated bottom-up," not simply bottom-up, why the correct ISA is the LC-3, and why this course belongs in the freshman year of every computer science or engineering student's education.
Yale Patt is Professor of Electrical and Computer Engineering, and holds the Ernest Cockrell, Jr. Centennial Chair in Engineering, at The University of Texas at Austin. He received the year-2000 ACM Karl V. Karlstrom Outstanding Educator Award, "for great ability, dedication, and success in developing computer science education, and for outstanding achievements as a teacher". He is also the recipient of the: 1996 IEEE/ACM Eckert-Mauchly Award, "for important contributions to instruction level parallelism and super-scalar processor design"; 1995 IEEE Emanuel R. Piore Award (the IEEE Technical Field Medal for Information Processing), "for contributions to computer architecture leading to commmercially viable high performance microprocessors"; 1999 IEEE Wallace W. McDowell Award, "for his impact on the high performance microprocessor industry via a combination of important contributions to both engineering and education"; and 2005 IEEE Charles Babbage Award, "for fundamental contributions to high performance processor design". Yale Patt has authored, with Sanjay Patel, the textbook Introduction to Computing Systems: From Bits and Gates to C and Beyond, which is intended as an introduction to computing for serious students of computer science, computer engineering, and electrical engineering.