pete > courses > Computer Architecture (CSCI 0202), Spring 2024


Computer Architecture (CSCI 0202), Spring 2024

Who Peter C. Johnson (pete@midd)
Where 75 Shannon St, Room 203
When A: Mondays, Wednesdays, and Fridays, 9:45–10:35 AM
B: Mondays, Wednesdays, and Fridays, 11:15–12:05 AM
Drop-In Help schedule

Schedule (tentative)


12 Feb Introduction
Phase 1 Tier 2 Problem 0: Welcome to Weathertop
14 Feb boolean logic and transistors
Phase 1 Tier 2 Problem 1: OR gate from transistors
Phase 1 Tier 2 Problem 2: NAND gate from transistors
16 Feb combinational logic
Phase 1 Tier 2 Problem 3: Circuit: exactly two ones
Phase 1 Tier 2 Problem 4: Circuit: no adjacent ones
19 Feb testing and style
21 Feb integers in binary
23 Feb hexadecimal, floating point, and ASCII
Phase 1 Tier 2 Problem 5: 4-bit ripple-carry adder
Phase 1 Tier 2 Problem 6: 16-bit comparator
26 Feb storage elements
28 Feb memory
01 Mar finite state machines
04 Mar traffic light
Phase 1 Tier 2 Problem 7: 2-digit BCD adder
Phase 1 Tier 2 Problem 8: 8-bit counter
06 Mar computer beginnings
Phase 1 Tier 3 Project: associative memory
08 Mar assembly language
11 Mar the ADD instruction
13 Mar computer internals
Phase 1 exam
15 Mar MOV, immediate values, and value extension
17 Apr Phase 2 exam (tentative)

Coursework & Grading


This class uses a non-traditional approach to coursework and grading. Please first read the full description here; the text on this page is meant as a summary for reference during the semester.

The course material falls into three phases: circuits (weeks 1-3), microarchitecture (weeks 4-7), and software (weeks 8-12). Within each phase, coursework falls into three tiers: mechanical skills, simple applications, and tasks requiring creation & analysis. Mechanical skills will be assessed by weekly quizzes; simple applications by regularly-posted homework problems; and creation & analysis by three large implementation projects (one for each phase). In addition, there will be three exams: again, one for each phase. In all cases, coursework requirements will be clearly specified and submissions will be graded on a sufficient/insufficient basis. Students will have opportunities to re-take quizzes and to resubmit homework problems.

To earn a C, a student must:

  • correctly answer 3 of 4 questions, within a single quiz, for EVERY mechanical skill.

To earn a B, a student must:

  • do all required to earn a C,
  • complete 9 of 12 homework problems in each of the three phases,
  • and correctly answer 9 of 12 Application questions across the three exams.

To earn an A, a student must:

  • do all required to earn a B,
  • complete all three projects,
  • and correctly answer 6 of 9 Analysis questions across the three exams.

Half-grades will be assigned at the discretion of the professor based on work completed that does not fully satisfy the requirements of the next full grade.

Re-taking quizzes

Send me email requesting a specific time during my office hours:

  • Monday 2–4pm
  • Tuesday 3–4pm
  • Wednesday 2–4pm

You may only take one quiz per day (though the quiz will contain questions for all definitions and mechanical skills that have not yet been marked complete).

Addendum: In case you can’t make the times above, Smith has agreed to also give quizzes during his office hours (listed here), but you still need to email me so I can print the quiz and get it to him beforehand.

Homework problem feedback

Submissions received before 2pm every Monday, Wednesday, and Friday will be eligible for feedback during the grading session that afternoon. We will do our best to return feedback to you promptly (hopefully within 24 hours), but workload and the vagaries of the semester could extend this.

Software


We’ll be using Logisim-Evolution to create and simulate circuits in this course. Please install Version 3.8.0 by downloading the correctly numbered file that ends in .dmg (Mac) or .msi (Windows) and installing it in the normal way. If you need help with this, please talk to the course assistants.

On a Mac, when opening the Logisim program for the first time after installation, MacOS is likely to complain about the developers not being verified and refuse to launch the program. To get around this, go to "System Preferences -> Security & Privacy -> General tab" and click "Open Anyway".

Downloading circuit files from the course notes is a bit tricky because web browsers (Firefox, Chrome, Safari, …) often just show you the raw content of the file instead of saving it as a file for you. To download it instead of viewing the uninteresting XML, right-click (Windows) or Command-click (Mac) and select the "Save File…" (or similar) option.

References


There is no required textbook. I will make suggestions for readings (both online and dead-tree) while covering specific topics.

Academic Integrity


All work submitted in this course must be your own and no-one else’s. On all coursework, any assistance that is not explicitly allowed is prohibited; ask me for clarification if there is confusion at any point. You may discuss homework problems and projects with other students, but you may not view other students’ solutions, no matter how preliminary. Rule of thumb: never talk to another student about coursework with a computer screen open.

If I determine that the work you submit is not your own, you will earn no credit for that piece of work and you will not be permitted to resubmit it. Such work includes, but is not limited to, solutions that are in any way informed by large language models such as ChatGPT.

When in doubt, ask.

Getting help


The material in this course is not easy, even for students who have significant prior background in computer science, there is a lot of it, and we move quickly. Some people learn by locking themselves in their room and banging their head against the wall, but many do not. Talking about the course material is a great way to solidify and reinforce your own understanding, to identify gaps in your knowledge that need filling in, and to see the same material from new perspectives (which further improves understanding).

  • You are welcome to discuss the lecture material and assignments with your classmates, but do keep in mind the academic integrity policy above.

  • Drop-in help sessions, in which students who have taken the course previously are available to answer questions and provide guidance: [schedule here]((https://www.cs.middlebury.edu/~mlinderman/courses/cshelp/spring24.html#csci202).

  • The Computer Science Department ASI, Smith Gakuya, holds regular office hours: schedule here.

  • My office hours: schedule here.

  • We can also find time to meet outside office hours: email me with some times you’re free.

  • You can also email me questions about the material/coursework.

Mask Policy


In 75 SHS 203, during class, masks are optional. If you feel gross, don’t come. (Detailed notes will be posted for catching up; Zoom is not an option.) If you recently felt gross and feel up to attending, please wear a mask.

In my office, for the forseeable future, masks are required.

ADA


Students who have Letters of Accommodation in this class are encouraged to contact me as early in the semester as possible to ensure that such accommodations are implemented in a timely fashion. For those without Letters of Accommodation, assistance is available to eligible students through the Disability Resource Center. Please contact ADA Coordinators Jodi Litchfield and Peter Ploegman in the DRC at ada@middlebury.edu for more information. All discussions will remain confidential.

Last modified: