**Class time and place:**11:00 - 12:20 TR, Synchronous Online Zoom Coordinates.**Instructor:**Prof. V. V. Veeravalli. 315 CSL, vvv at illinois dot edu, 333-0144

Instructor Office Hours: Wednesdays 5PM - 6PM. Zoom Coordinates.**Teaching Assistants:**Adarsh Subramaniam, adarshm2 at illinois dot edu, and Akshayaa Magesh, amagesh2 at illinois dot edu

TA Office hours: Mondays 5PM - 7PM.**In person**in ECEB 2036, and also synchronously on Zoom. Zoom Coordinates.- Please add yourself to the Piazza discussion site for the course.
- The Gradescope entry code is here .

- There will be no class on Tuesday, Nov 2, and on Thursday, Nov 18.
- Exam 2 will be held
**in person**on Monday, December 6 from 7-8:50 PM in ECEB 1013. You will be allowed two sheets of notes (8.5''x11'', both sides) for the exam. Otherwise the exam is closed book. The exam will cover all the material from class (lectures 1-24), with an emphasis on material covered since Midterm 1. - Exam 1 will be held
**in person**on Monday, October 11 from 7-8:50 PM in ECEB 1013. You will be allowed one sheet of notes (8.5''x11'', both sides) for the exam. Otherwise the exam is closed book. - For students taking the course for 4 credit hours, please form teams of up to 3 students to work on your paper review project. The deadline for forming teams is
**November 2, 2021,**by which time you need to send Prof. Veeravalli an email listing your team members. For the topic of your project, choose one (or if needed more than one) paper that discusses an optimization problem that arises in the area of your research. Describe the problem and solution approaches in your own words in the report, which is to be written in standard IEEE two-column conference paper format, not exceeding 5 pages in length. The report is to be submitted via Gradescope on**Tuesday, December 14,**by 5:00 PM. Only one person from the team needs to submit the report.

**Note:** Please submit your homework assignments on Gradescope. Scan your handwritten solutions into a pdf file to submit. At the time of submission please don't forget indicate which page/s contain the answers to each of the questions.

- Homework Assignment 1: Due Thursday September 9, 11 AM on Gradescope. Solutions.
- Homework Assignment 2: Due Tuesday September 21, 11 AM on Gradescope. Solutions.
- Homework Assignment 3: Due Tuesday October 5, 11 AM on Gradescope. Solutions.
- Fall 2020, Midterm 1 (practice exam) and its solutions.
- Exam 1 Solutions.
- Homework Assignment 4: Due Tuesday October 26, 11 AM on Gradescope. Solutions.
- Homework Assignment 5: Due Tuesday November 9, 11 AM on Gradescope. Solutions.
- Homework Assignment 6: Due Thursday December 2, 11 AM on Gradescope. Solutions
- Fall 2020, Midterm 2 (practice exam), and its solutions.
- Exam 2 Solutions.

**Note:** Computer assignments are to be done in assigned groups. Each student in a group will be awarded the same points after the assignment is graded. The code should be uploaded by a single member of the group on Compass2g before the due date, 5:00 PM. In case you have mutiple files, upload a zipped folder. One student from each group must meet with the assigned TA during the TA office hours on the due date to demonstrate their code in-person and get the assignment graded -- the other members can be present in-person to answer questions. Each group will be assigned a time slot for for this purpose in the period from 5:00 PM -- 7:00 PM on the due date.

Check the assigned groups and time slots here.

- Computer Assignment 1: Due Monday September 27, 5 PM on Compass2g. Sample Q, b, and c to test your code are available here: Q, b, and c. The TAs will use Q, b, and c in this format to test your code. You can also generate additional Q, b, and c to test your code using this Python script.
- Computer Assignment 2: Due November 1st, 5 PM on Compass2g.
- Computer Assignment 3: Due November 29th, 5 PM on Compass2g. You can generate sample inputs using this Python script.

**Note:** The videos of the lectures will also be available on Illinois Media Space
on the ECE 490 Channel .

