COMP 122 – Design and Analysis of Algorithms

Slides:



Advertisements
Similar presentations
INTRODUCTION TO CS16 CS16: Introduction to Algorithms and Data Structures Tu/Th 10:30-11:50 Metcalf Auditorium David Laidlaw Thursday, January 23, 2014.
Advertisements

Data Structures and Algorithms (AT70.02) Comp. Sc. and Inf. Mgmt. Asian Institute of Technology.
Design and Analysis of Algorithms Maria-Florina (Nina) Balcan Lecture 1, Jan. 14 th 2011.
Analysis & Design of Algorithms (CSCE 321)
UMass Lowell Computer Science Analysis of Algorithms Prof. Karen Daniels Fall, 2001 Midterm Review Fri. Oct 26.
Computer Science CS 330: Algorithms Pre-Quiz Summary Gene Itkis.
Jan Welcome to the Course of Advanced Algorithm Design (ACS-7101/3)
CS 46101–600/CS Design and Analysis of Algorithms Dr. Angela Guercio Spring 2010.
UMass Lowell Computer Science Analysis of Algorithms Prof. Karen Daniels Fall, 2001 Lecture 1 (Part 1) Introduction/Overview Tuesday, 9/4/01.
UMass Lowell Computer Science Analysis of Algorithms Prof. Karen Daniels Fall, 2009 Lecture 1 Introduction/Overview Text: Chapters 1, 2 Th. 9/3/2009.
COMP 122 – Design and Analysis of Algorithms Spring 2004 MW 11:00-12:15, SN 014 Instructor:Jack Snoeyink TA: Nathan Fisher SN.
DAST, Spring © L. Joskowicz 1 Data Structures – LECTURE 1 Introduction Motivation: algorithms and abstract data types Easy problems, hard problems.
CSIS-385: Analysis of Algorithms Dr. Eric Breimer.
CS333/ Topic 11 CS333 - Introduction CS333 - Introduction General information Goals.
CSIS-385: Analysis of Algorithms Dr. Eric Breimer.
Course Review COMP171 Spring Hashing / Slide 2 Elementary Data Structures * Linked lists n Types: singular, doubly, circular n Operations: insert,
UMass Lowell Computer Science Analysis of Algorithms Prof. Karen Daniels Fall, 2001 Lecture 1 Introduction/Overview Wed. 9/5/01.
UMass Lowell Computer Science Analysis of Algorithms Prof. Karen Daniels Fall, 2005 Lecture 1 Introduction/Overview Text: Chapters 1, 2 Wed. 9/7/05.
UMass Lowell Computer Science Analysis of Algorithms Prof. Karen Daniels Spring, 2007 Lecture 1 Introduction/Overview Text: Chapters 1, 2 Wed. 1/24/07.
UMass Lowell Computer Science Analysis of Algorithms Prof. Karen Daniels Spring, 2001 Lecture 1 Introduction/Overview Wed. 1/31/01.
UMass Lowell Computer Science Analysis of Algorithms Prof. Karen Daniels Fall, 2000 Lecture 1 Introduction/Overview Wed. 9/6/00.
Data Structures, Spring 2004 © L. Joskowicz 1 DAST – Final Lecture Summary and overview What we have learned. Why it is important. What next.
UMass Lowell Computer Science Analysis of Algorithms Prof. Karen Daniels Spring, 2001 Final Review Mon. 5/14-Wed. 5/16.
DAST, Spring © L. Joskowicz 1 Data Structures – LECTURE 1 Introduction Motivation: algorithms and abstract data types Easy problems, hard problems.
Instructor: Dr. Sahar Shabanah Fall Lectures ST, 9:30 pm-11:00 pm Text book: M. T. Goodrich and R. Tamassia, “Data Structures and Algorithms in.
Nattee Niparnan Dept. of Computer Engineering, Chulalongkorn University.
Teaching Teaching Discrete Mathematics and Algorithms & Data Structures Online G.MirkowskaPJIIT.
UMass Lowell Computer Science Analysis of Algorithms Prof. Karen Daniels Spring, 2002 Lecture 1 Introduction/Overview Text: Chapters 1, 2 Thurs.
CS223 Algorithms D-Term 2013 Instructor: Mohamed Eltabakh WPI, CS Introduction Slide 1.
1 CS 233 Data Structures and Algorithms 황승원 Fall 2010 CSE, POSTECH.
Computer Algorithms Lecture 1 Introduction
COMPE 574 Fundamentals of Algorithms Spring Murat KARAKAYA Department of Computer Engineering.
A Lecture /24/2015 COSC3101A: Design and Analysis of Algorithms Tianying Ji Lecture 1.
December 4, Algorithms and Data Structures Lecture XV Simonas Šaltenis Aalborg University
IT 301: Algorithm Analysis Lecture-00 Jesmin Akhter Lecturer,IIT Jahangirnagar University, Savar, DhakaBangladesh 11/29/2015.
1 BIM304: Algorithm Design Time: Friday 9-12am Location: B4 Instructor: Cuneyt Akinlar Grading –2 Midterms – 20% and 30% respectively –Final – 30% –Projects.
Design and Analysis of Algorithms (09 Credits / 5 hours per week) Sixth Semester: Computer Science & Engineering M.B.Chandak
CES 592 Theory of Software Systems B. Ravikumar (Ravi) Office: 124 Darwin Hall.
Data Structures and Algorithms in Java AlaaEddin 2012.
COMP550: Algorithms & Analysis UNC Chapel Hill Mon/Wed/Fri 9:05am - 9:55am (FB 009) Zhishan Guo SN 126
Design and Analysis of Algorithms Introduction Instructors:1. B V Kiran Mayee, 2. A Madhavi
Algorithms Design and Analysis CS Course description / Algorithms Design and Analysis Course name and Number: Algorithms designs and analysis –
CS16: Introduction to Algorithms and Data Structures
Design and Analysis of Algorithms
Welcome to the Course of Advanced Algorithm Design
Design and Analysis of Algorithms (09 Credits / 5 hours per week)
Lecture 1 (Part 1) Introduction/Overview Tuesday, 9/9/08
COMP 283 Discrete Structures
Lecture 1 Introduction/Overview Text: Chapters 1, 2 Wed. 1/28/04
COMPSCI 330 Design and Analysis of Algorithms
About CS5234 (Wk 0) Course Overview About CS5234 Homeworks
ICE 245: Algorithms Instructor: Dr. Mohammad Arifuzzaman
Summary of lectures Introduction to Algorithm Analysis and Design (Chapter 1-3). Lecture Slides Recurrence and Master Theorem (Chapter 4). Lecture Slides.
CPSC 311 Section 502 Analysis of Algorithm
Course Description Algorithms are: Recipes for solving problems.
CS 583 Fall 2006 Analysis of Algorithms
CS 3343: Analysis of Algorithms
Introduction to Algorithms
CS 3343: Analysis of Algorithms
Definition In simple terms, an algorithm is a series of instructions to solve a problem (complete a task) We focus on Deterministic Algorithms Under the.
Design and Analysis of Algorithms (07 Credits / 4 hours per week)
CS 3343: Analysis of Algorithms
COSC 320 Advanced Data Structures and Algorithm Analysis
CMPT 438 Algorithms Instructor: Tina Tian.
CS 3343: Analysis of Algorithms
COMPSCI 330 Design and Analysis of Algorithms
Design and Analysis of Algorithms
INTRODUCTION TO ALOGORITHM DESIGN STRATEGIES
Department of Computer Science & Engineering
Design and Analysis of Algorithms (04 Credits / 4 hours per week)
Presentation transcript:

