Convex Analysis (and Optimization)

CS/ISyE 727, Fall 2026


Lectures: Monday and Wednesday 11:00am - 12:15pm, 3610 Morgridge Hall

Instructor: Yudong Chen (Office: 5504 Morgridge Hall). Office hours: see Canvas

Prerequisites:

  • This class focuses on theory. Mathematical maturity is assumed: you should be comfortable with reading and writing proofs. Your are strongly encouraged to have had a course in basic analysis (e.g. MATH 521) and a course in linear algebra (e.g., MATH 340).

  • Some of the homework problems involve coding in Python, so basic knowledge of Python is expected.

  • Homework must be typeset in LaTeX (or other text/equation editors), so you are expected to know how to do so.

Websites and communication:

  • Piazza: For announcements and discussion.
  • Canvas: For posting course materials and grades.

Course Overview

This is an introductory course in convex analysis and optimization. We will cover elements of convex geometry, analysis and duality, as well as the formulations, applications and algorithms of convex optimization.

Tentative list of topics

  • Background
  • Convex Geometry
  • Convex Functions and Analysis
  • Convex Optimization Problems
  • Duality
  • Applications
  • Algorithms

Texts and References

Lecture notes will be shared on Canvas.

Additional books and resources that you may find useful:

Course Load and Grading

Your final grade will be based on the following formula (tentative and subject to change):

max(0.4H + 0.3A + 0.3B, 0.4H + 0.2A + 0.4B),

where H=homework, A=exam 1, and B=exam 2. Details below:

  • Homework. There will be 3 to 4 homework assignments.
    • Homework submission must be typeset using LaTeX or other text/equation editors.
    • You may discuss with other students, but you need to declare it on your homework submission. Any discussion can be verbal only: you are required to work out and write the solutions on your own. You must also cite any resources which helped you obtain your solution.
  • Exam 1: TBD, in class.
  • Exam 2: December 9, in class.

Homework assignments, solutions and grades will be posted on Canvas.

Homework extension policy:

Blanket approval for up to 4 days. This means that for all homework assignments throughout the semester, you can be late for up to a total of 4 days, without requesting an extension from the instructor.

  • The late days are counted in full days increments: if you are 1min late or 23h 59m late, both would count as a full day.

  • It is up to you to decide whether to use these late days, and how to allocate them across the HWs. For example, one may use 1 late days for HW1 and 3 late days for HW3. Or, one may use all 4 late days for HW3.

  • The policy does NOT mean that you can be 4 days late for every HW assignment. The 4 days are for all HW assignments combined.

Academic Conduct

You may discuss with your peers or the instructors ideas, approaches and techniques broadly. However, all examinations, programming assignments, and written homework must be written up individually. For example, code for programming assignments must not be developed in groups, nor should code be shared. Submitting someone else’s work as your own constitutes academic misconduct. Make sure you work through all problems yourself, and that your final write-up is your own. You may discuss problems with other students, but you need to declare it in your homework submission.

You may use books or legit online resources to help solve homework problems, but you must always credit all such sources in your writeup and you must never copy material verbatim.

Academic integrity issues will be dealt with in accordance with University procedures; see the UW-Madison Academic Misconduct Page.

If you have any questions about this policy, please do not hesitate to contact the instructor.

Use of AI Tools

You may use AI tools (like ChatGPT, Claude, or Cursor) in this class only as you might consult a peer for help, as outlined in the guidelines above. You may consult an AI tool to brainstorm approaches, clarify instructions, review concepts. You may ask for help with language or package syntax. You may use an AI tool for debugging help as long as you remain the primary problem-solver. If AI tools are employed, you are required to document their use by including comments that explain the code logic and providing full citations, including the specific prompts used. You may not use AI to generate and/or copy solutions, code, or written work, even partially. When in doubt, ask: “Would it be okay if a friend did this for me?” If the answer is no, it’s not okay to have an AI do it either.

UW-Madison Academic Policies and Statements