IE 172: Algorithms in Systems Engineering (Python)
Miscellaneous Handouts
- Course Syllabus
- Course Calendar
- Midterm Practice
- Midterm Practice Partial Solutions
- Final Exam Practice
Lecture Slides
- Introduction
- Lecture 0: Introduction to Python
- Lecture 1: Introduction to Algorithms
- Lecture 2: Python and Abstract Data Types
- Lecture 3: Efficiency and Correctness
- Lecture 4: Growth of Functions
- Lecture 5: List Data Structures
- Lecture 6: Stacks and Queues
- Lecture 7: Recursion
- Lecture 8: Analyzing Recursive Algorithms
- Lecture 9: Dictionaries and Hash Tables
- Lecture 10: Hash Table Implementation
- Lecture 11: Sorting Algorithms
- Lecture 12: Quicksort
- Midterm Review
- Lecture 13: Trees
- Lecture 14: Tree Data Structures
- Lecture 15: Heaps
- Lecture 16: Binary Search Trees
- Textbook Slides, Chapter 6 (BSTs)
- Binary Search Tree Visualization
- Another Animation of Binary Search Trees.
- Lecture 17: Graphs
- Lecture 18: Graph Search
- Lecture 19: Shortest Paths
- Lecture 20: Dijkstra’s Algorithm
- Lecture 21: Minimum Spanning Trees and Prim’s Algorithm
- Lecture 22: Kruskal’s Algorithms and Union-Find
- Lecture 23: Introduction to String Matching
- Lecture 24: String Matching Algorithms
- Lecture 25: Introduction to Cryptography
- Lecture 26: RSA Public Key Cryptography
- Final Review
Codes Used in Lecture
Laboratory Files
- Laboratory 0: Setting Up Python and Eclipse
- Laboratory 1: The Game of Life
- Laboratory 2: Listless
- Laboratory 3: Amazing Mazes
- Laboratory 4: The Nature of Recursion
- Laboratory 5: Hashing The Classics
- Laboratory 6: Hashing The Classics II
- Laboratory 7: Getting Social with Networks (Graph Search)
- Laboratory Assignment Sheet
- social_network.py
- actor_graph.py
- imdb_parser.py
- Data files (from IMDB)
- Pictures
- Problem Solving with Algorithms and Data Structures using Python, Bradley N. Miller and David L. Ranum
- Introduction to Algorithms, Thomas H. Cormen (Editor), Charles E. Leiserson, Ronald L. Rivest, and Clifford Stein
- Algorithms: Sequential and Parallel, Russ Miller and Laurence Boxer
- The Design and Analysis of Computer Algorithms, Alfred V. Aho, John E. Hopcroft, and Jeffrey D. Ullman
- Algorithms in C++, Robert Sedgewick
- The Art of Computer Programming, Volume 1: Fundamental Algorithms, Donald E. Knuth
- Python
- Python Tutorial
- PyDev
- Google’s Python Class
- A Python Tutor and Visualizer
- Code Like a Pythonista: Idiomatic Python
- Guide to Python’s magic methods
- Specific Algorithms
- Extended Euclidean Algorithm (Wikipedia)
- Modular Multiplicative Inverse (Wikipedia)
- Euclidean Algorithm (Wolfram)
- 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
- 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
Course Software
Course Text and Other References
Python Links
Algorithms Links
Other Interesting Links
If you find something here useful, buy me a beer!