Welcome to CS33: Computer Organization. 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.
Please turn OFF all cell-phones. No vibrating. No texting.
Lab assignments will typically be available on Friday and be due at 11:29 pm the next Thursday.
You are encouraged to work with a partner on each lab assignment.
You will submit your lab work electronically in ways to be discussed in class.
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 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. Giving full citation for any help received (whether by a person, on-line, book, or any other source) will avoid questions of academic honesty.
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 indicate 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.