CS 2110 Syllabus
CS 2110 Syllabus
CS 2110 Syllabus
Instructor
Bill Leahy
Email: bleahy@cc.gatech.edu
Purpose
1.
2.
3.
4.
5.
6.
7.
To understand the structure and operation of a modern computer from the ground up.
Understand basic hardware concepts: digital circuits, gates, bits, bytes, number representation
Understand the Von Neumann model and the structure and operation of a basic data path
Understand the structure and function of machine language instructions
Understand the structure and function of a symbolic assembly language
Understand basic concepts of computer systems such as the runtime stack, simple I/O devices
Introduce the C language with particular emphasis on the underlying assembly and machine
language as well as interaction with hardware.
Outcomes
(Competency Knowledge) Be able to identify and/or construct basic digital structures such as MOS FET
logic gates, decoders, multiplexors, adders, memory.
(Competency Application) Be able to construct a state machine diagram and then implement it as a
finite state machine circuit.
(Competency Comprehension) Understand data representation. Be able to convert numbers between
various representations: Binary, octal, decimal, hexadecimal, and IEEE Floating Point.
(Competency Knowledge) Be able to identify the component parts of the Von Neumann Model of
computer and be able to explain the purpose of each component.
(Competency Synthesis) Be able to write, debug and run assembly language programs including
recursive subroutines, traps, basic input/output.
(Accomplishment Synthesis) Be able to write, debug and run multi-file C programs several hundred lines
long using "make" to compile and execute said programs.
(Competency Synthesis) Be able to utilize (in C programs) proper typing and casting constructs, structs,
pointers and arrays, functions, function pointers, dynamic memory allocation and variables of different
storage classes (auto, static, volatile, etc.)
Course Topics
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
Textbooks
Required
Introduction to Computing Systems, Second Edition
Yale N. Patt, Sanjay J. Patel
McGraw-Hill ISBN: 0073890480
Book Website: http://www.mhhe.com/patt2
The C Programming Language
Brian Kernighan, Dennis Ritchie
Prentice Hall: ISBN 0131103628
Recommended
This is a recommended book. Buy it if you are the type of person that likes to have a reference
book when learning something new. There will be no required readings or assignments from this
book.
Course Structure
The course will consist of lecture and a mix of labs and recitations we call lecitations.
There will be lots of homework assignments, usually 7 days in length.
Homework assignments will be mostly based on material already covered in lecture.
One of the purposes of the lab is to give students help with homework assignments.
Labs will be a mix of instructional labs (e.g. might have a lab on makefiles) and assessments
(i.e., tests did students learn what they were supposed to from the homework?)
Homework can be, at the students discretion, collaborative. Nevertheless, each student is
required to turn in an assignment that he or she produced and that he or she understands.
There will be some quizzes in lecitation. Some will be timed coding exercises; some will be paper
and pencil quizzes. Or they may be on T-Square.
There will be a final examination
Just to be clear we are doing this because we believe you will get more benefit by getting
programs to work completely as opposed to turning things in that dont work hoping for some
partial credit.
Welcome Aboard
Bits, Data Types, and Operations
Digital Logic Structures
The Von Neumann Model
The LC-3
Programming
Assembly Language
I/O
TRAP Routines and Subroutines
And, Finally...The Stack
Introduction to Programming in C
Variables and Operators
Control Structures
Functions
Testing and Debugging
Pointers and Arrays
Recursion
I/O in C
Data Structures
Course Evaluation
The number of and value of each assignment type is show below:
Item
Number (approx.)
Timed Labs
4
Homework
11*
Quizzes
4
Final
1
TOTAL
* Final homework is worth double
Totals
20%
40%
20%
20%
100%
11. Complaints about TA's should be directed to the course instructors during office hours or via
email as soon as possible.
12. The deadline for re-grades is 2 weeks after an assignment grade is posted or returned to you.
This deadline also applies to picking up items which are returned in class. After this deadline no
grade changes will be made and tests not picked up will be destroyed.
13. Students participating in approved university activities MAY be given extensions, allowed to take
tests at different times, etc. It is important to request such items well in advance and to supply
supporting documentation.
14. Please remember that your TAs are also students. They have very full schedules and they are
TAing out of a genuine desire to help you learn the material.
15. Once final grades have been submitted you must wait until the next semester that you are on
campus to review grades and your final. No grading issues will be discussed via email.