General Information

Catalog description // Communication // Organization // Learning Objectives // Labs // Grading // Textbooks // Collaboration // Class meetings // Staff // Discussion Board // Office hours // Miscellaneous

HMC catalog description

Prereq.: Either CS 42 or CS 60 and either Math 65 or Math 73.

From the course catalog (unchanged since 2009):

Modeling, simulation, and analysis of artificial neural networks and their relation to biological networks. Design and optimization of discrete and continuous neural networks. Back propagation, and other gradient descent methods. Hopfield and Boltzmann networks. Unsupervised learning. Self-organizing feature maps. Applications chosen from function approximation, signal processing, control, computer graphics, pattern recognition, and time-series analysis. Relationship to fuzzy logic, genetic algorithms, and artificial life.

Description of course as it will be taught:

In the past several years, deep neural networks have been used for applications as diverse as: text-to-speech, speech recognition, image labeling and captioning, autonomous vehicle navigation, language translation, and world-class Go and Chess AI players. This course will explore how these networks are designed and trained, with hands-on projects. Specific topics covered include:

Implementation will be in Python, using PyTorch and


There is a Sakai site which will be used for gradebook, assessments, announcements, and Zoom links.

We will distribute assignments on the course web site, and make all announcements through Sakai Announcements. The course web site has the schedule for the term. You can access the course website from Sakai.


This class is organized as a flipped classroom. Lectures are prerecorded, and students watch them before the class meeting. Classroom time is used for in-class activities and for answering questions about the lectures.

There is a large focus in this class on hands-on work with Neural networks, organized into 7 separate labs. Our (optional) meetings on Wednesdays from 6-8 PM will be a time for me to work with you on your labs.

Note that there are two sections of this class. Each has separate classroom time, but both share a single lab time.

Learning Objectives

I've identified 13 Learning Objective bundles for this class (Learning Objectives). For each bundle, there is an assessment: a quiz that identifies whether you've met the learning objectives in the bundle. The assessment is closed-book, closed-note. You demonstrate mastery over the objective bundle by getting 100% on the assessment.

The assessments can be taken starting on Thursday of the week that they are shown in the schedule. If you don't succeed in getting 100% on the assessment, you can retake the assessment starting on Thursday the following week. The assessment questions are drawn from a random pool, so each attempt may be different. (Note that the last two assessements, RNNs and Transformers, can be retaken twice a week, starting on Thursdays and Mondays, since otherwise there would be few retakes available.)

Thus, you can retake an assessment as many times as you need (although at most once per week—or twice per week in the case of RNNs or Transformers).

Please feel free to book office hours or to ask questions on Sakai Forums to prepare for an initial assessment, or a retake.

The three hours reserved for the final exam will be used as a final assessment opportunity. You can retake any assessments you'd like during that three-hour window.


A large part of the learning in this class occurs while working on the labs.

The labs are independent of one another, although concepts build throughout the labs. (See the Labs tab in the toolbar at the top of this page.)

Labs are worked on in teams of up to 2. Teams are your choice, and your partner need not be in the same section of the class.

Labs are assessed in the following way: The code submittal process is very similar to the process that's found in industry:

Thus, a lab is not finished until it is corect and complete.

It's up to you how many labs you complete (which has a direct effect on your final grade).

We'll have a 2-hour scheduled time from 6-8 PM on Wednesdays whose purpose is to help you with your labs. Each team will be in a Zoom breakout room and I'll visit room to room helping each team.

Labs are time-consuming (and, at times frustrating). However, I guarantee you'll learn a lot, and that many of you will get quite a bit of enjoyment and satisfaction from their completion.

It is important to me that each member of the team understand the entirety of the code that is submitted. Thus, for each submittal, I'll meet with the team and ask questions about the submittal to ensure each member of the team completely understands what has been submitted. If there's a lack of understanding, we'll schedule further meetings as needed.

There is a final due date: all code reviews will stop at 8AM, PDT, Monday, May 10, so no labs will be approved after that time.

Although there are no explicit intermediate due dates, don't expect to be able to wait until late in the semester, and still be able to finish all the labs. One large constraint is the code review process. I'll get responses back to you within 48 business hours, but the number of cycles of review before the lab is accepted is potentially unbounded.

I'm available to answer questions about labs and look over your code during office hours. Please feel free to post questions (and answer other's questions) about the labs on Sakai Forums. Although you can discuss code, don't provide solution code (in either your questions or in your answers). One-line code snippets are fine, as is discussion about any problems you are having. So, don't paste in your several lines of code that attempt to solve an exercise in the lab and ask what's wrong with the code. However, you may describe what your code is doing and ask questions about that.

Grading policy

Your course grade is determined by the quality and quantity of the work that you submit in the class that is judged to be of an acceptable level of quality. The following table shows what is required for each grade. Note that a grade requires all of the given requirements. For example, a B requires completing 6 labs and 5 Lab challenge problems and12 completed learning objective assessments (quizzes).

Grade Lab RequirementLab Challenge problems
(no more than 2 per lab)
Number of satisfactorily
completed quizzes
A* 7 labs ≥7 ≥13
A-* 7 labs ≥7 ≥12
B+ 6 labs ≥6 ≥12
B 6 labs ≥5 ≥12
B- 6 labs ≥4 ≥11
C+ 5 labs ≥4 ≥10
C 5 labs ≥4 ≥9
C- 5 labs ≥2 ≥9
D+ 4 labs ≥0 ≥8
D 4 labs ≥0 ≥7
* In order to receive an A or A-, not only do you need to finish the requirements listed, but need to meet an intermediate milestone of having succesfully completed 5 quizzes and 4 labs by 11:59 PM Friday, March 19th.


