Students should develop proficiency in fundamental algorithmic techniques and analysis as well as the ability to implement the algorithms in a programming language. Further, they should understand computational limitations such as NP-completeness, and how to tackle such real-world algorithmic problems via randomized and approximation techniques.
42 hours of lecture including exams and quizzes.
14 hours of discussion
Principle Sources
Text Book
Introduction to the Design and Analysis of Algorithms 3e, Anany Levitin, Addison-Wesley, 2012, 592 pp. ISBN-10: 0132316811, ISBN-13: 9780132316811.
Lab Book
Data Structures and Algorithms in Python, Michael T. Goodrich, Roberto Tamassia, Michael H. Goldwasser, Wiley, 2013.
Other Sources
Other Resources
Python Data Structures and Algorithms, Benjamin Baka, Packt Publishing, 2017.
Annotated Algorithms in Python with Applications in Pyhsics, Biology, and Finance, 2e, Massimo Di Pierro, 2013.
Python Algorithms Mastering Basic Algorithms in the Python Language, Magnus Lie Hetland, Apress, 2010
Python and Algorithms, Mari Wahl, University of New York at Stony Brook, 2013.
An Introduction to Analysis of Algorithms, 2e, Michael Soltys, World Scientific Publishing Co. Pte. Ltd. 2012.
Algorithms 4e, Robert Sedgewick and Kevin Wayne, Princeton University, 2011
Course Schedules
Week
Contents
Learning Methods
1. Week
Introduction: What Is an Algorithm?, Fundamentals of Algorithmic Problem Solving, Important Problem Types, Fundamental Data Structures
Lecture and Examples
2. Week
Fundamentals of the Analysis of Algorithm Efficiency: The Analysis Framework, Asymptotic Notations and Basic Efficiency Classes, Mathematical Analysis of Nonrecursive Algorithms, Mathematical Analysis of Recursive Algorithms
Computing the nth Fibonacci Number, Empirical Analysis of Algorithms, Algorithm Visualization
Lecture and Examples
3. Week
Brute Force and Exhaustive Search: Selection Sort, Sequential Search and Brute-Force String Matching, Closest-Pair and Convex-Hull Problems by Brute Force, Exhaustive Search, Depth-First Search and Breadth-First Search
Divide-and-Conquer: Mergesort, Quicksort, Binary Tree Travesals and Related Properties, Multiplication of Large Integers, The Closest-Pair and Convex-Hull Problems
Lecture and Examples
6. Week
Transform-and-Conquer:Presorting, Gaussian Elimination, Balanced Search Trees
Heaps and Heapsort, Horner’s Rule and Binary Exponentiation, Problem Reduction
Lecture and Examples
7. Week
Space and Time Trade-Offs: Input Enhancements, Prestructuring, Horspool’s Algorithm, Boyer-Moore’s Algorithm, Hashing
Lecture and Examples
8. Week
Midterm Week
9. Week
Dynamic Programming: Definition of Dynamic Programming, Fibonacci Numbers, Coin-row problem, Path Counting, Other Examples, Knapsack Problem by DP, Optimal Binary Search Trees, Warshall’s Algorithm, Floyd’s Algorithm
Lecture and Examples
10. Week
Dynamic Programming: Definition of Dynamic Programming, Fibonacci Numbers, Coin-row problem, Path Counting, Other Examples, Knapsack Problem by DP, Optimal Binary Search Trees, Warshall’s Algorithm, Floyd’s Algorithm
Lecture and Examples
11. Week
Greedy Technique: Applications of the Greedy Strategy, Change-Making Problem, Minimum Spanning Tree, Prim's MST Algorithm, Kruskal's MST Algorithm, Shortest Paths Algorithms, Dijkstra’s algorithm, Coding Problem
Lecture and Examples
12. Week
Iterative Improvement: Definition & Examples, Linear Programming, Geometric Solution, The Simplex Method, Maximum Flow Problem, Augmenting Path, Vertex Labeling, Time Efficiency, Network Cuts, Bipartite Graphs, Matching in a Graph, Stable Marriage Problem
Lecture and Examples
13. Week
Limitations of Algorithm Power: Lower Bounds, Decision Trees, Adversary Arguments, Classifying Problem Complexity, Problem Types: Optimization and Decision, Class P, Class NP, NP-Complete Problems, P = NP ? Dilemma
Lecture and Examples
14. Week
Coping with the Limitations of Algorithm Power: Tackling Difficult Combinatorial Problems
Exact Solution Strategies, Backtracking, Branch-and-Bound, Approximation Approach, Numerical Algorithms
Lecture and Examples
15. Week
Final Exam Week
16. Week
17. Week
Assessments
Evaluation tools
Quantity
Weight(%)
Midterm(s)
1
30
Project(s)
1
30
Final Exam
1
40
Program Outcomes
PO-1
Adequate knowledge in mathematics, science and engineering subjects pertaining to the relevant discipline; ability to use theoretical and applied information in these areas to model and solve engineering problems.
PO-2
Ability to identify, formulate, and solve complex engineering problems; ability to select and apply proper analysis and modelling methods for this purpose.
PO-3
Ability to design a complex system, process, device or product under realistic constraints and conditions, in such a way so as to meet the desired result; ability to apply modern design methods for this purpose. (Realistic constraints and conditions may include factors such as economic and environmental issues, sustainability, manufacturability, ethics, health, safety issues, and social and political issues according to the nature of the design.)
PO-4
Ability to devise, select, and use modern techniques and tools needed for engineering practice; ability to employ information technologies effectively.
PO-5
Ability to design and conduct experiments, gather data, analyse and interpret results for investigating engineering problems.
PO-6
Ability to work efficiently in intra-disciplinary and multi-disciplinary teams; ability to work individually.
PO-7
Ability to communicate effectively, both orally and in writing; knowledge of a minimum of one foreign language.
PO-8
Recognition of the need for lifelong learning; ability to access information, to follow developments in science and technology, and to continue to educate him/herself.
PO-9
Awareness of professional and ethical responsibility.
PO-10
Information about business life practices such as project management, risk management, and change management; awareness of entrepreneurship, innovation, and sustainable development.
PO-11
Knowledge about contemporary issues and the global and societal effects of engineering practices on health, environment, and safety; awareness of the legal consequences of engineering solutions.