CMPS 2240 Computer Architecture I: Assembly Language
Catalog Description
CMPS 2240 Computer Architecture I: Assembly Language (4)
Introduction to computer architecture and assembly language programming. Covers number systems and data representation, CISC and RISC instruction set architectures, internal organization of a computer, and basics of logic design. Prerequisite: CMPS 2010.
Prerequisites by Topic
Programming skill in a high level language such as C/C++/Java.
Units and Contact Time
4 semester units. 3 units lecture, 1 unit lab.
Type
Required for CE, CS and EE.
Required Textbook
Computer Organization & Design: The Hardware/Software Interface by David Patterson & John Hennessey; 4th Ed. The course relies on Appendix B and Appendix C. Appendix B (called Appendix A in earlier editions) is available online.
Recommended Textbook and Other Supplemental Materials
Additional material will be available online.
Coordinator(s)
Donna Meyers
Student Learning Outcomes
This course covers the following ACM/IEEE Body of Knowledge student learning outcomes:

CC-AR: Architecture and Organization
CE-CAO: Computer Architecture and Organization

ABET Outcome Coverage

The course maps to the following performance indicators for Computer Science (CAC/ABET) and Computer Engineering (EAC/ABET) and Electrical Engineering (EAC/ABET):

(CAC PIb1): Identify key components and algorithms necessary for a solution.
Take-home final project.
(CAC PIb2): Produce a solution within specifications.
Take-home final project.
(CAC PIc4): Implement the designed solution for a given problem.
Take-home final project.
(CAC PId4, EAC PId4): Meet deadlines and achieve project goals.
Take-home final project.
(EAC PIc1): Follow systematic and logical design procedures and define specifications to meet project requirements.
Take-home final project.
Lecture Topics and Rough Schedule
Week 01 operations on binary, octal and hexadecimal numbers
Week 02 arithmetic, shift & rotate operations
Week 03 subroutine linkage & call frames
Week 04 instruction encoding, jumps & branches
Week 05 program optimization
Week 06 logical and bit-field operations & condition testing
Week 07 multiplication, division, branch delay slot
Week 08 intro to x86-32
Week 09 intro to x86-64
Week 10 x86-64 code optimization
Week 11 system coding with x-86 assembly
Week 12 gates, truth tables, and logic equations
Week 13 constructing a basic arithmetic logic unit
Week 14 clocks & timing methodologies
Week 15 flip-flops, latches, and registers

Grading Policy
                                        A  90%
                                        B+ 87%
      Lab/Hw Assignments ........15%    B  83%
      Midterm 1 .................30%    B- 80%
      Midterm 2 .................30%    C+ 75%
      Final Project..............25%    C  70%
                                        C- 60%
                                        D+ 55%
                                        D  50%
                                        D- 40%
                                        F  below 40% 
Estimated ABET Category Content
EAC/CAC Math and Basic Sciences 1 Credit Hour
CAC Computing/EAC Engineering Topics 2 Credit Hours Fundamental
Prepared By
Donna Meyers on January 23, 2014
Approval
Approved by CEE/CS Department on January 31, 2014
Effective Wtr 2014