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 |
Daniyal Baig |
URL (if any) |
|
Current Catalog Description |
|
Textbook (or Laboratory Manual for Laboratory Courses) |
1. Computer Systems: A Programmer's Perspective, 3/E (CS:APP3e), Randal E. Bryant and David R.O' Hallaron, Carnegie Mellon University 2. Robert Britton, MIPS Assembly Language Programming, Latest Edition, 3. Computer System Architecture, M. Morris Mano, Latest Edition, |
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 |
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* |
* 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 |
|
2 |
Information is bits + context, programs are translated by other programs into different forms, processors read interpret instructions |
Week 2 |
3 |
Caches matter ,Storage devices form a hierarchy |
|
4 |
Representing and manipulating information |
Week 3 |
5 |
Operating system manages the hardware, systems communicate with other systems using networks |
|
6 |
Integer representations |
Week 4 |
7 |
Integer arithmetic |
|
8 |
Floating point |
Week 5 |
9 |
Machine-level representation of programs |
|
10 |
Understanding pointers |
Week 6 |
11 |
Using the gdb debugger |
|
12 |
Out-of-bounds memory references |
Week 7 |
13 |
Buffer overflow |
|
14 |
Revision |
Week 8 |
1 hours |
Mid Term |
Week 9 |
15 |
Conditional processing |
|
16 |
mnemonic codes |
Week 10 |
17 |
x86-64: extending ia32 to 64 bits |
|
18 |
Machine-level representations of floating-point programs |
Week 11 |
19 |
Processor architecture: the Y86 instruction set architecture |
|
20 |
Logic design and the Hardware Control Language (HCL) |
Week 12 |
21 |
Sequential Y86 implementations |
|
22 |
General principles of pipelining |
Week 13 |
23 |
Pipelined Y86 implementations |
|
24 |
Processor architecture |
Week 14 |
25 |
Assembly Language Forms |
|
26 |
Instruction set architecture |
Week 15 |
27 |
Assembly Instructions |
|
28 |
Assembly Instructions (contd.) |
Week 16 |
29 |
Revision |
|
30 |
Revision |
Week 17 |
2 hours |
Final Term |
|
Laboratory Projects/Experiments Done in the Course |
|
Programming Assignments Done in the Course |
|