CME192 MATLAB for Scientific Computing and Engineering

A short, eight-week (eight-lecture) course focused on applied MATLAB workflows for scientific computing and engineering, with an emphasis on real-world datasets and toolbox-driven analysis.

Schedule Syllabus Canvas GitHub

Course Overview

This short course runs for eight weeks/eight lectures and is offered in the Winter quarter during the academic year. It is intended for both students with prior programming experience who are expected to use MATLAB in math, science, or engineering courses, and for ambitious students with no prior programming experience.

It consists of interactive lectures and application-based assignments. The goal of the course is to make students fluent in MATLAB and to provide familiarity with its wide array of features, in real-world settings. We will have a special emphasis on learning how to actually apply MATLAB outside of a classroom setting.

The course introduces essential MATLAB programming concepts and data structures, and builds toward applied scientific computing workflows involving visualization, numerical linear algebra, simulation, machine learning, and toolbox-driven analysis in realistic problem settings.

Course Information

  • Instructor: John Winnicki — winnicki@stanford.edu
    • Office: Building 520, Room 133
    • Office hours: by appointment (in person)
  • Units: 1 credit (ICME), in collaboration with MathWorks
  • Duration: 8 weeks / 8 lectures (Winter quarter)

Logistics (Winter 2026):

  • Dates: 01/05/2026 – 03/13/2026
  • Meeting time: Thu 4:30 PM – 5:20 PM
  • Room: Hewlett Teaching Center 102

Course Website, Announcements, and Materials

  • The course website is the primary site for course material.
  • Class information, web resources, slides, live scripts, and the schedule will be posted on the course website.
  • We will also post slides and live scripts on Canvas and the course GitHub.
  • Bring your own laptop (recommended).
  • There is no required textbook. Lecture notes will be provided.

Background Survey

There is an online survey to tell the instructor about your background, why you are taking the class, and your interests. The form is located here. Course content may be adjusted based on survey responses. You will find the survey link on the course website (and/or Canvas). This background survey counts as one bonus attendance mark!

Support and Communication

  • Questions and concerns: Email the instructor at winnicki@stanford.edu.
  • You are welcome to stop by my office at Building 520, Room 133 to discuss anything in person.
  • Office hours are by appointment and are open to everyone—even if you don’t have a specific question.
  • This anonymous form is available to report issues and concerns.
  • You can also reach out to the instructor via the Stanford Slack (just enter my name into the search bar).

Prerequisites

Students are expected to have taken:

  • an introductory programming course (e.g., CS 101, CS 106A, CS 193), and
  • an introductory linear algebra course (e.g., MATH 51).

In place of an introductory programming course, students are expected to complete:

  • MATLAB Onramp (≈2 hours), and
  • part of the Build MATLAB Proficiency Onramp course (≈4 hours).

In order to keep the workload appropriate for students who don’t have experience with MATLAB, students will have the option to submit their Onramp certifications in place of the first part of Assignment 1.

Nice-to-haves (helpful but not required): familiarity with machine learning, statistics, ODEs/PDEs, optimization, and image/signal processing.

Getting Started with MATLAB

This course focuses on MATLAB programming and the techniques/tools used day-to-day by engineers and industry professionals. We don’t expect prior MATLAB experience, but we do expect students to spend the first week becoming familiar with the language. The first lecture is designed to bring students up to speed on basic MATLAB syntax and capabilities.

To get started with MATLAB, we recommend checking out this page created by MathWorks for ICME students. Next, you can browse the following online resources:

MATLAB is quite similar to Python, and there are many resources bridging the two languages. For example:

MATLAB license and installation

MATLAB is available to Stanford students through the university’s academic license. You may choose to work in MATLAB Online or install the full desktop version. To install the desktop version, follow the instructions at this page. There is no setup required for MATLAB Online: simply login to your stanford account at this page.

Reading

There is no required textbook for this course. Optional references that may be helpful:

  • Numerical Computing with MATLAB (Cleve Moler) — a concise reference for MATLAB’s core numerical capabilities.
  • An Introduction to MATLAB Programming and Numerical Methods for Engineers (Timmy Siauw & Alexandre Bayen) — MATLAB fundamentals with essential numerical methods.

Additional references focusing on engineering and scientific applications may be suggested throughout the course.

Topics

MATLAB topics covered include:

  1. Advanced plotting and 2D/3D visualizations; interactive plotting
  2. Numerical linear algebra; ODEs/PDEs; symbolic math
  3. Big data and databases
  4. Python/C++ interfaces and workflows
  5. Statistics and machine learning
  6. Optimization and simulation/modeling
  7. Image processing and signal processing
  8. Parallel processing

Our emphasis is on using MATLAB toolboxes to solve practical problems in these domains, rather than on the theoretical foundations behind the methods.

Tentative Lecture Plan

  1. Course introduction; MATLAB setup/capabilities; “Why should you care?”
  2. Advanced plotting and visualizations in MATLAB
  3. Numerical linear algebra; ODEs/PDEs; symbolic math
  4. Big data; Python/C++ in MATLAB; intro to machine learning
  5. Statistics and machine learning in MATLAB
  6. Optimization and simulation/modeling
  7. Image processing and signal processing
  8. Parallel processing with multicore and GPU; interactive plotting

