Great Ideas in Computer Architecture (Machine Structures)

UC Berkeley EECS

MTuWTh 9:30-11am, 10 Evans

Instructors: Shreyas Chand, Justin Hsia

Great Ideas in Computer Architecture (Machine Structures)

UC Berkeley EECS

MTuWTh 9:30-11am, 10 Evans

Instructors: Shreyas Chand, Justin Hsia

Course Policies/About

Official Academic Guide course description.

The subjects covered in this course include: C and assembly language programming, translation of high-level programs into machine language, computer organization, caches, performance measurement, parallelism, CPU design, warehouse-scale computing, and related topics.

Prerequisites: CS61A and CS61B (or equivalents). CS61B requirement can be bypassed is you have solid experience with a C-based programming language.


Textbooks/Materials

P&H We will be using the fifth edition of Patterson and Hennessy's Computer Organization and Design book ("P&H"), ISBN 0124077269.
K&R We are also requiring The C Programming Language, Second Edition by Kernighan and Ritchie ("K&R"), and will reference its sections in the reading assignments. Other books are also suitable if you are already comfortable with them, but our lectures will be based on K&R.
WSC Finally, we will be using The Datacenter as a Computer: An Introduction to the Design of Warehouse-Scale Machines ("WSC"), which is freely available online here.

Computer Resources

Discussion Forum

All important course announcements will be made on Piazza. Be sure to join here: https://piazza.com/berkeley/summer2016/cs61c.

Computer Accounts

You will need a CS61C class account for use in the computer labs, submitting assignments, and tracking your grades. You must request a class login via http://inst.eecs.berkeley.edu/webacct. Make sure you remember your log-in information once you change it! We cannot recover your account information for you.

Computer Labs

We will be using a combination of 200 Sutardja Dai, 271 Soda, and 330 Soda this semester. You will be receiving 24/7 key card access to these labs, but please be mindful of the fact that we share these lab spaces with other CS classes. In addition, please respect the labs by keeping things neat and avoid eating/drinking near the computers.

You can connect remotely to the lab computers using the following addresses:


Grading

In order to foster a collaborative environment, CS61C is graded on a fixed scale. The course is graded out of 300 points, with the following mappings from points to letter grades:

Raw Score 290+ [270,290) [260,270) [250,260) [230,250) [220,230) [210,220) [190,210) [180,190) [140,180) [0,140)
Grade A+ A A- B+ B B- C+ C C- D F

In the event that our distribution does not align with the EECS departmental guidelines, we may decrease the raw score boundaries, but they will not increase (i.e. it is possible to receive a higher grade than the mapping suggests, but not a lower one).

Your grade in the class will be broken into the following components:

Assignment Percentage of Grade
EPA: Effort, Participation, and Altruism 5% (15 points)
Labs (drop 2 lowest) 8% (24 points)
Homework (drop lowest) 9% (27 points)
Projects (4 total) 30% (90 points)
Midterm I (see Clobber Policy) 13% (39 points)
Midterm II (see Clobber Policy) 13% (39 points)
Final 22% (66 points)
Below, you will find sections describing some of these assignment types.

EPA

You can earn points for each of the following:

Effort: Attending office hours and discussions. Keeping up with Piazza.
Participation: Attending lecture, voting on i>clicker questions, interacting with TAs and other students in discussion, asking questions on Piazza.
Altruism: Helping others in lab and on Piazza.

EPA scores are kept internal to the course staff (i.e. not disclosed to students).

Peer Instruction/i>clickers

As you may have noticed in the "Participation" section of EPA, you will receive credit for voting on i>clicker questions in lecture (your answer does not necessarily need to be correct). This is designed to give you a chance to check your understanding of the material by applying it on-the-spot as well as a chance to interact with your classmates. Over the course of the semester, you will be allowed to miss "a handful" of lectures with no penalty. As a result, you will need to obtain an i>clicker remote (any that supports 5-choice multiple choice should be sufficient):

Option 1: You already own an i>clicker remote

  • Please bring your own remote to lecture if you own one
  • Bring your remote to your TA in to one of the first two labs in order to register it with our class
Option 2: Borrow an i>clicker remote for the semester
  • Provide a PERSONAL CHECK (does not need to be your own) in lab that meets the following criteria:
    • Payable to "UC Regents" for $40.00
    • Has YOUR name as it appears on your student ID card clearly written on it
    • Has YOUR student ID number clearly written on it
    • Is signed and valid
  • Return the i>clicker remote at the end of the semester and your check will be torn up
  • Your check will be cashed if your remote is lost, stolen, broken, or not returned