- Lecture 1 (pre), Lecture 1 (post), and Lecture 1 Video.
- Lecture 2 (pre), Lecture 2 (post), and Lecture 2 Video.
- Lecture 3 (pre), Lecture 3 (post), and Lecture 3 Video.
- Lecture 4 (pre), Lecture 4 (post), and Lecture 4 Video.
- Lecture 5 (pre), Lecture 5 (post), and Lecture 5 Video.
- Lecture 6 (pre), Lecture 6 (post), and Lecture 6 Video.
- Lecture 7 (pre), Lecture 7 (post), and Lecture 7 Video.
- Lecture 8 (pre), Lecture 8 (post), and Lecture 8 Video.
- Lecture 9 (pre), Lecture 9 (post), and Lecture 9 Video.
- Lecture 10 (pre), Lecture 10 (post), and Lecture 10 Video.
- Lecture 11 (pre), Lecture 11 (post), and Lecture 11 Video.
- Lecture 12 (pre), Lecture 12 (post), and Lecture 12 Video.
- Lecture 13 (pre) Lecture 13 (post), and Lecture 13 Video.
- Lecture 14 (pre) , Lecture 14 (post), and Lecture 14 Video.
- Lecture 15 (pre), Lecture 15 (post), and Lecture 15 Video.
- Lecture 16 (pre), Lecture 16 (post), and Lecture 16 Video.
- Lecture 17 (pre), Lecture 17 (post), and Lecture 17 Video.
- Lecture 18 (pre) , Lecture 18 (post), and Lecture 18 Video.
- Lecture 19 (pre), Lecture 19 (post), and Lecture 19 Video.
- Lecture 20 (pre), Lecture 20 (post), and Lecture 20 Video.
- Lecture 21 (pre), Lecture 21 (post), and Lecture 21 Video.
- Lecture 22 (pre), Lecture 22 (post), and Lecture 22 Video.
- Lecture 23 (pre), Lecture 23 (post), and Lecture 23 Video.
- Lecture 24 (pre), Lecture 24 (post), and Lecture 24 Video.
- Exam 2 Review Video.

**Syllabus:**This is a senior/first year graduate-level course on optimization. Topics include necessary and sufficient conditions for local optima; characterization of convex sets and functions; unconstrained optimization, gradient descent and it variants; constrained optimization and the gradient projection method; optimization with equality and inequality constraints, Lagrange multipliers, KKT conditions; penalty and barrier function methods; weak and strong duality and Slater conditions; augmented Lagrangian methods; sub-gradient methods; proximal gradient descent; applications.

Prerequisites: Linear algebra at the level of Math 415, programming skills at the level of ECE 220.**Textbook:**D. Bertsekas. Nonlinear Programming, Athena Scientific, 2016.**Other References:**

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

D. Luenberger and Y. Ye. Linear and Nonlinear Programming, Springer, 2008.**Exams, homework, grading, etc.:**- Homework (H) problems will be assigned on a (approx.) fortnightly basis and be submitted via Gradescope . Collaboration on the homework is permitted, however each student must write and submit independent solutions. No late homework will be accepted (unless an extension is granted in advance by the instructor).
- There will be three programming assignments (P), which will be done in Python. The assignments will be done collaboratively in teams.
- There will be two mid-term exams. The first midterm exam (M1) will be held on in the beginning of October, and the second midterm exam (M2) will be held in the Beginning of December.
- Students taking the course for 4 credit hours will be required to do a paper review project (R). Details will be provided later in the semester.
- Grading will be done separately for the 4 credit hour and 3 credit hour students. For 4 credit hour students the course grade will be determined by your performance in the H, M1, M2, P and R according to the formula:

Score = .2H + .2P + .2R + max{.25M1 + .15M2, .15M1 + .25M2}.

For 3 credit hour students, the course grade will be determined by the formula:

Score = .25H + .25P + max{.3M1 + .2M2, .2M1 + .3M2}.

Here H, M1, M2, P and R are normalized to 100.