CSCE 321/3201 Analysis and Design of Algorithms. Prof. Amr Goneid. Fall 2016

Similar documents
CSCE 210/2201 Data Structures and Algorithms. Prof. Amr Goneid

CSCE 210/2201 Data Structures and Algorithms. Prof. Amr Goneid. Fall 2018

Topic Analysis PART-A

D.K.M.COLLEGE FOR WOMEN (AUTONOMOUS), VELLORE-1.

DEPARTMENT OF COMPUTER SCIENCE & ENGINEERING Question Bank Subject Name: CS6402- Design & Analysis of Algorithm Year/Sem : II/IV UNIT-I INTRODUCTION

CS6402 DESIGN AND ANALYSIS OF ALGORITHMS QUESTION BANK UNIT I

CLASS: II YEAR / IV SEMESTER CSE CS 6402-DESIGN AND ANALYSIS OF ALGORITHM UNIT I INTRODUCTION

Virtual University of Pakistan

Anany Levitin 3RD EDITION. Arup Kumar Bhattacharjee. mmmmm Analysis of Algorithms. Soumen Mukherjee. Introduction to TllG DCSISFI &

Lecture 1. Introduction

DESIGN AND ANALYSIS OF ALGORITHMS

5105 BHARATHIDASAN ENGINEERING COLLEGE

Analysis of Algorithms

INSTITUTE OF AERONAUTICAL ENGINEERING

L.J. Institute of Engineering & Technology Semester: VIII (2016)

Department of Computer Applications. MCA 312: Design and Analysis of Algorithms. [Part I : Medium Answer Type Questions] UNIT I

4.1.2 Merge Sort Sorting Lower Bound Counting Sort Sorting in Practice Solving Problems by Sorting...

DESIGN AND ANALYSIS OF ALGORITHMS

Contents. 1 Introduction. 2 Searching and Traversal Techniques. Preface... (vii) Acknowledgements... (ix)

Ph.D. Comprehensive Examination Design and Analysis of Algorithms

TOTAL CREDIT UNITS L T P/ S SW/F W. Course Title: Analysis & Design of Algorithm. Course Level: UG Course Code: CSE303 Credit Units: 5

Design and Analysis of Algorithms. Comp 271. Mordecai Golin. Department of Computer Science, HKUST

The Algorithm Design Manual

Thomas H. Cormen Charles E. Leiserson Ronald L. Rivest. Introduction to Algorithms

CS-6402 DESIGN AND ANALYSIS OF ALGORITHMS

Sankalchand Patel College of Engineering - Visnagar Department of Computer Engineering and Information Technology. Assignment

15CS43: DESIGN AND ANALYSIS OF ALGORITHMS

Algorithm Design Paradigms

R13 SET - 1. ''' '' ''' ' blog: anilkumarprathipati.wordpress.com. Code No: RT32054

AP Computer Science 4325

CSE373: Data Structures & Algorithms Lecture 28: Final review and class wrap-up. Nicki Dell Spring 2014

Introduction to Algorithms Third Edition

Algorithms Interview Questions

COURSE: DATA STRUCTURES USING C & C++ CODE: 05BMCAR17161 CREDITS: 05

CSCE 350: Chin-Tser Huang. University of South Carolina

SRM UNIVERSITY FACULTY OF ENGINEERING AND TECHNOLOGY SCHOOL OF COMPUTING DEPARTMENT OF CSE COURSE PLAN. Sec. Name Office Office hour Mail id

ECE250: Algorithms and Data Structures Final Review Course

LECTURE 3 ALGORITHM DESIGN PARADIGMS

Cpt S 223 Course Overview. Cpt S 223, Fall 2007 Copyright: Washington State University

CS201 Design and Analysis of Algorithms Max.Marks:75

Multiple Choice Question. Unit-1 Introduction

CS/ENGRD 2110 Object-Oriented Programming and Data Structures Spring 2012 Thorsten Joachims. Lecture 25: Review and Open Problems

CS 445: Data Structures Final Examination: Study Guide

Algorithm classification

Introduction to Computers and Programming. Today

Problem Score Maximum MC 34 (25/17) = 50 Total 100

Lecture Summary CSC 263H. August 5, 2016

Data Structures and Algorithms

CMSC132, Practice Questions

Brute Force: Selection Sort

CS583 Lecture 01. Jana Kosecka. some materials here are based on Profs. E. Demaine, D. Luebke A.Shehu, J-M. Lien and Prof. Wang s past lecture notes

Review for Midterm Exam

CS521 \ Notes for the Final Exam

Data Structures and Algorithm Analysis in C++

CSCE 110 PROGRAMMING FUNDAMENTALS. Prof. Amr Goneid AUC

CSC2100-Data Structures

