Course Resources

A Temperature Control Lab is required for exercises in this course.


There are a number of resources that are available on the course web-site or through external sources. Most of the reading will come from journal articles or book chapters. Below is a list of some supplementary resources.

Assignments are turned in on Google Classroom.
Browse or post questions to StackOverflow with tag gekko
  • Articles
    • Nonlinear Modeling, Estimation and Predictive Control in APMonitor, Hedengren, J. D. and Asgharzadeh Shishavan, R., Powell, K.M., and Edgar, T.F., Computers and Chemical Engineering, Volume 70, pg. 133–148, 2014. Article, Preprint
    • Beal, L.D.R., Hill, D., Martin, R.A., and Hedengren, J.D., GEKKO Optimization Suite, Processes, Volume 6, Number 8, 2018, doi: 10.3390/pr6080106. Article (Open Access)
  • Books
    • Optimization Methods for Engineering Design, Parkinson, A.R., Balling, R., and J.D. Hedengren, 2nd Edition, 2018. Book PDF
    • Model Predictive Control: Theory, Computation, and Design, Rawlings, J.B., Mayne, D.Q., Diehl, M.M., 2nd Edition, Nob Hill Publishing, 2022. Book PDF

Course Outcomes

  • Students will demonstrate proficiency in theory and applications for optimization of dynamic systems with physics-based and machine learned models.
  • Students will be able to create a digital twin of a physical process that computes in parallel to a real-time microcontroller.
  • Students will be able to numerically solve ordinary and partial differential equations with coupled algebraic constraints.
  • Students will be able to collect and analyze time-series data to build data-driven automation strategies.
  • Students will be able to articulate classification and regression results with statistical measures of success.
  • Students will be able to formulate and execute a project that utilizes course topics in machine learning and optimization methods for a novel application.
  • Students will be able to solve optimization problems with nonlinear, mixed integer, multi-objective, and stochastic characteristics.

Related Topics

  • Engineering-specific programming (Python, Matlab) with treatment of numerical methods.
  • Machine Learning for Engineers: building mathematical models for classification and regression based on training data to make empirical predictions or decisions.
  • Cybersecurity for Engineers: assessing and mitigating risks from computer-based adversarial attacks on engineered systems.
  • Data Science: using scientific methods, processes, algorithms and systems to extract knowledge and insights from data.
  • Data Visualization: creating graphical representations of data to extract insights.
  • Internet of Things: building cyber-physical systems that connect microcontrollers, sensors, actuators, and other embedded devices. Includes mechatronics, embedded systems, distributed systems, and networking.
  • High Performance Computing: programming high-performance computers (e.g., supercomputers, cloud computing) to tackle computationally-intensive engineering problems.




Mid-Term Exam


Final Exam


Arduino Project


Final Project


Grade Expectations

A Read or watch material in advance, be attentive and ask questions in lectures, understand and do all homework on time, study hard for exams well before the exam starts, work hard and perform well on exams and the class projects.

B Skim material in advance, attend lectures and try to stay awake, depend on TA for homework help, casually study for the exam by working the practice exam instead of learning concepts.

C Never read book, work on other homework during class, skip some homework assignments, start cramming for the exam the night before the exam.

D Skip class, don't turn in homework or turn it in late, start learning during the exam.


There will be a mid-term and the final exam. These exams may be closed book and/or open book, in-class or in the testing center, as specified by the instructor prior to the exam. Exams will only be given after the scheduled date by special permission. Students with conflicts should arrange to take the exam prior to the scheduled date.


You will be required to complete a course project. I will provide suggestions or you can do something of your own interest or something that is integrated with a campus or off-campus research project.

Computer Tools

Using computer software as a technique for solving dynamic optimization problems is the focus of this course. All homework assignments will require the use of a computer.

One of the most common questions that I receive from students who would like to take this class is, "How much programming experience is required to succeed in the class?"

To address this concern, I have prepared Python and MATLAB software tutorials that assume very little knowledge of programming. Additionally, there is a collection of IPython notebooks that are for beginners with TCLab Python programming. There are also many excellent resources on the internet that give tutorial introductions to programming. Those students who have no or little programming experience can review these step-by-step instructional videos to gain some of the required background.

This is a dynamic optimization course, not a programming course, but some familiarity with MATLAB, Python, or equivalent programming language is required to perform assignments, projects, and exams. Students who complete the course will gain experience in at least one programming language.

Preventing Sexual Misconduct

As required by Title IX of the Education Amendments of 1972, the university prohibits sex discrimination against any participant in its education programs or activities. Title IX also prohibits sexual harassment—including sexual violence—committed by or against students, university employees, and visitors to campus. As outlined in university policy, sexual harassment, dating violence, domestic violence, sexual assault, and stalking are considered forms of “Sexual Misconduct” prohibited by the university.

University policy requires any university employee in a teaching, managerial, or supervisory role to report incidents of Sexual Misconduct that come to their attention through various forms including face-to-face conversation, a written class assignment or paper, class discussion, email, text, or social media post. If you encounter Sexual Misconduct, please contact the Title IX Coordinator at or 801-422-2130 or Ethics Point at or 1-888-238-1062 (24-hours). Additional information about Title IX and resources available to you can be found at

Disability Resources

If you suspect or are aware that you have a disability, you are strongly encouraged to contact the University Accessibility Center (UAC) located at 2170 WSC (801-422-2767) as soon as possible. A disability is a physical or mental impairment that substantially limits one or more major life activities. Examples include vision or hearing impairments, physical disabilities, chronic illnesses, emotional disorders (e.g., depression, anxiety), learning disorders, and attention disorders (e.g., ADHD). When registering with the UAC, the disability will be evaluated and eligible students will receive assistance in obtaining reasonable University approved accommodations.