Policies

Note: The syllabus is subject to change. We will adjust the coverage of the material adaptively based both on student and instructor feedback, as well as developments in the field. Policies will stay largely stable however.

Course Platforms

This course will use several platforms:

  • Website: This website includes all public course information, syllabus, resources, and schedule.
  • Gradescope: for submitting HW and exam scoring. Please join the course using the access code: 5JX7VB
  • Ed Forum: We will use Ed as a forum for discussing course material and for sending out course announcements. If you haven’t been added, please join using this link.

Prerequisites

This is a graduate-level/advanced undergraduate course about a particular approach to information processing using (simulated) analog circuits where the desired circuit behavior is tuned via optimization involving data since we have no idea how to do hand-tuning at scale. Probabilistic frames are useful to understand what is going on, as well as how we navigate certain design choices. Overall, we expect students to have a strong mathematical background in calculus, linear algebra, probability, optimization, and statistical learning. Berkeley undergraduate courses that can help build maturity include:
  • Calculus: Math 53 (note: Math 1B or AP Math is not enough)
  • Linear Algebra and Optimization: EECS 16B and EECS 127/227A is ideal, but EECS 16B alone might be enough if students have complete mastery of that material. Math 110 is also helpful. (note: Math 54 or EECS 16A is required as a minimum, but are not nearly enough.)
  • Probability: EECS 126, Stat 134, or Stat 140 (note: CS 70 is required at a minimum, but might not be enough for everyone)
  • Statistical Learning: CS 189/289A or Stat 154 (note: Data 102 is insufficient, even when combined with Data 100.) In particular, we will expect students to already understand the basics of neural nets (multilayer perceptrons, backpropagation, training by SGD, gradient descent, etc.) as well as the core concepts of machine learning generally including regularization, classification, loss functions, hyperparameters, validation, why we hold out data, etc. This material will be built upon and not retaught. If you do not have this (and no, watching some videos about it on youtube doesn't count), then you probably need to be taking CS 189/289A.

Math 53 and EECS 16B and EECS 126 and EECS 127 and CS 189 is the recommended background.

Prerequisites are not enforced for enrollment, but we encourage you to consider taking some of the classes listed above and save this course for a future semester if you feel shaky on the fundamentals.

The course assumes familiarity with programming in a high-level language with data structures. Homeworks and projects will typically use Python. We encourage you to check out this tutorial if you haven’t used it before. Students who have taken Berkeley courses like CS 61A and CS 61B are well-prepared for the programming components of the class.

We do not have the staff bandwidth to help students with material that they should have mastered before taking this course. If you choose to proceed with this course, you are accepting full responsibility to teach yourself anything in your background that you are missing. We will not be slowing down to accommodate you, and questions pertaining to background material will always have the lowest priority in all course forums.


Course Outline

The goal is to teach a principled course in Deep Learning that serves the diverse needs of our students while also codifying the present understanding of the field. Topics covered may include, but are not limited to:
  • Underlying themes of deep learning, including building beyond underlying machine learning concepts like supervised vs unsupervised learning, regression and classification, training/validation/testing, distribution shifts, regularization, the fundamental underlying tradeoffs;
  • Defining and training neural networks: features, computation graphs, backpropagation, iterative optimization (SGD, Momentum, Adam), strategies for training (explicit and implicit regularization, batch and layer normalization, weight initialization, gradient clipping, ensembles, dropout), hyperparameter tuning
  • Families of contemporary models: fully connected networks, convolutional nets, graph neural nets, recurrent neural nets, transformers
  • Problems that utilize neural networks: computer vision, natural language processing, generative models, and others.
  • Pre-training and Fine-tuning, Meta-Learning, Tranfer Learning
  • Conducting experiments in a systematic, repeatable way, leveraging and presenting data from experiments to reason about network behavior.

Assignments

This class includes more or less weekly homework assignments (written and coding components), a course project, a midterm exam, and a final exam. These are all mandatory.

Homework

Weekly homeworks will involve both written and coding components. Homeworks will be nominally due on Sundays at 10:59 PM.

Homework exists mainly for you to learn. We encourage collaboration in teams of 2-4, but everyone turns in their own submission.

We require students to not only do the homeworks, but to carefully understand the solutions. You are required to critically evaluate your homework and to make sure that you can actually do every problem on the assignment for your learning. To do this, we recommend that you redo any part of any question that you didn't get right the first time in light of what you have learned from the solutions.

HW Party: Weekly on Thursday around noon (Typically 11:30-2pm in the Woz Lounge of Soda Hall), course staff will provide an collaborative space and extra support to help students work together and finish the assignment. More details will be posted on Ed.

Course Project

As a design course, EECS 182 requires all students to complete a final project done in teams of four.

  • Entire team gets the same grade.
  • The project details will be announced later, but there will be a range of possibilities including some that are of lower difficulty.
  • A part of doing the project will be doing rubric-based peer evaluation of other students’ projects. Objective peer review is a standard part of academic practice, and this component of the project is designed to simulate this.
  • A part of the project will also involve a poster presentation and being able to verbally answer detailed questions pertaining to your project. This will be scheduled during RRR week. There will be no alternative venues or remote options.

Exams

The Midterm will be held in-person, on the Berkeley campus, on Wed, Oct 11 from 7-9pm. There will be no alternative exams or remote options.

The Final will be in our designated slot based on the lecture time, namely Thu, Dec 14 from 3-6pm. The exam will be in-person on the Berkeley campus. There will be no alternative exams or remote options.

If you cannot make these exam times, you should drop the class and take it in a future semester. Again, there will be no alternative exams or remote options (except as mandated by DSP). Please do not email the staff requesting alternative exams.

Exams in EECS 182/282A will be challenging and serve as the main evaluation criteria for this class.

Participation and Good Citizenship

We expect students to participate in the class in a way that contributes to a positive and inclusive learning atmosphere for fellow students, and helps everyone deepen their mastery of the subject. Actions done in furtherance of these goals earn positive points. Bad citizenship and non-constructive behavior gets negative points. Doing nothing gets zero points. More details will be provided in a relevant Ed thread.

Late Policy

Late HWs and Projects will generally not be accepted, unless you have a DSP accommodation.

Extensions/Accomodations for DSP

Please have your DSP advisor submit a letter.

Grading

Weights (undergrad students):

  • Homework (0%)
  • Midterm Exam (25%)
  • Final Exam (40%)
  • Project (25%)
  • Participation (10%)

Weights (graduate students):

  • Homework (0%)
  • Midterm Exam (25%)
  • Final Exam (35%)
  • Project (30%)
  • Participation (10%)

This class is not graded on a curve. We follow fixed grade bins, and your grade is determined on how well you do, not how well your peers do. Everyone can earn an A. Everyone can fail. The course staff sincerely wants ALL of you to succeed in this class.

Grade Overall Percentage
A [90, 100]
A- [88, 90)
B+ [84, 88)
B [75, 84)
B- [68, 75)
C+ [65, 68)
C [62, 65)
C- [58, 62)
D [53, 58)
F [0, 53)

The instructors may adjust grades upward based on extra credit, etc. Individual categories of the grade can go negative. The grade of A+ will be awarded at the instructor's discretion based on exceptional performance.

If you are taking the class PNP, you will need to attain a letter grade of C- or higher AND pass 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 pass the final to pass.

Regrade Policy: If you believe an error has been made in the grading of one of your exams, you may resubmit it for a regrade. Regrades for cases where we misapplied a rubric in an individual case are in scope but you cannot argue about relative point values within the rubric, as the rubric is applied to the entire class. Because we will examine your entire submission in detail, your grade can go up or down as a result of a regrade request.

Collaboration

We encourage you to work in groups of 2-4 students in completing the homework—however, each student must write up their own solutions and submit individually. You should never directly copy solutions from other students or material from books/online resources. As per standard academic practice, you should should acknowledge any collaborators on an assignment and credit any external sources that you used in your writeup. A failure to cite or acknowledge collaboration is grounds for immediately failing the course.

Because of the nature of the material, we encourage students to explore playing with ChatGPT and other large language models as well as code models, but suggest that you first solve the problems yourself before feeding them to an LLM. The point of feeding them to an LLM is to better understand LLM behavior. Since the HW counts for zero percent of your grade, asking the LLM to do it when you don't know how has the same effectiveness as choosing to drive a lap around your neighborhood instead of going for a run. The point isn't the destination, it's the workout and the journey.

Pulling your weight

The course staff do not have the bandwidth to give you an individualized course or to engage in one-on-one tutoring. You are expected to keep up with the course, take notes, and do all the assignments. At any time when you approach staff for help, you should expect to be able to pull up any homeworks that have been due or to pull out your notes from lecture and/or discussion. If you have not kept up, you will immediately move to the absolute bottom of the queue for getting help. If you cannot devote time and effort to the course, or if you lack the background to keep up, you should not be taking this course.

Course Content and Plagiarism

Please follow the University Policy on Notetaking. You are encouraged to use course materials to teach something to a friend, for personal use, in your research, etc. However, you are strictly prohibited from uploading course-related material (including your own solutions and notes taken from discussion or lecture) to websites such as CourseHero or Chegg, which monetize on copyrighted material without instructor permission. Doing so will be considered academic misconduct and will result in a referral to the Center of Student Conduct. It is also grounds for immediately failing the course.


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. We expect you to keep up with the course, but understand that sometimes external events can interfere with that and we will try to accomodate.
  • If something happens in the course that runs counter to the goal of making every properly prepared and hard working student feel safe, respected, and welcome, please contact the professor; 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 EECS 182/282A community, please realize that you have an important duty to help other students feel respected in helping create an inclusive learning environment.


Enrollment

Here are the policies that govern admission into classes. The course staff does not control enrollment!

For students on the waitlist, please participate in the course as though you are in it. We expect many students to drop as is typical in advanced high workload courses of this type. If pre-pandemic past experience is any indication, enough students will drop so that everyone on the waitlist who is still interested will likely get enrolled. Of course, we don't know how well pre-pandemic experience extrapolates to now, so reality might be different.

For concurrent enrollment students, your applications will be processed by whatever process the department sets up. We hope that everyone gets in who is adequately prepared to take the class and put in the work that will be demanded from you. We are basically awaiting funds from the department to let us do this.