CS152 Policies

Table of contents

  1. Description
  2. Enrollment
  3. Prerequisites
  4. Communication
  5. Course Components
    1. Lectures
    2. Discussions
    3. Lab Assignments
    4. Homeworks
    5. Exams
    6. Suggested Readings
  6. Student Support
    1. Office Hours
    2. Slip Days
    3. Accommodations and Extensions
  7. Grading
  8. Collaboration and Ethics
  9. Use of LLMs
    1. Appropriate Uses
    2. Cautionable Uses
    3. Prohibited Uses
  10. Inclusion
  11. Acknowledgements

Description

This course will introduce the basic ideas and techniques underlying the design of computer architecture. This course will give you an in-depth understanding of the inner-workings of modern digital computer systems and tradeoffs present at the hardware-software interface.


Enrollment

Course staff does not control enrollment; we have to follow the department’s enrollment policies. We do not have any enrollment codes or any other way to let non-CS majors into the class. If you have any questions about enrollment, please reach out to the emails listed in the enrollment policies page.

Concurrent enrollment applications will be processed in the second week of classes. We will add all pending concurrent enrollment students to the course so you can follow along the first few weeks.


Prerequisites

CS 61A, 61B, 61C: Prior computer programming experience and computer architecture knowledge is expected.

Course programming assignments will be in Chisel, Python, and C/C++. We do not assume that students have previous experience with Chisel. Prior experience with an HDL (like Verilog) may be helpful, but it is not required.


Communication

The course schedule and all resources (e.g. lecture slides, discussion worksheets) will be posted on the course website.

All course announcements and content/logistics questions will happen on Ed (the course discussion forum). We will be automatically enrolling everyone.

If you need to contact the course staff privately, please make a private question on Ed.


Course Components

The course is organized into six modules, with each module having lectures, discussions, a problem set and a lab.

Lectures

We will have a 90-minute live lecture on Tuesdays and Thursdays, 5:00 - 6:30 PM in Lewis 100. Lectures will be recorded and recordings will be posted. Lecture attendance is not mandatory, but is encouraged.

Lecture time conflicts. You may take the course if you have a time conflict with lecture. However, you must be able to attend the two midterms held outside regular lecture time, the quiz held during lecture, and the final exam in person. We will not hold alternate midterm times to accommodate time conflicts. We will hold one alternate final during the three-hour slot beginning 30 minutes after the main slot ends. You must be able to attend one of these two final exam slots to take the course.

Discussions

TAs will hold weekly 2-hour live discussions throughout the week. Discussion sections start in Week 2 of the semester (beginning August 31st) and will be taught by 2 TAs. Beginning in Week 3 of the semester (beginning September 7th), discussion attendance will be mandatory. You are allowed up to 2 excused absences without penalty. We will release a sign-up form and assign discussion sections based on the responses. If there are extenuating circumstances, you may attend a section that you are not assigned to after confirming with your discussion TA or head TAs.

Lab Assignments

The labs will provide hands-on experience with the interaction of software and hardware, for a variety of machine designs. We will be making extensive use of designs written in the Chisel hardware description language. Each lab includes a directed component to guide students in learning certain concepts, plus an open-ended assignment (which must be completed in groups of 2 or 3 students) to allow students to show their creativity. Failure to complete at least 3 labs will result in an automatic F grade.

The deliverable for each lab is a lab report, submitted on Gradescope. We’ll enroll all students in Gradescope automatically. Late assignments will be deducted 3% per day late, up to a maximum 3 days; after which, the assignment is graded as a 0.

Homeworks

We will distribute 5 problem sets for you to practice your understanding of the course material. The problem sets also provide essential background material for the midterms and quizzes. Each problem set will involve a Gradescope and PrairieLearn portion. For the Gradescope questions, 70% of credit for each problem set will be based on completion; 30% will be based on correctness. We will choose a subset of problems to grade for correctness to reward earnest engagement. For the PrairieLearn questions, 100% of credit will be based on correctness. Your overall grade for a given assignment will be calculated as 75% of your Gradescope score and 25% of your PrairieLearn score, with late penalties applied independently to each component.

