S11_CSE310_Computer_Architecture_and_Assembly_Language

=CSE310: Computer Architecture & Assembly Language=

Program:
BS(CS)

Semester:
Spring 2011

Instructor:
Faisal Iradat

**Course Lead:**
Faisal Iradat

**Credit Hours:**
3 (3 credit hours for theory)

Prerequisite(s):
CSE141, CSE241

Course Description
This course introduce the principles of computer organization and architecture using solid mathematical and engineering fundamentals, performance and cost trade-offs, and with special emphasis on Assembly Language. Topics include computer performance, instruction set design, machine language and assembler language programming, computer arithmetic, datapath and controller design, pipelining, and memory structures.

Course Objectives:
In addition to details given below, on successful completion, students will be able to understand computer architecture and assembly language using solid state engineering fundamentals and quantitative cost / performance trade-offs. This course will be conducted in such a way that the students will learn computer architecture and assembly language using quantitative methodologies instead of following a traditional descriptive approach. Topics on memory hierarchy are mentioned in the course outline but it will be covered only if time permits.
 * 1) How are programs written in high-level languages such as C, or C#, translated into the language of the hardware, and how does the hardware execute based on the understanding of both the hardware and software in terms of their affect on program performance?
 * 2) What is interface between the hardware and software and how does the software instruct the hardware to perform the required functions? In this way students will be able to program different software’s.
 * 3) What determines the performance of a program, and how can a programmer make his software perform better? This is dependent on:
 * 4) Original program
 * 5) Software translation of that program into computer’s language
 * 6) Effectiveness of the hardware in executing the program
 * 7) What techniques can be used by the hardware designers to improve performance?

URLs (Optional):
http://sites.google.com/site/faisaliradat/

Books:
Computer Organization & Design (The Hardware / Software Interface) by Patterson and Hennessy, Third Edition, 2007, Morgan Kaufmann, ISBN 1-55860-604-1. The C Programming Language by Kernighan and Ritche, Second Edition. Additional class handouts, research papers and resources (if required will be made available).

Web Resources:
http://sites.google.com/site/faisaliradat/

Grading Policy:

 * Assignments || 25% ||
 * Quizzes || 15% ||
 * Midterms || 30% ||
 * Final || 30% ||

Uploaded Reference Course Outline:
You may also upload a course outline here.

Class Time Spent On (In Credit Hours):
Theory: 3.0


 * ==**Topics Covered in the Course **== ||
 * S.No ||  || Topic of Lecture ||   ||
 * 1 ||  || Course Introduction, Number Representation ||   ||
 * 2 ||  || Introduction to C Language ||   ||
 * 3 ||  || C Pointers, Arrays, Strings ||   ||
 * 4 ||  || C Structures, Malloc ||   ||
 * 5 ||  || Memory Management ||   ||
 * 6 ||  || MIPS LW, SW, Decisions, Procedures ||   ||
 * 7 ||  || MIPS Instruction Format, Logic Operations ||   ||
 * 8 ||  || Floating Point ||   ||
 * 9 ||  || Compilation, Assembling and Linking ||   ||
 * 10 ||  || Synchronous Digital Systems and State Elements ||   ||
 * 11 ||  || CPU Design: Single Cycle I and II ||   ||
 * 12 ||  || CPU Design: Pipelining ||   ||
 * 13 ||  || Caches, Virtual Memory, I/O Basics and Performance ||   ||


 * ==**Laboratory Projects/Experiments Covered in the Course (optional) **== ||
 * S.No ||  || Experiments ||   ||
 * 1 ||  || Memory Management ||   ||
 * 2 ||  || Single Cycle Path Implementation ||   ||
 * 3 ||  || Pipilining ||   ||

Course Introduction, Number Representation