10-607, Fall 2022

Computational Foundations for Machine Learning


Key Information

Mondays and Wednesdays: 11:50 AM - 1:10 PM, Wean 2302.

Fridays: 11:50 AM - 1:10 PM, Wean 2302.

Michael Feffer and Aishwarya Jadhav, see the Staff section

There is no required textbook for this course. However, the following textbooks are recommended as a way to get an alternate presentation of some of the course material:

We will use Canvas for any course announcements.

Students will turn in their homework electronically using Gradescope.

Course Description

This course provides a place for students to practice the necessary computational background for further study in machine learning. Topics covered include computational complexity, analysis of algorithms, proof techniques, optimization, dynamic programming, recursion, and data structures. The course assumes some background in each of the above, but will review and give practice in each. (It does not provide from-scratch coverage of all of the above, which would be impossible in a course of this length.) Some coding will be required: the course will provide practice with translating the above computational concepts into concrete programs.

Relationship between 10-606 and 10-607

These two minis are intended to prepare students for further study in machine learning – particularly for taking 10-601 and 10-701. One of the courses (10-606) focuses on mathematical background, and the other course (10-607) focuses on computational background. Most students take both mini courses, but this is not required. 10-606 is not a prerequisite of 10-607.


Below is a summary of the background required for 10-607 (consistent with previous offerings):

We’ll assume you are comfortable with all of the prerequisites for 10-606, namely:

  • We’re assuming mathematical maturity: you should be familiar with the idea of derivations and proofs, and of building formal representations for objects given their English­ language description.
  • We’ll assume that you can take scalar derivatives.
  • We’ll assume that you’ve seen real vector spaces and matrices (linear operators) and know how to reason about things like matrix multiplication and solving systems of linear equations.
  • We’ll assume that you’ve seen sets and data types.
  • We’ll assume that you’ve worked with probabilities (e.g., conditioning, Bayes rule).
  • We will also assume familiarity with coding. The assignments and in-class activities will include some Python.
  • For the above topics, we intend to give complete definitions and/or resources to learn from, but often we will go over them quickly: we expect that most people will know a lot of the definitions, and will be willing to work outside of class to understand the ones they don’t know. So, for each topic that you’re unfamiliar with, you should expect to do some extra work; if you’re unfamiliar with several of them, that could make it hard to keep up.

In addition, the first mini (10-606) is a recommended, but certainly not necessary, prerequisite. It is expected that some students will take 10-607 without 10-606. The material for 10-607 stands alone; however, the Machine Learning applications we consider may require the level of mathematical maturity of someone who has completed 10-606.

Please see the instructor if you are unsure whether your background is suitable for this course.





Teaching Assistants





Office Hours

See office hours below.

Hoda Hediari:

Mondays in GHC 8229 at 4 PM

Michael Feffer:

Fridays in Porter A20 at 10 AM

Aishwarya Jadhav:

Tuesdays via Zoom at 6 PM

Schedule (subject to change)


There will be two homework assignments. Homework assignments will often have both written and online components. Follow the instructions in the Canvas post when homework is announced to make sure complete all necessary components. Due dates are tentative for any assignments that haven't been released yet.

Assignment due dates

Assignment Link (if released) Due Date
10-607 HW 1 (online and written) PDF, zip 11/14 Fri, 11:59 pm
10-607 HW 2 (online and written) PDF, zip 12/05 Fri, 11:59 pm


See below for a calendar of all lectures, recitations, and important events.



For more information about the course policies below, consult the official course syllabus.

Late Policy

Homework assignments:

  • 4 flex days across all assignments
  • Flex days are counted by the granularity of days. For example, if you turn in your assignment 30 minutes after the deadline, that will count as one full flex day.
  • You may use these at your discretion, but they are intended for minor illness and other disruptive events outside of your control, and not for poor time management
  • You do not need to provide the reason: simply email the teaching staff and tell them how many of your flex days you would like to use.
  • You are responsible to keep track of your own flex days. Gradescope will not enforce the total number of flex days
  • Once you’ve exhausted your flex days, then point deductions will occur for any assignment submitted after the deadline.
  • An assignment submitted 24 hours after the due date will only be eligible for 80% of the maximum number of points allotted.
  • Assignments submitted more than 24 hours after the due date will not be accepted.
  • Note that you cannot use your flex days for in-class quizzes.

Aside from this, there will be no extensions on assignments in general. If you think you really really need an extension on a particular assignment, contact the instructor as soon as possible and before the deadline. Please be aware that extensions are entirely discretionary and will be granted only in exceptional circumstances outside of your control (e.g., due to severe illness or major personal/family emergencies, but not for competitions, club-related events or interviews). The instructors will require confirmation from University Health Services or your academic advisor, as appropriate.
Nearly all situations that make you run late on an assignment homework can be avoided with proper planning — often just starting early. Here are some examples:

  • I have so many deadlines this week: you know your deadlines ahead of time — plan accordingly.
  • It's a minute before the deadline and the network is down: you always have multiple submissions - it's not a good idea to wait for the deadline for your first submission.
  • My computer crashed and I lost everything: Use Dropbox or similar to do real-time backup - recover your files onto AFS and finish your homework from a cluster machine.
  • My fraternity/sorority/club has that big event that is taking all my time: Schedule your extra-curricular activities around your classes, not vice versa.

Collaboration Policy

We encourage you to discuss course content and assignments with your classmates. However, these discussions must be kept at a conceptual level only.

  • You may NOT view, share, or communicate about any artifact that will be submitted as part of an assignment. Example artifacts include, but are not limited to: code, pseudocode, diagrams, and text.
  • You may look at another student's code output and discuss it at a conceptual level, as long as it is not output that appears directly in the homework submission.
  • You may look at another student's code error messages and discuss what the error means at a conceptual level. However, you may NOT give specific instructions to fix the error.
  • All work that you present must be your own.
  • Using any external sources of code or algorithms in any way must have approval from the instructor before submitting the work. For example, you must get instructor approval before using an algorithm you found online for implementing a heuristic function in a programming assignment.

Violations of these policies will be reported as an academic integrity violation. Information about academic integrity at CMU may be found at https://www.cmu.edu/academic-integrity. Please contact the instructor if you ever have any questions regarding academic integrity or these collaboration policies.

Accommodations for Students with Disabilities

If you have a disability and have an accommodations letter from the Disability Resources office, we encourage you to discuss your accommodations and needs with us as early in the semester as possible. We will work with you to ensure that accommodations are provided as appropriate. If you suspect that you may have a disability and would benefit from accommodations but are not yet registered with the Office of Disability Resources, we encourage you to visit their website.

Statement of Support for Students’ Health & Well-being

Take care of yourself. Do your best to maintain a healthy lifestyle this semester by eating well, exercising, getting enough sleep, and taking some time to relax. This will help you achieve your goals and cope with stress.
All of us benefit from support during times of struggle. There are many helpful resources available on campus and an important part of the college experience is learning how to ask for help. Asking for support sooner rather than later is almost always helpful.
If you or anyone you know experiences any academic stress, difficult life events, or feelings like anxiety or depression, we strongly encourage you to seek support. Counseling and Psychological Services (CaPS) is here to help: call 412-268-2922 and visit their website at http://www.cmu.edu/counseling/. Consider reaching out to a friend, faculty or family member you trust for help getting connected to the support that can help.
If you have questions about this or your coursework, please let us know. Thank you, and have a great semester.