Course Code |
CSC346 |
Course Title |
Comp Organization & Assembly Lang |
Credit Hours |
3+1 |
Prerequisites by Course(s) and Topics |
Students should have a good understanding of programming concepts, programming fundamental and digital logic design. |
Assessment Instruments with Weights (homework, quizzes, midterms, final, programming assignments, lab work, etc.) |
SESSIONAL (Quizzes, Assignments, Presentations) =25 %
Midterm Exam =25 %
Final Exam = 50%
|
Course Coordinator |
Huma Chaudhry |
URL (if any) |
|
Current Catalog Description |
|
Textbook (or Laboratory Manual for Laboratory Courses) |
Computer Systems: A Programmer's Perspective, 3/E (CS:APP3e), Randal E. Bryant and David R.O' Hallaron, Carnegie Mellon University |
Reference Material |
1. Robert Britton, MIPS Assembly Language Programming, Latest Edition, 2. Computer System Architecture, M. Morris Mano, Latest Edition, 3. Assembly Language Programming for Intel- Computer, Latest Edition |
Course Goals |
1.Acquire the basic knowledge of computer organization, computer architecture and assembly language 2. Understand the concepts of basic computer organization, architecture, and assembly language techniques 3. Solve the problems related to computer organization and assembly language |
Course Learning Outcomes (CLOs): |
At the end of the course the students will be able to: | Domain | BT Level* |
Acquire the basic knowledge of computer organization, computer architecture and assembly language |
|
|
Understand the concepts of basic computer organization, architecture, and assembly language techniques. |
|
|
Solve the problems related to computer organization and assembly language |
|
|
* BT= Bloom’s Taxonomy, C=Cognitive domain, P=Psychomotor domain, A= Affective domain |
|
|
|
Topics Covered in the Course, with Number of Lectures on Each Topic (assume 15-week instruction and one-hour lectures) |
Week | Lecture | Topics Covered |
Week 1 |
1 |
Introduction to computer systems: Information is bits + context, programs are translated by other programs into different forms |
|
2 |
understand how compilation systems work |
Week 2 |
3 |
processors read and interpret instructions stored in memory, caches matter |
|
4 |
storage devices form a hierarchy |
Week 3 |
5 |
the operating system manages the hardware, |
|
6 |
systems communicate with other systems using networks |
Week 4 |
7 |
Representing and manipulating information: information storage, integer representations |
|
8 |
Representing and manipulating information: integer arithmetic |
Week 5 |
9 |
Representing and manipulating information: floating point |
|
10 |
Machine-level representation of programs: a historical perspective |
Week 6 |
11 |
program encodings |
|
12 |
data formats |
Week 7 |
13 |
accessing information |
|
14 |
arithmetic and logical operations |
Week 8 |
1 hours |
Mid Term |
Week 9 |
15 |
control, procedures |
|
16 |
array allocation and access |
Week 10 |
17 |
heterogeneous data structures |
|
18 |
putting it together: understanding pointers |
Week 11 |
19 |
life in the real world: using the gdb debugger |
|
20 |
outof-bounds memory references and buffer overflow |
Week 12 |
21 |
x86-64: extending ia32 to 64 bits |
|
22 |
machine-level representations of floating-point programs |
Week 13 |
23 |
Processor architecture: the Y86 instruction set architecture |
|
24 |
logic design and the Hardware Control Language (HCL) |
Week 14 |
25 |
sequential Y86 implementations |
|
26 |
general principles of pipelining |
Week 15 |
27 |
pipelined Y86 implementations |
|
28 |
types of pipelining |
Week 16 |
29 |
revision |
|
30 |
Revision |
Week 17 |
2 hours |
Final Term |
|
Laboratory Projects/Experiments Done in the Course |
Related to assembly language |
Programming Assignments Done in the Course |
Related to concept mentioned above with the lecture number. |