CS33: Computer Organization

Announcements | Schedule | Grading | Labs | Integrity | Links

Introduction

This course takes a bottom-up approach to answering the question of how a computer works. Topics include theoretical models of computation, bits, bytes and data representations, operations on data, digital logic structures, computer memory, assembly and machine code, hardware components, the stack, the operating system, compilers, and the C programming language. We examine the hardware and software components required to go from a program expressed in a high-level programming language like Python or C to the computer actually running the program.

This course assumes completion of CS21 or its equivalent. It is the best entry point for students intending to be CS majors or minors who already have extensive computing experience.

Class information

Professor: Richard Wicentowski
Office: Science Center 251
Phone: (610) 690-5643
Office hours: Wednesday 1:00-3:00 pm or by appointment

Room: Science Center 240
Time: Tuesday, Thursday 1:15pm–2:30pm
Text: Patt, Y. and Patel, S. Introduction to Computing Systems: From bits and gates to C and beyond (2nd edition).

Announcements

Schedule

Grading

Your overall grade in the course will be determined as follows:
50%Labs
25%Final Exam
20%Midterm Exam
5%Class Pariticipation and Attendance

Labs

Lab assignments will typically be assigned on Thursday and be due the midnight before the next Thursday.

You are encouraged to work with a partner on each lab assignment.

You will submit your lab work electronically using the handin33 program. You may submit your a lab multiple times, each submission overwriting the previous one. Only the final submission will be graded.

Late labs will not be accepted except in extreme situations and only if you contact me before the deadline or have made prior arrangements. Even if you do not fully complete an assigment, you may submit what you have done to receive partial credit.

Academic Integrity

Academic honesty is required in all work you submit to be graded. With the exception of your partner on assignments, you may not submit work done with (or by) someone else, or examine or use work done by others to complete your own work.

You may discuss assignment specifications and requirements with others in the class to be sure you understand the problem. In addition, you are allowed to work with others to help learn the course material. However, with the exception of your lab partner, you may not work with others on your assignments in any capacity.

All code you submit must be your own with the following permissible exceptions: code distributed by me as part of the class, code found in the course text book, and code worked on with your assignment partner. You should always include detailed comments that indicates which parts of the assignment you received help on, and what your sources were.

Please see me if there are any questions about what is permissible.

Below are some external links which may be helpful to you.

Basic Unix Commands
Textbook site