This course examines the hierarchical structure of computing systems, from digital logic and microprogramming through machine and assembly languages. Topics include the structure and workings of the central processor, instruction execution, memory and register organization, addressing schemes and caching. Our aim is to help you become a better programmer by teaching you the basic concepts underlying all computer systems. We want you to learn what really happens when your programs run, so that when things go wrong (as they always do) you will have the intellectual tools to solve the problem.

Time Tue/Thu 1:30-3:30pm (Lectures)
Fri 1:30-3:30pm (Lab)
Space SP 309
Professor: Jason Waterman
Office: SP 104.4
Office Hours: 11am - 12pm Tuesday, Thursday, and Friday
Email: jawaterman