Course Syllabus



This course introduces core computational and mathematical techniques for data analysis and physical modeling, foundational to applications including computational biology, computer vision, graphics, machine learning, and robotics. The approaches covered include modeling and optimizing both linear and nonlinear systems, representing and computing with uncertainty, analyzing multi-dimensional data, and sampling from complex domains. The techniques are both grounded in mathematical principles and practically applied to problems from a broad range of areas.


COSC 1 and Math 3, or equivalents


MWF, 12:50 – 1:55 pm, LSC 201


T, 1:20 – 2:10 pm, LSC 201

Course Staff & Office Hours

Instructor: Wojciech Jarosz
Instructor Office Hours: F: 3:30 – 5:00pm or by appointment
Instructor Office: Sudikoff 156


Cara Van Uden, Neerja Thakkar, Abhimanyu Kapur, and Linda Xiao

TA Office Hours:

Su: 3 - 4 pm, Linda
M: 3:30 - 4:30 pm, Neerja (conceptual questions) and 4 - 5 pm Linda (assignment help)
T: 4 - 5 pm, Cara 
W: 4 - 6 pm, Abhimanyu
R: 4 - 5 pm, Cara (assignment help) and Neerja (conceptual questions)

TA Office:

Su: 3 - 4 pm Sudikoff 212
M: 3:30 - 5 pm Sudikoff 212
T: 4 - 5 pm Sudikoff 212
W: 4 - 6 pm Sudikoff 004
R: 4 - 5 pm Sudikoff 004

While we will have extensive office hours throughout the week, if you find you need additional, individualized help in studying/learning the material, you can consider Dartmouth's Tutor Clearinghouse.


Piazza is an excellent forum for asking questions. Please do not email the course staff individually with question, but ask and answer questions on Piazza instead. This allows your classmates to benefit from seeing the question and subsequent response. We encourage you to contribute answers to other people’s threads, or initiate open-ended discussions on topics relevant to the class. I and the TAs will regularly monitor piazza and answer unanswered questions in a timely manner. You can access piazza directly from canvas.



I will be recording lectures and making them available here on Canvas (under the echo360 section). My intention is that these videos will serve as a reference and not a primary source. There is, in my opinion, no replacement for attending lecture and you should not use these videos as an excuse to skip class (due to possible technical glitches, I also cannot guarantee that all lectures will be available).

The cameras will be focused on the front of the classroom so it is unlikely that you will appear on any video. There are, however, microphones throughout the room so please be aware that any questions will be recorded and any conversation that we have at the front of the classroom may be picked up by the camera and microphones.


All assignments should be submitted through Canvas. For mathematical assignments, you may submit as .txt, .docx, or .pdf files. For programming assignments you'll submit a zip file.


All course assignments will be done in Matlab. Please install Matlab and the toolboxes.


Your final grade will be determined by:

  • 25%: Seven short assignments
  • 25%: Four long assignments
  • 50%: Four in-class quizzes
Disclaimer: The grade breakdown is subject to slight adjustments.

All assignments are due by noon on the due date. Late assignments will not be accepted. The first three in-class quizzes will be administered during x-hour so please make sure to keep x-hour available (we will also use x-hour for supplemental lectures/tutorials).

There will be no final exam, but our last quiz will, in all likelihood, be during our final exam period. On the off chance that we get through the material more quickly than anticipated, I may move the last quiz to the last x-hour or lecture.

I will not drop any quiz or assignment, but I will weight your lowest quiz less than your other three quizzes.


Please be aware of the following course policies:

  1. Please do not use your mobile phone/device during class: it is distracting to you, your fellow students, and me.
  2. I think that it is a bad idea to have your laptop open during lecture. I will create laptop-free zones in the classroom, but if I think that laptop use is becoming distracting to you and your fellow students, then I reserve the right to ban their use entirely in the classroom. Having said that, you should bring your laptop to class as we will use them to complete in-class exercises.
  3. Assignments will not be accepted after the posted deadline.
  4. I take the letter and spirit of the Honor Code very seriously. If you have any doubt about what does or does not constitute a violation, please ask me.

Honor Code

Simply put, don't cheat. All work that you submit must be your own. You may not download, copy, or reproduce, in any way, code or solutions that you find on-line or from a fellow or former student. Submitting any work that is not entirely your own is a violation of the Honor Code. You will generate and submit sample output of your code. Altering this output in any way to be inconsistent with your code is a violation of the Honor Code. During in-class quizzes, you may not access any written or on-line information and you may not discuss the contents of the quiz with anyone else. You may discuss assignments in broad terms with your fellow students, but you may not discuss the specifics of a solution or code – to do so is a violation of the honor code. 

Violations of the Honor Code will be reported to the Committee on Standards (COS). Independent of any consequences that may result from a COS hearing, if I catch you cheating you will get a failing grade not just for that assignments/quiz, but for the entire course.

Accessibility Needs

Students with disabilities who may need disability-related academic adjustments and services for this course should see me privately within the first week of class. Students requiring disability-related academic adjustments and services must consult the Student Accessibility Services office (205 Collis Student Center, 646-9900, Once SAS has authorized services, students must show the originally signed SAS Services and Consent Form and/or a letter on SAS letterhead to me. As a first step, if you have questions about whether you qualify to receive academic adjustments and services, you should contact the SAS office. All inquiries and discussions will remain confidential.


  1. Numerical Algorithms by Justin Solomon [link]
  2. Linear Algebra by Gilbert Strang [link]
  3. Computational Science by Gilbert Strang [link]
  4. Linear Algebra, Least Squares, Linear Systems by Eero Simoncelli [link1, link2, link3]
  5. Introduction to Probability and Statistics by Jeremy Orloof and Jonathan Bloom [link]
  6. Introduction to Probability by Charles Grinstead and J. Laurie Snell [link]
  7. Bayesian Reasoning and Machine Learning by David Barber [link]
  8. An Introduction to the Conjugate Gradient Method by Jonathan Shewchuk [link]
  9. An Introduction to Principal Components Analysis by Jon Shlens [link]
  10. Matlab [link]

Course Summary:

Date Details