COMP 122 – Design and Analysis of Algorithms Fall 2019 MW 11:15-12:30, SN 011 Instructor: David Plaisted TA: Nathan Fisher SN 352, 590-6051 SN 037 plaisted@cs.unc.edu fishern@cs.unc.edu Office Hours: By appointment

Course Overview Intro to algorithm design, analysis, and applications Algorithm Analysis Asymptotic Notation, Recurrence Relations, Probability & Combinatorics, Proof Techniques, Inherent Complexity. Data Structures Lists, Heaps, Graphs, Trees, Balanced Trees, Hash Tables. Sorting & Ordering Mergesort, Heapsort, Quicksort, Linear-time Sorts (bucket, counting, radix sort), Selection, Other sorting methods. Algorithmic Design Paradigms Divide and Conquer, Dynamic Programming, Greedy Algorithms, Graph Algorithms, Randomized Algorithms. Comp 122,

Primary Focus Develop thinking ability. problem solving skills. (algorithm design and application) formal thinking. (proof techniques & analysis) Comp 122,

What Will We Do? Examine interesting problems. Devise algorithms to solve them. Prove these algorithms correct. Analyze their resource usage (time, memory). Understand data structures & core algorithms. Learn problem-solving techniques. See applications in real-world situations. Comp 122,

Goals Be very familiar with a collection of core algorithms. Be fluent in algorithm design paradigms: divide & conquer, greedy algorithms, randomization, dynamic programming, approximation methods. Be able to analyze the correctness and runtime performance of a given algorithm. Be familiar with the inherent complexity (lower bounds & intractability) of some problems. Be intimately familiar with basic data structures. Be able to apply techniques in practical problems. Comp 122,

