CS230 Deep Learning

Deep Learning is one of the most highly sought after skills in AI. In this course, you will learn the foundations of Deep Learning, understand how to build neural networks, and learn how to lead successful machine learning projects. You will learn about Convolutional networks, RNNs, LSTM, Adam, Dropout, BatchNorm, Xavier/He initialization, and more.

Syllabus Ed (link via Canvas) Lecture videos (Canvas) Lecture videos (Fall 2018)

Course Information

  • This quarter (2023 Spring), CS230 meets for virtual in-class lecture Wednesday 9:30AM-11:20AM on Zoom.
  • All class communication happens on the CS230 Ed forum. For private matters, please make a private note visible only to the course instructors. For longer discussions with TAs and to get help in person, we strongly encourage you to come to office hours.
  • The course content and deadlines for all assignments are listed in our syllabus.
  • For general inquiries, please contact cs230-qa@cs.stanford.edu.
  • Please DO NOT reach out to the instructors’ emails or individual teaching staff’s emails. Instead, please contact the teaching staff at cs230-qa@cs.stanford.edu for the fastest response. Because of the size of the course, emails tend to get lost when reaching out to individuals in the teaching team. General inquiries to the mailing list (cs230-qa@cs.stanford.edu) will help us get back to you in a timely manner.
  • If you are interested in auditing the course, fill out this form.

Course Staff

Course Assistants

Logistics

All course announcements take place through the CS230 Ed forum. Please make sure to join!

Class components

CS230 has the following components:

  • In class (virtual) lecture - once a week (hosted on Zoom). You can access lectures by going to the “Zoom” tab of Canvas.
  • Video lectures, programming assignments, and quizzes on Coursera
  • A midterm covering material from the first half of the quarter
  • The final project
  • Weekly TA-led sections

The flipped classroom format

CS230 follows a flipped-classroom format, every week you will have:

  • Virtual lectures on Wednesday 9:30AM-11:20AM: these lectures will be a mix of advanced lectures on a specific subject that hasn’t been treated in depth in the videos or guest lectures from industry experts. You can access these lectures on the Zoom tab on Canvas, and they will also be posted afterwards on Canvas.
  • Two modules from the deeplearning.ai Deep Learning Specialization on Coursera. You will watch videos at home, solve quizzes and programming assignments hosted on online notebooks.
  • TA-led sections on Fridays: Teaching Assistants will teach you hands-on tips and tricks to succeed in your projects, but also theorethical foundations of deep learning.
  • Project meeting with your TA mentor: CS230 is a project-based class. Through personalized guidance, TAs will help you succeed in implementing a successful deep learning project within a quarter.

One module of the deeplearning.ai Deep Learning Specialization on Coursera includes:

  • Lecture videos which are organized in “weeks”. You will have to watch around 10 videos (more or less 10min each) every week.
  • Quizzes (≈10-30min to complete) at the end of every week to assess your understanding of the material.
  • Programming assignments (≈2h per week to complete). The programming assignments will usually lead you to build concrete algorithms, you will get to see your own result after you’ve completed all the code. It’s gonna be fun! For both assignment and quizzes, follow the deadlines on the Syllabus page, not on Coursera.

Prerequisites

Students are expected to have the following background, and are invited to take the Workera technical assessments prior to the class to self-assess themselves prior to taking the class:

  • Knowledge of basic computer science principles and skills, at a level sufficient to write a reasonably non-trivial computer program. This corresponds to a Developing level (or badge) in the “Algorithmic Coding” section on Workera.
  • Familiarity with the probability theory (CS 109 or STATS 116), which students can assess by taking the “Data Science” section on Workera.
  • Familiarity with linear algebra (MATH 51), which students can assess by taking the “Mathematics” section on Workera.

Grading

Here’s more information about the class grade:

Breakdown

Below is the breakdown of the class grade:

  • 40%: Final project (broken into proposal, milestone, final report and final video)
  • 25%: Midterm
  • 25%: Programming assignment
  • 8%: Quizzes
  • 2%: Meeting Attendance

Note: For project meetings, every group must meet 3 times throughout the quarter:

  1. Before the project proposal deadline to discuss and validate the project idea. This can be with any TA.
  2. Before the milestone deadline, with your assigned project TA.
  3. Before the final report deadline, again with your assigned project TA.

Every student is allowed to and encouraged to meet more with the TAs, but only the 3 meetings above count towards the final participation grade.

Submitting Assignments

From the Coursera sessions (accessible from the invite you receive by email), you will be able to watch videos, solve quizzes and complete programming assignments. Each quiz and programming assignment can be submitted directly from the session and will be graded by our autograders.

You will submit your project deliverables on Gradescope. You should be added to Gradescope automatically by the end of the first week. If you are not added by the first week of the course, please make a private post on Ed.

Late assignments

Each student will have a total of ten free late (calendar) days to use for programming assignments, quizzes, project proposal and project milestone. Each late day is bound to only one assignment and is per student.

For example, if one quiz and one programming assignment are submitted 3 hours after the deadline, this results in 2 late days being used.

For example, if a group submitted their project proposal 23 hours after the deadline, this results in 1 late day being used per student.

Once these late days are exhausted, any assignments turned in late will be penalized 20% per late day. However, no assignment will be accepted more than three days after its due date, and late days cannot be used for the final project and final presentation. Each 24 hours or part thereof that a homework is late uses up one full late day. Also, note that if you submit an assignment multiple times, only the last one will be taken into account, in which case the number of late days will be calculated based on the last submission.

Students with Documented Disabilities

Students who may need an academic accommodation based on the impact of a disability must initiate the request with the Office of Accessible Education (OAE). Professional staff will evaluate the request with required documentation, recommend reasonable accommodations, and prepare an Accommodation Letter for faculty. Unless the student has a temporary disability, Accommodation letters are issued for the entire academic year. Students should contact the OAE as soon as possible since timely notice is needed to coordinate accommodations. The OAE is located at 563 Salvatierra Walk (phone: 723-1066).

Honor code

We strongly encourage students to form study groups. Students may discuss and work on programming assignments and quizzes in groups. However, each student must write down the solutions independently, and without referring to written notes from the joint session. In other words, each student must understand the solution well enough in order to reconstruct it by him/herself. In addition, each student should submit his/her own code and mention anyone he/she collaborated with. It is also an honor code violation to copy, refer to, or look at written or code solutions from a previous year, including but not limited to: official solutions from a previous year, solutions posted online, and solutions you or someone else may have written up in a previous year. Furthermore, it is an honor code violation to post your assignment solutions online, such as on a public git repo.

The Stanford Honor Code

The Stanford Honor Code as it pertains to CS courses