Textbook P&H | Patterson & Hennesy | Computer Organization and Design | RISC-V 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 check Sakai. An affordable option is to rent the textbooks via Amazon for the semester. Any supplemental reading will be available through Sakai.
CS/ECE 250 Fall 2020
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, RISC-V assembly language, computer arithmetic, basic logic design, basic control and datapath design, pipelining, caches and memory hierarchy, parallelism, and warehouse scale computing.
Professor Wills’s office hours
Mon/Wed 4:45pm - 5:45pm or make an appointment. I will not debug students’ code.
TAs’ office hours
Policy for asking TAs questions
Students are required to make a good faith effort before asking for help in office hours or on Piazza. Students are required to specify the steps they have taken to make progress and debug. Students are expected to search Piazza for answers before seeking help. TAs have the right to refuse help if students have not put in appropriate effort or enter unreasonable information about what they have done. Showing up to office hours with a blank program and ask for help is not okay. TAs will help one student for no more than 15 minutes if the wait queue is not empty. If students need more help after 15 minutes, please get back onto the wait queue for the next available slot. Recitations are designed to help students to get started on the lab/project assignments; please attend them. It is the student’s responsibility to get the assignments done, not the TAs’. No one (not the Professor, not the grad TAs, not the UTAs) is required to answer questions last minute. Please START THE ASSIGNMENTS EARLY and ask for help EARLY.
Using UTA APP during office hours
Lectures will not be pre-recorded for asynchronous learning. However, the synchronous version of the lectures will be recorded via Zoom (assuming there are no technical difficulties doing so during class) and those will be available for students to review after the scheduled lecture time. That means, there is no promise of the availabilities of all lecture recordings online outside of the scheduled course time. Lectures will be recorded as they are taught but there is no guarantee that all the lectures will be available after class.
There will also be two in-class midterms and in-class quizzes which will count towards participation. See more details on class participation in the Grades section.
Taking this course asynchronously this semester is strongly discouraged. Please enroll in next semester’s 250 if attending lectures and recitations in the assigned time slots is not possible.
Recitations present hands-on tutorials for students to get started on pratical skills necessary to complete the labs and projects. Every recitation will be led by two UTAs and each recitation has no more than 20 students. Students are required to attend the recitations in the assigned time slots, as they are presented in an online synchronous format, and ask questions in a (much smaller) group setting where students can get individual help.
These are the course resources. Students are expected to keep up with any information disseminated through these resources, i.e., course website, Sakai website, and Piazza. Students are expected to utilize the development environment to complete their lab/project assignments, i.e., Gitlab, Gradescope, etc.
This is the main course website. There is one post per week and assigned readings/labs/projects/exams are posted every week along with the due dates.
CS/ECE 250 Computer Architecture Sakai Website is a supplement to the main course website. Students will find lecture slides, recorded Zoom lecture videos, recorded recitation segments, and lab/project assignments. Students will also be able to access the Announcements and the Gradebook from this site.
Sign up for Piazza to ask questions during class and after class.
Students will be automatically added on Gradescope by the TAs. Gitlab is integrated with Gradescope so that students can turn in their labs/projects via Gitlab/Gradescope. Students will also use Gradescope to turn in the completed midterms in PDF format.
Please follow instructions on how to set up and use Gitlab. Gitlab is required for all the labs and projects in this course. Here is the detailed instructions on how to set up the development environment.
If any student is unfamiliar with the unix/Linux environment, UNIX Tutorial for Beginners gives a good starting point, courtesy of Prof. Alvin Lebeck.
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.
RISC-V ISA Resources
There are three ways to get the labs/projects done in this course. We will walk through how to get these three options working in Recitation Week 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. Labs/Projects are expected to execute on this online environment as well as Gradescope. Again, here is the detailed instructions on how to set up the development environment.
Work locally and synch back to container
SSH into login.oit.duke.edu
Students are expected to attend lectures and actively participate in lectures as well as in-class quizzes (once a week on Mondays). Students may drop up to 2 quizzes to accommodate for any Dean’s excuse. After the 2-quiz allowance, any missed quiz will be scored as a 0-point quiz (even with Dean’s excuse). Regrade requests will not be granted and make-up quizzes will not be offered.
Students are expected to attend recitations and your attendance will count towards 5% of your class participation.
There are a total of 10 labs for this course and they are optional (except for Lab1 and Lab2). The labs are designed to solidify your understanding of the material and enable you to do the projects with greater ease. Labs are out every Monday morning and are due the following Monday before midnight. The lab points you get will accumulate into an extra credit pool (except for Lab1 and Lab2). For every 10 points received on the lab extra credits, students are eligible to get a 1% bump on one project, up to a maximum of 10% grade bump per project. There is no late policy on the labs. ZERO points will be given for the lab after the due day. No extensions and no exceptions. Please do not email me about getting extensions; they will not be granted.
Students should expect to spend anywhere from 6-10 hours on each lab.
There are a total of 4 projects split into 5 parts (1, 2, 3A, 3B, and 4) for this course. Projects are out 2-3 weeks before the due date and it is due before midnight on Mondays. Students are expected to turn in the projects via GitLab and not a .zip file, .tar.gz file, or any other file formats. There is a three-day late policy on the projects. 75% of the credit is given if the project is one day late, 50% of the credit is given if the project is two days late, and 25% of the credit is given if the project is three days late. After that, ZERO points will be given for the project. The time unit for the late policy is on a day granularity — not hours and not minutes. No extensions and no exceptions. Please do not email me about getting extensions; they will not be granted.
Students should expect to spend anywhere from 16-30 hours on each project. START EARLY, START EARLY, and START EARLY.
Regrade requests for any labs/projects/midterms have to be submitted within 1 week of grade release. There will be no regrade requests granted for in-class quizzes. Students will submit their regrade request via the Regrade Request Form.
There are two midterms in class (online and during class time) on Monday 9.21.20 and Wednesday 10.28.20. These midterms are closed-book closed-notes closed-internet. Students will be asked to sign an honor code policy right before taking the exam. Students will be asked to keep the camera on while working on the exam. Regarding academic conduct, TL; DR: Don’t cheat; you will get caught. No make-up midterms or alternative arrangements (besides in-class synchronous) will be offered.
The final exam in this class will be a take-home open-book closed-internet exam on Saturday 11.21.20. Again, students will be asked to sign an honor code policy right before taking the exam. Students will have 3 hours to complete the exam from the time he/she starts. Students can choose when to start within a 24-hour period (well technically a 21-hour period). We will not extend the end time of the exam if a student starts late and cannot get his/her exam to upload on time. More details to come on the final exam.