Textbook & References Introduction to Algorithms, 3rd Ed. by Cormen, Leiserson, Rivest, & Stein (CLRS), McGraw Hill, 2009. Lecture slides online (Thanks, Prof. Ming Lin and others) OTHER REFERENCES: Algorithmics: The Spirit of Computing, Harel How to Solve It, Polya. The Design and Analysis of Computer Algorithms, Aho, Hopcroft and Ullman. Algorithms, Sedgewick. Algorithmics: Theory & Practice, Brassard & Bratley. Writing Efficient Programs & Programming Pearls, Bentley. The Science of Programming, by Gries. The Craft of Programming, by Reynolds. Comp 550,

Prerequisites Official: MATH 381 / OR COMP 283 – Discrete Mathematics. COMP 410 – Data Structures. Specifically, I’ll assume that you know, or can recall with a quick review, these chapters of CLRS: Chapter 3: growth of functions Chapter 10: elementary data structures Desirable: Elementary Probability – We will introduce the basics of counting with probabilities, found in appendix C. Comp 122,

Course Roadmap Algorithmics Basics (2) Divide and Conquer (3) Randomized Algorithms (3) Sorting and Selection (5) Search Trees (3) Graph Algorithms (4) Greedy Algorithms (4) Dynamic Programming (2) NP Completeness (2) Comp 122,

Algorithmics Basics (2) Introduction to algorithms, complexity, and proof of correctness. (Chapters 1 & 2) Asymptotic Notation. (Chapter 3.1) Goals Know how to write formal problem specifications. Know about computational models. Know how to measure the efficiency of an algorithm. Know the difference between upper and lower bounds and what they convey. Be able to prove algorithms correct and establish computational complexity. Comp 122,

Divide-and-Conquer (3) Designing Algorithms. (Chapter 2.3) Recurrences. (Chapter 4) Quicksort. (Chapter 7) Goals Know when the divide-and-conquer paradigm is an appropriate one. Know the general structure of such algorithms. Express their complexity using recurrence relations. Determine the complexity using techniques for solving recurrences. Memorize the common-case solutions for recurrence relations. Comp 122,

Randomized Algorithms (3) Probability & Combinatorics. (Chapter 5) Quicksort. (Chapter 7) Hash Tables. (Chapter 11) Goals Be thorough with basic probability theory and counting theory. Be able to apply the theory of probability to the following. Design and analysis of randomized algorithms and data structures. Average-case analysis of deterministic algorithms. Understand the difference between average-case and worst-case runtime, esp. in sorting and hashing. Comp 122,

Sorting & Selection (6) Heapsort (Chapter 6) Quicksort (Chapter 7) Bucket Sort, Radix Sort, etc. (Chapter 8) Selection (Chapter 9) Goals Know the performance characteristics of each sorting algorithm, when they can be used, and practical coding issues. Know the applications of binary heaps. Know why sorting is important. Know why linear-time median finding is useful. Comp 122,

Search Trees (3) Binary Search Trees – Not balanced (Chapter 12) Red-Black Trees – Balanced (Chapter 13) Goals Know the characteristics of the trees. Know the capabilities and limitations of simple binary search trees. Know why balancing heights is important. Know the fundamental ideas behind maintaining balance during insertions and deletions. Be able to apply these ideas to other balanced tree data structures. Comp 122,

Graph Algorithms (3) Basic Graph Algorithms (Chapter 22) Goals Know how to represent graphs (adjacency matrix and edge-list representations). Know the basic techniques for graph searching. Be able to devise other algorithms based on graph-searching algorithms. Be able to “cut-and-paste” proof techniques as seen in the basic algorithms. Comp 122,

Greedy Algorithms (4) Greedy Algorithms (Chapter 16) Minimum Spanning Trees (Chapter 23) Shortest Paths (Chapter 24) Goals Know when to apply greedy algorithms and their characteristics. Be able to prove the correctness of a greedy algorithm in solving an optimization problem. Understand where minimum spanning trees and shortest path computations arise in practice. Comp 122,

Dynamic Programming (2) Dynamic Programming (Chapter 15) Goals Know when to apply dynamic programming and how it differs from divide and conquer. Be able to systematically move from one to the other. Comp 122,

Evaluation & Grading Weekly Homework : 24% (about 9, lowest score not dropped) Quizzes altogether 1% Two Midterm Exams: 21% and 22% Final Exam: 32% Comp 122,

Basic Courtesy Contribute to, but don’t distract from class lectures and discussions. If you must arrive late or leave early, please take an aisle seat quietly. Write your assignments neatly, legibly, & formally. Use a stapler if you have several pages. THANK YOU!!! Comp 122,

How to Succeed in this Course Start early on all assignments. DON'T procrastinate. Complete all reading before class. Participate in class. Think in class. Review after each class. Be formal and precise on all problem sets and in-class exams. Comp 122,