During my Spring 2019 semester, I took the CS-520: Computational Methods in Optimization class at Purdue University.
I wanted to take a class to discover something totally different from my field. Especially, I was looking for a class in Computer Science with an emphasis on Mathematics and preferably theoretical rather than practical. The idea was to improve my ability to deal with more abstract topics. In addition to that, optimization can always be useful. For instance, it has applications in: Machine Learning, Mechanics, Operations research and probably many other fields.
Regarding prerequisites, on the contrary to what was expected, my math background was not so strong and on top of that I was a bit rusty. Back in France, I took math classes only the first two years after high school and I pretty much stopped after that because I was doing a computer engineering degree. I had to learn new fundamental concepts to complete homework. It has been very time consuming, but I finally did make it.
It has been a very interesting experience and, as expected, I learned a ton of new things. Also the professor is excellent and I may take another class with him. I got a B; I was anticipating it and I am fine with that.
Simply because it has been so challenging, I want to keep a public record to show that I did it!
Concerning homeworks, I did well but it took me a long time to find the solutions. I extensively used Google, stackoverflow, and I talked to a friend taking the class with me. Following are the homeworks in PDF format along with the grades I got.
- Homework 1: 100/100
- Homework 2: 100/100
- Homework 3: 87/100 (Problem 3 question 3 is incomplete)
- Homework 4: 100/100
- Homework 5: 100/100
- Homework 6: 100/100
- Homework 7: 100/100
Concerning the final project, I teamed up with Yichen Sheng, my lab mate, and we decided to work on the second project: An interior point LP solver. Basically the objective was to implement an LP solver based on the book Primal-dual interior-point methods by Stephen J. Wright, SIAM 1997. I enjoyed it!
Your report was great! But your solver couldn’t satisfy the 10^-7 KKT tolerance for most of the problems. It was also extremely slow.
We got 67/100.
Link to the class on David Gleich’s website: CS-520: Computational Methods in Optimization