0% found this document useful (0 votes)
42 views

About The Course: Design and Analysis of Algorithms I

This document outlines the topics and structure of an online course on the design and analysis of algorithms. The course will cover vocabulary for analyzing algorithms, divide and conquer techniques, randomization, graph algorithms, and data structures. Later topics include greedy algorithms, dynamic programming, and NP-complete problems. Students will practice programming and mathematical skills. Assessment includes optional weekly homework assignments and discussion forums, with no formal grades. Supporting materials will be slides and recommended textbooks.

Uploaded by

sirj0_hn
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
42 views

About The Course: Design and Analysis of Algorithms I

This document outlines the topics and structure of an online course on the design and analysis of algorithms. The course will cover vocabulary for analyzing algorithms, divide and conquer techniques, randomization, graph algorithms, and data structures. Later topics include greedy algorithms, dynamic programming, and NP-complete problems. Students will practice programming and mathematical skills. Assessment includes optional weekly homework assignments and discussion forums, with no formal grades. Supporting materials will be slides and recommended textbooks.

Uploaded by

sirj0_hn
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 27

Introduction

About The Course


Design and Analysis
of Algorithms I
Course Topics
• Vocabulary for design and analysis of algorithms
• Divide and conquer algorithm design paradigm
• Randomization in algorithm design
• Primitives for reasoning about graphs
• Use and implementation of data structures

Tim Roughgarden
Course Topics
• Vocabulary for design and analysis of algorithms
– E.g., “Big-Oh” notation
– “sweet spot” for high-level reasoning about algorithms

Tim Roughgarden
Course Topics
• Vocabulary for design and analysis of algorithms
• Divide and conquer algorithm design paradigm

Tim Roughgarden
Course Topics
• Vocabulary for design and analysis of algorithms
• Divide and conquer algorithm design paradigm
– Will apply to: Integer multiplication, sorting, matrix
multiplication, closest pair
– General analysis methods (“Master Method/Theorem”)

Tim Roughgarden
Course Topics
• Vocabulary for design and analysis of algorithms
• Divide and conquer algorithm design paradigm
• Randomization in algorithm design
– Will apply to: QuickSort, primality testing, graph
partitioning, hashing.

Tim Roughgarden
Course Topics
• Vocabulary for design and analysis of algorithms
• Divide and conquer algorithm design paradigm
• Randomization in algorithm design
• Primitives for reasoning about graphs
– Connectivity information, shortest paths, structure of
information and social networks.

Tim Roughgarden
Course Topics
• Vocabulary for design and analysis of algorithms
• Divide and conquer algorithm design paradigm
• Randomization in algorithm design
• Primitives for reasoning about graphs
• Use and implementation of data structures
– Heaps, balanced binary search trees, hashing and some
variants (e.g., bloom filters)

Tim Roughgarden
Topics in Sequel Course
• Greedy algorithm design paradigm

Tim Roughgarden
Topics in Sequel Course
• Greedy algorithm design paradigm
• Dynamic programming algorithm design paradigm

Tim Roughgarden
Topics in Sequel Course
• Greedy algorithm design paradigm
• Dynamic programming algorithm design paradigm
• NP-complete problems and what to do about them

Tim Roughgarden
Topics in Sequel Course
• Greedy algorithm design paradigm
• Dynamic programming algorithm design paradigm
• NP-complete problems and what to do about them
• Fast heuristics with provable guarantees
• Fast exact algorithms for special cases
• Exact algorithms that beat brute-force search

Tim Roughgarden
Skills You’ll Lean
• Become a better programmer

Tim Roughgarden
Skills You’ll Lean
• Become a better programmer
• Sharpen your mathematical and analytical skills

Tim Roughgarden
Skills You’ll Lean
• Become a better programmer
• Sharpen your mathematical and analytical skills
• Start “thinking algorithmically”

Tim Roughgarden
Skills You’ll Lean
• Become a better programmer
• Sharpen your mathematical and analytical skills
• Start “thinking algorithmically”
• Literacy with computer science’s “greatest hits”

Tim Roughgarden
Skills You’ll Lean
• Become a better programmer
• Sharpen your mathematical and analytical skills
• Start “thinking algorithmically”
• Literacy with computer science’s “greatest hits”
• Ace your technical interviews

Tim Roughgarden
Who Are You?
• It doesn’t really matter. (It’s a free course, after all.)

Tim Roughgarden
Who Are You?
• It doesn’t really matter. (It’s a free course, after all.)
• Ideally, you know some programming.

Tim Roughgarden
Who Are You?
• It doesn’t really matter. (It’s a free course, after all.)
• Ideally, you know some programming.
• Doesn’t matter which language(s) you know.
– But you should be capable of translating high-level
algorithm descriptions into working programs in some
programming language.

Tim Roughgarden
Who Are You?
• It doesn’t really matter. (It’s a free course, after all.)
• Ideally, you know some programming.
• Doesn’t matter which language(s) you know.
• Some (perhaps rusty) mathematical experience.
– Basic discrete math, proofs by induction, etc.

Tim Roughgarden
Who Are You?
• It doesn’t really matter. (It’s a free course, after all.)
• Ideally, you know some programming.
• Doesn’t matter which language(s) you know.
• Some (perhaps rusty) mathematical experience.
– Basic discrete math, proofs by induction, etc.

• Excellent free reference: “Mathematics for Computer Science”,


by Eric Lehman and Tom Leighton. (Easy to find on the Web.)

Tim Roughgarden
Supporting Materials
• All (annotated) slides available from course site.

Tim Roughgarden
Supporting Materials
• All (annotated) slides available from course site.
• No required textbook. A few of the many good ones:
– Kleinberg/Tardos, Algorithm Design, 2005.
– Dasgupta/Papadimitriou/Vazirani, Algorithms, 2006.
– Cormen/Leiserson/Rivest/Stein, Introduction to
Algorithms, 2009 (3rd edition).
– Mehlhorn/Sanders, Data Structures and Algorithms: The
Basic Toolbox, 2008.

Tim Roughgarden
Supporting Materials
• All (annotated) slides available from course site.
• No required textbook. A few of the many good ones:
– Kleinberg/Tardos, Algorithm Design, 2005.
– Dasgupta/Papadimitriou/Vazirani, Algorithms, 2006.
– Cormen/Leiserson/Rivest/Stein, Introduction to Algorithms, 2009 (3rd edition).
– Mehlhorn/Sanders, Data Structures and Algorithms: The Basic Toolbox, 2008.

• No specific development environment required.


– But you should be able to write and execute programs.

Tim Roughgarden
Assessment
• No grades per se. (Details on a certificate of
accomplishment TBA.)
• Weekly homeworks.
– Test understand of material
– Synchronize students, greatly helps discussion forum
– Intellectual challenge

Tim Roughgarden
Assessment
• No grades per se. (Details on a certificate of
accomplishment TBA.)
• Weekly homeworks.
• Assessment tools currently just a “1.0” technology.
– We’ll do our best!
• Will sometimes propose harder “challenge problems”
– Will not be graded; discuss solutions via course forum

Tim Roughgarden

You might also like