We will distribute solutions to the problem sets after the problem sets are due to give you instant feedback.

Homework is to be submitted individually, but may be discussed in groups. If you work in a group, acknowledge your collaborators in the submission per standard academic practice.

Problem sets will be submitted on Gradescope. We’ll enroll all students in Gradescope automatically. Late assignments will be deducted 3% per day late, up to a maximum 3 days; after which, the assignment is graded as a 0.

Exams

There will be two midterms held outside regular lecture time, one quiz held during lecture, and a final exam covering material from readings, labs, and problem sets. These assessments will be closed book, with no calculators, phones, smartwatches, or computers allowed. Exams in CS 152 serve as the main evaluation criteria for this class. Additional logistics will be released closer to each exam date. See the above discussion on time conflicts.

Exam Date Time
Midterm 1 Friday, October 2nd 8:00–10:00 PM
Quiz (in lecture) Thursday, October 22nd 5:00–6:30 PM
Midterm 2 Friday, November 13th 7:00–9:00 PM
Final Thursday, December 17th 11:30 AM–2:30 PM
Final (alternate) Thursday, December 17th 3:00–6:00 PM

Suggested Readings

We highly recommend the following textbook:

J. L. Hennessy and D. A. Patterson, Computer Architecture: A Quantitative Approach, 6th Edition, Morgan Kaufmann Publishing Co., Menlo Park, CA. December 2017.

ISBN13: 978-0128119051

ISBN10: 0128119055


Student Support

Office Hours

Office hours will be in-person. See the course calendar on the website for the office hours schedule. Office hours start on the second week of classes.

Slip Days

No slip days will be provided for this course. See the above discussion on partial late credit for homeworks and labs.

Accommodations and Extensions

As instructors, our goal is to teach you the material in our course. The more accessible we can make it, the better. If you encounter any extenuating circumstances, please let us know as soon as possible so we can best help you succeed in the class.

We provide extensions only for the following circumstances:

  • family emergencies
  • DSP accommodations
  • unexpected life events

Extensions are meant to be used to cover significant disruptions out of your control such as documented health issues/family emergencies/”Acts of God” and must be documented. If you need an extension, please fill out this form. (Also linked at the top of the webpage)

The Disabled Students’ Program (DSP) supports disabled students at UC Berkeley. They offer a wide range of services and accommodations. If you are facing barriers in school due to a disability, apply to DSP! Students registered with DSP can expect to receive an onboarding email within a week of sending us your formal letter of accommodation through the AIM portal.


Grading

Overall grades will be determined from:

  • Discussions (5%)
  • Problem sets (10%)
  • Labs (25%)
  • Exams (60%)
    • Midterms: 12% each
    • Quiz: 6%
    • Final: 30%

Staff may adjust grades upward based on class participation or extenuating circumstances. The grade of A+ will be awarded at staff discretion based on exceptional performance.

If you are taking the class P/NP, you will need to attain a letter grade of C- or higher AND take the final to pass. If you are a graduate student taking the class SUS, you will need to attain a letter grade of B- or higher AND take the final to pass.

Class grades will be compliant with the Departmental Grading Guidelines for Undergraduate Courses


Collaboration and Ethics

Please note that obtaining, sharing, and posting solutions to any assignment is a violation of academic integrity. This includes uploading project code, official solutions, your own solutions, etc. to any site that is accessible by other people, such as a public GitHub repository.

Problem Set submissions should acknowledge all collaborators and sources consulted.

All code and written responses should be original. We trust you all to submit your own work, but to protect the integrity of the course from anyone who doesn’t want to play by the rules, we will actively be checking for code plagiarism (both from current classmates and previous semesters), as well as written homework submissions that look eerily similar.

