Homepage for CSC 2600, Fall 2010

Topics in Computer Science: Convex Optimization

University of Toronto

  • In Question 3 of part A of Assignment 3, you should hand in your program's output and a well-commented copy of the program code.
  • Assignment 3 is now complete.
  • Assignment 3 should be handed in at my office, BA4268.
  • The last class will be on Tuesday December 7.
  • Assignment 3 is due on Friday Dec 10 (not Dec 3 as originally posted).
  • All programs in Assignment 3 should be written in Matlab.
  • According to university policy, assignments can be graded only for those students who are officially enrolled in the course.


    Convex optimization is a form of non-linear optimization that includes linear programming and least squares as special cases. Like linear programming and least squares, convex optimization has a fairly complete theory, very efficient algorithms, and a wide range of applications. Application areas include computer science, engineering, statistics, finance, economics and operations research.

    This course is an introduction to the theory, algorithms and applications of convex optimization. The goal is to give students a working knowledge of the subject, i.e., the ability to recognize, formulate, and solve convex optimization problems. Topics covered will be selected from the following: convex sets and functions, linear and quadratic optimization, geometric and semidefinite programming, strong and weak duality, algorithms for constrained and unconstrained problems, interior point methods, and applications. The course should be of special interest to students in machine learning, machine vision, graphics, numerical analysis, combinatorial optimization and electrical engineering.

  • This course is in area 2C.
  • Expected work: 3 or 4 homework assignments and possibly a test or exam.
  • Course outline


  • good knowledge of linear algebra and vector calculus.
  • a willingness to program in Matlab.
  • Mathematical maturity will be assumed.


  • Boyd and Vandenberghe, Convex Optimization, Cambridge University Press, 2004.
  • Freely available on the web.


  • Anthony Bonner
  • email: bonner [at] cs [dot] toronto [dot] edu
  • Phone: 416-978-7441
  • Office: BA 4268
  • Office hours: by appointment


  • Tues 1:00-2:30 in BA2139, and Fri 2:00-3:30 in GB221.
  • There will be no class on Nov 16 and 19.
  • Note: Some lectures may be only 1 hour in length.
  • Lecture slides


  • Assignment 1
  • Assignment 2
  • Assignment 3 No more questions will be added.

    Additional references:

  • A quick review of real symmetric matrices.
  • Dimitri P. Bertsekas, Nonlinear Programming, Athena Scientific, 1999.
  • David G. Luenberger, Optimization by Vector Space Methods, Wiley, 1969.
  • R. Tyrell Rockafellar, Convex Analysis, Princeton University Press. (Available in a 1996 reprint)

    Background material:

  • Petersen and Pedersen, The Matrix Cookbook. Free Download
  • Lipschutz and Lipson, Schaum's Outline of Linear Algebra. (very handy, very cheap)
  • Wrede and Spiegle, Schaum's Outline of Advanced Calculus. (very handy, very cheap)
  • Friedberg, Insel and Spence, Linear Algebra, Prentice Hall, 2003.


  • Matlab Primer.
  • Matlab Intro.
  • Prof. Christara's A Brief Introduction to MatLab.
  • Cleve Moler's Introduction to MATLAB chapter from his new textbook.
  • Here is a good site for Matlab information and tutorials.
  • Another good site for Matlab information, tutorials and software.


  • You may use Octave instead of Matlab for homework assignments. However, I cannot guarantee to help you if you have problems. Octave is very similar to Matlab and is freely available on the web, but the user interface is not as convenient.
  • Instructions for installing and running Octave in Windows.
  • More details on installing Octave in Windows.
  • Octave manual
  • GNU Octave Repository
  • Octave Wiki

    Plagiarism and Cheating:

  • The academic regulations of the University are outlined in the Code of Behaviour on Academic Matters.
  • Advice on academic offences