Course Information and Syllabus

Date and Time

CS 152: Neural Networks
Spring 2025
Tuesday and Thursday
1:15 to 2:30
Seaver Commons 103
Google Sheet

Instructor and Teaching Assistant

Professor Anthony Clark (Research Website)

Here are some quick highlights about me:

Teaching Philosophy

I above all aim to be a thoughtful teacher. Here are a few thoughts on my teaching mindset:

  • Failure is an important step in learning.
  • I can teach you how to be a better learner.
  • Lessons are retained longer when learning is harder.
  • You will always be supported; you are never alone.
  • You are only competing with yourself; you’ve already “made-it”.
  • Diversity, equity, and inclusion are important.
  • Honest, kind critique is essential to learning (feedback).

Habits That Help

Here are a few habits that will help you:

  • Attending office hours. It helps us both.
  • Seeing failure as a source of useful information.
  • Focusing on learning not performance.
  • Reflecting on your learning habits.
  • Regularly self-reflecting and reflecting on materials.
  • Getting started early.
  • Sticking to a schedule.
  • Actively participating in class.
  • Have a growth-mindset (failures can be remedied).

See my advising page for additional information on CS and being a student at Pomona College.

Teaching Assistants And Office Hours

Day Time Person Location
Monday 10:00 to 11:30 AM Clark Edmunds 127
Monday 7:30 to 9:00 PM Yotam CS Lounge
Tuesday 8:30 to 10:00 PM Aldo Edmunds 101
Wednesday 7:00 to 9:00 PM Sae CS Lounge
Wednesday 10:00 to 11:30 AM Clark Edmunds 127
Friday 12:00 to 1:00 PM Clark Edmunds 127

About This Course

Catalog Description: An introduction to the theory and practical applications of neural networks. This course will cover simple perceptrons through modern convolutional and recurrent neural networks. Topics include gathering and processing data, optimization algorithms, and hyperparameter tuning. Application domains include computer vision, natural language processing, recommender systems, and content generation. Ethical implications of design decisions will also be considered throughout the course.

Prerequisites: Data Structures and Calculus

Learning Objectives: Upon completion of this course, students will be able to:

  1. Explain ethical considerations of NN applications.
  2. Explain recent advances in neural networks (i.e., deep learning).
  3. Explain how NNs compare to other machine learning techniques.
  4. List and understand the major application domains of NNs.
  5. Understand and code foundational NN techniques.
  6. Create, clean, and examine datasets.
  7. Understand the hyperparameters and dynamics (e.g., bias and variance) of training an NN model.
  8. Use an NN framework and deploy build a model for a real-world application.

Course Logistics

These plans are subject to change based on our experiences and your feedback.

Class periods will be used to discuss lecture materials, work on assignments, and complete checkpoints. Occasionally, I will have you watch lecture videos prior to class so that we can focus on problem solving in class. You can find more information about lecture topics and materials in the course schedule and more information about checkpoints below.

Resources

We will not have a book for this class, but here are some helpful links to courses, tutorials, books, etc.

Courses

Books

Math

Extras

Python

Ethics

Libraries/Frameworks/Tools

Grading Procedures

Grade Questionnaires Assignments Project
A 12/12 12/12 Complete
A- 11/12 11/12 Incomplete
B 10/12 10/12 Incomplete
B- 9/12 9/12 Incomplete
C 12/12 12/12 Incomplete

Note the unusual grading for a C. You can skip the project and get a C, but you cannot skip the project and get an A or a B.

Also note the project grading. A complete project is one that completes all of the project milestones. Some projects will not receive full marks because they do not address all concerns mentioned on the rough draft.

Grades using a “+”, “-”, “D”, or “F” are reserved for situations in which a student does not meet the criteria above. Mostly it will be for students that work on a successful project, but do not contribute to the project as indicated by peer evaluations.

Questionnaires

In the Pre-Class column of the schedule you will find links to blog posts, research articles, YouTube videos, videos I create, etc. I expect you to read/watch these materials before class, and I will ask you to complete weekly questionnaires on gradescope. These will be completed prior to Thursday class periods.

Assignments

You will submit assignments to gradescope. You may work on assignments individually or with up to two additional partners of your choice. If you’d like to be assigned a partner, please send me a message on Slack and I will randomly assign partners when I have a pool of students.

Assignments will not be graded per se; instead, you will meet with a TA and walk them through your answers and code. They will then mark your assignment as “nailed it” or “not yet”. You should not meet with a TA until you have completed your assignment. Of course, you can still visit them during mentor sessions to ask for help.

If you do not pass an assignment on the first meeting, then you will need to work on your answers, resubmit, and then schedule a new time to meet with a TA. As a rule-of-thumb, you can think of a “nailed it” as at least a 90% on the assignment.

Project

Everyone is expected to complete a course project related to neural networks (though you can still pass the course without the project). All projects reports will be hosted as websites. Project grading will rely heavily on self-assessments and peer evaluations.

Project Milestones

Course projects have the following milestones (see the schedule for exact deadlines). You can also view the project page for more information.

Why Develop a Project Like This?

I want you to work on your project this way because it makes it easier for:

  • you all to keep momentum throughout the semester,
  • everyone to see each others work,
  • me to see what you’ve changed after revisions (by looking at your commit history and diffs), and
  • partners to work together on a single code-base.

Peer Evaluations

Peer evaluations are confidential. Only the submitter and I will see them.

Peer evaluations are used as a way to ensure that all group members are contributing. If group members disagree in the evaluations I will ask for more information, and it is possible that I will make appropriate grade adjustments based on this feedback.

Course Policies

Accommodations

If you have a disability (for example, mental health, learning, chronic health, physical, hearing, vision, neurological, etc.) and expect barriers related to this course, it is important to request accommodations and establish a plan. I am happy to help you work through the process, and I encourage you to contact the Student Disability Resource Center (SDRC) as soon as possible.

I also encourage you to reach out to the SDRC if you are at all interested in having a conversation. (Upwards of 20% of students have reported a disability.)

Academic Honesty and Collaboration

I encourage you to study and work on exercises with your peers (unless otherwise specified). If you are ever unsure about what constitutes acceptable collaboration, please ask!

I recommend using Slack (text, audio, or video) for communication, and using the Visual Studio Code Live Share Extension for pair programming. We will spend some time in class getting this setup, but these instructions will also be of use.

For more information, see the Computer Science Department and the Pomona College policies.

I take violations of academic honesty seriously. I believe it is important to report all instances, as any leniency can reinforce (and even teach) the wrong mindset (“I can get away with cheating at least once in each class.”).

Academic Advisory Notice

I will do my best to update you if I think you are not performing at your best or if you are not on pace to pass the class. I will first reach out to you and then use the system built-in to my.pomona.edu that will notify your advisor so you are encouraged to work with a mentor or advisor on a plan.

Attendance

I expect you to attend every class, but I will not directly penalize you for missing class. Know that there is a strong correlation between attendance and grades, and you will almost certainly be indirectly penalized.

You are responsible for any discussions, announcements, or handouts that you miss, so please reach out to me. If you need to leave class early for any reason, please let me know before class begins so that I am not concerned when you leave.

Late Submissions

Late assignments will not be accepted. However, if you plan ahead you can ask for an extension prior to the assignment deadline (at least four days).

Unless requested ahead of time, some assessments (e.g., quizzes) cannot be completed after the class period in which they are scheduled.

Feedback

If you have any question for me, I would love for you to ask them on Slack. I will enable a bot that will allow you to make comments anonymously. The CS department also has an anonymous feedback form if you would like to provide feedback outside of class channels.