**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

Office Hours: Wednesdays 5PM - 6PM. Zoom Coordinates.**Teaching Assistants:**Aditya Deshmukh, adll at illinois dot edu, and Akshayaa Magesh, amagesh2 at illinois dot edu

Office hours: Mondays 5PM - 7PM. Zoom Coordinates.- Please add yourself to the Piazza discussion site for the course.
- The Gradescope entry code is here .
- Please add yourself to ECE 490 on the CBTF Scheduler.

- Exam 1 will be held on Monday, October 12 from 7-8:30 PM using Gradescope/CBTF. You will be allowed one sheet of notes (8.5''x11'', both sides) for the exam. Otherwise the exam is closed book.
- Exam 2 will be held on Wednesday, November 18 from 7-8:50 PM using Gradescope/CBTF. The exam will be
**open class-notes**, but you will only be allowed to use**hard**(printed) copies of the notes. You may use notes that you may have written on paper, as well as printed copies of my lecture notes. - 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 9, 2020,**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 Monday, 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 Tuesday September 8, 11 AM on Gradescope. Solutions.
- Homework Assignment 2: Due Tuesday September 22, 11 AM on Gradescope. Solutions.
- Homework Assignment 3: Due Tuesday October 6, 11 AM on Gradescope. Solutions.
- Spring 2017, Midterm 1 (practice exam).
- Exam 1 Solutions.
- Homework Assignment 4: Due Tuesday October 27, 11 AM on Gradescope. Solutions.
- Homework Assignment 5: Due Tuesday November 17, 11 AM on Gradescope. Solutions.
- Spring 2017, Midterm 2 (practice exam).
- 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 either of the TAs during the TA office hours on the due date to demonstrate their code (through screen sharing on Zoom) and get the assignment graded -- the other members can be in Zoom meeting 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 28, 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 2nd, 5 PM on Compass2g.
- Computer Assignment 3: Due December 7th, 5 PM on Compass2g.

**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.
- Midterm 2 Review Video.
- Lecture 22 (pre), Lecture 22 (post), and Lecture 22 Video.
- Lecture 23 (pre).

**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 October 12, and the second midterm exam (M2) will be held on November 18 via Gradescope/CBTF.
- 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 graduate and undergraduate 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.