CPTR 346 Computer Organization and Machine Language -
Syllabus
Instructor: Dr. Eileen M. Peluso, D307
Email: pelusoem@lycoming.edu
Office hours: To be announced . . . see www.lycoming.edu/~pelusoem
Objective: This course focuses on the boundary between hardware and software and explores the level of hardware at the vicinity of this boundary. Students will master the fundamental concepts and techniques of assembly language programming, their relationship to higher level languages, and the tools needed for assembly language program development. With this knowledge, students will then study the implementation of an instruction set architecture, focusing on design decisions and their relation to performance. Several different versions of a CPU will be investigated, including single clock, multiple clock, and pipelined processors. Other topics of study will include internal data representations, logical networks, superscalar and dynamic pipelining, and memory hierarchies. Students will apply the knowledge of assembly language processing and internal data representation in a higher level language, C++.
Text: Patterson and Hennessy, Computer Organization and Design: The Hardware/Software Interface, 3rd edition, Morgan Kaufmann Publishers, Inc., 2005.
Class Material: A free copy of PCSpim, the assembly language simulator
that we will be utilizing in the course, can be downloaded from the following
URL: http://www.cs.wisc.edu/~larus/spim.html.
Grading:
· Laboratory, Homework, and Informal Writing Assignments: 20%
· Formal Writing Assignments: 10%
· Exams(3): 45% (tentatively scheduled for Sept. 29th, Oct. 27th, and Nov 22nd)
· Final: 15%
· Final Project: 10%
Grade scale: If you earn the following average, you will receive at least the grade indicated.
· 90 or above A-
· 80 – 89 B-
· 70 – 79 C-
· 60 – 69 D-
· 59 or below F
Attendance Policy:
Students are
expected to attend class and lab, and to be on time. Students are allowed 5 absences for
the semester, for whatever reason. After
the 5th absence, points will be deducted from your semester average
as follows: 1 point for the 6th
absence, 2 points for the 7th absence, 4 points for the 8th
absence, and so on.
Attendance signature sheets will be circulated at the beginning of each class period. It is the student's responsibility to make sure that they have signed the day's attendance sheet. It is also the student's responsibility to obtain details about any missed work, announcements, and any information disseminated during the missed classes.
Remarks:
1. Students will not be excused from exams unless
· they are ill and have been to the infirmary or have seen a doctor, or
· they have an emergency situation and have received exemption from the dean.
It is wise to contact me before missing an exam. Any tests or quizzes missed will result in a grade of zero unless arrangements for a make-up are made within 48 hours.
2. Informal writing assignments will consist of one in-class writing assignment and up to 13 email writing assignments. Email assignments will generally be mailed on Wednesday to be responded to by Friday and will involve a reading assignment and will require an email response to some questions based on that reading. There will be no informal email assignments during the first and last weeks of the semester. Each of these will be graded on a not done, ü-, ü, ü+ system, converted to a 0, 1, 2, or 3, respectively. An average of 2.0 will be equivalent to an 85%.
3. As with writing assignments, a certain amount of the grading of programming assignments will be subjective. As a matter of principle, if you have a program that works according to the specification given in the assignment handout, that should earn you at least a C-range, but most likely a B-range grade. The difference between a B and an A comes down to documentation, structure, following a certain style of programming, and in some cases how you answer questions associated with the assignment. All of these aspects will be discussed as they come up in the course.
4. Students are encouraged to work collaboratively on course work, including programming and lab assignments. In fact, students taking computer science courses are given priority access to lab A3 from the hours of 7-10 PM on Sunday through Thursday evenings so that they might work together.
Discussions with other students about programming and lab assignments are encouraged, however academic dishonesty is not allowed. There is a fine line between the two. Check if you are not sure that what you are doing is acceptable. However, as a general rule of thumb: The difference between sharing ideas and plagiarism will be determined by the instructor as follows: if you cannot discuss, expound upon, justify, and modify what you have written, then you have plagiarized.
NOTE: You should never have in your possession or have access to (in paper or electronic form) a copy of someone else's labs or programming assignments. There are no team programming projects in this course. Each student should have his/her own solutions to all labs and programming assignments.
5. There is no student tutor for this course. Students are encouraged to establish formal or informal study groups.
6. Lab is scheduled for Tuesday mornings, 9:45 – 11:35. Bring your text and accompanying CD to lab with you. Lab assignments are designed to be finished in the allotted lab period. If that is not possible, they are due no later than 5:00 PM on the following Friday. Labs will be returned during the next scheduled lab period, at which time errors can be corrected so that full credit for the lab can be earned. (This is known as the "redo" option. Students have one additional week from the date that the lab is returned to correct it and turn it in for full credit.) Labs turned in after the due date but PRIOR TO the next week’s lab will receive credit, however they will not be given a "redo" option.
7. Programming assignments can often take a lot of time. Don’t plan on finishing a programming assignment in one sitting. Instead, spread it out over a few days. Programs that are developed and refined over a few iterations end up with much cleaner structures and are easier to understand.
8. Attached is a tentative reading schedule outlining those sections of the text that should be read PRIOR TO the class period for which they are listed. Although you may not understand the material upon first reading, you will find class lectures to be much more valuable if you have seen the material at least once. I believe that getting into this habit will go a long way in your comprehension of the course material.