Academia.eduAcademia.edu

Design and Analysis of Algorithms

2013

Introduction to fundamental techniques for designing and analyzing algorithms, including asymptotic analysis; divide-and-conquer algorithms and disjoint set operations; graph algorithms; backtracking algorithms; greedy algorithms; dynamic programming; and branch and bound algorithms; NP-Hard and NP-Complete problems; II. PREREQUISITE(S): 1. Problem Solving Skills 2. Basic Programming 3. Data Structures 4. Formal Languages and Automata Theory III. COURSE OBJECTIVES: 1 To analyze performance of algorithms. 2 To choose the appropriate data structure and algorithm design method for a specified application. 3 To understand how the choice of data structures and algorithm design methods impacts the performance of programs. 4 To solve problems using algorithm design methods such as the greedy method, divide and conquer, dynamic programming, backtracking and branch and bound. 5 To understand the differences between tractable and intractable problems. 6 To introduce P and NP classes. IV. COURSE OUTCOMES: S.No Description Bloom's Taxonomy Level 1 Ability to analyze the performance of algorithms. Analyze (level 4) 2 Ability to choose appropriate algorithm design techniques for solving problems. Knowledge, Application (level 1, level 3) 3 Ability to understand how the choice of data structures and the algorithm design methods impact the performance of programs. Understanding, Synthesis (Level 2, level 5) V. HOW PROGRAM OUTCOMES ARE ASSESSED: Program Outcomes (PO) Level Proficiency assessed by PO1 Engineering knowledge: Apply the knowledge of mathematics, science, engineering fundamentals, and an engineering specialization to the solution of complex engineering problems related to Computer Science and Engineering. 3 Assignments PO2 Problem analysis: Identify, formulate, review research literature, and analyze complex engineering problems related to Computer Science and Engineering and reaching substantiated conclusions using first principles of mathematics, natural sciences, and engineering sciences. 3 Assignments PO3 Design/development of solutions: Design solutions for complex engineering problems related to Computer Science and Engineering and design system components or processes that meet the specified needs with appropriate consideration for the public health and 2 Assignments safety, and the cultural, societal, and environmental considerations. PO4 Conduct investigations of complex problems: Use research-based knowledge and research methods including design of experiments, analysis and interpretation of data, and synthesis of the information to provide valid conclusions. 2 Assignments PO5 Modern tool usage: Create, select, and apply appropriate techniques, resources, and modern engineering and IT tools including prediction and modeling to complex engineering activities with an understanding of the limitations.