CS 1410 Syllabus
Hello, dear friend, you can consult us at any time if you have any questions, add WeChat: daixieit
Computer Organization
CS 1410 (810:041)
Syllabus
COURSE OVERVIEW
Computer Organization provides an introduction of how a computer operates at the digital-logic level, machine-language level, and the assembly-language level. It can be taken after or concurrently with an introductory programming class such as UNI’s Introduction to Computing (810:051) course. This prerequisite is useful since an understanding of a high-level programming language is useful before studying lower-level, assembly-language programming in the second half of the course. The first half of the course is geared toward understanding how individual computer components (e.g., CPU, memory, bus, control unit) operate at the logic gate level, and how they are connected together to perform machine-language instructions.
Course Objectives
After this course, you should understand:
● simple combinational and memory circuits used to build computer components,
● how these circuits are organized to build a computer,
● how data is represented and manipulated on the computer,
● how to program in assembly language,
● how high-level language programming languages are implemented with respect to the run-time stack and built-in data structures such as arrays and records, and
● general concepts of hardware support necessary for an operating system.
Textbook:
Linda Null and Julia Lobur, The Essentials of Computer Organization and Architecture, second edition, Jones and Bartlett Publishers, 2006. ISBN-10: 0-7637-3769-0.
Software Tools:
You will need to download and install the free MARIE simulator from the web-site: http://computerscience.jbpub.com/ecoa/2e/student_resources.cfm
Plus, you will need to download and install the free MIPS simulator from the web-site: http://pages.cs.wisc.edu/~larus/spim.html
COURSE ORGANIZATION
Prerequisite or Corequisite: Introduction to Computing (810:051) or equivalent. If you have, or are, taking an introductory programming course in any high-level programming language (C, C++, Java, Python, Ada, Ruby, Scheme, etc.), you satisfy the necessary prerequisite.
Written Assignments: Assignments will be both "pencil-and-paper" and assembly-language programming exercises. Assignments are organized around the chapter sections of the textbook according to the below schedule. For each assignment, you should follow these steps:
1) Read the corresponding chapter section(s) thoroughly.
2) Check the outline below to see if I have provided additional supplemental material to further explain a textbook topic or provide additional examples.
3) Complete the assignment related to the chapter section(s) and submit your solution to the Assignment Submission link. Need help? See the eLearning Tutorials for instructions on how to submit an assignment.
Assignments consist of two types:
a. Textbook and instructor supplied exercises which are short-answer or problem based questions. You can use a word processor program (Word, Open-Office, etc.) to save your responses to a file in Rich-text format (.rtf). However, many of the assignments require complex diagrams that are more easily done on paper, so you might want to use a scanner/printer or digital camera to generate a .jpg file. Zip multiple files together and submit a single .zip file for the assignment.
b. Assembly-language programs as text files and their associated output files. Zip your output and assembly-language program files together and submit a single .zip file for the assignment.
Examinations: There will be three proctored exams: two and a comprehensive final exam. Examination request forms are included at the appropriate places in the Course Content.
Course Outline:
Chapters |
Supplemental
Material
|
Assignment
|
|
Sections
|
Topic
|
||
1.1 - 1.5
|
Intro. to Computer Organization and
Computer History
|
|
Written Assignment
1
|
2.1 - 2.4
|
Binary and Hexadecimal number systems;
Unsigned Integers; Signed Integers: two’s
complement
|
|
Written Assignment
2
|
2.5 - 2.7
|
Floating point representation; Character
representation; Error correction and detection
|
|
Written Assignment
3
|
3.1 - 3.5
|
Boolean Algebra; Logical Gates; Common
Combinational Circuits
|
|
Written Assignment
4
|
3.6
|
1-bit latches, Timing Diagrams; Flip-Flops,
Registers, Register File
|
Supplement 5
|
Written Assignment
5
|
Exam 1: covering chapters 1- 3 |
|||
4.1 - 4.7
|
CPU, Bus, Clock, I/O, Memory, Interrupts
|
|
Written Assignment
6
|
4.8 - 4.10
|
Intro. to MARIE assembly instructions, Fetch-
decode-execute cycle; simple programs
|
Supplement 7
|
Written Assignment
7
|
4.11 - 4.12
|
Assemblers; MARIE subroutine instructions
and programming
|
|
Written Assignment
8
|
4.13
|
MARIE Hardwired and Microprogrammed Control
Units
|
Supplement 9
|
Written Assignment
9
|
Exam 2: covering chapter sections 4.1 - 4.13 |
|||
4.14
|
Intel x86 (CISC), MIPS (RISC) architectures,
simple MIPS assembly language programming,
arrays
|
Supplement 10
|
Written Assignment
10
|
|
Run-time stack; MIPS procedure/funciton calling
conventions; PCSpim System calls
|
Supplement 11
|
Written Assignment
11
|
|
MIPS logical and shifting instructions; bit-string set
representation
|
Supplement 12
|
Written Assignment
12
|
4.5
7.1-7.4
8.1-8.4
|
Hardware Support for OS: CPU timer, privileged
instructions, dual-mode CPU operation, memory
protection
|
Supplement 13
|
Written Assignment
13
|
Final exam: comprehensive, but focusing on details since Exam 2 |
GRADING
Grading policy: Course components are weighted as:
Written Assignments: 30 %
Exam 1: 23 %
Exam 2: 23 %
Final Exam: 24 %
Course grades will be assigned based on the following grading scale:
100-90 A
89 - 80 B
79 - 70 C
69 - 60 D
Below 59 F
Plus and minus grades will be assigned for scores within two percentage points from a grade cutoff (e.g., 91.9 to 90 is an A-, and 89.9 to 88 is a B+).
UNI Guided Independent Study requires that you submit all assignments and complete exams to recieve a grade in the course.
2021-09-07