Computational Optimization (Fall 2016)

This website contains class resources, homeworks, and other useful information.

To find out more about the course, read the class flyer or course syllabus.

Visit the canvas website for the course to turn in your homework assignments and discuss with classmates.

Course Projects

  • "Bosch Failure Prediction" by Prateek Agrawal, Lukesh Singla. presentation summary
  • "Optimal Itinerary" by Sudesh Kumar Agrawal, Melissa Mei Yun Lee, Paul Joseph Ruess. presentation summary
  • "Image Recognition" by Archit Arora, Prateek Raj Srivastava. presentation summary
  • "Denoising Images" by Shashank Bassi, Praful Gupta, Phanindra Venkatesh Rao. presentation summary
  • "Utility Function Selection" by Andrew Alfred Beck. presentation summary
  • "Optimizing Community-Scale Energy Systems" by Thomas A. Deetjen, Andrew Samuel Reimers, Jeffrey Scott Jr. Vitter. presentation summary
  • "Large Scale Language Classification Of Short Texts Like Tweets" by Ravi Kiran Sr. Divvela, Bala Sujit Mathi. presentation summary
  • "Wafer Delivery Routing: Case Of Nxp Semiconductors" by Daeun Go, Hyeong Uk Lim. presentation summary
  • "Support Vector Machine With Applications To Text Classification" by Wei-Hsiang Huang, Yu-Ting Lin, Jingran Sun. presentation summary
  • "Topic Modeling With Latent Dirichlet Algorithm" by Gopika Geetha Jayadev, Mridula Maddukuri, Deepak Kumar Mahapatra. presentation summary
  • "Analysis of Ridership Behavior in New York City Subway System" by Raja Shekar Kilaru, Sai Bhargav Komatireddy. presentation summary
  • "Path-Based Equilibrium Traffic Assignment" by Daniel Joseph Kinn. presentation summary
  • "Better Bicycle Routes" by Patrick Alexander Mannon. presentation summary
  • "Yelp Dataset Challenge" by Ravi Teja Mulpuri, Venkat-Gokul Palampally. presentation summary
  • "Volt-Var Optimization In Utility Distribution Systems" by Quan Huy Nguyen, Harsha Vard Padullaparti. presentation summary
  • "Python Data Scrappy And Interactive Analysis" by Xiaoyu Qian, Chunqi Wang, Daqi Xu. presentation summary
  • "Autonomous Drone Delivery" by Abhinav Sinha. presentation summary
  • "Movie Rating Predictions" by Weiyan Sun, Wei-Ting Yao. presentation summary

Lecture Contents

A quick summary of each lecture's contents.

  1. Introduction.  List of Python Tools.  Python data types.  notebook video watch-online
  2. Python functions, classes, modules.  Intro to scipy.  notebook video watch-online
  3. Scipy and matplotlib. HW1 intro.  notebook video watch-online
  4. Pandas and geoplotting. notebook video watch-online
  5. Broadcasting, Python debugger and profiler. video watch-online
  6. Random directions, stochastic gradient descent. sgd.pdf video watch-online
  7. Deriving classes, chisquare test. video watch-online
  8. Large scale machine learning. Parallel computing. video watch-online
  9. SGD, Parallel computing. video watch-online
  10. Networks, Shortest Path. video watch-online
  11. Practice Exam, Pyomo. video watch-online
  12. In-class exam.
  13. Multinomial logistic classifier, Pyomo. video watch-online
  14. Pyomo solvers, Facility location. video watch-online
  15. WKT geometries, Facility location. video watch-online
  16. Parallel classifiers, Minimum spanning tree IP. video watch-online
  17. Special methods, Pandas groupby. video watch-online
  18. Routing, Minimum spanning tree. video watch-online
  19. ESPPRC, Minimum spanning tree. video watch-online
  20. Scrapy, Web data, Fast python. video watch-online
  21. Exam 2 Practice. video watch-online
  22. Extra Lecture: Using SQL databases (sqlalchemy)

Homework Assignments


  • HW 1: Basic matrix operations in scipy and plotting with matplotlib.
  • HW 2: Basic data set operations (pandas) and geographic plotting.
  • HW 3: Stochastic gradient descent and vectorization.
    • Example result: 
  • HW 4: Large-scale machine learning and distributed computing.
  • HW 5: Geographic routing.
  • HW 6: Routing with resource constraints.

Project Handouts:

Course Resources

  • Getting Started
    • Accounts, connecting, basic Unix commands
    • Copying files, text editors, starting a python interpreter, screen
  • Python Basics
    • Basic python data types
    • Organizing code: functions, objects, and modules
    • Searching for a module in the standard library
  • Scipy and Matplotlib Basics

Getting Started

  • You will receive an email with your class computer login information:
  • You first have to VPN into UT.
  • Connect:  Use ssh.  (Linux/Mac) search for an ssh tutorial (Windows) use putty
  • Basic unix commands: search for a command line tutorial or a quick cheat sheet
  • Copy files to/from: Use scp.  (Linux/Mac) search for an scp example (Windows) use winscp
  • Text editors: Pick one that works for you.  SublimeText, gedit, Emacs, Vim
  • Start python interpreter:
    • Ssh into Create a directory /scratch/your_user_name and move to it.
    • type ipython --ipython-dir=.
  • Screen:  
    • new: screen -S <sessionname> -h <num_lines>
    • re-attach: screen -r -d <sessionname>
    • list: screen -ls
    • detach: CTRL a d
    • Search for screen tutorial online

Python Basics

  • Use the Python 2.7 documentation
  • The python tutorial is a great place to look up basic and advanced syntax.  Use it to learn about functions, classes, and modules.  It should help you map other programming knowledge to Python, and learn the basic data types.
  • Use library reference to find standard library modules to help get your work done quickly.

Scipy and Matplotlib Basics

  • Read numpy for MATLAB users if you are familiar with MATLAB.
  • There are many more functions in scipy and numpy than you can remember.  For a given task, seach online and look at the scipy reference or numpy reference to find the tool you are looking for.
  • Matplotlib has many built-in plotting capabilities.  We can also use the building blocks there to create complex custom visualizations.  Usually, I use the matplotlib gallery to find something similar to what I want, and edit the code provided there.

Pandas and Matplotlib.basemap

Class Calendar

© Copyright 2004-2019 - Ned Dimitrov