Option 3: Buy an i>clicker remote
  • Cal Student Store: $40.95 new/$30.95 used (one link -- DON'T buy that textbook!)
  • Other students: Find a student who has taken a CS (or other) class that used i>clickers. There are also various means of finding students who are selling their old course materials.


Labs

Labs are designed to give you twice-weekly introductory experience with the course material. After completing each lab, you will need show your understanding of the lab to your TA or Lab Assistant by stepping through the checkoff steps with him or her. You are required to attend the lab in which you are enrolled, but you are free to attend any discussion section you prefer.

Labs are graded on correct completion. You are allowed to drop your two lowest-scoring lab grades, though completion of all labs is highly recommended. Labs must be checked off before/during the first ten minutes of the lab after they were assigned. You are required to work in partners for labs. Late labs are not accepted.


Homework

Homework is designed to give you more problem practice on the week's material. We encourage you to work on the homework problems in small groups, but each student is required to turn in a solution that they have written themselves.

Homework is done online via edX and is graded on effort/completion. You are allowed to drop your lowest-scoring HW grade (not HW0), though completion of all HW is highly recommended. We will release homework solutions shortly after the due date, so late homework is not accepted.


Projects

Projects are designed to give you heavy-duty experience with the application of course content. Projects are graded on correctness.

You will work on projects in groups of two (you and a partner). Collaborating with students outside of your group is strictly prohibited. Please see the section on Academic Dishonesty below.

For each day that a project is late, 1/3 of your earned points on the project are deducted, until the project is worth nothing. Lateness rounds up to the nearest day - that is, an assignment that is 2 hours late is one day late.

Slip Days

To help you handle any issues that arise, we give you three slip-day tokens, which allow you to reduce your late penalties on late submissions.
Example usages:

  • Use two slip-days to receive no penalty on a project submitted two days late
  • Use two slip-days to receive no penalty for two separate projects each submitted one day late
  • Use three slip-days to receive just a 1/3 penalty on a project submitted 4 days late
We will track the total number of late days for your submissions and then assign your slip-days at the end of the semester to maximize your course score!

Slip-days may only be applied towards projects, and not any other assignments. Slip-days will not be assessed against projects you did not submit. No extra credit is awarded for avoiding the use of slip-days, however it is in your best interest to avoid turning projects in late. Usually, a new project will be released very shortly after the current project is due.


Exams

  • Midterm 1: In-class exam. Covers up to and including the 06/30 lecture on CALL.
  • Midterm 2: In-class exam. Covers up to and including the 07/19 lecture on Performance, Floating Point, and Tech Trends.
  • Final: Consists of 3 sections: MT1 material, MT2 material, post-MT2 material. Performance on MT1/MT2 sections can override Midterm 1 and Midterm 2 grades (see Clobber Policy).

On each exam, you will be given a MIPS Green Sheet attached to the exam. Additionally, you will be allowed to bring handwritten cheat sheets as indicated below:

  • Midterm 1: One 8.5"x11", double-sided cheat sheet.
  • Midterm 2: One 8.5"x11", double-sided cheat sheet.
  • Final: Three 8.5"x11", double-sided cheat sheets (it is recommended that you re-use your cheat sheets from the two midterms).

The "Clobber" Policy

The clobber policy allows you to override your Midterm 1 and Midterm 2 scores with the score of the corresponding section on the final exam if you perform better on the respective sections of the final. Note that the reverse is not true - you must take the entire final exam, regardless of your Midterm 1 and Midterm 2 scores.

Here is an example of the process:

Suppose we are interested in computing your clobbered midterm 1 score:

Potential replacement score = (Final_mt1_subscore - Final_mt1_mean)/Final_mt1_stddev * MT1_stddev + MT1_mean
Clobbered MT1 score = MAX(Original MT1 score, Potential replacement score)

Final_mt1_subscore is your score on the midterm 1 section of the final, Final_mt1_mean and Final_mt1_stddev are the mean and standard deviation of the midterm 1 section of the final, and Mt1_stddev and Mt1_mean are the standard deviation and mean of the actual midterm 1.

"Clobbered MT1 score" is then filled in as your midterm 1 score for the final grade calculation.


Academic Dishonesty and Cheating

Please carefully read the policies below and ask a member of the course staff if you have any questions or if something is unclear.

  • All projects except for proj3 will be done with a partner.
  • All projects you turn in must be the work of your team and your team ALONE.
  • Partner teams MAY NOT work with other partner teams on projects.
  • It is NOT acceptable to copy solutions from other students.
  • It is NOT acceptable to copy (or start your) solutions from the Internet.
  • It is NOT acceptable to use public GitHub archives to obtain solutions or to store your project code.
  • We have tools and methods, developed over many years, for detecting this. You WILL be caught, and the penalties WILL be severe. This software can even detect attempts to purposefully obfuscate copying.
  • If you are caught you will receive at the minimum an F in the course and a letter on your university record documenting the incidence of cheating.
  • Both the giver and the receiver of code are equally culpable and suffer equal penalties.

Disabled Students' Program

The Disabled Students' Program (DSP) is committed to ensuring that all students with disabilities have equal access to educational opportunities at UC Berkeley. They offer a wide range of services for students with disabilities that are individually designed and remove the need to reveal sensitive medical information to the course staff. If you have a medical need for extensions of exam times or assignment deadlines, these will be granted through official documentation from DSP. Please start the process at http://dsp.berkeley.edu as soon as possible to avoid delays.


Extenuating Circumstances and Inclusiveness

We recognize that our students come from varied backgrounds and can have widely-varying circumstances. If you have any unforeseen or extenuating circumstance that arise during the course, please do not hesitate to contact the instructors in office hours or via e-mail or private Piazza post to discuss your situation. The sooner we are made aware, the more easily these situations can be resolved. Extenuating circumstances include work-school balance, familial responsibilities, religious observations, military duties, unexpected travel, or anything else beyond your control that may negatively impact your performance in the class.

Additionally, if at any point you are made to feel uncomfortable, disrespected, or excluded by a staff member or fellow student, please report the incident so that we may address the issue and maintain a supportive and inclusive learning environment. Should you feel uncomfortable bringing up an issue with a staff member directly, you may consider contacting the Campus Ombuds Office or the ASUC Student Advocate's Office (SAO).