This syllabus is subject to change based on specific class needs, especially the schedule. Significant deviations will be discussed in class.
This course aims to convince students that no magic is required to make computers work by teaching the design and operation of digital computers. By learning about the organization of computers, including processor datapath, processor control, memory systems, and I/O, students will develop an intuition about why hardware is the way it is and how software interacts with hardware. Through detailed implementation experience students will learn to make careful tradeoffs between functional, performance and cost goals when selecting and interconnecting hardware components.
Possible topics include:
The course textbook will be:
Other sources will be posted on this webpage as needed.
Late Assignments: In general, late assignments will not be accepted. Exceptions may be made only for situations beyond your control. If you feel your reason is justified, schedule a meeting with the instructor to plead your case.
Academic Dishonesty: Monmouth College’s official policy on academic dishonesty can be found here. You are responsible for reading and complying with that policy.
In this course, any violation of the academic honesty policy will have varying consequences depending on the severity of the infraction as judged by the instructor. Minimally, a violation will result in an “F” or 0 points on the assignment in question. Additionally, the student’s course grade may be lowered by one letter grade. In severe cases, the student will be assigned a course grade of “F” and dismissed from the class. All cases of academic dishonesty must be reported to the Associate Dean who may decide to recommend further action to the Admissions and Academic Status Committee, including suspension or dismissal. It is assumed that students will educate themselves regarding what is considered to be academic dishonesty, so excuses or claims of ignorance will not mitigate the consequences of any violations
Collaboration: We encourage you to make use of the resources available to you – it is fine to seek help from a friend, tutor, instructor, internet, etc. However, copying of answers and any act worthy of the label of “cheating” is never permissible! It is understandable that when you work with a partner or a group that the resultant product is often extremely similar. This is acceptable but be prepared to be asked to defend your collaborations to the instructor. You should always be able to reproduce an answer on your own, and if you cannot you likely do not really know the material.
One way to collaborate effectively is to avoid taking careful notes during a collaboration session. Discuss the material and sketch out possible solutions on a whiteboard. When you have finished, take a break and then write up your solutions without any help from notes or pictures from the study session. This not only helps avoid violations of academic dishonesty, it also improves your retention of the material!
When assignments are meant to be done in groups, you will be directed to turn in one set of solutions per group. Otherwise, each student must turn in an assignment representing their own work.
Electronic Devices: Do not use your phone or other devices in class except where necessary. Any computer or tablet usage should be related to the course. If a device is not being used for Zoom or Socrative it should be put away and turned on silent. Other usage is rude and distracting to others.
General Expectations: In short, I expect you to be respectful of others and take responsibility for your own learning. You are here to learn, so work hard and be professional.
Just attending class is not sufficient to truly learn the material. Read the text, use the resources available at Monmouth College, and go beyond the material.
If you miss class, you are responsible for everything covered on that day. College is, in some sense, your job. Take pride in creating quality work. Staple your assignments, label problems, and present your answers neatly and orderly.
Your job is to convince me that you have learned the material – show your work! Even if you do not know a particular answer, guide me through your thought process.
The course workload is as follows:
Category | Number of Assignments |
---|---|
Homework | 7–8 |
Exams | 3 |
Some homework assignments will be written assignments only; some will include programming components. Your lowest homework score will be dropped.
Exams will be open book and notes unless otherwise specified. Each exam focuses primarily, but not necessarily exclusively, on material covered since the previous exam. The final exam will include a small number of cumulative questions, and I reserve the right to include at most two cumulative questions on each of the other exams.
The weekly workload for this course will vary by student but on average should be about 11 hours per week. The follow tables provides a rough estimate of the distribution of this time over different course components for a 16 week semester.
Category | Total Time | Time/week (hours) |
---|---|---|
Lectures | 3 | |
Homework | 80 | 5 |
Exam Study | 16 | 1 |
Reading+Unstructured Study | 2 | |
11 |
Your final grade is based on a weighted average of particular assignment categories. You can estimate your current grade based on your scores and these weights. You may always visit the instructor outside of class to discuss your current standing.
Category | Weight |
---|---|
Homework | 35% |
Exam 1 | 15% |
Exam 2 | 15% |
Final Exam | 25% |
Participation | 10% |
Your participation grade is based on a variety of activities. During class I will often make sure of the Socrative app, so you’ll need to install this on your phones. Participating in Socrative questions and with in-class group activities is required for a decent participation grade; a full grade also includes asking questions either in class or in office hours.
This courses uses a standard grading scale. Assignments and final grades will not be curved except in rare cases when its deemed necessary by the instructor. Percentage grades translate to letter grades as follows:
Score | Grade |
---|---|
94–100 | A |
90–93 | A- |
88–89 | B+ |
82–87 | B |
80–81 | B- |
78–79 | C+ |
72–77 | C |
70–71 | C- |
68–69 | D+ |
62–67 | D |
60–61 | D- |
0–59 | F |
You are always welcome to challenge a grade that you feel is unfair or calculated incorrectly. Mistakes made in your favor will never be corrected to lower your grade. Mistakes made not in your favor will be corrected. Basically, after the initial grading your score can only go up as the result of a challenge*.
The following tentative calendar should give you a feel for how work is distributed throughout the semester. Assignments and events are listed in the week they are due or when they occur. This calendar is subject to change based on the circumstances of the course.
Date | Topic | Assignment |
---|---|---|
Wed 08/22 | Introduction and Components of a Computer | Read/review Ch. 1, HW 0 out |
Fri 08/24 | Measuring Performance | |
Mon 08/27 | Measuring Performance II | HW 1 out, Read Appendix B.1 |
Tue 08/28 | Basic Logic Design | Read B.2 |
Wed 08/29 | Combinational Logic | Read B.3 |
Fri 08/31 | More Combinational Logic and Integer Representation | |
Mon 09/03 | A Simple ALU | Read B.5 |
Tue 09/04 | Carry Lookahead Addition | Read B.6 |
Wed 09/05 | Clocks and Memory | Read B.7-9 |
Fri 09/07 | Homework Presentations and ECC | HW 1 due (Solutions), HW 2 out |
Mon 09/10 | Homework Review and MIPS Arithmetic Instructions | Read 2.2-2.1 |
Tue 09/11 | R-format Instructions | Read 2.3-2.4 |
Wed 09/12 | I-format Instructions | Read 2.5 |
Fri 09/14 | Logic and Conditional Instructions | Read 2.6-2.7 |
Mon 09/17 | Loop Exercises | HW 2 due (Solutions), HW 3 out |
Tue 09/18 | More Loops | |
Wed 09/19 | Procedures | Read 2.8 |
Fri 09/21 | More Procedures and Character Data | Read 2.9 |
Mon 09/24 | Addressing Modes and Linking | Read 2.10, Practice Exam 1 |
Tue 09/25 | Homework Presentations and Dynamic Linking | HW 3 due (Solutions) |
Wed 09/26 | Pointers versus Arrays | |
Fri 09/28 | Exam 1 Review | Practice Exam 1 Solutions |
Mon 10/01 | Exam 1 (Solutions) | |
Tue 10/02 | Programming with SPIM | Read A.1-A.6, A.9, HW 4 out |
Wed 10/03 | Integer Arithmetic and Basic Multiplication | Read 3.1-3.2 |
Fri 10/05 | Multiplication and Division | Read 3.3-3.4 |
Mon 10/08 | Optimized Division; Floating Point | Read 3.5 |
Tue 10/09 | Floating Point Representation | |
Wed 10/10 | Floating Point Arithmetic and MIPS | |
(10/11–10/15) | (Fall Break) | (Fall Break) |
Tue 10/16 | Review FP and Matrix Multiply | Read 3.6-3.8 |
Wed 10/17 | SIMD Matrix Multiply | Read 3.9-3.10 |
Fri 10/19 | Homework Review and Simple DataPath | HW 4 due (Solutions), HW 5 out, Read 4.1 |
Mon 10/22 | Simple Processor Implementation | Read 4.2-4.4 |
Tue 10/23 | Single-Cycle Exercises | |
Wed 10/24 | Pipelining Overview | Read 4.5 |
Fri 10/26 | Pipelining Implementation | Read 4.6 |
Mon 10/29 | (Class Cancelled) | |
Tue 10/30 | Data Hazards | Read 4.7 |
Wed 10/31 | (Class Cancelled) | Read 4.8-4.9 (optional) |
Fri 11/02 | Homework Review and ILP Overview | HW 5 due (Solutions), HW 6 out |
Mon 11/05 | (Class Cancelled) | Practice Exam 2 |
Tue 11/06 | Static Scheduling | Read 4.10 |
Wed 11/07 | Exam 2 Review | Practice Exam 2 Solutions |
Fri 11/09 | Exam 2 (Solutions) | |
Mon 11/12 | Exam Review and Superscalar | Skim 4.11-4.14 |
Tue 11/13 | Memory Hierarchy | Read 5.1-5.2 |
Wed 11/14 | Basics of Caches | Read 5.3 |
Fri 11/16 | Cache Performance | Read 5.4 |
Mon 11/19 | Associativity | Read 5.5 |
Tue 11/20 | Homework Review and Cache Blocking | HW 6 due (Solutions), HW 7 out |
(11/21–11/25) | (Thanksgiving Break) | (Thanksgiving Break) |
Mon 11/26 | (Class Cancelled) | |
Tue 11/27 | Virtual Machines and Virtual Memory | Read 5.6-5.7 |
Wed 11/28 | Common Framework for the Memory Hierarchy | Read 5.8 |
Fri 11/30 | Cache Coherence | Read 5.13, 5.15-5.16 |
Mon 12/03 | Parallel Programs | Read 6.1-6.3, Practice Exam 3 |
Tue 12/04 | Multithreading, Multicore, GPU | Read 6.4-6.5 |
Wed 12/05 | Review | HW 7 due, Practice Exam 3 Solutions |
Tue 12/11 8:00 AM | Final Exam |
The Teaching and Learning Center offers FREE resources to assist Monmouth College students with their academic success. Programs include Supplemental Instruction for difficult classes, Drop-In and appointment tutoring, and individual Academic Coaching. The TLC is here to help students excel academically. TLC services are not just for struggling students, but can assist all students to get better grades, practice stronger study skills, and manage time. The TLC is located on the 2nd floor of Poling Hall.
Disability Support Services: If you have a disability or had academic accommodations in high school or another college, you may be eligible for academic accommodations at Monmouth College under the Americans with Disabilities Act (ADA). Monmouth College is committed to equal educational access. Students with disabilities can apply for accommodations at the Teaching and Learning Center.