You may use a small, generic code snippet from a website such as Stack Overflow (for example, code that parses a string), but you must cite the source in an adjacent code comment.

Exams are expected to demonstrate your work, and your work alone. We have a zero-tolerance policy for any form of collaboration on exams. We are not lenient about cheating. Caught students will be reported to the Center for Student Conduct and will be assigned an “F” in the class. Please, just don’t cheat. It’s not cool :).

We sympathize with Kris Pister’s policy.

Use of LLMs

We believe that the most effective way to learn the course material is to engage with it yourself. If you are stuck on an assignment or concept, we strongly encourage you to ask course staff on Ed or attend office hours. Large language models (LLMs) can produce convincing but incorrect explanations and can easily bypass the work that an assignment is designed to teach.

LLM use is therefore permitted only with caution and for restricted cases. Unless explicitly stated, the following policy applies to all course-related use of chatbots, code assistants, IDE integrations, and similar generative AI tools.

Appropriate Uses

You may use an LLM to clarify general concepts or terminology without sharing course materials or work from your submission. Examples include:

  • “Why are pointers useful in C?”
  • “What is a PRF?”
  • “What is the difference between cache coherence and memory consistency?”
  • “What does this compiler error mean?” when the prompt does not include substantial assignment text or solution code.
  • “Show a short C example that reads one character from a file.”
  • “Show how an array can be declared in Chisel.”

Cautionable Uses

You may ask for more substantial examples that are not tailored to a course assignment, but you must exercise caution. For example:

  • “Show a generic Chisel implementation of a parameterized arbiter.”
  • “Show a short C++ snippet that updates a two-bit saturating counter based on a Boolean outcome.”

If AI-generated code, prose, a diagram, or a substantive idea influences anything you submit, you must clearly cite it where it is used. For code, include an adjacent comment naming the tool and identifying the generated or adapted portion. Retain the relevant prompt and output because course staff may ask to review them. You remain responsible for understanding and verifying everything in your submission. Citation does not make an otherwise prohibited use acceptable.

Prohibited Uses

You may not use an LLM to avoid the intellectual work required by an assignment. In particular, you may not:

  • Ask an LLM to design or solve an assignment task or to generate an answer, implementation, report, paper summary, or lab analysis.
  • Give your solution code or written response to an LLM for debugging, review, completion, rewriting, or refactoring.
  • Submit generated material
  • Use an LLM during a quiz or exam.

These restrictions include tools such as automatic code completion, built-in IDE assistants, and agents that inspect or modify your assignment files. Any submissions containing generated content or signs of prohibited use will receive a 0.

If an LLM gives you an explanation that seems questionable, please ask course staff about it on Ed or in office hours. You will not be penalized for bringing us an AI-generated claim to check; course staff and official course materials remain the authoritative sources for this class.


Inclusion

We believe in the crucial importance of creating a learning environment that is welcoming and respectful to students of all backgrounds. The following are specific steps that will help us in achieving this goal:

  • If you feel your academic performance has been impacted negatively due to a lack of inclusion, or due to experiences outside of class such as current events or family matters, please reach out to the instructors and staff. Our job is not only to teach but to support you in every way we can.
  • If something happens in the course that runs counter to the goal of making every student feel safe, respected, and welcome, please contact the head TA or the instructors; if you don’t feel comfortable contacting course staff, you can fill out this form to anonymously let the department know.
  • You may also consult a departmental Faculty Equity Advisor, or fill out the anonymous feedback form for the College of Engineering for equity and inclusion related feedback.
  • If you have a preferred name or set of pronouns that differ from your legal name, you may designate a preferred name for the classroom by following these steps.
  • As a member of the CS 152 community, realize that you have an important duty to help other students feel respected in helping create an inclusive learning environment.

Acknowledgements

This website and syllabus was inspired by CS188 and CS161, which generously provided its support and source code. Parts of the syllabus are adapted from CS61C.