CS230: Deep Learning

Autumn 2017

Instructors


Course Description   Deep Learning is one of the most highly sought after skills in AI. We will help you become good at Deep Learning. 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. You will work on case studies from healthcare, autonomous driving, sign language reading, music generation, and natural language processing. You will master not only the theory, but also see how it is applied in industry. You will practice all these ideas in Python and in TensorFlow, which we will teach. After this course, you will likely find creative ways to apply it to your work. This class is taught in the flipped-classroom format. You will watch videos and complete in-depth programming assignments and online quizzes at home, then come to class for advanced discussions and work on projects. This class will culminate in an open-ended final project, which the teaching team will help you on.

Announcements

  • 09/24/17 Welcome to CS230! We look forward to meeting you Monday 9/25 at 11:30 AM!

Course Information

Time and Location
M 11:30 AM - 12:50 PM, STLC 118 (Science Teaching & Learning Center)
Contact Information
If you have a question, to get a response from the teaching staff quickly we strongly encourage you to post it to the class Piazza 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. You can also reach out to us via email at cs230-qa@cs.stanford.edu (a mailing list consisting of the TAs and instructors).
Office Hours
Kian Katanforoosh: Fri 3:00PM - 5:00PM Gates B30, Sun 5:00PM - 7:00PM Gates B21
Ramtin Keramati: Tue 4:00PM - 6:00PM Gates B21, Thu 1:00PM - 3:00PM Gates B21
Teaching Assistant
     
Course Advisor

Logistics

Prerequisites
Students are expected to have the following background:
  • Knowledge of basic computer science principles and skills, at a level sufficient to write a reasonably non-trivial computer program.
  • Familiarity with the probability theory. (CS 109 or STATS 116)
  • Familiarity with linear algebra (any one of Math 104, Math 113, or CS 205)
  • CS 229 may be taken concurrently
Course Materials
If you have been accepted in CS230, you must have received an email from Coursera confirming that you have been added to a private session of the course "Neural Networks and Deep Learning". Follow the instructions to setup your Coursera account with your Stanford email.
On the Coursera platform, you will find:
  • Lecture videos which are organized in "weeks". You will have to watch around 10 videos (more or less 10min each) every week. Make sure you are up to date, to not loose the pace of the class.
  • Quizzes (≈10-30min to complete) at the end of every week. These quizzes are here 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!
You will follow the following schedule, week by week, and have lectures on Monday. These lectures will be a mix of advanced lectures on a specific subject that hasn't been treated in depth in the videos, guest lectures from industry experts or discussion sessions where you get to ask questions. We will announce the next lecture along the quarter.
Grading
There will be 22 programming assignments, an open-ended term project and a final presentation. Programming assignments will contain questions that require Python programming. In the term project, you will investigate some interesting aspect of deep learning or apply deep learning to a problem that interests you.
Course grades: Grade will be based 40% on homeworks (~2% each), 2% on attendance, 18% on quizzes and 40% on the term project (including 2% for project proposal, 2% for project milestone, 6% for final presentation and 30% on the final write-up (jupyter notebook)
Submitting Assignments
For this course, you will be invited to a private Coursera Session. In this session, you will be able to watch videos, do quizzes and complete programming assignments. Each quiz and programming assignment can be submitted directly from the session and will be graded by our autograder.
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. 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.
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.

Acknowledegment   This webpage is using the code from Shuqui Qu and Ziang Xie who have built the CS229 webpage, special thanks to them.