SYLLABUS
1/7/05
6:45 – 9:00 pm
TTH
Class: Cherry
Parkes 105
Instructor: |
Professor Larry Crum |
E-mail: |
|
Phone: |
(253) 692-5866 |
Office: |
Pinkerton 317 |
Office Hours: |
TTH 6:10 - 6:40, 9:00-
; Appointment recommended for other
times. |
Graduate Assistant: |
Li Jiao |
E-mail: |
|
Phone: |
(253) 692-4630 |
Office: |
Cherry Parkes 206A |
Office hours: |
TBA |
Text: |
Introduction to Computing Systems, from bits &
gates to C & beyond Yale
N. Patt & Sanjay J. Patel McGraw
Hill, ISBN: 0-07-237690-2 http://www.mhhe.com/engcs/compsci/patt/
|
Course Description: TCSS490A provides a look under
the hood of digital computers, with a motivation to make you a stronger
programmer, and provide foundations for software systems design. It provides:
· an introduction to the basic hardware and organization of computers,
· an understanding of the relationship between hardware and software,
· an appreciation and insight into the power, constraints, and options that support robust and efficient computing system design, and
· an introduction to the foundations for embedded computing.
Prerequisites: TCSS 142 or equivalent, and precalculus.
Primary Course Goals:
1. Knowledge of fundamental computer organization (CPU, Bus, Memory and I/O) and Instruction Set Architecture.
2. Knowledge of digital logic related to implementation of the above.
3. Understanding of the basic machine cycles, computational operations, and timing.
4. Ability to write small programs and function modules in native assembly language.
5.
Understanding of how high-level programs (we will use C)
are executed, and how programs can be created through programming at optimal levels.
Schedule:
Week |
Topics Covered |
Readings
(Chapters) |
Homework/Projects (Typically Due the next Tue) |
1: Jan 4, 6 |
Bits, Data Types, & Operations |
1 & 2 |
HW 1 – Binary Arithmetic |
2: Jan 11, 13 |
Digital Logic |
3 |
HW 2 – Circuit Design |
3: Jan 18, 20 |
Organization and Instruction Set Architecture (ISA) Midterm - Chapters
1 thru 3 |
4 & 5.1 |
HW 3 – ALU Design |
4: Jan 25, 27 |
ISA II |
5.2-5.6 |
HW 4 – Instruction Design |
5: Feb 1, 3 |
Programming and Assembly Language I |
6 & 7.1-7.2 |
HW 5 – Hand Assembly |
6: Feb 8, 10 |
Midterm – Chapters 4 thru 6 Assembly Language II,
Input/Output |
7.3-7.4 & 8 |
HW 6 – Assembly Program design |
7: Feb 15, 17 |
Assembly Subroutines and Stacks |
9 & 10 |
HW 7 – Assembly Program design - Part 1 |
8: Feb 22, 24 |
Introduction to C Language Midterm – Chapters 7 thru 10 |
11, 12, 13 & 14 |
HW 8 – Assembly Program design - Complete |
9: Mar 1, 3 |
Debugging, Pointers, & Arrays |
15, 16 |
HW 9 – C Program Hand Compile |
10: Mar 8, 10 |
I/O and Data Structures |
18 & 19 |
HW10 - C Program Hand Compile - Complete (Due Mar 10th) |
11: Mar 15 |
Final Exam 6:45 - 9:00 |
|
HW11- Lab Presentation |
Laboratory: We will do some hands on exploratory work in our laboratory (CP 206D), led by teams of students. The teams will prepare the presentations and will get credit toward their homework grade.
Grading: Homework (25%), Midterms (40%) Final Exam (25%), Class Participation (10%)
Characteristics of an A student – Work done is outstanding and shows particular insight and creativity. It is presented very professionally.
Characteristics of a B student – Work done is complete, predominance of it is correct, and it is presented well.
Characteristics of a C student – Work is basically complete and correct, and it is presented coherently. The student is prepared to use the material in the next course but will likely need more study in the area.
Plagiarism: Students are encouraged to collaborate with their colleagues on understanding assignments and gaining insight on solutions. However, any significant contribution in a submission must be acknowledged and the responsible student given due credit. See http://depts.washington.edu/grading/issue1/honesty.htm .
______________________________________________________________________________
If you would like to request academic accommodations due to
a temporary or permanent disability, contact Lisa Tice, Manager for Disability
Support Services (DSS) in the Mattress Factory Bldg, Suite 206. An appointment
can be made through the front desk of Student Affairs (692-4400), through
Student Development and Success (692-4501), by phoning Lisa directly at
692-4493 (voice) or 692-4413 (TTY), or by e-mail ltice@u.washington.edu. Appropriate
accommodations are arranged after you've conferred with the DSS Manager and
presented the required documentation of your disability toDSS.
Topics
covered
1.
Machine
representation of numbers and non-numeric data
a.
Binary
representations of fixed precision whole numbers
b.
Binary
arithmetic
c.
Floating
point representation and arithmetic
d.
ASCII,
Unicode – representation of characters
e.
General
data types
2.
Digital
logic
a.
Gates
b.
Combinational
circuits
i.
Digital
logic
ii.
Boolean
algebra applied to circuits
iii.
Representative
circuits (multiplexers, decoders, adders, etc.)
iv.
Arithmetic-logic
unit
c.
Sequential
circuits
i.
latches,
flip-flops, registers
ii.
registers
d.
Memory
organization
i.
register
files
ii.
main
memory
iii.
types
of memory (ROM, EEPROM, etc.)
e.
Bus
structures and functions
i.
CPU
internal data flow
ii.
data
bus
iii.
address
bus
iv.
control
bus
3.
Computer
organization
a.
CPU
internal (registers, bus, ALU, flags, etc.)
b.
Main
memory and memory maps
c.
Busses
d.
Simple
I/O (keyboard, video, external storage)
e.
External
storage
4.
Instruction
Set Architecture
a.
ISA
of a typical 8/16 bit CPU
i.
data
movement instructions
ii.
arithmetic/logic
instructions
iii.
flow
of control instructions (unconditional and conditional branches)
iv.
I/O
(separate I/O space vs. memory mapped I/O)
v.
control
instructions
vi.
introduction
to interrupts and traps
vii.
addressing
modes
b.
machine
cycle (fetch, decode, execute)
i.
simulation
of a simple machine
c.
examples
of numeric and non-numeric computations
5.
Assembly
language and machine translation
a.
Introduction
to assembly process
b.
the
assembly development tools
c.
machine
translation from assembly statements into machine code
d.
modular
assembly, linking and creation of executable programs
6.
Introduction
to C language and interface with assembly modules such as
a.
Differences
between C and Java/C++ (esp. struct, pointers, memory mangagement and
compilation process)
b.
Standard
library functions (stdio, stdlib, etc.)
c.
function
call conventions in C
d. inline assembly instructions