CSCI 210 – Computer Organization

General Information

Instructor: Dr. Kenneth A. Lambert
Office: Parmly 406
Office Phone: 458-8809
e-mail: lambertk@wlu.edu

Lecture: M/W/F 12::15-1:15 Parmly 307
Office Hours: M/W/F 10:00-11:00, T/R 1:00-2:00, or by appointment
Textbook:

Patt and Patel
Introduction to Computing Systems: from Bits & Gates to C & beyond (second edition, McGraw-Hill, 2004, ISBN 978-0-07-246750-5).


Brief Overview

In CSC 111 and CSC 112, we take a high level approach to computing in the sense that the programming is independent of the underlying hardware. Our view of the machine depends the programming language we are using. This virtual machine understands classes, objects, methods, arrays, loops, conditional statements, and so forth. At another level, that of the operating system, this machine understands shell commands and file systems.

In this course, we study the organization of computer systems at much lower levels. Along the way, we take a careful look at how data of various kinds are represented inside the computer. We engage in a fairly detailed, bottom-up study of the major hardware components of a basic computer system. This study will begin with the transistor, and will then go on to logic gates, combinational circuits, circuits for arithmetic, and a simple arithmetic logic unit for a particular machine. Then you will learn about flip-flops and memory structures, the data path and the control unit. If time permits there will be a brief look at I/O units and parallel architectures.

Then we will spend several class meetings studying the instruction set and the assembly language of our machine. The reasons for this go beyond learning to program in assembly language, for surely most of your programming will not be done at this level (although there may be times when this will come in handy). By working at this level, you gain a better understanding of how a machine operates, the task of a compiler, how to use a machine more efficiently, certain operating system issues, and so forth.

After gaining familiarity with the operations at the assembly language level, we move on to the study of programming at a slightly higher level, using the C programming language.


Course Objectives

  • Students will understand the relationship between hardware and software specifically how machine organization impacts the efficiency of applications written in a high-level language.
  • Students will be able to make use of the binary number system to translate values between the binary and decimal number systems, to perform basic arithmetic operations (i.e. addition, subtraction, multiplication, and division) and to construct machine code instructions.
  • Students will be able to design and implement solutions for basic programs using assembly language with a focus on data storage, selection and repetition constructs, subprograms, and array allocation and processing.
  • Students will be able to design logical expressions and corresponding integrated logic circuits for a variety of problems including the basic components of a CPU such as adders, multiplexers, the ALU, a register file, and memory cells.
  • Students will be able to explain the fetch-execute cycle performed by the CPU and how the various components of the data path are used in this process.

Grading

The written work for the course will consist of

  • Labs, homework, etc. (50% of grade)
  • Three one hour exams (10% each)
  • Comprehensive final exam (20%)

Attendance

It is very important that you attend class. There will be considerable information given in class that is not available elsewhere. Regular attendance and class participation may influence your grade in borderline cases.


General Classroom Guidelines

  • Be respectful of your classmates and the instructor. Personal Web surfing, social networking, texting, cell phone calls, or emailing during class time is strictly prohibited.
  • I may use Powerpoint presentations for some of the classroom lectures. These presentations will be available for viewing or downloading from the course Web site. Therefore, you do not need to try to copy all of these notes. The purpose of the slides is to guide the class flow. They are not intended to provide a complete coverage of all the course material. In particular, they do not substitute for reading the text.
  • It is important that you prepare for each class meeting in order to get the most benefit and to be able to participate fully. Read over the material to be covered and be sure you understand the material from the previous class meeting. The material in this course builds on itself; so it is important to stay on top of the material as we go.
  • I will be very happy to work with you individually or in small groups. If my office hours are not convenient, I am available and will be happy to make appointments with you.
  • Be on time.

Accommodations

Washington and Lee University makes reasonable academic accommodations for qualified students with disabilities. All undergraduate accommodations must be approved through the Office of the Dean of the College. Students requesting accommodations for this course should present an official accommodation letter within the first two weeks of the (fall or winter) term and schedule a meeting outside of class time to discuss accommodations. It is the student’s responsibility to present this paperwork in a timely fashion and to follow up about accommodation arrangements. Accommodations for test-taking should be arranged with the professor at least a week before the date of the test or exam.


Final Exam Policy

The final exam for this course will be given during the final exam week. You can take this exam during any of the regularly scheduled exam periods that week. You must supply an exam envelope to the instructor or the department administrative assistant no later than noon on the last day of class. You must specify a provisional day and time on the envelope, which you are free to change on the clipboard provided outside the door of Parmly 407 any time that week. Email or phone requests to reschedule will not be accepted.

The exam will be given in Parmly 405, and you should arrive promptly before the appointed time. If you are more than 15 minutes late, you will have to reschedule your exam. If you are more than 15 minutes late to the last exam period on Friday afternoon, you will receive a grade of 0 on your exam.

Students who have approved academic accommodations must make arrangements to use those accommodations directly with the instructor no later than the last day of class. Students approved for extra time will receive that time at the tail end of the morning exam period or before the beginning of the afternoon exam period (for example, ending at 1:30 PM for a morning exam or beginning at 12:30 PM for an afternoon exam). Students approved for a low-distraction testing location should reserve that space during the last week of classes (following instructions distributed by Dean Price (sophomores, juniors or seniors) or Director of Disability Resources Lauren Kozak (first-years).


Honor System

Unless stated otherwise, the exams will be done without books or notes and without assistance from other people. Unless stated otherwise, your lab projects and homework should be your own work. You may consult with other students concerning syntax, using the lab software, using the machines and network, clarification of assignments. However, the work turned in should be your work.


Tentative Schedule of Lectures

Monday

Wednesday

Friday

Jan. 7
Week 1
Course introduction

Chapters 1 and 2

Number systems: binary, hex, unsigned integers Signed integers
Jan. 14
Week 2
Floating-point numbers Floating-point numbers The Boolean system

Chapter 3

Jan. 21 Week 3 Martin Luther King Day (no classes) Combinational circuits: transistors, gates, and adders Control circuits: decoders and multiplexers

Building an ALU

Jan. 28
Week 4
Latches and memory The von Neumann architecture

Chapters 4 and 5

The instruction processing cycle

Chapters 4 and 5

Feb. 4
Week 5
The LC3 instruction set: computation The LC3 instruction set: data movement The LC3 instruction set: control
Feb. 11
Assembly language

Chapters 6 and 7

Assembly language

Chapters 6 and 7

I/O operations

Chapter 8

Feb. 25
Week 7
Reading day

Chapters 7 and 8

Reading day

Chapter 8

String processing

Chapters 7 and 8

March 4
Week 8
Subroutines

Chapter 9

Subroutines Recursive subroutines

Managing a system stack

March 11
Week 9
Type conversions

Chapter 10

Managing a system heap

Chapter 10

Introduction to C programming

Chapters 11-19

March 18
Week 10
Modular decomposition

Making a library

Separate compilation

Arrays and pointers C strings and text files
March 25
Week 11
Dynamic storage and linked structures Tools building for an assembler Scope Analysis
April 1
Week 12
Syntax analysis Code generation Conclusion

Useful Links


Presentations

© Ken Lambert. All rights reserved.