Algorithms



Course Description

The word algorithm is derived from the name of the Persian mathematician Mohammed al-Khowarizmi, who lived during the 9th century, and who is credited with providing thestep-by-step rules for adding, subtracting, multiplying, anddividing ordinary decimal numbers. When written in Latin, thename became Algorismus, from which algorithm is but a small step.

Science is what we understand well enough to explain to a computer; art is everything else. — Donald Ervin Knuth

Simple definition: A step-by-step procedure to accomplish a specific (computational) problem.

In this course we touch the surface of this field of science by introducing some famous strategies to solve problems. The main strategies that we cover are

  • Divide and conquer
  • Dynamic Programming
  • Greedy
  • Intelligent search methods


Importance

  • In sciencce: The "art" of solving "intersting" problems. The heart of computer science. Relevant to most of science
    • Routing protocols in communication networks (shortest path)
    • Public-key cryptography (number-theorety)
    • Database (balanced search tree)
    • Computational biology (dynamic programming)
  • In industry: The algorithm is a technology as the hardware is.
    • Search engines (PageRank)
  • In job interviews: Demonstrates the problem solving ability
  • Top 10 Reasons to Major in Computing

Topics & Course Plan

Session No. Subject Homework & Project
Preliminaries
1 & 2

(16,18/11)

Introduction

Algorithm Description, Correctness Analysis

3 & 4

(23,25/11)

Complexity Analysis

Orders of Growth

HW1: Complexity Analysis (27/11)
Divide and Conquer
5 & 6

(30/11,2/12)

Steps of D&C, Finding the peak, The maxima set

Master Theorem, Maximum Subarray

7 & 8

(7,9/12)

Finding the closest pair, Merge sort

Quick sort, Miscellaneous on sorting

HW2: D&C (11/12), HW1 due date (13/12)
Dynamic Programming
9 & 10

(14,16/12)

Steps of DP, Coin-row

Coin change, Coin collection

HW2:due date (20/12)
11 & 12

(21,23/12)

Memoization, Knapsack

Matrix chain mul.,

Quiz1 (26-28/12), HW3 (25/12)
13(15/1)

Optimum Binary Search Tree (BST)

HW3 due date (19/1)
14 & 15

(20,22/1)

Shortest path

Traveling Sale Person (TSP)

Quiz2 (25-27/1)
Greedy
16 & 17

(27,29/1)

Steps of Greedy, Activity selection

Change making, Fractional knapsack

18 & 19

(3,5/2)

Minimum Spanning Tree (MST)

Shortest path (Dijkstra), Huffman code

HW4 (7/2)
20 (10/2)

Stable Matching

P/NP/NPC
21 (12/2)

Definition of P/NP/NPC, Cook's Theorem

HW4 due date (16/2)

Midterm

22 (17/2)

Reductionm

Coping with the Hardness
23 (19/2)

Approximation Algorithms, TSP

24,25

(24,26/2)

Vector Cover, Set Cover

Backtrack, N-Queens

HW5 (28/2)
26,27

(31/2, 2/3)

Subset sum, Graph Coloring, Hamiltonian Circuit

Integer Linear Programming

HW5 due date (6/3)

Quiz3


Marking

  • Homeworks: 30%
  • Quiz: 15% (ignoring the least)
  • Midterm: 30%
  • Final: 30%
  • Activity (online class participation): 5%
For programming assignment, we will use quera at this link (password: kharazmi).

For each homework, late submission (before TA sessions) is accepted but with a penalty of 5% per day.


Resources

No required textbook.

However, you need to solve many problems, and many good books are availbale to *challenge yourself* with their examples and problems

Optional resources:
  • Richard Neapolitan, Foundations Of Algorithms, Jones & Bartlett Learning, 4th /5th edition, 2009/2014
  • Anany Levitin, Introduction to the Design and Analysis of Algorithms, Pearson, 3rd edition , 2011
  • Jon Kleinberg, Algorithm Design, Pearson, 1 edition, 2005
  • Steven S Skiena, The Algorithm Design Manual, Springer, 2nd edition, 2010
  • Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest, and Clifford Stein, Introduction to Algorithms, MIT Press, 3rd edition, 2010
  • T. Roughgarden, The Algorithms Illuminated Book Series, ‎ Soundlikeyourself Publishing (Part 1-4), 2017-220


Prerequisite

  • Data Structure
  • Programming

  • TA Team

    Bachelor student at Isfahan University of Technology.
    • Email: s.baradaran@ec.iut.ac.ir
    • Telegram: @sara_brdrn
    Bachelor student at Isfahan University of Technology.
    • Email: mersadhassanjani@gmail.com
    • Telegram: @yougotbamboozled
    • Linkedin: https://www.linkedin.com/in/mersad-hassanjani/
    Bachelor student at Isfahan University of Technology.
    • Email: mr.mazrouee@ec.iut.ac.ir
    • Telegram: @rezablaugrana
    • Skype: live:mazrouee78
    • Linkein: https://www.linkedin.com/in/mohammad-reza-mazrouee
    Bachelor student at Isfahan University of Technology.
    • Email: sepehrshirani@ec.iut.ac.ir
    • Telegram: @sepovsky
    • Linkein: https://www.linkedin.com/in/sepehr-shirani-b8a5871b6
    Bachelor student at Isfahan University of Technology.
    • Email: niloufarsaeidi@ec.iut.ac.ir
    • Telegram: @Nill_sa
    • Linkein: https://www.linkedin.com/in/niloufar-saeedi-a59a1618b
    Bachelor student at Isfahan University of Technology.
    • Email: ali.mollahoseini@ec.iut.ac.ir
    • Skype: live:ali.mollahoseini2
    • Linkein: https://www.linkedin.com/in/ali-mollahoseini-b392bb196/

    Mailing List

    Important announcements will be sent to the class mailing list (yekta.iut.ac.ir) and also posted to the web page. Please check your mailbox frequently. The preferred method to contact me is through my email: mrheidar@iut.ac.ir

    Class News

    • HW1 deadline extended to 13/12/1400
    • 16/11: Class starts!