CMPS 321 Computer Architecture
Sections 1 and 2 - Winter 2015
Instructor and Contact Information
Instructor: Dr. Melissa Danforth
Office: Sci III 319, 654-3180
Office Hours: MTuW 2:00 - 3:00pm, F 2:00 - 4:00pm, and by appointment
Email: melissa@cs.csubak.edu

Course website: http://www.cs.csubak.edu/~mdanfor/ under Teaching menu
Moodle website: http://moodle.cs.csubak.edu/moodle/course/view.php?id=85

Course meets MW 3:15 - 4:55pm and Tu 3:15 - 5:45pm in Sci III 315

Catalog Description
This course follows the Digital Logic Design course and focuses on the design of the CPU and computer system at the architectural (or functional) level: CPU instruction sets and functional units, data types, control unit design, interrupt handling and DMA, I/O support, memory hierarchy, virtual memory, and buses and bus timing. In contrast, the Digital Logic Design course is primarily concerned with implementation; that is, the combinatorial and sequential circuits which are the building blocks of the functional units. Prerequisite: CMPS 223 with a grade of C- or better
Prerequisites by Topic
C/C++ Programming
Data Structures
Introduction to Algorithms
Units and Contact Time
5 quarter units. 4 units lecture (200 minutes), 1 unit lab (150 minutes).
Type
Required for CS and CE
Required Textbook
Computer Organization and Design, 5th edition. David A. Patterson and John L. Hennessy. Publisher: Morgan Kaufmann Publishers, 2014. ISBN: 978-0-12-407726-3

You may also use the revised 4th edition: Computer Organization and Design, 4th edition (revised printing). David A. Patterson and John L. Hennessy. Publisher: Morgan Kaufmann Publishers, 2012. ISBN: 978-0-12-374750-1

Recommended Textbook and Other Supplemental Materials
None
Coordinator(s)
Melissa Danforth, Wei Li, Marc Thomas
Student Learning Outcomes
This course covers the following ACM/IEEE Body of Knowledge student learning outcomes:

CC-AR4: Memory system organization and architecture
CC-AR5: Interfacing and communication
CC-AR6: Functional organization
CC-AR7: Multiprocessing and alternative architectures

ABET Outcome Coverage
The course maps to the following performance indicators for Computer Science (CAC/ABET):

3a. An ability to apply knowledge of computing and mathematics appropriate to the discipline.
3c. An ability to design, implement and evaluate a computer-based system, process, component, or program to meet desired needs.
3i. An ability to use current techniques, skills, and tools necessary for computing practice.
3j. An ability to apply mathematical foundations, algorithmic principles, and computer science theory in the modeling and design of computer-based systems in a way that demonstrates comprehension of the tradeoffs involved in design choices.

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

3a. An ability to apply knowledge of mathematics, science, and engineering.
3c. An ability to design a system, component, or process to meet desired needs within realistic constraints such as economic, environmental, social, political, ethical, health and safety, manufacturability, and sustainability.
3j. A knowledge of contemporary issues.
3k. An ability to use the techniques, skills, and modern engineering tools necessary for engineering practice.

Lecture Topics and Rough Schedule
Exact topics will be posted to the Calendar section of the website.

Chapter 3 Arithmetic for Computers Review
Appendix B The Basics of Logic Design Review
Chapter 1 Computer Abstractions and Technology Weeks 1 and 2
Chapter 2 Instructions: Language of the Computer Weeks 1 and 2
Appendix A Assemblers, Linkers and the SPIM Simulator Weeks 1 and 2
Chapter 5 Large and Fast: Exploiting Memory Hierarchy Weeks 2 and 3
Chapter 4 The Processor Week 4 - 10
Chapter 6 Parallel Processors from Client to Cloud Week 10 (brief intro)
Appendix C Graphics and Computing GPUs Week 10 (brief intro)
Design Content Description
Not applicable to this course.
Attendance
Students are responsible for their own attendance. The topics covered in lecture will be listed on the course website. Lab attendance is not required but is strongly encouraged. If you attend lab and finish your lab work before leaving, you can get it "instantly" graded by coming up and showing me your work.
Academic Integrity Policy
You may discuss the assignments with others in the class. If the assignment is a group assignment, the group can turn in one assignment for the entire group. If the assignment is an individual assignment, each student must turn in their own work in their own words; no direct copying from any source is allowed. Refer to the Academic Integrity policy in the campus catalog and class schedule for more details.
Computer Labs Outside of Class
The CEE/CS Tutoring Center in Sci III 324 is available for use by students in this course outside of class time on a first come, first serve basis. Priority in the lab is given to students who are completing assignments for CEE/CS courses. See the schedule on the door for hours the lab will be open.

