comp 122 design and analysis of algorithms l.
Download
Skip this Video
Loading SlideShow in 5 Seconds..
COMP 122 – Design and Analysis of Algorithms PowerPoint Presentation
Download Presentation
COMP 122 – Design and Analysis of Algorithms

Loading in 2 Seconds...

play fullscreen
1 / 22

COMP 122 – Design and Analysis of Algorithms - PowerPoint PPT Presentation


  • 274 Views
  • Uploaded on

COMP 122 – Design and Analysis of Algorithms. Spring 2004 MW 11:00-12:15, SN 014 http://blackboard.unc.edu. Instructor: Jack Snoeyink TA: Nathan Fisher SN 333, 962-1969 SN 037 snoeyink@cs.unc.edu fishern@cs.unc.edu Office Hours: M 12:15-1, Tu 3:30-5pm M 2-3pm, W 2-3:30.

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about 'COMP 122 – Design and Analysis of Algorithms' - sandra_john


An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
comp 122 design and analysis of algorithms

COMP 122 – Design and Analysis of Algorithms

Spring 2004

MW 11:00-12:15, SN 014

http://blackboard.unc.edu

  • Instructor: Jack Snoeyink TA: Nathan Fisher
    • SN 333, 962-1969 SN 037
    • snoeyink@cs.unc.edu fishern@cs.unc.edu
  • Office Hours: M 12:15-1, Tu 3:30-5pm M 2-3pm, W 2-3:30
course overview
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
Primary Focus

Develop thinking ability.

  • problem solving skills.

(algorithm design and application)

  • formal thinking.

(proof techniques & analysis)

Comp 122,

what will we do
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
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 toanalyze 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
Textbook & References
  • Introduction to Algorithms, 2nd Ed.by Cormen, Leiserson, Rivest, & Stein (CLRS), McGraw Hill, 2002.
  • Lecture slides online (Thanks, Prof. Ming Lin)

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 122,

prerequisites
Prerequisites
  • Official:
    • MATH 81 / OR 41 – Discrete Mathematics.
    • COMP 121 – Data Structures.
  • Specifically, I’ll assume that you know, or can recall with a quick review, these chapters of CLRS:
    • Section 3.2: growth of functions
    • Chapter 10: elementary data structures
    • Section 11.1-11.2: list search
  • Desirable:
    • Elementary Probability – We will introduce the basics of counting with probabilities, found in appendix C.

Comp 122,

course roadmap
Course Roadmap
  • Algorithmics Basics (2)
  • Divide and Conquer (3)
  • Randomized Algorithms (3)
  • Sorting and Selection (6)
  • Search Trees (3)
  • Graph Algorithms (4.5)
  • Greedy Algorithms (4)
  • Dynamic Programming (2)
  • Special Topics (1)

Comp 122,

algorithmics basics 2
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
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
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
Sorting & Selection (6)
  • Heapsort (Chapter 6)
  • Quicksort (Chapter 7)
  • Bucket Sort, Radix Sort, etc. (Chapter 8)
  • Selection (Chapter 9)
  • Other Sorting Methods (Handout)
  • 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
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
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 (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 (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
Evaluation & Grading
  • Weekly Homework & Quizzes: 30% (about 10, lowest score dropped)
    • Homework due Weds; some have Weds “10-min quizzes”
  • Two Midterm Exams: 40%
    • Weds: Feb 18, Mar 24
  • Final Exam: 30%
    • Noon, Apr 26, sn 014.
  • Bonus for Class Participation up to 5%.

Comp 122,

homework assignments
Homework Assignments
  • Homework due on Weds (which ends at midnight).
  • Handin-problems due at Nathan’s office, sn057.
  • Quiz problems are not turned in, but may be quizzed on in the last 10 minutes of Weds class.
  • Homework submitted after grading begins will not be accepted.
  • Lowest score will be dropped
  • Can discuss in groups, but each student must turn in his or her own written solution.
  • Please, be neat, clear, precise, formal.
    • Grading on correctness, simplicity, elegance & clarity.

Comp 122,

communication
Communication
  • Visit instructor during office hours, by appointment, or email correspondence.
    • Include COMP122 in subjectof email for easy identification.
  • Schedule, lecture notes, assignments, and gradebook are on UNC’s blackboard site; log in with your onyen.

http://blackboard.unc.edu

direct link

Comp 122,

basic courtesy
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
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,

weekly reading assignment
Weekly Reading Assignment

Chapters 1, 2, and 3

Appendix A

(Textbook: CLRS)

Comp 122,