ISE 407: Computational Methods in Optimization
Miscellaneous Handouts
- Course Syllabus
- Course Calendar
- Readings (password protected)
Lecture Slides
- Introduction.
- Fundamentals
- Theoretical Analysis
- Empirical Analysis
- Programming Tools and Techniques
- Data Structures
- Combinatorial Algorithms
- Numerical Analysis and Numerical Algorithms
- LTS Lecture on Using HPC
Code Examples from Lecture
- Sample Makefile
- Matrix Multiplication
- Dictionary Implementations
- Gaussian Elimination and LU Decomposition
Assignments
Tools
On-line References
- Comparisons of Programming Languages and Features
- Tables showing features of popular languages
- Guidelines for Choosing a Computer Language
- Brief discussion of important language features
- Programming language comparison with a focus on educational use
- A presentation on features of programming languages”
- Language Guide
- List of Links to Articles on Programming Languages
- Computer Programming History
- Programming Tutorials
- Architecture and Memory Configuration
- What Scientists Must Know About Hardware to Write Fast Code
- Engineering Cache-Oblivious Sorting Algorithms (good overview of how the memory hierarchy affects performance)
- Why are registers so fast and RAM so slow?
- 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
- Gallery of Cache Effects
- Designs, Lessons and Advice from Building Large Distributed Systems
- Network Topologies for Large-scale Compute Centers: It’s the Diameter, Stupid!
- Floating Point Arithmetic
- Computational Testing and Empirical Science
- Assessing the Effectiveness of (Parallel) Branch-and-Bound Algorithms
- A Theoretician’s Guide to the Experimental Analysis of Algorithms
- Statistical Analysis of Computational Tests of Algorithms and Heuristics
- Towards a Discipline of Experimental Algorithmics
- Experimental Analysis of Algorithms
- Experimental Analysis of Algorithms 2
- A Guide to Experimental Algorithmics
- Designing and Reporting on Computational Experiments with Heuristic Methods
- How to Present a Paper on Experimental Work with Algorithms
- Algorithms and Experiments: The New (and Old) Methodology
- Design of Experiments for Tuning of Optimization Algorithms
- Needed: An Empirical Science of Algorithms
- Compilation
- Parallel Programming
- Miscellaneous
Reference Papers
Class Reference Books
- The Elements of Computing Systems, Noam Nisan and Simon Schocken
- Introduction to High Performance Computing for Scientists and Engineers, Georg Hager and Gerhard Wellein
- Introduction to High-Performance Scientific Computing, Viktor Eijkhout
- Principles of Algorithmic Problem Solving, Johan Sannemo
- Algorithms in C++, Robert Sedgewick
- Computational Complexity: A Modern Approach, Sanjeev Arora and Boaz Barak
- 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
- Geometric Algorithms and Combinatorial Optimization M Groetschel, L. Lovasz, and A. Schrijver.
Algorithm Links
- Animation of Heap Sort
- Animation of a Heap
- Graph Search Animations
- A good demonstration of Dijkstra’s Algorithm
- Nice applet demonstrating binary search trees.
- Another animation of binary search trees.
- How to win a million dollars playing minesweeper
- Fast Fibonacci Algorithms
- Top 10 Algorithms List
- The Algorithm Repository Steven Skiena SUNY Stony Brook
- A Collection of Algorithm Animation Links Frode Haug Gjovik University College
- Discussion of Popular Hash Functions
- Discussion of MurmurHash
- Test Suite for Hash Functions
- Discussion of Checksums
- Checksums and Hash Functions
- Testing Hash Functions
- An Implementation of Strassen’s Algorithm
- Coppersmith–Winograd algorithm
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!