CSCI 145: Syllabus
Course Purpose
This course covers the mathematics behind machine learning, from linear regression to neural networks and reinforcement learning. We will use probability to describe data and uncertainty, linear algebra to write down models, and optimization to fit their parameters. For each method, we will work through the derivations, try it in code, and study how to evaluate the results.
By the end of the course, you should be able to:
Prerequisites: Linear Algebra (MATH 60 or CSCI 48 or equivalent) and Data Structures and Advanced Programming (CSCI 62 or equivalent).
Meetings, Resources, and Communication
We meet Mondays and Wednesdays from 2:45 to 4:00pm in Robert Day 126. My office hours are Tuesdays from 1:00 to 4:00pm in Adams Hall 213.
Each topic has a reading on this site. Read it before class or afterward if the lecture is not crystal clear. Assignments and grades are on Gradescope. Please post course questions on the class Discord, either in the appropriate public channel or in a direct message to me. Public questions help everyone, but please do not post complete assignment solutions.
Electronic Devices: Phones and unrelated computer use are distracting to you and to people around you. Please do not use either during class.
The Weekly Rhythm
The CMC Faculty Handbook, section 5.4.2 expects students to study at least two to three hours for every hour in class. Because this course meets for 2.5 hours, nine hours total each week, including class, is a good target for most students. A typical week should look like this:
| Activity | Typical Time |
|---|---|
| Attend both class meetings and participate | 2.5 hours |
| Read the topic page and review the notes | 1.5 hours |
| Work on the problem set across several days | 4 hours |
| Prepare for quizzes or advance the project | 1 hour |
| Total | 9 hours |
Start each problem set on your own, well before it is due. Work for a while, leave it, and return on another day before asking for help or comparing ideas. Repeated effort over several days improves recall and problem solving and gives you time to identify gaps in your understanding.
Grading
| Percent | Category | What It Measures |
|---|---|---|
| 15% | Problem sets | Regular written practice and your ability to explain selected solutions |
| 15% | Quizzes | Short assessments, approximately weekly |
| 50% | Exams | Two in-class midterms, each covering about half the course (noncumulative) |
| 20% | Project | Choosing a useful question, analyzing it with AI-assisted code, and explaining the answer with evidence |
Roughly one third of the problem-set grade comes from submitting complete, good-faith attempts, and two thirds comes from demonstrating your understanding in brief conversations with the grader. During a conversation, the grader will select one of your recent assigned problems at random and ask you to explain your reasoning and answer a related question. Keep your submitted work and be prepared to explain each solution. Scheduling details will be announced in class.
Your total grade determines your letter grade. The highest threshold you meet determines the grade:
| Grade | A | A- | B+ | B | B- | C+ | C | C- | D+ | D | D- | F |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Minimum Percentage | 93% | 90% | 87% | 83% | 80% | 77% | 73% | 70% | 67% | 63% | 60% | 0 |
Late Work and Missed Assessments
You have a single 48-hour, no-questions-asked late bank shared across all problem sets for the entire course. It does not apply to quizzes, exams, or projects. Gradescope timestamps determine the elapsed time, and you do not need to email me before using the bank. After you exhaust the bank, every additional 24 hours of lateness deducts one percentage point from your overall course grade. If illness, an emergency, a religious observance, or college travel affects your coursework, contact me as soon as reasonably possible.
Academic Honesty
You are welcome to discuss course ideas and problem-solving approaches with other students. After a discussion, write your own solution in your own words and make sure you can explain every step.
LLMs can be useful for explaining an error message, reviewing a definition, or suggesting a test case. Do not ask an LLM to solve a problem-set question or write a derivation that you submit. These assignments build your ability to reason through the material. For the project, you may use LLMs extensively to write and revise code. You remain responsible for choosing the question, checking the analysis, understanding what the code does, and presenting claims that the evidence supports. Record this help in the project’s AI_USAGE.md file.
Accommodations
If you have a Letter of Accommodation, please contact me as early in the semester as possible. If you do not have a letter and believe you may be eligible, please contact Accessibility Services at accessibilityservices@cmc.edu. I want you to have a fair opportunity to learn and demonstrate what you know.