There are also computers available in the CEE/CS Major Study Lounge in Sci III 341 (formerly the CEE/CS Library). This room is only open when faculty members are on campus, e.g. approximately 8am to 5pm on weekdays. If the door is currently locked, see Steve, Erika, myself, or another faculty member to unlock it.

Grading
Labs/Homework 25%
Midterms (2) 50% (25% for each Midterm)
Final 25%

Grades are posted on Moodle. Note: Moodle does not penalize your grade for any ungraded assignments, so it will show your "current" overall percentage based off the classwork graded to-date.

It is your responsibility to check Moodle for grades and any comments on assignments. If you believe you submitted your assignment on time but the comment field says "assignment not received", contact me.

Labs
Lab assignments will be posted on the course website. The labs are due at noon on the day after the lab (Wednesday). Partial credit will be given for incomplete labs. Late labs will not be accepted. The lowest lab grade will not be counted towards the overall lab grade.

You may work on labs in groups of up to 3 students. If you work in a group, make sure to put everyone's names on the assignment each week. Only the students whose names are on the assignment will get credit for the lab.

If you attend the lab session on Tuesday and finish the lab by the end of the session, come show your work to me to get "instantly" graded on Moodle. If you do not attend the lab, submit your work to Moodle. Emailed submission are not guaranteed to be accepted.

Homework
Homework assignments and due dates will be posted on the course website. Assignments must be turned in via the Moodle website. Emailed submissions are not guaranteed to be accepted.

Homeworks may be discussed with others in the class, but every student must turn in their own assignments in their own words. Copying from other students, the Internet, previous solutions, the textbook, etc. are all considered violations of the Academic Integrity Policy.

Moodle Submission Guidelines
Submissions must be in text (TXT), OpenOffice (ODT), DOC, PNG, JPEG, GIF, or PDF format. DOCX files will not be accepted since they do not display properly on Linux. You may also just write your answers in the Notes section if you can adequately answer them in text format. Moodle records the last time you edit the Notes field or upload a file as the submission time for the assignment.

If you have drawn something out by hand, take a picture or use a scanner. Moodle has a maximum file size of 2MB, so keep this in mind when creating your files. Split information over multiple files if needed.

If you submit multiple files, please name them in a fashion that indicates what they contain, e.g. hw1_q2_drawing.jpg, hw2_part1.pdf, hw2_part2.pdf, and so on.

If you have any difficulties submitting to Moodle, contact me or Steve Garcia for help. Emailed submissions are not guaranteed to be accepted since my email volume is so high and the spam detection software can silently drop emails.

Late Policy for Homework
If there is no late policy posted on the homework assignment, then the homework may be turned in up to three days late. Saturday and Sunday combined count as only one day late (e.g. if the assignment is due Friday and you turn it in Sunday, it will be marked as one day late). If there is a late policy posted on the assignment, then that policy will apply for that particular assignment. Late homework will be marked down 10% for each day it is late.

Midterms
Midterm 1 will be given on Tuesday January 27, 2015 during lab time
Midterm 2 will be given on Tuesday February 24, 2015 during lab time

If you miss a midterm, please inform me as soon as possible of the reason for missing the midterm. Makeup midterms will not be given, but the other midterm will be counted proportionally higher if you have a valid reason for missing a midterm.

Midterm review sessions will be on the previous Friday at 3:15pm in Sci III 315.

Final
Wednesday March 18, 2015 from 5:00 - 7:30pm in Sci III 315

If you cannot make the scheduled final time because it conflicts with another final or you have more than two finals scheduled that day, arrange an alternate time with me at least ONE WEEK in advance of the above date.

The final review session time will be announced in class.

Prepared By
Melissa Danforth on 31 December 2014
Approval
Approved by CEE/CS Department on [date]
Effective Winter 2015