CS 152 relies on the following two books:


  1. All students enrolled in this course are bound by the HMC Honor Code. More information on the HMC Honor Code can be found in the HMC Student Handbook.
  2. It is your responsibility to determine whether your actions adhere to the HMC Honor Code. If this document does not clarify the legitimacy of a particular action, you should contact the course instructor and request clarification.
  3. Work you submit for individual assignments should be your own, and you should complete all assignments based on your own understanding of the underlying material. If you work with, or receive help from, another individual on an assignment, provide a written acknowledgement in complete sentences that includes the person's name and the nature of the help.
  4. When you submit a group lab, the group should complete the lab based on your group's understanding of the underlying material. If your group works with, or receives help from another individual or group on an lab, provide a written acknowledgement in complete sentences that includes the person's name and the nature of the help. The submitted lab should be based on joint work among all members of the group, and all group members should understand the entire lab and submittal. If one or more members of the group did not participate in a lab, provide an explanatory statement as part of the submission.
  5. This document is not meant to be an exhaustive list of every possible Honor Code violation. Infractions not explicitly mentioned here may still violate the Honor Code.
  6. Boundaries of Collaboration: verbal collaboration with other students on labs is encouraged. However, all submitted written work should be written by yourself individually, and not a collaborative effort or copied from a common source (e.g., a chalkboard).
  7. Use of Web Resources: the use of Internet resources to aid in course work is acceptable, as long it does not substitute for an understanding of the course material. Plagiarism and direct copying from online (or any other) sources is strictly prohibited. However, you may not look at source code for labs from the internet or from other students.
  8. Use of Your Own Work from Previous Semesters: if you have previously attempted this course, you may refer to your work from previous semesters, but may not resubmit it as this semester's coursework.
  9. Use of Other Course Resources from Previous Semesters: You may not reference assignments of this course from previous semesters or tests from previous semesters (other than those explicitly provided by the instructor as study aids).
  10. Retention of Course Resources: assignments and exams from this course may not be committed to dorm repositories or otherwise used to help future students.

    Class meetings

    Class sessions will be held on Monday and Wednesday:

    • Section 1: 12:45pm to 2:00pm (PDT).
    • Section 1: 2:30pm to 3:45pm (PDT).
    Zoom links for class sessions can be found on the Sakai calendar. Please attend class with:
    • A laptop/computer/tablet with web access.
    • Be prepared to share your screen, either with other students with whom you'll collaborate, or with me to provide assistance,.
    • A camera (with video on, if at all possible)
    • A microphone (off, to begin with)

    A lab is also scheduled for this class on Wednesdays from 6pm to 8pm (PDT). I'll be present during lab hours, available to answer lab questions. Zoom links for class sessions can be found on the Sakai calendar.

    • We'll usually quickly break out into 1 team per breakout room.
    • Be prepared to share your screen. That's how you'll share your screen with your teammate, and how you'll share your screen with me.
    • If you have a question for me, add your breakout room number to the queue. I'll move through the breakout rooms answering questions to those in the queue. If the queue is empty, I'll join a random breakout room to see what a team is doing. (I'll be virtually walking through the lab looking over your shoulders).
      • I may just watch and listen
      • I may ask leading questions:)
      • I may give advice
      • I may just stick around for a a short while, and then move on to another breakout room.


    Neil Rhodes


    • Jake Fisher
    • Rory Zhao
    • Mo Emish
    • Kyle Rong

    Discussion Board
    We'll use Sakai's Forums for general questions (about topics in lecture, quizzes, labs, etc.). Please post any answers that you may have. That can often provide a more timely response to your fellow students.

    If it's a lab question containing code that shouldn't be posted publicly, or questions about a grade, for example, send a Sakai Message to both instructors and teaching assistants (grutors).

    If there's something private to me: use Sakai's Messages to send to the instructor.

    Office hours

    Office hours will be used for:
    • Any questions you have about lectures, in-class assignments
    • Questions about Learning Objectives or Quizzes
    • Questions/problems with your lab (be prepared to share your screen in order to show me code)
    • Oral Q&A discussing lab submissions with all team members
    • Anything else you wish to discuss with me
    I have several hours of Office Hours each week, broken up into 15-minute slots. You can reserve a 15-minute appointment in my Google Calendar appointment page. Notes:
    • If you can't make a time slot you've reserved, please cancel that time slot as soon as you can. That'll allow other students to use the spot.
    • The appointment contains the zoom link to use for the appointment.
    • If a team needs to meet, have one student book the slot and both join the zoom call
    • If you're in office hours, and the slot time ends, then if nobody has the next slot you can spill over into the next slot
    • If no more time slots are available in a week, please post a message on Sakai Forums (or send me a Sakai message), and I'll see about opening up some more slots for that week.
  11. The zoom link is in the appointment.

    Grutor hours

    Grutors will help in-class and during lab time and will also have zoom hours available (see the Sakai Calendar for details).


    If you need accommodations for a documented disability, please talk to me or contact Brandon Ice, the HMC Student Accommodation Advisor ( You will find information about disability resources on the college website: Students from the other Claremont Colleges should contact their home college';s disability officer. If I learn of a potential violation of the college's gender-based misconduct policy (see, I am required to report it to Leslie Hughes, the HMC Title IX Coordinator. If you want to speak to someone confidentially, the following resources are available on and off campus: the EmPOWER Center (909-607-2689), the Monsour Counseling Center (909-621-8202), and the McAlister Chaplains (909-621-8685).


    CS 152 home // Last updated Wed Apr 7 05:04:21 PM PDT 2021