PROFESSOR: Ms. Sally
Sievers.
Email: sievers@wells.edu Website: aurora.wells.edu/~srs
Office:
Macmillan 102. Phone: 364-3210 (office), 607-257-7641 (home).
I am on campus MWF from about 9:20 to 4:00. Find me,
I'm yours, usually. I teach 9:30 and 11:30 MWF. If not in
my
office, I am usually in one of the computer labs or math prof’s
offices,
or will leave a note on my door. After class is a great time to meet if
you're free, and I don't have a meeting (occasional). Best is to let me
know you want to see me and when (i.e.
make
an appointment, by phone, email, or at class time).
REQUIRED TEXT & MATERIALS:
Computer Systems, 3rd ed., J. Stanley Warford
We'll cover most of Chapters 1-6,
and parts of 8 and 9, probably.
Pep8 simulator. As I write, it's
still struggling to reach first post-beta semi-bugless version.
Link off of main page; when it's ready I'll put it in Mac 110, in Class
Material/CS225 folder.
Other readings:
Supplementary reading will be assigned from time to
time,
from books or articles in the "Sievers library" in the box
outside my door, on
reserve,
or on the Web.
GOAL OF THE COURSE:
To gain an understanding of computer operation at the most
fundamental software level:
1) To understand the basic structure of a CPU. Every computer
uses a Central Processing Unit (the CPU) which
can manipulate information in small chunks called bits, bytes,
words
(depending on their size). The set of manipulations the CPU can
perform
is called the CPU’s instruction set. All running
programs,
such as a C++ or Java program that you write, or for that matter the
C++
programming environment itself, are composed of a series of such
instructions.
2) To understand and be able to use the more common data
representations which are used to store and manipulate numbers and
letters in a computer.
3) To learn to write programs in
assembly language.
We will learn about the instruction set of a simulated CPU, the
PEP8. Although different computers use different CPU’s, all
instruction sets share similarities, especially in underlying
structural
concepts. Assembly language is a set of human-understandable
commands
which are in an almost 1-to-1 relationship with the set of machine
instructions.
We will learn how your standard C++ constructs can be implemented in
assembler/machine
instructions.
4) To gain an understanding of what an operating system is and what functions it performs, and some idea of memory management strategies.
We use a simulator because actual commercially used CPU
architectures
tend to contain a myriad of special features that are better studied
after
basic concepts are in place. If time allows, we will then examine
other possible architectures, and look to understand rationales
behind
decisions made in designing an architecture with specific features.
"Deliverables" will consist of
--homework problems
--closed (usually) book quizzes (announced)
--programs
--a project? (more on this later)
--One midterm and a final exam, open book.
Class attendance and participation are assumed.
Grading:
Homework, quizzes and class
participation 20-25%
Programs and Project
35-40%
Exams ( 1 Midterm and
Final)
40%