IST238: Algorithms.

Syllabus.
  1. Introduction
  2. Recursion
  3. Sorting methods
  4. Bitwise operators
  5. Dynamic Programming
  6. Greedy approach
  7. Huffman code
  8. Dictionaries and hash functions
  9. Random number generator

  1. Program examples
  2. Projects.
    1. Insertion sort algorithm - Due by Sep 16, 11:59pm.
    2. Different sequences in the Shell sort algorithm - Due by Sep 21, 11:59pm.
    3. Comparison of merge, quick, and heap sorting methods - Due by Oct 7, 11:59pm.
    4. Dijkstra shortest path algorithm - Due by Nov 11, 11:59pm.
    5. Huffman code - Due by Nov 15, 11:59pm.
  3. Homework assignments.
    1. Selection sort - Due by Sep 2, 11:59pm.
    2. Bubble sort - Due by Sep 7, 11:59pm.
    3. Shell sort - Due by Sep 14, 11:59pm.
    4. Merge sort - Due by Sep 28, 11:59pm.
    5. Quick sort - Due by Sep 30, 11:59pm.
    6. Binomail coefficients - Due by Oct 19, 11:59pm.
    7. Floyd's shortest path algorithm - Due by Oct 21, 11:59pm.
    8. Knapsack problem - dynamic approach - Due by Nov 2, 11:59pm.
    9. Sieve of Eratosthenes - Due by Nov 4, 11:59pm.
    10. Modify the Huffman coding by using binary I/O
    11. Test the different hash functions
    12. Test the different versions of the random number generators