COURSE DESCRIPTION

NAME OF INSTITUTION Lahore Garrison University
PROGRAM (S) TO BE EVALUATED Computer Science , Spring 2023
Course Description :
Course Code CSC346
Course Title Comp Organization & Assembly Lang
Credit Hours 3+1
Prerequisites by Course(s) and Topics Digital logic design and Object oriented programming
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 Muhammad 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
Reference Material https://www.tutorialspoint.com/assembly_programming/index.htm https://emu8086-microprocessor-emulator.en.softonic.com/
Course Goals Computer technology requires professionals of every computing specialty to understand both hardware (HW) and software (SW). The interaction between HW and SW also offers a framework for understanding the fundamentals of computing. In this course students will study topics such as Instruction Set Architecture, Basic Assembly Instructions, Addressing Modes, Computer Performance evaluation, Floating Point Data, Data Path Design for Single Cycle and Multiple Cycle Computers, Pipelined Data Path Basics, Hazards in Pipelining, Memory hierarchy design, storage and I/O
Course Learning Outcomes (CLOs):
At the end of the course the students will be able to:DomainBT Level*
Analyze and demonstrate the in depth knowledge and core concept of the Computer organization and assembly language. C 3,4
Explain and adapt strategies using assembly language for error detection and fault tolerance. C 1,3
Construct application level programs using assembly language and assemble all the modules to develop a final product. P 4
* 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)
WeekLectureTopics 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 x86-64: extending ia32 to 64 bits
Week 8 1 hours Mid Term
Week 9 15 Machine-level representations of floating-point programs
16 Processor architecture: the Y86 instruction set architecture
Week 10 17 Logic design and the Hardware Control Language (HCL)
18 Sequential Y86 implementations
Week 11 19 Pipelined Y86 implementations
20 Processor architecture
Week 12 21 Assembly Language Forms
22 Instruction set architecture
Week 13 23 Assembly Instructions
24 Assembly Instructions (contd.)
Week 14 25 Extending ia32 to 64 bit
26 Hardware control language
Week 15 27 Assembly Language directives
28 Pipelining introduction
Week 16 29 Pipelining using y86 Architecture
30 Pipelining using sequential instructions
Week 17 2 hours Final Term
Laboratory Projects/Experiments Done in the Course
Programming Assignments Done in the Course 4 programming assignments
Instructor Name Muhammad Daniyal Baig
Instructor Signature
Date