Description of Course Goals and CurriculumThe purpose of this course is to learn optimization methods in various contexts. A good knowledge of calculus is also important, but it is much important that a student is familiar with linear algebra. The first two or three lectures are spent covering important concepts in calculus and linear algebra that students should be aware of. In this course, students learn about theoretical components of optimization as well as the ways to solve optimization problems using a software (MATLAB). The following topics are the main ones covered throughout the course:
- Convex optimization
- Applications in statistics and machine learning
- Linear programming and duality
- Computational complexity theory
Learning From Classroom InstructionClasses are done in a lecture-style. There are a lot of theorems introduced throughout the course, and it is important for students to understand not only how these theorems are useful but also why they work. The professor usually provides full-proofs or outlines basic ideas of proofs as theorems are introduced, and detailed explanations are available in the lecture notes, which are posted online. There are no precepts for this course.
Learning For and From AssignmentsThere are eight assignments in total, and assignments contribute to half of your grade. The assignment with the lowest grade is dropped. Each assignment consists of both theoretical parts and computational parts. Theoretical parts sometimes require proofs, but these proofs are not as difficult as the proofs introduced in the class. Computation parts require programming in MATLAB. A good knowledge of MATLAB is useful, but not necessary, as long as students have some programming experience. The first few problems in the computational part are simple enough that students can familiarize themselves with MATLAB as they solve them. There are office hours available, which are very helpful for doing assignments. Students can also have discussions on Piazza.
External ResourcesProfessor Ahmadi’s website (http://aaa.princeton.edu/orf363) contains all the past years’ lecture slides, so it might be helpful to quickly read through the upcoming lecture’s material to get a better understanding in class. The website also has lecture slides for ORF 523: Convex and Conic Optimization which is the graduate level version of this course. Students who are more interested in learning about the rigorous proofs skipped in class can take a look.
What Students Should Know About This Course For Purposes Of Course SelectionThis course is extremely versatile for satisfying various requirements for all majors. For ORF and COS majors, this course serves as a departmental elective. For students interested in the COS certificate (Applications of Computing), this course serves as one of the core requirements. For students interested in the SML certificate (Statistics and Machine Learning), this course serves as one of the three elective courses. There is relatively less workload compared to those of other ORF and COS courses if you have a good sense of multivariable calculus and linear algebra (MAT 201, MAT 202 is sufficient). For beginners in MATLAB, the problem sets might take a longer time at first in order to learn the basic syntax, but there is no need to use complicated data structures or algorithms. The grading overall is fair and reasonable. Assignments are 50% of the course, so if you do well in all of the assignments, it is very likely to get a good grade because the in-class midterm exam and take-home final exam are both heavily related to the assignments.
Computing and Optimization for the Physical and Social Sciences