CS 24 Fall 2010
Course Information
Learning Outcomes
In this course you will learn to:
- Develop small assembly language programs that demonstrate basic computer organization.
- Analyze basic strategies and design compromises of computer organization and design.
- Investigate the role played by the operating system and compiler technology in computer organization and design.
Objectives
- Design and implement assembly language programs using machine instructions, addressing modes, subroutines, macros and interrupts to solve problems of simple complexity.
- Compare and contrast the basic relationship between hardware and software design.
- Analyze the basic computer architecture using engineering principles and quantitative cost/performance trade-offs.
- Design an ALU by understanding the basics of computer binary arithmetic and logic including addition, multiplication and division floating point representation.
- Illustrate the basics of logic design including gates, truth tables and combinatorial logic.
Course Objective
CS 24 is a computer engineering course for computer science majors. Its purpose is to give a fundamental understanding of the organization of computer system. Topics covered include assembly language, the role of instruction sets, computer arithmetic, processors, pipelining, memory systems and i/o systems. Some assembly language programming is required and the hardware labs will require some simple C programming, but the majority of the assignments are written homework problems.
Course Textbook
Computer Organization and Design 4th edition,
Patterson and Hennessy, Morgan Kaufmann
SPIM processor simulator
All the programming work done in the class must follow the MIPS (SPIM) standards used in the textbook and class code examples. We will be using Spim 8.0, which is available for OS X, Linux, and Windows. You will need to install this free software on your computer. I will be testing your programs on wither Spim 8.0 (not xspim) on OS X.
Arduino Development Environment
You will be writing simple programs for the hardware labs (Arduino Duemilanove based.) We will be using version 0018 of the Arduino Development Environment, which is available for OS X, Linux, and Windows. It requires a working installation of Java. You will need to install this free software on your computer.
Responsibilities
You are responsible for the assigned reading and what is covered in class each week, including announcements. If you are unable to make it to class, you should arrange to have someone in the class take notes
Grading
You may obtain a letter grade (A, B, C, D, or F), or you may choose instead to take the class for pass/no pass. The latter option means that your grade for this course will be pass if you score at least 70.0% overall and no pass if you don't. Please declare the option you want on your student information sheet. You may change your grading option until the official college deadline. If you do not specify a preference, you will recieve a letter grade. Those who earn 90.0% or more of the possible points will get an A, 80.0% B, 70.0% C, 60.0% D, and lower F.
Flexible Lab Hours
I will be assigning exercises, generally weekly, for you to complete during the semester. These exercises will help you learn the course material, review important programming concepts, and prepare for your programming projects and exams. These exercises are not graded. During the first two weeks of class, we will discuss the proceedures used to track your lab time (5 hours and 10 minutes per week.) Please let me know if you have any questions regarding the lab portion of the class.
Homework Assignments
This class will have approximately eleven homework assignments. There will likely be two MIPS assembly language programming assignments, two hardware labs that will require you to build simple hardware projects (and program them with simple C programs using the Arduino hardware platform,) and seven written homeworks containing problems from the textbook chapters. The homework assignments will comprise 50% of your final grade. The written homework assignments and the programming assignments must be completed individually. The hardware labs will be completed in teams of two with one lab report per group with each member receiving the same score.
Your homework assignments will be submitted via email to sthodges@cabrillo.edu and must follow some submission guidelines.
Written homeworks (including hardware lab reports) must be computer generated (using such tools as a word processor, spreadsheet, coding environments, digital cameras, and drawing, graphing, or layout programs) and will be submitted in either .doc or .pdf formatted attachments. Written homeworks will be submitted via email to sthodges@cabrillo.edu at the designated times and dates.
Late assignments will not be accepted. If your work is not complete by the due date, submit whatever portion you have completed and proceed to the next assignment.
Cheating, Plagiarism and Collusion
Review this page on Academic Integrity
It is useful is to collaborate with others. On the other hand, you are unlikely to learn the material unless you do your own work. Please ask me for guidance if you are uncertain about where to draw the line in collaboration.
Exams
There will be a midterm and a final exam. Exams will be closed-book written exams. Exams must be taken when given except by prior arrangement with me. Each exam contributes 20% to your final grade.
Quizzes
There will be between three and seven quizzes during the semester. They will consist of problems similar to the homework problems or techniques that have been described in class. The quizzes contribute 10% to your final grade. The quizzes will be closed book exams. Quizzes may be scheduled or unscheduled. When possible I will let you know what textbook sections will be used to write the quiz questions. If you are going to miss a scheduled quiz, you can contact me prior to the quiz to arrange a make-up. Unscheduled quizzes can not be made up.
Consulting with me
If you need some extra help, or need to consult with me regarding any course-related matter, please feel welcome to contact me during my scheduled lab or office hours. My lab and office hours provide times that are specifically reserved for helping you outside of the lecture. Make an appointment if you cannot come during my scheduled lab or office hours. My lab and office hours are shown on my web page.
This is a difficult course. Almost everybody is going to get “stuck” at some point in the semester. When this happens please don't hesitate to get some help. A little bit of help can save you hours of pounding your head against the wall. I have regular office hours and lab hours or you can send me email or call me.
Students needing accommodations should contact the instructor as soon as possible. As required by the Americans with Disabilities Act (ADA), accommodations are provided to insure equal opportunity for students with verified disabilities. If you need assistance with an accommodation, please contact Disabled Student Services, Room 810, 479-6379, or Learning Skills Program, Room 1073, 479-6220.