CSE221

Algorithm Analysis & Design

CSE221: Algorithm Analysis & Design

Offered:

Pre-requisite: CSE220


This course addresses the study of efficient algorithms, their analyses and effective algorithm design techniques. Standard algorithm design strategies, such as, Divide and Conquer paradigm, Greedy method, Dynamic programming, Backtracking, Basic search and traversal techniques, Graph algorithms, Elementary parallel algorithms, Algebraic simplification and transformations, Lower bound theory, NP-hard and NP-complete problems are discussed in the course. Examples of data structures and algorithms studied in details are Heaps; Hashing; Graph algorithms: Shortest paths, Depth-first and Breadth-first search, Network flow, Computational geometry, Minimum Spanning Tree; Integer arithmetic: GCD, primality; polynomial and matrix calculations; Sorting; Performance bounds, asymptotic analysis, worst case and average case behavior, correctness and complexity. The course includes a compulsory 3 hour laboratory work every week.

Course Objectives

a. Introduce students to time and space complexity of algorithms.

b. Teach students different sorting and searching methods and make them understand which is effective to use.

c. Make them familiar with different problem solving paradigms as described in the course catalog above.

List of Books

1. Introduction to Algorithms,Charles E. Leiserson, Clifford Stein, Ronald Rivest, and Thomas H. Cormen,2009,3rd edition,The MIT Press,ISBN: 9780262033848

2. Algorithm Design,Eva Tardos and John Kleinberg,(March 26, 2005),1st edition ,Pearson,ISBN-13: 978-0321295354

3. Algorithms,Dasgupta, Vazirani, Papadimitriou,July 2006,1st edition,McGraw Hill,ISBN: 9780073523408

4. Algorithms Illuminated,Tim Roughgarden,2022,1st edition,Cambridge,ISBN: 9780999282984

Course Materials

lecture note + slides, visualgo website for algorithms visualization

Course Outcome

# Description Weight Edit

CO1

Demonstrate knowledge, understanding and ability to identify usage of the classical algorithms

50

CO2

Analyze or Compare accuracy, efficiency and complexity (time, space) of algorithms

15

CO3

Apply suitable problem solving approaches such as sorting, searching, divide and conquer, graph theory, greedy, dynamic programming to propose solutions to unseen or real world problems

15

CO4

Convert algorithms into executable computer programs using any preferred programming language

20

Course Coordinator

Md. Imran Bin Azad


©2024 BracU CSE Department