Science-fiction author Arthur C. Clarke wrote, Any sufficiently advanced technology is indistinguishable from magic.
Apple co-founder Steve Jobs said, All computers do is fetch and shuffle numbers, but they do it fast enough that the results appear to be magic.
Do computers seem like magic to you? Would you like to understand how computers really work, and why Jobs's statment is correct?
Introduction to Computer Engineering (CS/ECE 252) is a two-credit course that surveys the basics of computer hardware and low-level software. You will learn, for example:
- How the marvel of electronics--the transistor--gets used and interconnected to form computer hardware.
- How a microprocessor does little more than simple commands (e.g., add two numbers), but does them rapidly -- more than a billion times per second.
- How treating computer programs like data enables the rich computer systems that we all use.
CS/ECE 252 is available to all students at UW and is especially encouraged for freshman considering majors in computer sciences or engineering. Nevertheless, some computer programming experience (in any language) is helpful. Thus, students without programming experience may wish to first take CS 302 (Introduction to Programming).
Prof. Mark Hill will teach CS/ECE 252 Section 3 with approximately thirty lectures scheduled
Monday, Wednesday, and Friday 1:20 PM - 2:10 PM in 2535 Engineering Hall
(an average of two lectures per week).
Prof. Parameswaran Ramanathan will teach CS/ECE 252 Sections 1 and 2.
The required text is:
Yale N. Patt and Sanjay J. Patel,
Introduction to Computing Systems: from bits and gates to C and beyond
McGraw-Hill Publishers, SECOND Edition, 2004. ISBN: 0-07-246750-9---ISBN 0-07-121503-4 (ISE)
Section 3 will be modeled after Prof. Mark Hill's
offering and Prof. David Wood's
2 cr. Logic components built with transistors, rudimentary Boolean algebra, basic combinational logic design, basic synchronous sequential logic design, basic computer organization and design, introductory machine-and assembly-language programming.
CS/ECE 252 is required for majors in Computer Engineering and Computer Sciences
and is a prerequisite to both CS/ECE 352 (Digital System Fundamentals
and CS/ECE 354 (Machine Organization and Programming).