CMPS 2240 Computer Architecture I - Assembly Language Programming
Gordon Griesel
Office: Sci III 337
Office Hours: by appointment
Email: gordon@cs.csub.edu
Course web site: https://www.cs.csub.edu/~gordon/2240/
Class meets:
MWF 8:00am - 8:50am in Sci-III 311 (lecture 32517)
Tues 7:20am - 9:50am in Sci-III 311 (lab 32518)
Catalog Description
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.
Each week lecture meets for 150 minutes and lab meets for 150 minutes.
Prerequisites: C- or better in the following CMPS 2010 and MATH 1040 or 1050 or
1060 or 2310 or 2510.
Prerequisites by Topic
Programming skill in a high level language such as C, C++, Java.
Required Textbooks
Purchase of any textbooks is optional.
See textbooks link on our main page.
Appendix A from Computer Organization & Design
by Patterson & Hennessey; 3rd Ed.
Appendix A is available online.
Latest edition places similar material in Appendix B.
MIPS Assembly Language Programming by Robert L. Britton (available online).
Additional material will be available online from our main website.
Lecture Topics and Rough Schedule
Week 1 Operations on binary, octal and hexadecimal numbers
Week 2 Arithmetic, shift & rotate operations
Week 3 Subroutine linkage & call frames
Week 4 Instruction encoding, jumps & branches
Week 5 Program optimization
Week 6 Logical and bit-field operations & condition testing
Week 7 Multiplication, division, branch delay slot
Week 8 Introduction to x86-32
Week 9 x86-64 code optimization
Week 10 x86 inlining with C/C++
Week 11 More x86 inlining with C/C++
Week 12 Mips file processing
Week 13 Floating-point formats 8-bit, IEEE 32-bit
Week 14 Recursion and stack frame
Week 15 Review of solutions, project completion
Week 16 Final exam
Grading Policy
Homework........... 5 points x 15 75 15%
Labs............... 5 points x 15 75 15%
Quizzes............ 10 points x 15 150 30%
Final Exam......... 100 points x 1 100 20%
Final Project...... 100 points x 1 100 20%
---- ----
Total points possible............... 500 100%
The overall distribution of scoring is reflected above.
The number of assignments may change slightly.
Letter grade will be based on percentage of total possible.
Grading Scale
A 100% |
A 93% |
A- 90% |
B+ 87% |
B 83% |
B- 80% |
C+ 77% |
C 73% |
C- 70% |
D+ 67% |
D 63% |
D- 60% |
F 0% |
Scores will be posted on the course website during the quarter.
Attendance
Class attendance is both recommended and required.
Missing a class period can cause a zero score for the
following assignment types:
- lab assignment
- pop quiz
- assignment given verbally
- hands-on coding assignment
- participation exercise
- project presentation
- others that may not be listed
Attendance is taken before class begins. When the "bell rings", you should be
in your seat and ready to go.
Note:
Current time is determined using an Andriod phone which runs about 15-seconds
behind the official U.S. time presented on www.time.gov. Plan your time using
time.gov and never be late.
Attendance scoring:
If you miss one class session, no big deal. The second class missed causes a
deduction of 1/2 percent to your overall course grade. The count then starts
again and every second class missed causes a 0.5% deduction in your grade.
If you arrive late to class once, no penalty. The second late arrival causes
a deduction of 1 percent to your overall course grade. The count then starts
again and every second late arrival causes a 1.0% deduction in your grade.
Labs
Labs are hands-on assignments designed to be done in the classroom
on classroom computers. You may install the necessary components
on your own laptop computer, and bring it to class.
- Attendance is required for any credit.
- Full attendance is required for full credit.
Full attendance is defined as coming to class on-time and working throughout
the entire lab session. Lab assignments are due by the end of the lab period.
Important:
Do not arrive late to a lab session and then ask another student to help you
with the assignment.
Lab Submission
All lab files due must be located in your folder on Odin.
This area on the Odin server will be set up for you during the first week
of class. Instructions will be gived during the course to help you submit your
assignments correctly.
Homework
Homework assignments are posted on our web page. Please work out the problems
on paper with a pencil and eraser on lined, graph, or blank paper.
The questions do not have to be written, just the answers. Show some care and
effort for full credit. Homeworks are due on Fridays at 7:59am just prior to
the weekly quiz.
Final Exam
The final exam will be given during finals week, and be similar to the
quizzes given during the semester.
The Semester Project
The semester project will ask you to write a somewhat complex program using all
the assembly language knowledge you have learned throughout this course.
A complete description of the project requirements will be available around
week-3 of the course. The project could take 20 to 40 hours of programming
work to complete, depending upon the grade level you wish to achieve.
Late Assignment Policy
Late assignments will not be accepted and result in a score of zero.
Time Conflicts
Time conflicts are not allowed.
Your own personal schedule must allow you to arrive on-time to class, and stay
for the entire class period.
Time conflict should be disclosed to the instructor on the first day of class.
CMPS-2240 is a hands-on course taught in-person in the classroom by your
instructor. This course is in no way an on-line course. In-class assignments
are not to be done at some remote location.
Individual Work Policy
All work done in this course is individual work.
Sharing of source code is not allowed.
Possession of code written by other students is not allowed.
Copying another student's work is plagiarism.
Copying answers or source code from the Internet is also plagiarism.
Asking a tutor or another person to do your work for you is cheating.
Do your own work please.
If you are struggling to learn the material, then do the following:
- Complete all the reading assignments.
- Ask the tutors some specific questions about what you're stuck on.
- Come to every class session.
- Practice your programming every day.
- Contact Gordon for help.
Classroom Behavior
- On 9/1/2017 CSUB became a smoke-free and tobacco-free campus!
Please do not smoke, vape, chew, or spit in the classroom.
- Please do not wear headphones or earbuds in the classroom.
Refer to the accommodations section above if needed.
Your instructor reserves the right to ask you to remove your headphones
inside the classroom.
- Please do not use your cellphone during class time.
- Please do not walk in front of the instructor while a lecture is in progress.
- The use of an electronic recording device is not allowed.
Recordings
Under California Education Code Section 51512, it is illegal for any person,
including a student, to use an electronic device to record what is happening in
the classroom without the consent of the instructor. It is a felony offense.
The instructor for this course does not give consent for recordings of
any kind.
If a disability requires you to record a class session, then please contact
SSD so accommodations can be made.
Academic Integrity Policy
All work done in this course is individual work.
Please do not share your work with other students.
You may discuss assignments with other students, but sharing of source code
is simply not allowed. Refer to the Academic Integrity policy printed in the
campus catalog and class schedule. Violations are enforced in accordance with
the Department's policy on academic honesty.
Absence from class
A student's responsibilities include attending classes.
If you miss a class, it is your responsibility to inform Gordon of the reason
for the missed class (documentation may be required) and to arrange to make up
any missed assignments, exams, quizzes, and class work, to the extent that this
is possible. Excusable absences include, but are not limited to:
Illness, injury, death of an immediate family member, etc.
See a complete list at CSUB Catalog page 64.
Your instructor reserves the right to amend this syllabus during the semester.