Linear and Integer Programming (CSCI 5654, Fall 2016)

Course Information
  • Class Timings: MWF 2-3 PM.

  • Class Location: ECCS 1B12

  • Instructor: Sriram Sankaranarayanan

  • Pre-Requisites: Calculus I,II + Algorithms + Linear Algebra.

  • Office Hours: We will have the following hours:

    • Agile office hours before class on MWF.

    • Other office hours TBA.

  • Final Exam: To Be Announced

  • August 22, 2016 Course page is live!


Note All assignments posted on moodle. Signup code will be given out in class and sent out by email.

Programming Assignments

Note All programming assignments are also posted on moodle.

Lecture Schedule and Notes

The schedule of lectures shown below is subject to change. We will post lecture notes for most topics and videos for selected topics. We will strive to post all material well in advance. Please take a look through them, and come prepared for class.

ID Date Topics Covered Book Sections
1 Aug 22 Introduction to Optimization Not from Book
2 Aug 24 Linear Programming Problems and Examples. ch. 1
3 Aug 26 Simplex method: basics ch. 2
4 Aug 29 Simplex algorithm: pivoting and termination. ch. 2
5 Aug 31 Initialization and termination of Simplex ch. 2
6 Sep 2 Degeneracy and degenerate dictionaries ch. 3
7 Sep 5 Cycling and Bland's rule ch. 3
8 Sep 7 Geometry of Simplex ch. 2 & 3
9 Sep 9 Correctness & Complexity ch. 3
10 Sep 12 Duality theory ch. 5
11 Sep 14 Properties of the dual problem c h. 5
12 Sep 16 Dual Simplex and Initialization ch . 5
13 Sep 19 Simplex algorithm in matrix form ch. 6
14 Sep 21 Revised Simplex method ch. 8
15 Sep 23 Factored form of the basis ch. 8
16 Sep 26 Sensitivity analysis ch. 7
17 Sep 28 wrap up of Simplex and duality
18 Sep 30 Regression: norms and their properties ch. 12
19 Oct. 3 Regression and classification problems ch. 12
20 Oct. 5 Financial portfolio selection ch. 13
21 Oct. 7 Options, derivatives and pricing ch. 13
22 Oct. 10 Tentative Date for Midterm upto sep. 30 lecture
23 Oct. 12 Integer Linear Programming See Slides
24 Oct. 14 Branch-and-bound method Slides
25 Oct. 17 Cutting Plane Method Slides
26 Oct. 19 Wrap up of ILP methods
27 Oct. 21 Travelling Salesperson Problem
29 Oct. 24 Approximation Algorithms
30 Oct. 26 Interior Point Methods ch. 17
31 Oct. 28 Newton Method ch. 18
32 Nov. 2 Convergence Analysis ch. 18

Topics Covered

Roughly, we will cover the following topics (some of them may be skipped depending on the time available).

  • Linear Programming: Basics, Simplex Algorithm, and Duality.

  • Applications of Linear Programming: regression, classification and other engineering applications.

  • Integer Linear Programming: Basics, Branch-and-Bound, Cutting Plane Methods.

  • Combinatorial Optimization: Basics of approximation algorithms.

  • Network flow problems.

  • Interior point methods.


We will primarily use the textbook by Robert Vanderbei.

Vanderbei Book

Robert J. Vanderbei. Linear Programming: Foundations and Extensions, 4th Edition.

(Available online through CU libraries for all CU students).

Course Work

We will have weekly assignments that will be based on the assigned reading for each class. The class will also involve creating applications using one or more of the algorithms learned. Programming assignments involve programming some of the ideas in Matlab (tm) or Python.

Pre-Lecture Work

Before you attend each lecture, we hope that you will spend 10-15 minutes to prepare:

  1. Read the required portion of the book (at least skim through the book or notes provided).

  2. Watch any videos posted (instructions will be sent via email).

Some lectures may contain a small 5-10 minute tutorial problem that we will solve as a class. After solving the problem, you are expected to submit it to the instructor. The resulting grade will count for your course participation.


We will set up forums that will allow students to interact with the course staff and with each other. You can participate in the forum and help answer questions posed by your classmates. Doing so counts towards your course participation score.

Weekly Assignments

We will have a few longer, more open ended problems. These have to be solved on paper and turned in at the beginning of the lecture on the due date. Each week the grader will award 5 points to students who have turned in a legible assignment that is easy to read. In particular, it is strongly suggested that you consider typing out the assignment in Latex/Word OR you copy out the assignment cleanly from your working sheets before turning in.

Written Assignment Submission and Late Policy

Written paper and pencil assignments have to be submitted on paper during class on the due date. Assignments can be turned in by the subsequent lecture for a 20% penalty.

To be flexible, we will omit one assignment with the lowest scores from consideration while computing the overall grade.

Programming Assignments

Programming assignments will involve writing simple programs to solve interesting problems using the ideas learned in class. These assignments will be used to crystallize some of the concepts that we will cover in this course.


The end of the course will feature a two week project that will apply the ideas in the class to solve an interesting problem, or explore a more advanced topic in deeper detail and produce a short paper on what you have learned.

Project topics will be finalized by November 1, 2016. Projects can be performed in teams of two people or individually. A team project will have a correspondingly larger scope and expectation. Projects will be graded through individual interviews.


We will have one midterm exam covering the basic concepts of this class. The midterm will be held for 45 minutes in class.

Alternative Exams/Accommodations

No alternative exams will be offered unless there is a documented disability or a documented, unforeseen personal or medical emergency.

If you need special accommodations of any nature, you are expected to talk to the instructor during the first 2 weeks of the class. You are also expected to subsequently send in a reminder to the instructor at least one week before each quiz stating the accommodation you require.

Course Participation

Class participation is awarded based mainly on your class preparation, as judged by your general attendance, classroom behavior, interaction in class, willingness to answer questions in class and at the on-line forums, and demonstrating knowledge of weekly reading during problem solving time.


The overall grade will be based on a cumulative score computed by adding together the grades from:

  • The weekly paper and pencil assignments (with least score omitted),

  • The programming assignments (ideally, we hope to have three such assignments over the semester),

  • The final project,

  • Class participation: you are expected to attend class, and in class you are expected to interact with the instructor.

Overall, the contributions to the final grades will be:

  • Weekly paper and pencil assignments (35% of the grade).

  • Project (25 % of the grade).

  • Programming Assignments (20% of the grade).

  • Midterm (15 % of the grade).

  • Participation (5% of the grade).

The instructor reserves the right to modify this breakup as the semester progresses.

Collaboration Policy

The collaboration policy is rather simple:

  • Inspiration is free: you may discuss homework assignments with anyone. You are especially encouraged to discuss solutions with your instructor and your classmates.

  • Plagiarism is forbidden: the assignments that you turn in should be written entirely on your own. While writing the assignment you are not allowed to consult any source other than the textbook(s) for the class, your own class notes or the lecture notes for the class. Copying/consulting from the solution of another classmate constitutes a violation of the course's collaboration policy and the honor code.

  • Do not search for a solution on-line: You may not actively search for a solution to the problem from the internet. This includes posting to newsgroup or asking experts at other universities.

  • When in doubt, ask: If you have doubts about this policy or would like to discuss specific cases, please ask the instructor.

Honor Code

We will expect strict adherence to our our honor code. Please read and understand the code thoroughly. If in doubt, ask the instructor. At the end of the day, honor code violators hurt themselves by sacrificing their integrity and risking hard-earned reputation for a few measly grade points.