Dataset domains

We will be exploring how to analyze data from a wide variety of domains:

  • Lecture 1: Energy grid data
  • Lecture 2: Biostatistics
  • Lecture 3: PDE data
  • Lecture 4: PDE data
  • Lecture 5: Heart disease, basketball, PDE data
  • Lecture 6: Financial data
  • Lecture 7: Astronomy data
  • Lecture 8: Audio data, earthquake data

Assignments and Grading

Graded assignments

Grading is based primarily on two assignments that apply concepts and tools covered in class to real-world datasets. These projects are designed to reinforce what is seen in class and course materials, and required components are intended to be very manageable in scope.

Each assignment will be a set of computational tasks leveraging tools in the MATLAB toolboxes covered in lecture.

  • You may work individually or in teams.
  • Optional team matching forms will be provided for students looking to connect with others.

Due dates (Winter 2026):

  • Assignment 1 due: February 23
  • Assignment 2 due: March 13

If you need flexibility due to extenuating circumstances, email the instructor.

Attendance

Students are expected to attend at least four class sessions.

  • Attendance is recorded using a sign-in sheet distributed at the beginning of each lecture.
  • If you anticipate missing more than four classes, use this form to explain additional absences. I’m very understanding of competing deadlines, unexpected situations, or personal circumstances you may not wish to share in detail. I simply ask that you keep me informed about your timelines. Keeping me in the loop helps me pace the course appropriately and check in if you start falling behind!

Grade breakdown

Final grades are determined using:

  • Assignment 1 / OnRamp certification: 33%
  • Assignment 2: 33%
  • Attendance: 34%

Late policy

  • You may submit an assignment up to 72 hours after the deadline for a 10% penalty, without special justification.
  • For excused late submissions, request late days at least 24 hours before the due date using this form. Students must provide a reason when requesting late days.
  • There is no penalty for instructor-approved late submissions. Again, I’m very understanding of the fact that students often have overlapping academic deadlines, research commitments, interviews, travel, or other routine obligations. Just let me know about your situation so we can make sure you’re staying on track!

Regrades

After receiving a grade on Gradescope, you may request a regrade through the Gradescope interface. To help with logistics, please submit regrade requests within 1 week after the grade has been released.

What You Can Expect from the Instructional Team

I am here to guide your learning and will challenge you to actively engage in the learning process through class activities, assignments, and more. I will strive for an inclusive and collaborative classroom and welcome suggestions for improvement. I will do my best to give you the tools, feedback, and support to succeed, so let me know if I can do anything more.

Learning is a never-ending process, so I hope to motivate students to seek more information on topics we don’t have time to cover. I want to support you all in this learning experience!

The best way to reach me is by email or Slack. You should expect a response within three business days (but often much sooner!).

Respect for Diversity

We intend that students from all diverse backgrounds, perspectives, and situations be well served by this course, and that the diversity students bring is viewed as a resource, strength, and benefit.

Materials and activities are intended to be respectful of diversity, including (but not limited to) gender, sexuality, disability, age, socioeconomic status, ethnicity, race, religion, political affiliation, culture, and more. We acknowledge there is likely a diversity of access to resources among students, and we will do our best to support everyone.

If any class meetings conflict with religious events, please let us know so we can make arrangements.

Names and pronouns

All people have the right to be addressed and referred to in accordance with their personal identity. You will have the chance to indicate the name you prefer to be called (via the survey on Canvas) and, if you choose, identify pronouns with which you would like to be addressed.

Support Services

If you are experiencing challenges that create barriers to learning (e.g., increased anxiety, difficulty concentrating, or other stressors), Stanford provides confidential mental health services and support.

Access and Accommodations

Stanford is committed to providing equal educational opportunities for disabled students. Disabled students are a valued and essential part of the Stanford community.

If you experience a disability, please register with the Office of Accessible Education (OAE):

  • OAE site: oae.stanford.edu
  • OAE location: 563 Salvatierra Walk; phone: 723-1066

If you already have an Academic Accommodation Letter, please share it as early as possible so we can coordinate support and address any barriers to access and inclusion.

Honor Code and Office of Community Standards

We take the Honor Code very seriously. Students must not give or receive unpermitted aid in examinations or class work, including the preparation of reports or any other work used as the basis of grading. The student who lets others copy their work is as responsible as those who copy.

Violations include (at minimum):

  • copying material from another student,
  • copying previous years’ solution sets,
  • copying solutions found using Google,
  • copying solutions found on the internet.

Suspected violations may be reported without warning, and the Office of Community Standards (OCS) determines whether a violation occurred (sometimes after the quarter has ended).

Please do not post any material from this class online. This encourages Honor Code violations, penalizes other students, and can violate copyright.

Homework is designed to help you learn the material—you lose the benefits if someone hands you the solution.

If found guilty of a violation, your grade will be lowered by at least one letter grade.

Acknowledgements

Course materials include contributions from John Winnicki, Xiran Liu (ICME alum), Matthew J. Zahr (ICME alum), Reza Fazel-Rezai (MathWorks), Hung Le (ICME), and online resources provided by MathWorks.


We hope you enjoy learning about MATLAB this quarter!