Course Policy

Course Policy

2026, Jan 01    

Textbook P&H | Patterson & Hennesy | Computer Organization and Design MIPS Edition: The Hardware/Software Interface | 6th Edition

Textbook K&R | Kernighan & Ritchie | The C Programming Language | 2nd Edition

These textbooks are required. Required readings are posted on the course website every week. Please either order the textbooks or borrow them from the library. Another affordable option is to rent the textbooks via Amazon for the semester. Any supplemental reading will be available through the course website or Canvas.

CS/ECE 250 Spring 2026

This is an introductory undergraduate-level course in computer architecture. To gain a basic understanding of a computer system, students will learn a wide variety of topics including C programming language, MIPS assembly language, computer arithmetic, basic logic design, basic control and datapath design, pipelining, caches and memory hierarchy, parallelism, and more.

Office Hours

Professor Wills’s office hours

Wed 1pm - 3pm @ D304 LSRC or make an appointment. I will not debug students’ code.

TAs’ office hours

TA Office Hours for CS250

Policy for asking TAs questions

Students are required to make a good faith effort before asking for help in office hours or on Ed. The UTAs, GradTAs, and the Prof. are here to help you succeed in this course. Because this is a large course, here are some effective tips to navigate getting your questions answered in a timely manner while allowing other students to get help as well.

  • Please search Ed posts to find answers before seeking help. It is very likely that someone else has already run into the same problem you are seeking help on.

  • Please document the steps you have taken to make progress and debug before approaching the TAs for help. This will cut down the time TAs have to figure out what you did and how to help you get unstuck. Note: TAs have the right to refuse help if students have not put in appropriate effort.

  • Please know that the teaching staff is not requried to answer questions last minute. Please START THE ASSIGNMENTS EARLY and ask for help EARLY. We are here to help you succeed in this course and help you learn the material the best way we can.

Lecture Recordings

Lectures will be recorded via Panopto (assuming there are no technical difficulties doing so during class), and recordings will be available for students to review after the scheduled lecture time. Lectures will be recorded as they are taught, but there is no guarantee that all the lecture videos will be available after class.

Recitations

Recitations present hands-on tutorials to provide you with the practical skills necessary to complete the assignments. They are held on Fridays. Two UTAs will lead every recitation. Attendance is required and will be part of your grade (see Grades below for more details).

Course Resources

These are the course resources. You are expected to keep up with any information disseminated through these resources, i.e., course website, Canvas, and Ed. Students are expected to utilize the development environment to complete their assignments, i.e., Gitlab, Gradescope, etc.

Course Website

This is the main course website. There is one post per week and assigned readings/assignments/exams are posted every week along with the due dates.

Canvas

CS/ECE 250 Computer Architecture Canvas Website is a supplement to the main course website. Students will find lecture slides, supplemental readings, assignments, and announcements.

Ed

This is the main discussion forum for any questions students have on lectures, assignments, concepts, and anything related to the course. All teaching staff (GradTAs, UTAs, and Prof.) will help monitor the questions so that they get answered in a timely manner. Please do not email the teaching staff directly unless the issue pretains to the individual and the individual alone.

Gradescope

Students will be automatically added on Gradescope by the TAs. All your assignments and exams will be graded on Gradescope. Regrade requests can be submitted on Gradescope within one week of when grades are released.

Gitlab

Please follow instructions on how to set up and use Gitlab. Gitlab is required for all the labs and projects in this course. Please see Recitation 1 for detailed instructions on how to set up the development environment.

Unix Introduction

If any student is unfamiliar with the unix/Linux environment, UNIX Tutorial for Beginners gives a good starting point, courtesy of Prof. Alvin Lebeck.

C Introduction

If any student wants to get familiar with the C programming language faster, try this Online C Tutorial.

Another great resource to learn C is an in-depth Coursera course taught by Prof. Andrew Hinton, Prof. Genevieve Lipp, and Prof. Anne Bracy from the ECE Department at Duke, Programming Fundamentals.

Computing Resources

There are two ways to get the assignments done in this course. We will walk through how to get these two options working in Recitation 1, courtesy of Prof. Tyler Bletsch.

  • Use a container

    With the help of OIT, ECE/CS 250 provides a container-based online development environment. The containers we provide have all of the programs needed in the class preinstalled. Assignments are expected to execute on this online environment as well as Gradescope.

  • Work locally and synch back to container

Grading

Grading Breakdown for CS250

Class participation

Students are expected to attend lectures and actively participate in lectures. Active participation will help you solidify your understanding of the material. Please do not be afriad to ask questions. If you find a particular concept confusing during lecture, chances are that other students will also find them confusing and can benefit from you asking the question(s).

Your class participation is broken up into recitation attendance (4% of course grade) and class participation (1% of course grade). You may drop up to 3 recitation attendances to acommodate for any STINF/Dean’s excuse.

Actively participating in class discussions and asking questions will also be rewarded with up to 2% course grade extra credit at the instructor’s discretion.

Assignments

There are a total of 7 assignments split into 11 parts (1, 2, 3A, 3B, 4A, 4B, 5A, 5B, 6A, 6B, and 7) for this course. Assignments are out 1-2 weeks before the due date and it is due before midnight on Fridays. Please turn in your assignments via Gradescope and .pdf when there is a written part.

There is a two-day late policy on the assignments. 90% of the credit is given if the project is one day late, and 80% of the credit is given if the project is two days late. After that, 0 points will be given for the assignment. The time unit for the late policy is on a day granularity — not hours and not minutes. The late penalties are applied to the entire assignment and not by question. For example, if one question is turned in 1 day late for Assignment 2, you will get 90% * <your score of Assignment 2>. We will always grade your latest submission, regardless of if you scored higher on earlier submissions.

To give an incentive to start your assignments early, you will earn 5% extra credit for turning in your assignments one day early (this extra credit applies only to Assignments 2 to 7). Again, the extra credit is on a day granularity — not hours and not minutes. For example, if you turned in Assignment 2 by 11:59pm on Thursday of the week that Assignment 2 is due, you will get 105% * <your score of Assignment 2>.

Regrade Requests

Regrade requests for any assignments/midterms have to be submitted within one week of grade release. Please submit your regrade requests via GradeScope.

Midterms

There are two midterms in class on Tuesday, February 17 and Tuesday, March 31. These midterms are closed-book closed-notes. No smart phone, smart watches, or headphones will be allowed. You will be allowed one 8.5” x 11” cheat sheet; front and back. You will be asked to sign an honor code policy right before taking the exam.

Final Exam

The final exam in this class will be held on on Thursday, April 30 from 9am to 12pm at 021 Wilkinson Auditorium. The final exam is closed-book closed-notes. No smart phone, smart watches, or headphones will be allowed. You will be allowed one 8.5” x 11” cheat sheet; front and back. You will be asked to sign an honor code policy right before taking the exam.

Academic Honesty

Please familarize yourself with Duke’s honor code and know that the course staff have no choice but to report any academic dishonesty to the office of student conduct.

Tentative Semester Schedule

Please check weekly entries for required readings and supplemental material.

Tentative Semester Schedule for CS250