This course is an introduction to optimization from a modeling perspective. The aim is to teach students to recognize and solve optimization problems that arise in industry and research applications. Examples will be drawn from a variety of disciplines, including computer science, operations research, control and mechanical engineering, machine learning, and business/finance.

Instructor: Laurent Lessard.



IMPORTANT: The notes and videos below are from Spring 2017-18, which was the last time Prof. Lessard taught this course. More recent offerings of the course might use different notes/materials. In particular, all code examples below were written for an older version of Julia and may no longer compile on the latest release!

Official syllabus: The official syllabus for the class is available Important dates: Tue Jan 23: first lecture

Thu Mar 22: midterm exam (7:15–9:15pm, Ingraham Hall B10)

Tue Mar 27 and Thu Mar 29: spring break (no classes)

Fri Apr 6: project proposal is due

Thu May 3: last lecture

Mon May 7: final project report is due

Other important dates: https://registrar.wisc.edu/spring_deadlines_at_a_glance.htm Grading: There will be three main components to your grade: Homework: 45%. There are weekly (roughly) homework assignments (8-10 total). These will be graded on a coarse 4-point scale. You get 4 points if you attempted all problems and got everything mostly right.

Midterm exam: 25%. There will be an exam before spring break where you will be tested on all the material covered up to that point. The exam will be taken outside of regular class hours (see date and time above) so be sure that you have no scheduling conflicts. It is your responsibility to ensure that you are available and present for the midterm exam.

Project: 30%. There will be a group project due at the end of the semester. More information here. There is no final exam for this class. The official syllabus for the class is available here There will be three main components to your grade:There is no final exam for this class. Letter grades will be assigned according to the following hard cut-offs: A: 93% or higher, AB: 87%, B: 80%, BC: 70%, C: 60%, D: 50%, F: less than 50%. I reserve the right to lower any of these cut-offs at my discretion. In other words, any changes I make can only cause your letter grade to stay the same or improve. More information about homework assignments Homework assignments are due Sunday by 11pm. They can be turned in up to two days late at a penalty of -25% per day. Solutions will be posted to the class website on Wednesday.

Exceptions will be made to the rules above in order to accommodate special circumstances. This includes family or medical emergencies, religious observances, and documented disabilities. If you have a special circumstance and foresee a conflict, please email the instructor as soon as possible to make alternative arrangements.

Assignments must be turned in electronically (as PDF or images) via gradescope. For a tutorial on how to do this, please watch this video. If you’ll be scanning documents in using a camera phone, read this guide.

Problems requiring code must be solved using an IJulia notebook. You must turn in a PDF version of your notebook . Do not turn in raw code such as an .ipynb or .jl file. The easiest way to turn a notebook into PDF is to use your browser’s “print to PDF” function. Be sure to compile your file (so we can see the outputs) before you turn it in.

. Do not turn in raw code such as an or file. The easiest way to turn a notebook into PDF is to use your browser’s “print to PDF” function. Be sure to compile your file (so we can see the outputs) before you turn it in. For problems not requiring code, you may write up solutions by hand or electronically (e.g. using Word, LaTeX, or an IJulia notebook). Either way, you must turn it in electronically.

Start each problem on a new page if possible. At the very least, be sure that each new problem is clearly indicated (use a large heading in Markdown to indicate each new problem, for example). If a problem has multiple parts, it’s OK to answer them on a single page.

Start early . You have two weeks (three weekends) to complete assignments, so you can expect them to take longer than standard one-week problem sets. They are also worth a significant portion of your final grade. You have plenty of opportunities to get help during office hours or via Piazza, so the earlier you get started, the better!

. You have two weeks (three weekends) to complete assignments, so you can expect them to take longer than standard one-week problem sets. They are also worth a significant portion of your final grade. You have plenty of opportunities to get help during office hours or via Piazza, so the earlier you get started, the better! Explain your work . This means write in words how you solved the problem, use intuitive variable names, and comment any code you turn in. It is unacceptable to simply turn in undocumented code. Even if your code produces the correct result, you will likely lose points.

. This means write in words how you solved the problem, use intuitive variable names, and comment any code you turn in. It is unacceptable to simply turn in undocumented code. Even if your code produces the correct result, you will likely lose points. You are encouraged to discuss homework problems with classmates and even work in groups. However, the work you turn in must be your own . If you use any external sources (e.g. the internet) be sure to cite your sources ! Letter grades will be assigned according to the following hard cut-offs: A: 93% or higher, AB: 87%, B: 80%, BC: 70%, C: 60%, D: 50%, F: less than 50%. I reserve the right to lower any of these cut-offs at my discretion. In other words, any changes I make can only cause your letter grade to stay the same or improve.