alt text 

ELEC 571V.101 – Computational Control (COCO)

Winter Term 1, 2026–27. Instructor: Alberto Padoan.
Links: Website | Canvas | Piazza (signup).

Lectures

Time: Every Monday and Wednesday, 12:30 – 14:00.
Room: UBCV | Hugh Dempster Pavilion (DMP) | Floor: 2 | Room: 201

Office Hours

Primarily, via Piazza. Alternatively, after lectures by appointment via written email.

Credits

Units: 3. Letter grade.

Course Description

This graduate course offers an introduction to modern computational methods for feedback control of complex dynamical systems, including:

  • Dynamic programming and Linear Quadratic Regulation (LQR)

  • Model Predictive Control (MPC), and its variants

  • Subspace identification

  • Data-Driven Predictive Control (DDPC)

  • Behavioral system theory

Learning Objectives

Students completing this course should be able to:

  • Reason about control problems beyond classical methods (e.g., PID)

  • Formulate control tasks with uncertainty, safety, and performance constraints

  • Design controllers using optimization-based and data-driven techniques

  • Implement control algorithms (e.g., MPC, DeePC)

  • Critically analyze current research in computational control

Course Schedule (tentative)

  • Week 1: Introduction and overview; recap of convex optimization

  • Weeks 2-3: State-space models and stability of LTI systems

  • Weeks 4-5: Dynamic programming and linear quadratic optimal control

  • Weeks 6-8: Model Predictive Control (and variants)

  • Week 9: Subspace identification

  • Weeks 10-11: Data-driven predictive control

  • Weeks 12: Behavioral system theory

  • Week 13: Bonus topics Wrap-up Course project presentations

No classes: 30 September (National Day for Truth and Reconciliation), 12 October (Thanksgiving), 9 and 11 November (midterm break and Remembrance Day). No lecture on 16 September and 14 October (instructor away).

Midterms

  • Midterm 1 – Wednesday, 4 November 2026 (tentative), in person (during regular class hours).

  • Midterm 2 – Monday, 30 November 2026 (tentative), in person (during regular class hours).

One page, double-sided, hand-written cheat sheet is allowed; calculators are not. There is no final examination.

Material & References

All lecture materials — slides, annotated slides, exercises, and notebooks — are available in this online folder. New materials are added before each lecture or shortly afterwards.

In addition to the lecture slides, check out the Resources page and the following references:

  • S. Boyd and L. Vandenberghe, Convex Optimization. Cambridge University Press, 2004.

  • J.B. Rawlings, D.Q. Mayne, and M. Diehl, Model Predictive Control: Theory, Computation, and Design. 2nd ed., Nob Hill Publishing, 2017.

  • R.S. Sutton and A.G. Barto, Reinforcement Learning: An Introduction. 2nd ed., MIT Press, 2018. (optional)

Prerequisites

  • Mathematical foundations: sets, functions, logic, and basic proof techniques.

  • Multivariable calculus: gradients, Jacobians, Hessians, and Taylor expansions.

  • Linear algebra: vectors and matrices, linear spaces, inner products and norms, diagonalization, and quadratic forms.

  • Control fundamentals: state-space models, block diagrams and feedback interconnections, and stability LTI systems.

  • Python: basic programming concepts, notebooks, matrix computations, and plotting.

Prior exposure to convex optimization or Lyapunov theory is helpful but not required.

Assessment

  • 30% – Midterm 1 (in class, closed book) — 4 November 2026

  • 30% – Midterm 2 (in class, closed book) — 30 November 2026

  • 40% – Course project

    • 25% – Written report (mini-paper) and Python notebook — due 9 December 2026, 16:00

    • 15% – Project presentation — 2 or 7 December 2026

There is no final examination. Exercise handouts are issued regularly, and full solutions are released afterwards. They are neither collected nor graded. Working them is your own responsibility, and the midterms are written on the assumption that you have.

Full details, including the report and presentation rubrics and the academic concession policy, are in the Grading Policy.

Note: Use of generative AI is permitted as a research tool. However, all submitted work must reflect the student’s own understanding. Work primarily generated by AI will receive a grade of zero.

Course Project

The project consists of a written report, a Python notebook, and a short talk. Students will apply course concepts to a system or problem of their choice. Goal:

  • Identify a challenging control problem and explain why existing strategies are inadequate.

  • Propose an advanced control approach inspired by the course material.

  • Demonstrate its effectiveness and suitability through simulations and/or a paper-style analysis.

Groups of two are preferred. Benchmark problems and simulators are suggested here, but original ideas are welcome.

Timeline

  • Topic proposal: 19 October, one paragraph, ungraded but required.

  • Presentations: 2 and 7 December, in class, in person (during regular class hours).

  • Report and notebook: due 9 December, 16:00.

Late policy

Deadlines are firm — late work or missed assessments will not be graded, consistent with the Academic Calendar on Grading Practices. If illness or compassionate grounds prevent you from sitting a midterm or meeting the project deadline, contact the instructor in writing as early as possible; requests are handled under the UBC policy on academic concession.

Disclaimers

The course material is adapted from “Computational Control”, developed by S. Bolognani and colleagues at ETH Zürich.

Lectures and course materials, including presentations, tests, outlines, and similar materials, are licensed under a Creative Commons Attribution-ShareAlike 4.0 International License.

This is not an official course webpage from UBC, and it is maintained personally by the instructor. This being the second run, please anticipate occasional hiccups. Thank you for your flexibility as we refine the experience.

Feedback

If you have suggestions or found the material useful, I would be happy to hear from you. Please use: alberto [DOT] padoan [@] ubc [DOT] ca