CSSE132 - Introduction to Computer Systems

Rose-Hulman Institute of Technology

Computer Science and Software Engineering Department

Spring 2015-2016

Description

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.

Prerequisites

CSSE 120

Schedule

The course schedule page has the topics and due dates for the course materials. Please bookmark that page.

Meeting Times

Section 1 MTR
W
4
7-9
O259
O259
Section 2 MTR
W
1
1-3
O259
O157
Section 3 MTR
W
2
1-3
O259
O267
Section 4 MTR
W
3
4-6
O259
O259

Instructors

Micah Taylor
Moench F205
812-877-8396
taylormt@rose-hulman.edu

Valerie Galluzzi
Moench F222

Sid Stamm
Moench F216
812-877-8364
stammsl@rose-hulman.edu

Textbooks and Equipment

BO: 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).

Recommended:
PH: Computer Organization and Design, 5th edition. D. A. Patterson and J. L. Hennessy. Morgan Kaufmann, 2013. (Known errors).
Chapters and Sections from this text are denoted PH on the schedule.

Recommended:
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:

Reading Assignments

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.

Homework

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.

Quizzes

Periodic 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.

Laboratory Assignments

There are several labs listed on the on the schedule. The labs utilize Linux, C, assembly language, your Raspberry Pi 2, and the Xilinx ISE tools. Completed labs are submitted via in-person verification and svn.

Exams

There will be two midterm exams and a final. You must earn a passing average on the exams to pass the course.

Grading

In general, these are the weights for various parts of the course:

Homework and Quizzes 30%
Labs and in class exercises 35%
Exams 35%

Generally, 90-100% is an A, 80-89% is a B, etc. For more information on a grading policy, see the Grade Descriptions section of the registrar's web page for details.

Collaboration

Collaboration is encouraged on homework and laboratories. It is prohibited on all quizzes and exams. When you collaborate, you must properly credit your collaborators and clearly indicate the extent of the collaboration. Working out a solution as a group is acceptable collaboration. 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. Copying is not collaboration. Failure to properly acknowledge collaboration can be considered cheating.