## IE 496: Computational Methods in Optimization

### Miscellaneous Handouts

- Course Syllabus
- Course Calendar
- Readings (password protected)

### Lecture Slides

- Introduction.
- Fundamentals
- Lecture 1: Models of Computation.
- Lecture 2: Fundamentals of Computer Systems.
- Lecture 3: Computer Architecture.
- Lecture 4: Languages and Compilers.
- Analysis of Algorithms
- Lecture 5: Induction and Recursion.
- Lecture 6: Computational Complexity.
- Lecture 7: Empirical Analysis.
- Lecture 8: Analysis of Parallel Algorithms.
- Programming
- Data Structures
- Lecture 11: Basic Data Structures.
- Lecture 12: Priority Queues.
- Lecture 13: Symbol Tables (supplementary material on hash tables here)
- Lecture 14: Disjoint Sets.
- Combinatorial Algorithms
- Lecture 15: Greedy Algorithms.
- Supplementary material on algorithms for MST here.
- Supplementary material on algorithms for shortest path here and here.
- Lecture 16: Matroids.
- Lecture 17: Search Algorithms.
- Lecture 18: Branch and Bound.
- Lecture 19: Parallel Search Algorithms.
- Numerical Algorithms

### Assignments

### References for Tools

### On-line References

- Google Code University
- Good C++ Coding Practices
- Debugging Tutorial
- A Python Tutor and Visualizer
- Multicore Programming Primer
- Finding the Door in the Memory Wall
- Computer Architecture Tutorial
- How Computers Work
- You’re Doing it Wrong
- All You Ever Wanted to Know About Memory
- Designs, Lessons and Advice from Building Large Distributed Systems
- Source Code Optimization
- Basics of Compiler Design
- An Implementation of Strassen’s Algorithm
- Coppersmithâ€“Winograd algorithm

### Reference Papers

### Class Reference Books

- Algorithms in C++, Robert Sedgewick
- Parallel Processing and Parallel Algorithms, Seyed Roosta
- Algorithms Sequential and Parallel, Russ Miller and Laurence Boxer
- The Design and Analysis of Computer Algorithms, Alfred Aho, John Hopcroft, Jeffrey Ullman
- Fundamentals of Computer Algorithms, Ellis Horowitz, Sartaj Sahni
- The Art of Computer Programming, Donald Knuth

### Other Courses On-line

- Algorithms in Systems Engineering
- Jeff Edmonds’ Algorithms Course
- MIT Introduction to Algorithms Course
- Algorithms in the Real World — Guy Blelloch — Carnegie Mellon University
- Applications of Parallel Computing — Jim Demmel — UC Berkeley
- Extensive List of Other Courses

### References and Other Links

If you find something here useful, buy me a beer!