Course title:
Python programming implementation for important algorithms
(or, Programming Top Ten Important Algorithms in Python)
Intended Students:
CS students in their 2nd, 3rd, or 4th year
Objectives:
To teach students theory, algorithms, programming, and applications
of Top ten important algorithms by in-class hands-on programming in PYTHON.
Prerequisite:
Introduction to programming;
Bringing own NB to class
Reference:
Selected papers; Python Docs
Grading:
Student report after each topic's hands-on programming
Contents:
1. Sorting (Selection Sort, Bubble Sort, Merge Sort, Quick Sort, Heap Sort,
Radix Sort)
2. Simplex Method for Linear Programming (Optimization)
3. Graph search, Shortest Path, Minimum Spanning Tree, Max Network Flow,
Matching, Min-Cut
4. Fast Multipole Method (FMM) for N-body Simulation Problem
5. Dynamic Programming (Viterbi decoding for error correction,
Two-Dimensional DP)
6. Page-rank Algorithm (Web search)
7. Discrete Fourier Transform (DFT) and
Fast Fourier Transform (FFT) for Signal Processing
8. Compression (Lossless and Lossy Algorithms for Data, Image, Video)
9. TBD
10. TBD
** The order is tentative