R13. II B. Tech I Semester Supplementary Examinations, May/June DATA STRUCTURES (Com. to ECE, CSE, EIE, IT, ECC)

Model Answer. Section A Q.1 - (20 1=10) B.Tech. (Fifth Semester) Examination Analysis and Design of Algorithm (IT3105N) (Information Technology)

Notation Index. Probability notation. (there exists) (such that) Fn-4 B n (Bell numbers) CL-27 s t (equivalence relation) GT-5.

Chapter 1 Introduction

Lecture 1 (Part 1) Introduction/Overview

END-TERM EXAMINATION

Course Name: B.Tech. 3 th Sem. No of hours allotted to complete the syllabi: 44 Hours No of hours allotted per week: 3 Hours. Planned.

Algorithms and Data Structures, or

DYNAMIC MEMORY ALLOCATION AND DEALLOCATION

DESIGN AND ANALYSIS OF ALGORITHMS

Review of course COMP-251B winter 2010

Algorithms and Data Structures (INF1) Lecture 15/15 Hua Lu

Advanced Algorithms and Data Structures

Home Works and Assignments

CS 206 Introduction to Computer Science II

2. (a) Explain when the Quick sort is preferred to merge sort and vice-versa.

Chapter 14. Graphs Pearson Addison-Wesley. All rights reserved 14 A-1

r=1 The Binomial Theorem. 4 MA095/98G Revision

Advanced Algorithms and Data Structures

n 2 ( ) ( ) Ο f ( n) ( ) Ω B. n logn Ο

Computer Algorithms. Introduction to Algorithm

Chapter 9. Greedy Technique. Copyright 2007 Pearson Addison-Wesley. All rights reserved.

