Skip to main content

Section 5 How Will I Learn in This Course?

Ultimately, you are the person in charge of your learning. This will require you to be pro-active about learning, to not be shy about asking questions and seeking help, and to burnish your time management skills. You will find that there is a lot of material in this course, and things will move at a rapid pace, so try to avoid falling behind.

It is expected that you will need to do some struggling, grappling, and persevering, and that you will need to learn to accept ambiguity. To quote from Make It Stick by Peter C. Brown, Henry L. Roediger III, and Mark A. McDaniel (The Belknap Press, 2014; ISBN 978-0-674-72901-8), an excellent book on effective learning:

“Failure underlies the scientific method, which has advanced our understanding of the world we inhabit. The qualities of persistence and resilienvy, where failure is seen as useful information, underlie successful innovation in every sphere and lie at the core of nearly all successful learning. Failure points to the need for redoubled effort, or liberates us to try different approaches. … It's not the failure that's desirable, it's the dauntless effort despite the risks, the discovery of what works and what doesn't that sometimes only failure can reveal. It's trusting that trying to solve a puzzle serves us better than bein spoon-fed the solution, even if we fall short in our first attempts at an answer.”

However, none of this is to suggest that the course should overwhelm you. My guiding principle is that the course should be CBNO: Challenging but not overwhelming. If you ever find yourself getting overwhelmed, reach out to a member of the instructional team immediately.

Subsection 5.1 Lectures

The coverage of lectures will be announced via Canvas on a weekly basis. Each lecture will typically cover one or more topics in their entirety. Attendance is not mandatory, but is highly recommended. You are expected to follow along and actively participate in class, although I may sometimes choose to take a question offline.

Subsection 5.2 Discussion Section

The discussion session is scheduled for Friday. The TAs will lead these sessions. Almost always, these sessions will be structured as follows: a weekly 15-minute quiz; working as a group on pre-assigned problems or worksheets; demonstration and demystification of one or more tools; and time to respond to additional questions from students.

As with lectures, attendance is not mandatory, but is highly recommended. These sessions are considered part of instructional time, and any materials covered in them is fair game for quizzes and exams. In particular, tools will be covered exclusively in these sessions.

Subsection 5.3 Programming Assignments

There will be five programming assignments over the course of the semester. The programming language for all assignments is C. Unless noted otherwise, all assignments are individual.

  1. Linux Bootcamp: Set up environment, gain basic familiarity with Linux CLI. 1 week.
  2. Command Interpreter: Write a REPL-style interpreter for a simple expression evaluation language and integrate it into a test harness. This assignment serves as an immersion into C for experienced Java programmers. 3 weeks.
  3. Memory Manager: Write an explicit memory allocator to replace the C runtime's malloc library. 2 weeks.
  4. Assembly Coding: Implement a number of small functions in A64 assembly code. 2 weeks.
  5. System Emulator: Write a pipeline simulator for a small subset of Arm instructions; write a cache simulator for a two-level memory hierarchy; and integrate the two. 4 weeks. You may be given the option of working in pairs on this assignment.

Subsection 5.4 Problem Sets

A number of problem sets will be made available throughout the semester. They are intended to help you master the material beyond what we cover in lectures and discussion sessions. You do not have to turn in these problem sets. You can freely work with others on them. The solution key for a problem set will be released approximately a week after its release.

Subsection 5.5 Quizzes

There will be a quiz that will be held during your discussion section every Friday, except on 10 February 2023 and 24 March 2023 . The quiz will be timed, and you will have 15 minutes to complete it. You must take the quiz in person during the discussion section for your unique ID. There will be no alternate mode or make-up opportunities for taking quizzes. The quiz will have multiple-choice questions. The quiz is individual, single-attempt, open-book, open-notes, and open-internet. You cannot post the questions of the quiz on any forum. You are not allowed to collaborate or communicate with others on the quizzes. Any indication of collaboration will be reported as academic dishonesty.

The lowest four of your quiz scores will be dropped. You will automatically receive a zero for any quiz that you miss for any reason.

Subsection 5.6 Exams

There will be two midterm exams during the semester, on 10 February 2023 and 24 March 2023 at a time and location to be announced. The exam will be timed, and you will have two hours to complete it. There will be no alternate mode or make-up opportunities for taking it without a verified excuse. The exam is individual, single-attempt, open-book, open-notes, and open-internet. You cannot post the questions of the exam on any forum. You are not allowed to collaborate or communicate with others on the exam. Any indication of collaboration will be reported as academic dishonesty.

There will be a final at the date, time, and location as scheduled by the registrar’s office. The exam will be timed, and you will have two hours to complete it. You must take the exam in person during the time scheduled by the registrar's office, or in the alternate timeslot in case of a conflict with a final exam for another class. There will be no alternate mode or make-up opportunities for taking it without a verified excuse. The exam is individual, single-attempt, open-book, open-notes, and open-internet. You cannot post the questions of the exam on any forum. You are not allowed to collaborate or communicate with others on the exam. Any indication of collaboration will be reported as academic dishonesty.