The main objective of this class is for you to learn how a computer is organized to execute programs. A secondary objective is learning how the organizational building blocks of a computer are constructed from smaller building blocks (i.e., combinational gates and memory elements).
We will consider the major organizational components of modern computer systems: arithmetic logic unit (ALU), control, memory hierarchy, and I/O. We will study things such as binary numbering systems, addition circuits, ways of implementing control logic, pipelining, caches, and paging hardware. Some of these are basic requirements of all general purpose computers, while others, such as pipelining and caches, are performance enhancements.
We will study digital design so as to understand how computers are constructed from logic gates and memory elements and study enough assembly language to appreciate how a high level language (HLL) source is translated and run on a target computer system.
A = [90--100]
B = [80--90)
I use +/- grading sparingly.
Course Point Distribution
There will be approximately 1000 total points for the class. They will be distributed as follows:
A first offense will result in a grade of zero points for the assignment, Any subsequent offenses may result in a charge of academic dishonesty being filed with the Dean of the College, along with a grade of zero.
That said, I realize that Computer Science is best learned in a collaborative environment. You should work together and enhance each others' understanding of the material. However, you are ultimately responsible for your own learning. By depending too strongly on someone else for help with an assignment, you most definitely jeopardize your ability to perform well on a midterm or final. The name of anyone with whom you collaborate on an assignment must be listed on the assignment.