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 Lecture videos (Canvas) Lecture videos (Fall 2018)

Course Information

  • In person lectures are on Tuesdays 11:30am-1:20pm..
  • Lectures will be held at Hewlett Teaching Center 200.
  • 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-person lecture - once a week at Hewlett Teaching Center 200. You can access lectures by going to the “Panopto Course Videos” 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:

  • In-person lectures on Tuesdays: 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 Canvas, and they will also be posted afterwards as well.
  • 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 if they want, are invited to take the Workera technical assessments prior to the class to self-assess themselves prior to taking the class:

  • Familiarity with the probability theory (CS 109 or STATS 116), which students can assess by taking the “Probabilities & Statistics” domain on Workera (aim for “Developing” proficiency).
  • Familiarity with basic statistics and data science, which students can assess by taking the “Data Science Processes” domain on Workera (aim for “Developing” proficiency).
  • Familiarity with linear algebra (MATH 51).
  • Knowledge of basic computer science principles and skills, at a level sufficient to write a reasonably non-trivial computer program.

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 poster session)
  • 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

Generative AI Policy: Each student is expected to submit their own work for assignments. You may use generative AI tools (i.e., Co-Pilot, ChatGPT) as you would use a human collaborator. You may not directly ask generative AI tools for answers or copy solutions, and you must acknowledge generative AI tools as collaborators. Using Generative AI tools to substantially complete an assignment or exam (e.g. by directly copying) is prohibited and will result in honor code violations. We will be doing our due diligence in reviewing assignments to enforce this policy. For more details: