CSSE132 - Introduction to Computer Systems
Rose-Hulman Institute of Technology
Computer Science and Software Engineering Department
Provides students with an understanding of system level issues and their impact on the design and use of computer systems. Examination of both hardware and software layers. Basic computation structures and digital logic. Representation of instructions, integers, floating point numbers and other data types. System requirements, such as resource management, security, communication and synchronization, and their hardware and/or software implementation. Exploration of multiprocessor and distributed systems. Course topics will be explored using a variety of hands-on assignments and projects.
The course schedule page has the topics and due dates for the course materials. Please bookmark that page.
Textbooks and Equipment
PP: Computer Systems: A Programmer's Perspective, 3rd Edition
Randal E. Bryant and David R. O'Hallaron Pearson, 2016 (errata)
All Chapters and Sections listed on the schedule without a source are this book: Bryant and O'Hallaron (or
BO on the schedule).
Practice problems taken from this book are denoted
PP on the schedule, and this text contains the solutions for self-assessment.
PH: Computer Organization and Design, 5th edition.
D. A. Patterson and J. L. Hennessy.
Morgan Kaufmann, 2013.
Chapters and Sections from this text are denoted
PH on the schedule.
KR: The C Programming Language, 2nd Edition.
Brian W. Kernighan and Dennis M. Ritchie.
Prentice Hall, 1998
Chapters and Sections from this text are denoted
KR on the schedule.
In addition, the following additional equipment is required for the labs and homework:
- Xilinx ISE version 14.7 design tools (provided by your instructor)
- A Raspberry Pi 3 (B or B+ model -- you must purchase one of these)
It would be to your benefit to do the reading assignments before they are covered in class so we can devote class time to discussing difficult ideas and algorithms. You are responsible for all the material in the assigned sections of the book, whether explicitly discussed in class or not.
In addition to the reading assignments, there will be small coding assignments done on a web site specified by your instructor. These will be graded like small homework assignments and are intended as interactive reading assignments to be done outside of class.
The written homework assignments are listed on the class schedule. Solutions will generally be available the day after homework is due. Therefore, a penalty is assessed for late homework. Solutions to the homework should be presented using good style. Your name should appear at the top of each page. Be sure to state any assumptions that you make to solve the problem. Above all it must be legible--if the graders can't read it, you won't get credit.
In-class quizzes may be given. Quiz material will be drawn primarily from the assigned readings, suggested problems and lectures. Quizzes cannot be made up. One quiz will be dropped from the final quiz score.
There are several labs listed on the on the schedule. The labs utilize Linux, C, assembly language, your Raspberry Pi, and the Xilinx ISE tools. Completed labs are submitted via in-person verification and svn. When done in partners, both of you must be able to demonstrate your solutions.
There will be two midterm exams and a final.
You must earn a passing average on the exams to pass the course.
You must earn at least a C average on exams to earn a C or better in the course.
In general, these are the weights for various parts of the course:
|Homework and Quizzes||35%|
|Labs and in class exercises||25%|
Generally, 90-100% is an A, 80-89% is a B, etc.
The above is a guideline that we typically follow. Please understand that it is not a promise. We will do our best to conform to the institute-wide grading policy described in the Grade Descriptions section of the registrar's web page. As you read it, note in particular that phrase "thorough competence to do excellent work" appears in the description of the "B" grade (the standard for "A" is even higher), and it further states that "B" and "B+" will not be given for mere compliance with the minimum essential standards of the course.
Quizzes, labs, and other activities take place in class. As a result, attendance is not optional. Please show up to class.
Collaboration is encouraged on homework and laboratories. It is prohibited on quizzes and exams.
When you collaborate, you must:
- properly credit your collaborators
- clearly indicate the extent of the collaboration
- understand the work as well as if it were your own and are able to explain it to your instructor
Working out a homework solution as a group can be acceptable collaboration if you follow the guidelines above. Each individual is responsible for understanding the entire solution. For homework, this means that once a group solution has been achieved, each collaborator must rework the problem and write up the solution independently.
If you are ever in doubt about whether some specific situation violates the policy, the best approach is to discuss it with your instructor beforehand. This is a very serious matter that we do not take lightly. Nor should you.
You should never look at another student's code to get ideas of how to write your own code. Beginning the process of producing your own solution with an electronic copy of work done by other students is never appropriate.
Copying is not collaboration.
Plagiarism (where a student solution to an exam or assignment was copied from another student's solution, past or present, or any solution that is posted anywhere) or other cheating will result in a score of -100% for the assignment or exam. Egregious cases will result in a grade of "F" for the course. Furthermore, such cases will also be reported to the Department Head and Dean of Students, as required by the Institute policy, to be added to the student's record and so discourage repeat offenses. More importantly, such dishonesty steals your own self-esteem and your opportunity to learn. So don't cheat!