CSC264 Computer Computer Organization and Architecture II

Professor Emmi Schatz
Email: eschatz@middlesexcc.edu or use the canvas inbox
Phone: 215-839-8209
     Calls: If I don't answer, leave a voicemail that includes your name, and I will return your call.
     Texts: Include your name in your text.
Web Page: http://cs.middlesexcc.edu/~schatz


Office Hours:

Walk In/Zoom Hours are Tuesday and Thursday 12:30 to 2:00

By Appointment Hours are Monday and Wednesday 11:30 to 12:30.

Contact me by email, text, or phone at any time. I will respond (usually within a few hours, unless I'm sleeping) and we will resolve your question.

Prerequisite: CSC263

Corequisite: None

Textbooks:     The Essentials of Computer Organization and Architecture, 5th Edition
                      Authors: Linda Null and Julia Lobur
                      Jones and Bartlett, 2019

                      An Introduction to MIPS Assembly Language, 4th Edition
                      Authors: Linda Null and Julia Lobur
                      Jones and Bartlett, 2017

These are the same books that were used in CSC263.

Course Description:

In this course you will continue the study of the fundamentals of computer architecture. This semester we will explore internal components including the processor, memory, and I/O devices, and learn how they can be designed to improve performance. We will extend our knowledge of data representation by studying floating point, and we will learn the basics of C programming, which has largely replaced assembler when execution speed is important. We will also study the operating system and the services it provides to application programs.

Why is it important for computer science students to study computer architecture? Certainly it's possible to write code without knowing anything about the machine that executes it, just as it's possible to drive a car without knowing how it works. But the characteristics of the hardware impact how our code runs, and understanding these characteristics can help us write better code and deal with certain kinds of errors. Plus it's really interesting! If you've only coded in a high level language like Java, you have no idea what the hardware can do versus what the language is doing for you.

Course Objectives:

  1. Describe the functional components involved in instruction execution and the actions required to execute instructions.
  2. Convert numbers to and from IEEE floating point and use floating point data and instructions in MIPS programs.
  3. Describe the MIPS instruction pipeline, pipeline hazards, and the resulting speedup.
  4. Describe the memory hierarchy including cache memory and hit ratio, replacement policies and write policies.
  5. Describe the need for error correction and encode and decode data in error correcting codes such as Hamming codes.
  6. Describe I/O systems, storage devices, and their characteristics, and how they relate to system performance.
  7. Describe the services provided by the operating system.
  8. Design, write, and debug C programs using strings, functions, arrays, pointers, and structures.

Accomodations:

If you need accomodations due to a disability, please contact the Counseling and Career Services Department, Edison Hall Room 100, 732-906-2546.

Attendance Policy:

The student is expected to attend all class sessions. The student is responsible for any material missed because of absence or lateness.

Lab Assignment Due Dates:

Five points will be deducted for a lab that is one or two days late. Ten points will be deducted for a lab that is more than two days late. No lab will be accepted more than one week late. Lab assignments are graded on a scale of 0 to 100. Students are not permitted to miss class lectures in order to work on their lab assignments or homework.

Make sure that you follow the requirements in the assignment. Do not change the input or the input format; do not change the output format.

Labs will be submitted through Canvas. Labs are not accepted through email.

Problem Sets:

Problem sets consist of questions and problems for you to do outside of class, including coding problems. These problem sets are very important practice for you to gain the understanding and skills needed in the class. These will be very helpful in preparing you for the labs and exams. The answers to the exercises will be provided. Questions on these problems are welcome, in class or in office hours!

COVID-19 Policy:

Masks: Masks are optional at Middlesex College in all spaces, classrooms and centers. We are a mask-friendly college; any member of the College community who wishes to wear a mask, or not wear a mask, is welcome to do so, and all members of our community are expected to be respectful of each other’s decision.

Vaccines: Vaccines are not required, but highly encouraged. There is no COVID testing requirement for unvaccinated students. For vaccine resources, see the Middlesex County website.

Isolation: If you test positive for COVID-19, stay home for at least 5 days and isolate from others in your home. You are likely most infectious during these first 5 days. If you had no symptoms, you may end isolation after day 5. If you had symptoms, you may end isolation after day 6 if you are fever-free for 24 hours (without the use of fever-reducing medication) and your symptoms are improving. If you still have fever or your symptoms have not improved, continue to isolate until they improve. Remember to wear a high-quality mask indoors through day 10. For more information, see the CDC website.

If you are absent from class due to isolation, contact your instructor for guidance on completing missed coursework.

You should also notify your close contacts that they may have been exposed to COVID-19. Close contacts are defined as anyone who spent 15 minutes or more within a 24-hour period wand was within 6 feet of a person infected with COVID-19 (2 days before onset of symptoms).

Quarantine: As per recent updates to CDC guidance, quarantine is not recommended for exposure to COVID-19, regardless of vaccination status. People exposed to COVID-19 should mask up for 10 days and get tested five days after exposure.

Please visit https://www.middlesexcollege.edu/coronavirus/ for the latest information.

Make-Up Policy:

Exams can be made up only in an emergency with prior permission of the instructor. A student must email before the exam. In addition the student will be required to bring documentation of the emergency. Documentation includes a doctor's note, a bill from a car mechanic, or some other proof of the emergency situation. If a student has missed a session of class prior to an exam and a student returns on the day an exam is scheduled, the student will be required to take the exam scheduled for that session. Otherwise, a grade of zero will be earned for that exam.

Only one make up exam will be permitted for a given student.

THERE ARE NO MAKE-UPS FOR QUIZZES. If a quiz is missed, a zero is automatically earned for that quiz. The lowest quiz grade will be dropped.

It will be up to the student to find out what work has been missed due to absence. Absenteeism due to vacations or business or other obligations will be treated the same as any other absence. Students should make arrangements for makeup work before a predetermined absence or right after an unplanned absence.

Cell Phone Guidelines:

All cell phones must be turned off or silenced during class and put away in a pocket, purse, or book bag. Use of your cell phone, even for texting, is very distracting to your fellow students and your instructor. If you anticipate an urgent call that you must take during class, please let me know before class begins. Otherwise you will not be permitted to answer calls or text messages during class.

Honesty Policy:

You are expected to design, code, and debug your programs individually. Under no circumstances may you share a copy of your program with another student. A student who shares their program with another student or copies a program from another student will receive a zero for two assignments. Copying code from a source online is also considered cheating! Any student who cheats on an exam or quiz will receive a zero for that particular instance. Any instance of cheating can result in an F for the course depending upon the circumstances. Two instances of cheating by a student will definitely result in an F for the course.

You may discuss an assignment to clarify what is required. You may discuss a specific statement or a couple of statements in a program to determine what it is doing, or should be doing. However, you may NOT share your program with a classmate, nor may you read or copy another student's program.

DO NOT USE THE INTERNET TO GET IDEAS ON HOW TO CODE YOUR LABS. You should be writing your own code without looking at how others have approached similar problems.

Grading Criteria:

Grades will be based on the following breakdown:

  20% Exam 1
  20% Exam 2
  10% Research/Writing Assignment
  14% Quizzes (lowest grade dropped)
  14% Lab Assignments
  22% Final Exam

Final letter grades will be calculated as follows:
  A 93 - 100 (all assignments must be completed)
  A- 90 - 92
  B+ 87 - 89
  B 83 - 86
  B- 80 - 82
  C+ 77 - 80
  C 70 - 76
  D 60 - 69
  F below 60

 

Class Schedule (subject to change):

 

Week Topic Reading (Null/Lobur book)
January 23 Introduction, Organization and Architecture, MIPS Variables and Arrays Sections 1.1 - 1.3, 1.8 - 1.10
MIPS Supplement Chapter 5
January 30 MIPS Variables and Arrays, Data Representation: Floating Point Section 2.5
February 6 Data Representation: Floating Point, MIPS Floating Point Section 2.5, MIPS Supplement Chapter 5
February 13 The Processor Sections 4.1 - 4.7, 4.9.2, 4.11, 4.14
February 20 The Processor
No Class Monday February 20
Sections 4.1 - 4.7, 4.9.2, 4.11, 4.14
February 27 Data Representation: Error Correcting Codes
EXAM 1
Section 2.7
March 6 Data Representation: Error Correcting Codes, Memory Sections 2.7, 6.1 - 6.5.1
March 13 Spring Break  
March 20 Memory Sections 6.1 - 6.5.1
March 27 I/O and Storage Sections 7.1 - 7.4.2, 7.6
April 3 Getting Started with C, Functions  
April 10 C Functions, Arrays  
April 17 C Strings, File I/O
EXAM 2
 
April 24 2D Arrays and Arrays of Strings  
May 1 C Pointers  
May 8 Review and Final
FINAL EXAM MAY BE DURING THE FINAL EXAM PERIOD MAY 10-12
 


Email Me | Office Hours | My Home Page | Department Home | MCC Home Page

© Copyright Emmi Schatz 2023