Mathematical and Computational Foundations for Machine Learning
Summer 1 (10606) and Summer 2 (10607) 2020, CMU
Please keep monitoring the CMU page for students for updates about the current situation, and links to resources, pertaining to many things such as travel, what to do if you are sick, as well as if you need counseling (CaPS information is also at the bottom of this page). Keep following Piazza for any updates relevant to the course. Reach out to your academic advisor if you are under stress for any reason. Please do not hesitate to reach out to the course staff.
Lectures: MW (possibly F, check schedule below), 10:30-11:50am, Zoom (link on Piazza)
Recitations: F, 10:30-11:50am, Zoom (link on Piazza)
Piazza will be used for discussion about the course and assignments.
This course provides a place for students to practice the necessary mathematical background for further study in machine learning. Topics covered include probability (random variables, modeling with continuous and discrete distributions), linear algebra (inner product spaces, linear operators), and multivariate differential calculus (partial derivatives, matrix differentials). 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 mathematical concepts into concrete programs.
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 10606 and 10607
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 these two courses (consistent with the previous offering of the courses):
- 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 will be in 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.
- We’ll assume you are comfortable with all the topics listed above for 10-606.
- In addition, the first mini (10606) is a recommended, but certainly not necessary, prerequisite. It is expected that some students will take 10607 without 10606. 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.
- Mathematics for Machine Learning. by Marc Peter Deisenroth, A. Aldo Faisal, and Cheng Soon Ong.
- Matrix Analysis (2nd ed.). Roger A. Horn, Charles R. Johnson. Cambridge University Press, 2013.
- Advanced Calculus (5th ed.). Wilfred Kaplan. Pearson, 2002.
- Introduction to Probability (2nd ed.). Dimitri P. Bertsekas, John N. Tsitsiklis. Athena Scientific, 2008.
- The Elements of Statistical Learning: Data Mining, Inference and Prediction (2nd ed.). Trevor Hastie, Robert Tibshirani, Jerome Friedman. Springer, 2008.
Tentative schedule, might change according to class progress and interest. Friday classes can be a recitation, office hours or a lecture.
The final grade for 10606 be determined as follows:
The final grade for 10607 be determined as follows:
The following policies are adapted from Matt Gormley's 10-601 Fall 2019 Course Policies.
There will be 4 homework assignments for 10606 and 4 homework assignments for 10607. Answers will be submitted on Gradescope and code portions through Gradescope.
You will submit your code for programming questions on the homework to Gradescope. After uploading your code, our grading scripts will autograde
your assignment by running your program on a VM. This provides you with
immediate feedback on the performance of your submission.
Note: Gradescope automatically checks your code against code from other students in the class to identify copying.
We use Gradescope to collect PDF submissions of open-ended questions
on the homework (e.g. mathematical derivations, plots, short answers).
The course staff
will manually grade your submission, and you’ll receive personalized
feedback explaining your final marks.
Regrade Requests: If you believe an error was made during manual
grading, you’ll be able to submit a regrade request on Gradescope. For
each homework, regrade requests will be open for a maximum of 1 week after the
grades have been published. This is to encourage you to check the
feedback you’ve received early!
Late homework policy
You receive 3 total grace days for use on any homework assignment for 10606. We will automatically keep a tally of these grace days for you; they will be applied greedily. No assignment will be accepted more than 2 days after the deadline. This has the important implications that you may not use more than 2 grace days on any single assignment.
You receive 3 total grace days for use on any homework assignment for 10607. We will automatically keep a tally of these grace days for you; they will be applied greedily. No assignment will be accepted more than 2 days after the deadline. This has the important implications that you may not use more than 2 grace days on any single assignment.
All homework submissions are electronic (see Technologies section below). As such, lateness will be determined by the latest timestamp of any part of your submission. For example, suppose you submit the code part of the homework on time but the written part one hour late, you would have used one of your late days.
In general, we do not grant extensions on assignments. There are several exceptions:
- Medical Emergencies: If you are sick and unable to complete an
assignment or attend class, please go to University Health
Services. For minor illnesses, we expect grace days or our late
penalties to provide sufficient accommodation. For medical
emergencies (e.g. prolonged hospitalization), students may request
an extension afterwards and should include a note from University
- Family/Personal Emergencies: If you have a family emergency
(e.g. death in the family) or a personal emergency (e.g. mental
health crisis), please contact your academic adviser or Counseling
and Psychological Services (CaPS). In addition to offering support,
they will reach out to the instructors for all your courses on your
behalf to request an extension.
- University-Approved Absences: If you are attending an
out-of-town university approved event (e.g. multi-day
athletic/academic trip organized by the university), you may request
an extension for the duration of the trip. You must provide
confirmation of your attendance, usually from a faculty or staff
organizer of the event.
For any of the above situations, you may request an extension by
emailing the assistant instructor(s) at email@example.com – do not email
the instructor or TAs. The email should be sent as soon as you are
aware of the conflict and at least 3 days prior to the
deadline. In the case of an emergency, no notice is needed.
Official auditing of the course (i.e. taking the course for an “Audit”
grade) is not permitted this semester.
Unofficial auditing of the course (i.e. watching the lectures on zoom) is welcome and permitted without prior
approval. Unofficial auditors
will not be given access to course materials such as homework
assignments and exams.
The option to change the class to pass fail after seeing the grade does not apply for the summer.
We allow you take the course as Pass/Fail. Instructor permission is
not required. What grade is the cutoff for Pass will depend on your
program. Be sure to check with your program / department as to whether
you can count a Pass/Fail course towards your degree requirements.
Accommodations for Students with Disabilities:
If you have a disability and have an accommodations letter from the
Disability Resources office, I encourage you to discuss your
accommodations and needs with me as early in the semester as
possible. I 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, I encourage you to contact them at
We want to help you learn the material, and understand unexpected issues arise throughout the semester. If something unexpected comes up, or your are having difficulties that are impacting your learning of the material, come see us! Please, please come. You should also reach out to your academic advisor so they are aware of the situation.
7. Academic Integrity Policies
Read this carefully!
(Adapted from Roni Rosenfeld’s 10-601 Spring 2016 Course Policies.)
Collaboration among Students
- The purpose of student collaboration is to facilitate learning, not to circumvent it. Studying the material in groups is strongly encouraged. It is also allowed to seek help from other students in understanding the material needed to solve a particular homework problem, provided no written notes (including code) are shared, or are taken at that time, and provided learning is facilitated, not circumvented. The actual solution must be done by each student alone.
- The presence or absence of any form of help or collaboration, whether given or received, must be explicitly stated and disclosed in full by all involved. Specifically, each assignment solution must include answering the following questions:
- Did you receive any help whatsoever from anyone in solving this assignment? Yes / No.
- If you answered ‘yes’, give full details: ____________
- (e.g. “Jane Doe explained to me what is asked in Question 3.4”)
- Did you give any help whatsoever to anyone in solving this assignment? Yes / No.
- If you answered ‘yes’, give full details: _____________
- (e.g. “I pointed Joe Smith to section 2.3 since he didn’t know how to proceed with Question 2”)
- Did you find or come across code that implements any part of this assignment ? Yes / No. (See below policy on “found code”)
- If you answered ‘yes’, give full details: _____________
- (book & page, URL & location within the page, etc.).
- If you gave help after turning in your own assignment and/or after answering the questions above, you must update your answers before the assignment’s deadline, if necessary by emailing the course staff.
- Collaboration without full disclosure will be handled severely, in compliance with CMU’s Policy on Academic Integrity.
Previously Used Assignments
Some of the homework assignments used in this class may have been used in prior versions of this class, or in classes at other institutions, or elsewhere. Solutions to them may be, or may have been, available online, or from other people or sources. It is explicitly forbidden to use any such sources, or to consult people who have solved these problems before. It is explicitly forbidden to search for these problems or their solutions on the internet. You must solve the homework assignments completely on your own. We will be actively monitoring your compliance. Collaboration with other students who are currently taking the class is allowed, but only under the conditions stated above.
Policy Regarding “Found Code”:
You are encouraged to read books and other instructional materials, both online and offline, to help you understand the concepts and algorithms taught in class. These materials may contain example code or pseudo code, which may help you better understand an algorithm or an implementation detail. However, when you implement your own solution to an assignment, you must put all materials aside, and write your code completely on your own, starting “from scratch”. Specifically, you may not use any code you found or came across. If you find or come across code that implements any part of your assignment, you must disclose this fact in your collaboration statement.
Duty to Protect One’s Work
Students are responsible for pro-actively protecting their work from copying and misuse by other students. If a student’s work is copied by another student, the original author is also considered to be at fault and in gross violation of the course policies. It does not matter whether the author allowed the work to be copied or was merely negligent in preventing it from being copied. When overlapping work is submitted by different students, both students will be punished.
To protect future students, do not post your solutions publicly, neither during the course nor afterwards.
Penalties for Violations of Course Policies
All violations (even first one) of course policies will always be reported to the university authorities (your Department Head, Associate Dean, Dean of Student Affairs, etc.) as an official Academic Integrity Violation and will result in failure in the course.
Take care of yourself
Take care of yourself. Do your best to maintain a healthy lifestyle this semester by eating well,
exercising, avoiding drugs and alcohol, 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 or someone you know is feeling suicidal or in danger of self-harm, call someone
immediately, day or night:
- CaPS: 412-268-2922
- Re:solve Crisis Network: 888-796-8226
If the situation is life threatening, call the police
- On campus: CMU Police: 412-268-2323
- Off campus: 911