Your favorite blog : (popularly known as VIJAY JOTANI S BLOG..now in facebook.join ON FB VIJAY

COMP251: Algorithms and Data Structures. Jérôme Waldispühl School of Computer Science McGill University

Overview of Data Structures, Algorithm Analysis

IV/IV B.Tech (Regular) DEGREE EXAMINATION. Design and Analysis of Algorithms (CS/IT 414) Scheme of Evaluation

Partha Sarathi Mandal

UCS-406 (Data Structure) Lab Assignment-1 (2 weeks)

CSC 8301 Design and Analysis of Algorithms: Exhaustive Search

CS2013 Course Syllabus Spring 2017 Lecture: Friday 8:00 A.M. 9:40 A.M. Lab: Friday 9:40 A.M. 12:00 Noon

Algorithmic patterns

DATA STRUCTURES THROUGH C++

PSD1A. DESIGN AND ANALYSIS OF ALGORITHMS Unit : I-V

CS2013 Course Syllabus Spring 2018 Lecture: Mon/Wed 2:00 P.M. 2:50 P.M. SH C259 Lab: Mon/Wed 2:50 P.M. 4:00 P.M. SH C259

Algorithms and Data Structures

Algorithm Analysis and Design

Logic and Discrete Mathematics

School of Computing and Information Sciences. Course Title: Data Structures Date: 3/30/2010 Course Number: COP 3530 Number of Credits: 3

Introduction to Computer Science

Design and Analysis of Algorithms

Outline. Graphs. Divide and Conquer.

Lecture 3, Review of Algorithms. What is Algorithm?

COMP Analysis of Algorithms & Data Structures

Notation Index 9 (there exists) Fn-4 8 (for all) Fn-4 3 (such that) Fn-4 B n (Bell numbers) CL-25 s ο t (equivalence relation) GT-4 n k (binomial coef

Transcription:

CSCE 321/3201 Analysis and Design of Algorithms Prof. Amr Goneid Fall 2016

CSCE 321/3201 Analysis and Design of Algorithms Prof. Amr Goneid Course Resources Instructor: Prof. Amr Goneid E-mail: goneid@aucegypt.edu Office: Rm 2152 SSE Text Books: Introduction to the Design and Analysis of Algorithms, by Anany V. Levitin Pearson Higher Education, International Edition, 2/E, 2007 Computer Algorithms/C++, by Horowitz, Sahni and Rajasekaran, Computer Science Press, 1997 Other References: The Algorithm Design Manual, by S. Skiena, Springer-Verlag, 1998 Algorithms in C++, by R. Sedgewick, Addison-Wesley, 1992 Language: C++ Web Site: www.cs.aucegypt.edu/~csci321/ Course Goals To gain experience in fundamental techniques used for algorithm analysis. To gain experience in the main methodologies used for the design of efficient algorithms. To study the most important computer algorithms of current practical use. Contents Material for Revision and Reference (mainly from CSCE 210) R1. Elementary Data Structures R2. Binary Search Trees R3. Priority Queues R4. Disjoint Sets R5. Graphs Basics 1. Complexity Bounds Algorithms The 4 Questions about Algorithms Space & Time Complexities Bounds

2. Types of Complexities Rules for Upper Bound Comparing Complexities Types of Complexities 3. Time Complexity Calculations Performance Measurement & Modeling Performance Measurement Performance Analysis (modeling) Evaluating Number of Operations T(n) Examples of Algorithm Analysis Analysis of Iterative and Recursive Algorithms 4. Brute Force Algorithms Brute Force Algorithms Elementary Sorting Algorithms Selection Sort Bubble Sort Insertion Sort Brute Force Sequential Search Brute Force String Matching Closest Pair Problem Exhaustive Search Traveling Salesman Problem 0/1 Knapsack Problem Assignment problem 5. Recursive Algorithms Modeling Recursive Algorithms Examples of Recurrences Exclude & Conquer General Solution of 1st Order Linear Recurrences 2 nd Order Linear Recurrence Major Algorithm Design Methodologies 6. Transform & Conquer Algorithms Transform & Conquer Pre-Sorting Heaps and Heap Sort The Selection Problem Polynomial Evaluation Computing Spans Counting Paths in a Graph

7. Divide & Conquer Algorithms The General Method Time Complexity Common Recurrence Relations A General Divide & Conquer Recurrence Merge Sort Algorithm Quicksort Algorithm An Application of Quicksort: Convex Hull Selection by Partitioning Closest Pair Problem 8. Greedy Algorithms Greedy Algorithms The General Method Continuous Knapsack Problem Optimal Merge Patterns 9. Intermezzo Fibonacci Numbers Computing Binomial Coefficients The Sum of Subset Problem Summary 10. Dynamic Programming Introduction What is Dynamic Programming? How To Devise a Dynamic Programming Approach The Sum of Subset Problem The Knapsack Problem Minimum Cost Path Coin Change Problem Optimal BST DP Algorithms in Graph Problems Comparison with Greedy and D&Q Methods 11. Backtracking Algorithms Problem Statement Brute Force & Backtracking Permutation Tree The 4-Queens Problem Sum of Subsets

Unbound DFG: Permutation Tree Bound DFG: Backtracking General Backtracking Algorithm Example: n-binary Variables Problem The n-queens Problem Another Backtracking Schema The Hamiltonian Circuit Problem by Backtracking 12. Graph Algorithms Graph Traversal: DFS and BFS A Simple Graph Class Minimum Cost Spanning Trees (MST) Single Source Shortest Paths All Pairs Shortest Paths Transitive Closure Graph Coloring Topological Sorting The Clique Problem 13. Branch & Bound Introduction General Idea The 0/1 Knapsack Problem 14. Other Strategies: Heuristics Pattern Matching String/text algorithms Numerical Approximation algorithms Grading 25 % Assignments 5 % Quizzes, class participation and attendance 20 % 1st Midterm Exam 20 % 2nd Midterm Exam 30 % Final Exam All exams are closed book

Corresponding Levitin Book Chapters Part No. Subject Book Chapter R1 Elementary Data Structures 1 R2 BSTs 1 R3 Priority Queues 1 R4 Disjoint Sets 1 R5 Graphs 1 1 Complexity Bounds 1, 2 2 Types of Complexities 2 3 Time Complexity Calculations 2 4 Brute Force Algorithms 3, 4 5 Recursive Algorithms 2, 5, App. B 6 Transform & Conquer Algorithms 6 7 Divide & Conquer Algorithms 4, 5, App.B 8 Greedy Algorithms 9 9 Intermezzo 8 10 Dynamic Programming 8 11 Backtracking Algorithms 12 12 Graph Algorithms 4, 5, 8, 9 13 Branch & Bound 12 14 Other Strategies 7, 11, 12 Useful Equations App. A, B

CSCE 321 Course outcomes: After completing the CSCE 321, students should be able to: 1. Use big O, omega, and theta notation to give asymptotic upper, lower, and tight bounds on time and space complexity of algorithms. 2. Determine the time and space complexity of simple algorithms. 3. Recognize the difference between mathematical modeling and empirical analysis of algorithms, and the difference between deterministic and randomized algorithms. 4. Deduce recurrence relations that describe the time complexity of recursively defined algorithms and work out their particular and general solutions. 5. Practice the main algorithm design strategies of Brute Force, Exclude & Conquer, Transform & Conquer, Divide & Conquer, Greedy methods, Dynamic Programming, Backtracking and Branch & Bound and implement examples of each. 6. Identify examples of everyday human behavior that exemplifies the basic concepts of the main design strategies 7. Implement the most common quadratic and O(N log N) sorting algorithms and perform their complexity analysis. 8. Solve problems using the fundamental graph algorithms including depth-first and breadth-first search, single-source and all-pairs shortest paths, transitive closure, topological sort, and the minimum spanning tree algorithms. 9. Evaluate, select and implement algorithms in programming context.