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.
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).
|WEEK||DAY||ANNOUNCEMENTS||TOPIC & READING||LAB|
|1||Sep 02||Chapters 1-2
|2||Sep 09||Chapter 3
|Sep 11||Drop/Add ends (Sep 12)||
|3||Sep 16||Chapter 4
|Sep 18||Chapter 5
|Sep 25||Chapter 6
|5||Sep 30||Chapter 7
|Oct 02||Chapter 8
|6||Oct 07||Chapter 9
|Oct 09||Chapter 10
|7||Oct 21||Chapter 10 (continued) + quick review|
|8||Oct 28||Chapters 11-12
|9||Nov 04||Chapters 13-14
|Nov 06||Last day to declare CR/NC or withdraw with a W (Nov 07)|
|10||Nov 11||Chapter 16
|11||Nov 18||Chapters 17-18
|12||Nov 25||Chapter 19
|13||Dec 02||Chapter 19 (continued)||10|
|Dec 04||Chapter 15
|14||Dec 09||Review and other things|
Final exam: Tuesday, Dec 16 from 2:00-5:00 pm
|5%||Class Pariticipation and Attendance|
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 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.