Course Code |
CSC346 |
Course Title |
Comp Organization & Assembly Lang |
Credit Hours |
3+1 |
Prerequisites by Course(s) and Topics |
Programming Fundamentals |
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 |
Laraib kanwal |
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, 3. Assembly Language Programming for Intel- Computer, Latest Edition |
Course Goals |
Learning Basic concept of Computer organization with implementation of concepts in assembly language. |
Course Learning Outcomes (CLOs): |
At the end of the course the students will be able to: | Domain | BT Level* |
Define the concepts of computer organization and acquire the basic knowledge of assembly language. |
C |
1 |
Describe how the basic units of computer work together to represent integer numbers, floating numbers and register representation inside the microprocessor. |
C |
1 |
Explain the concepts of basic computer organization , architecture and assembly language techniques. |
C |
2 |
Solve the problems related to computer organization and implement the assembly programs using latest microprocessor architecture. |
P |
3 |
* 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 |
It pays to understand how compilation systems Work, processors read and interpret instructions stored in memory |
Week 2 |
3 |
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 |
|
8 |
Representing and manipulating Information: Integer representations |
Week 5 |
9 |
Representing and manipulating Information: Integer arithmetic |
|
10 |
Representing and manipulating Information: Floating point |
Week 6 |
11 |
Machine-level representation of programs: a historical perspective |
|
12 |
Program encodings |
Week 7 |
13 |
Data Formats |
|
14 |
Accessing information |
Week 8 |
1 hours |
Mid Term |
Week 9 |
15 |
arithmetic and logical operations |
|
16 |
control, procedures |
Week 10 |
17 |
array allocation and access |
|
18 |
heterogeneous data structures |
Week 11 |
19 |
Mid Term Examination |
|
20 |
Mid Term Examination |
Week 12 |
21 |
putting it together: understanding pointers |
|
22 |
life in the real world: using the gdb debugger |
Week 13 |
23 |
outof-bounds memory references and buffer overflow |
|
24 |
x86-64: extending ia32 to 64 bits |
Week 14 |
25 |
machine-level representations of floating-point programs |
|
26 |
Processor architecture: the Y86 instruction set architecture |
Week 15 |
27 |
logic design and the Hardware Control Language (HCL) |
|
28 |
sequential Y86 implementations, |
Week 16 |
29 |
pipelining |
|
30 |
general principles of pipelining |
Week 17 |
2 hours |
Final Term |
|
Laboratory Projects/Experiments Done in the Course |
|
Programming Assignments Done in the Course |
|