Algorithm Design and Analysis
http://itunes.ucdavis.edu/
The purpose of this undergraduate course is to introduce fundamental techniques and viewpoints for the design and the analysis of efficient computer algorithms, and to study important specific algorithms. The course relies heavily on mathematics and mathematical thinking in two ways: first as a way of proving properties about particular algorithms such as termination, and correctness; and second, as a way of establishing bounds on the worst case (or average case) use of some resource, usually time, by a specific algorithm. The course covers some randomized algorithms as well as deterministic algorithms.en-usCopyright The Regents of the University of California, Davis campus, 2012. All Rights Reserved.itunes@ucdavis.edu (UC Davis iTunes U group)itunes@ucdavis.edu (UC Davis iTunes U group)Mon, 10 Sep 2012 21:46:06 GMThttp://itunescontent.ucdavis.edu/media/2010/FA/ECS122A/AlgorithmDesign_cover.jpgAlgorithm Design and Analysis
http://itunes.ucdavis.edu/
Dan Gusfielditunes@ucdavis.eduDan Gusfieldalgorithms, computer science, analysis, proofs, induction, uc davisAlgorithm Design and AnalysisThe purpose of this undergraduate course is to introduce fundamental techniques and viewpoints for the design and the analysis of efficient computer algorithms, and to study important specific algorithms. The course relies heavily on mathematics and mathematical thinking in two ways: first as a way of proving properties about particular algorithms such as termination, and correctness; and second, as a way of establishing bounds on the worst case (or average case) use of some resource, usually time, by a specific algorithm. The course covers some randomized algorithms as well as deterministic algorithms.Introduction to the videos
http://itunescontent.ucdavis.edu/media/2010/FA/ECS122A/introto122vids.mov
This video shows the URL for printed material that accompanies
the course, and a URL for more advanced lectures on
material that overlaps and extends the course.
The URL for printed course material is:
www.cs.ucdavis.edu/~gusfield/itunesU
The URL for more advanced lectures is:
www.cs.ucdavis.edu/~gusfield/cs222f07/videolist.html 145Thu, 23 Sep 2010 07:00:00 GMThttp://itunescontent.ucdavis.edu/media/2010/FA/ECS122A/introto122vids.mov1Dan Gusfieldintroduction, to, videosIntroduction to the videosThis video shows the URL for printed material that accompanies
the course, and a URL for more advanced lectures on
material that overlaps and extends the course.
The URL for printed course material is:
www.cs.ucdavis.edu/~gusfield/itunesU
The URL for more advanced lectures is:
www.cs.ucdavis.edu/~gusfield/cs222f07/videolist.html Introduction to the course and algorithm complexity
http://itunescontent.ucdavis.edu/media/2010/FA/ECS122A/ECS122A_09-24-10.mov
This is the course introduction about algorithm complexity, including what "worst case running time" means and how it is measured.2946Fri, 24 Sep 2010 07:00:00 GMThttp://itunescontent.ucdavis.edu/media/2010/FA/ECS122A/ECS122A_09-24-10.mov2Dan Gusfieldalgorithm, complexity, upper bound, computer science, Gusfield, UC Davis Introduction to the course and algorithm complexityThis is the course introduction about algorithm complexity, including what "worst case running time" means and how it is measured.Big-Oh, Omega and Theta notation
http://itunescontent.ucdavis.edu/media/2010/FA/ECS122A/ECS122A_09-27-10.mov
In Lecture 2, Gusfield discusses Big-Oh, Omega and Theta notation. He describes Mergesort and Merge and the start of their time analysis.2899Mon, 27 Sep 2010 07:00:00 GMThttp://itunescontent.ucdavis.edu/media/2010/FA/ECS122A/ECS122A_09-27-10.mov3Dan Gusfieldalgorithm, Mergesort, Gusfield, UC DavisBig-Oh, Omega and Theta notationIn Lecture 2, Gusfield discusses Big-Oh, Omega and Theta notation. He describes Mergesort and Merge and the start of their time analysis.Time analysis of Mergesort
http://itunescontent.ucdavis.edu/media/2010/FA/ECS122A/ECS122A_09-29-10.mov
In Lecture 3, Gusfield gives the worst-case analysis of MergeSort by setting up a recurrence relation and solving it by unwrapping.2997Wed, 29 Sep 2010 07:00:00 GMThttp://itunescontent.ucdavis.edu/media/2010/FA/ECS122A/ECS122A_09-29-10.mov4Dan Gusfieldalgorithm, mergesort, recurrence relation, Gusfield, UC DavisTime analysis of MergesortIn Lecture 3, Gusfield gives the worst-case analysis of MergeSort by setting up a recurrence relation and solving it by unwrapping.A more complex recurrence relation and counting inversions
http://itunescontent.ucdavis.edu/media/2010/FA/ECS122A/ECS122A_10-01-10.mov
In Lecture 4, students learn about solving a more complex recurrence relation by unwrapping. Gusfield also addresses the problem of counting inversions in a permutation.3168Fri, 01 Oct 2010 07:00:00 GMThttp://itunescontent.ucdavis.edu/media/2010/FA/ECS122A/ECS122A_10-01-10.mov5Dan Gusfieldalgorithms, recurrence relation, inversion, permutation, Gusfield, UC DavisA more complex recurrence relation and counting inversionsIn Lecture 4, students learn about solving a more complex recurrence relation by unwrapping. Gusfield also addresses the problem of counting inversions in a permutation.Counting inversions; Fast integer multiplication
http://itunescontent.ucdavis.edu/media/2010/FA/ECS122A/ECS122A_10-04-10.mov
Lecture 5: Gusfield lectures about counting the number of inversions in a permutation. He introduces fast integer multiplication by divide and conquer.2891Mon, 04 Oct 2010 07:00:00 GMThttp://itunescontent.ucdavis.edu/media/2010/FA/ECS122A/ECS122A_10-04-10.mov6Dan Gusfieldalgorithm, inversion, permutation, divide and conquer, multiplication, Gusfield, UC DavisCounting inversions; Fast integer multiplicationLecture 5: Gusfield lectures about counting the number of inversions in a permutation. He introduces fast integer multiplication by divide and conquer.Fast integer multiplication, randomized selection and median finding
http://itunescontent.ucdavis.edu/media/2010/FA/ECS122A/ECS122A_10-06-10.mov
In Lecture 6, Gusfield finishes the discussion of integer multiplication by divide and conquer. He then starts randomized selection and median finding.
2890Wed, 06 Oct 2010 07:00:00 GMThttp://itunescontent.ucdavis.edu/media/2010/FA/ECS122A/ECS122A_10-06-10.mov7Dan Gusfieldalgorithms, integer multiplication, randomization, median finding, Gusfield, UC DavisFast integer multiplication, randomized selection and median findingIn Lecture 6, Gusfield finishes the discussion of integer multiplication by divide and conquer. He then starts randomized selection and median finding.
More on randomized selection and median finding
http://itunescontent.ucdavis.edu/media/2010/FA/ECS122A/ECS122A_10-08-10.mov
During Lecture 7, students learn more on randomized selection and median finding: algorithm and start of analysis.3133Fri, 08 Oct 2010 07:00:00 GMThttp://itunescontent.ucdavis.edu/media/2010/FA/ECS122A/ECS122A_10-08-10.mov8Dan Gusfieldalgorithm, randomized selection, median finding, Gusfield, UC Davis More on randomized selection and median findingDuring Lecture 7, students learn more on randomized selection and median finding: algorithm and start of analysis.Expected number of comparisons in randomized select
http://itunescontent.ucdavis.edu/media/2010/FA/ECS122A/ECS122A_10-11-10.mov
In Lecture 8, Gusfield completes his analysis of the expected number of comparisons in randomized version of Select(S,k) as a function of |S|. The expected number is at most 8|S|.
3010Mon, 11 Oct 2010 07:00:00 GMThttp://itunescontent.ucdavis.edu/media/2010/FA/ECS122A/ECS122A_10-11-10.mov9Dan Gusfieldalgorithms, randomization, selection, median, Gusfield, UC DavisExpected number of comparisons in randomized selectIn Lecture 8, Gusfield completes his analysis of the expected number of comparisons in randomized version of Select(S,k) as a function of |S|. The expected number is at most 8|S|.
Greedy algorithms: Picking largest set of non-overlapping intervals
http://itunescontent.ucdavis.edu/media/2010/FA/ECS122A/ECS122A_10-13-10.mov
For Lecture 9, Gusfield starts discussion of greedy algorithms: Picking the largest number of non-overlapping intervals on a line.3030Wed, 13 Oct 2010 07:00:00 GMThttp://itunescontent.ucdavis.edu/media/2010/FA/ECS122A/ECS122A_10-13-10.mov10Dan Gusfieldalgorithms, greedy, interval selection, UC Davis, GusfieldGreedy algorithms: Picking largest set of non-overlapping intervalsFor Lecture 9, Gusfield starts discussion of greedy algorithms: Picking the largest number of non-overlapping intervals on a line.Greedy algorithms: The classroom scheduling problem
http://itunescontent.ucdavis.edu/media/2010/FA/ECS122A/ECS122A_10-20-10classrooms.mov
In Lecture 9A, Gusfield provides another scheduling problem to be solved by a greedy algorithm.995Thu, 14 Oct 2010 07:00:00 GMThttp://itunescontent.ucdavis.edu/media/2010/FA/ECS122A/ECS122A_10-20-10classrooms.mov11Dan Gusfieldalgorithm, classroom scheduling, greedy algorithm, Gusfield, UC DavisGreedy algorithms: The classroom scheduling problemIn Lecture 9A, Gusfield provides another scheduling problem to be solved by a greedy algorithm.Dijkstra's shortest path algorithm
http://itunescontent.ucdavis.edu/media/2010/FA/ECS122A/Dijkstra.mov
In Lecture 10, students learn about Dijkstra's algorithm for shortest paths in a graph with non-negative edge weights.
3101Fri, 15 Oct 2010 07:00:00 GMThttp://itunescontent.ucdavis.edu/media/2010/FA/ECS122A/Dijkstra.mov12Dan Gusfieldalgorithm, Dijkstra, Gusfield, UC DavisDijkstra's shortest path algorithmIn Lecture 10, students learn about Dijkstra's algorithm for shortest paths in a graph with non-negative edge weights.
Start of minimum spanning tree problem
http://itunescontent.ucdavis.edu/media/2010/FA/ECS122A/ECS122A_10-18-10.mov
In Lecture 11, Gusfield covers Prim's algorithm and analysis, and Kruskal's algorithm.2974Mon, 18 Oct 2010 07:00:00 GMThttp://itunescontent.ucdavis.edu/media/2010/FA/ECS122A/ECS122A_10-18-10.mov13Dan Gusfieldminimum spanning tree, Prim algorithm, Kruskal algorithm, greedy algorithm, Gusfield, UC DavisStart of minimum spanning tree problemIn Lecture 11, Gusfield covers Prim's algorithm and analysis, and Kruskal's algorithm.Correctness of Kruskal's algorithm.
http://itunescontent.ucdavis.edu/media/2010/FA/ECS122A/ECS122A_10-20-10kruskal.mov
In Lecture 12, Gusfield talks about the proof of correctness of Kruskal's algorithm. 1601Wed, 20 Oct 2010 07:00:00 GMThttp://itunescontent.ucdavis.edu/media/2010/FA/ECS122A/ECS122A_10-20-10kruskal.mov14Dan Gusfieldalgorithm, minimum spanning tree, Kruskal, Gusfield, UC DavisCorrectness of Kruskal's algorithm. In Lecture 12, Gusfield talks about the proof of correctness of Kruskal's algorithm. Recursive programming and memoization
http://itunescontent.ucdavis.edu/media/2010/FA/ECS122A/ECS122A_10-22-10.mov
In Lecture 13, Gusfield introduces recursive programming and memoization through the problem of computing the maximum weight set of pairwise non-overlapping intervals.
2857Fri, 22 Oct 2010 07:00:00 GMThttp://itunescontent.ucdavis.edu/media/2010/FA/ECS122A/ECS122A_10-22-10.mov15Dan Gusfieldalgorithm, memoization, dynamic programming, Gusfield, UC DavisRecursive programming and memoization In Lecture 13, Gusfield introduces recursive programming and memoization through the problem of computing the maximum weight set of pairwise non-overlapping intervals.
Intro to dynamic programming, weighted interval problems
http://itunescontent.ucdavis.edu/media/2010/FA/ECS122A/ECS122A_10-27-10.mov
Lecture 14 reviews memoization; introduction to dynamic programming (DP) for the weighted interval
problem and traceback in DP.2976Wed, 27 Oct 2010 07:00:00 GMThttp://itunescontent.ucdavis.edu/media/2010/FA/ECS122A/ECS122A_10-27-10.mov16Dan Gusfieldalgorithms, dynamic programming, weighted interval, Gusfield, UC DavisIntro to dynamic programming, weighted interval problemsLecture 14 reviews memoization; introduction to dynamic programming (DP) for the weighted interval
problem and traceback in DP.Intro to the RNA folding problem and recurrences
http://itunescontent.ucdavis.edu/media/2010/FA/ECS122A/ECS122A_10-29-10.mov
In Lecture 15, Gusfield finishes the discussion of interval selection, and then introduces the RNA folding problem and talks about recurrences for it.3008Fri, 29 Oct 2010 07:00:00 GMThttp://itunescontent.ucdavis.edu/media/2010/FA/ECS122A/ECS122A_10-29-10.mov17Dan Gusfieldalgorithms, RNA folding, Dynamic Programming, Gusfield, UC DavisIntro to the RNA folding problem and recurrencesIn Lecture 15, Gusfield finishes the discussion of interval selection, and then introduces the RNA folding problem and talks about recurrences for it.Dynamic programming for RNA folding.
http://itunescontent.ucdavis.edu/media/2010/FA/ECS122A/ECS122A_11-01-10.mov
Lecture 16 deals with the solution to the RNA folding problem using dynamic programming.2975Mon, 01 Nov 2010 07:00:00 GMThttp://itunescontent.ucdavis.edu/media/2010/FA/ECS122A/ECS122A_11-01-10.mov18Dan Gusfieldalgorithms, RNA folding, dynamic programming, Gusfield, UC DavisDynamic programming for RNA folding. Lecture 16 deals with the solution to the RNA folding problem using dynamic programming.Dynamic programming for shortest path problem
http://itunescontent.ucdavis.edu/media/2010/FA/ECS122A/ECS122A_11-03-10.mov
Lecture 17 covers dynamic programming for the shortest path problem in a weighted directed graph, as well as negative edge weights allowed but no negative cycles.2249Wed, 03 Nov 2010 07:00:00 GMThttp://itunescontent.ucdavis.edu/media/2010/FA/ECS122A/ECS122A_11-03-10.mov19Dan Gusfieldalgorithms, dynamic programming, shortest path, UC Davis, GusfieldDynamic programming for shortest path problemLecture 17 covers dynamic programming for the shortest path problem in a weighted directed graph, as well as negative edge weights allowed but no negative cycles.Floyd-Warshall algorithm for all-pairs shortest path
http://itunescontent.ucdavis.edu/media/2010/FA/ECS122A/ECS122A_11-05-11.mov
In Lecture 18, Gusfield discusses Floyd-Warshall, the algorithm for computing the shortest path in a weighted graph between each pair of nodes in the graph.2908Fri, 05 Nov 2010 07:00:00 GMThttp://itunescontent.ucdavis.edu/media/2010/FA/ECS122A/ECS122A_11-05-11.mov20Dan Gusfieldalgorithms, Floyd-Warshall, shortest path, UC Davis, GusfieldFloyd-Warshall algorithm for all-pairs shortest pathIn Lecture 18, Gusfield discusses Floyd-Warshall, the algorithm for computing the shortest path in a weighted graph between each pair of nodes in the graph.The unique-decipherability problem
http://itunescontent.ucdavis.edu/media/2010/FA/ECS122A/ECS122A_11-08-10.mov
Lecture 19 covers the unique-decipherability problem and gives definitions and the start of a graph-based solution.3139Mon, 08 Nov 2010 08:00:00 GMThttp://itunescontent.ucdavis.edu/media/2010/FA/ECS122A/ECS122A_11-08-10.mov21Dan Gusfieldalgorithms, graph algorithms, unique decipherability, Gusfield, UC DavisThe unique-decipherability problemLecture 19 covers the unique-decipherability problem and gives definitions and the start of a graph-based solution.Unique-Decipherability. Graph algorithm and proof of correctness
http://itunescontent.ucdavis.edu/media/2010/FA/ECS122A/ECS122A_11-10-10ur.mov
Lecture 20 deals with unique-decipherability: efficient graph-based algorithm and proof of correctness.3079Wed, 10 Nov 2010 08:00:00 GMThttp://itunescontent.ucdavis.edu/media/2010/FA/ECS122A/ECS122A_11-10-10ur.mov22Dan Gusfieldalgorithms, graph algorithm, unique decipherability, Gusfield, UC DavisUnique-Decipherability. Graph algorithm and proof of correctnessLecture 20 deals with unique-decipherability: efficient graph-based algorithm and proof of correctness.Linear-time pattern matching. Z-values and Z-algorithm
http://itunescontent.ucdavis.edu/media/2010/FA/ECS122A/ECS122A_11-12-10.mov
In Lecture 21, Gusfield covers linear-time pattern matching. He also discusses Z-values and Z-algorithms.3105Fri, 12 Nov 2010 08:00:00 GMThttp://itunescontent.ucdavis.edu/media/2010/FA/ECS122A/ECS122A_11-12-10.mov23Dan Gusfieldalgorithm, pattern matching, Z-algorithm, Gusfield, UC DavisLinear-time pattern matching. Z-values and Z-algorithmIn Lecture 21, Gusfield covers linear-time pattern matching. He also discusses Z-values and Z-algorithms.Finish of linear-time pattern matching
http://itunescontent.ucdavis.edu/media/2010/FA/ECS122A/ECS122A_11-15-10_PM.mov
Lecture 22 completes linear-time pattern matching using the Z-algorithm3095Mon, 15 Nov 2010 08:00:00 GMThttp://itunescontent.ucdavis.edu/media/2010/FA/ECS122A/ECS122A_11-15-10_PM.mov24Dan Gusfieldalgorithm, pattern matching, Z-algorithm, Gusfield, UC DavisFinish of linear-time pattern matchingLecture 22 completes linear-time pattern matching using the Z-algorithmIntroduction to approximation algorithms
http://itunescontent.ucdavis.edu/media/2010/FA/ECS122A/ECS122A_11-17-10.mov
Lecture 23 covers approximation algorithms - definition, factor of two approximation for the center cover problem.
2871Wed, 17 Nov 2010 08:00:00 GMThttp://itunescontent.ucdavis.edu/media/2010/FA/ECS122A/ECS122A_11-17-10.mov25Dan Gusfieldalgorithms, approximation algorithms, center coverIntroduction to approximation algorithmsLecture 23 covers approximation algorithms - definition, factor of two approximation for the center cover problem.
Introduction to P and NP
http://itunescontent.ucdavis.edu/media/2010/FA/ECS122A/ECS122A_11-22-10.mov
Lecture 24 gives an introduction to P and NP and polynomial-time reductions.3007Mon, 22 Nov 2010 08:00:00 GMThttp://itunescontent.ucdavis.edu/media/2010/FA/ECS122A/ECS122A_11-22-10.mov26Dan Gusfieldalgorithms, NP-completeness, reduction, Gusfield, UC DavisIntroduction to P and NPLecture 24 gives an introduction to P and NP and polynomial-time reductions.An intuitive view of NP
http://itunescontent.ucdavis.edu/media/2010/FA/ECS122A/ECS122A_11-24-10.mov
Lecture 25 deals with an intuitive view of NP - not the correct formal definition.2882Wed, 24 Nov 2010 08:00:00 GMThttp://itunescontent.ucdavis.edu/media/2010/FA/ECS122A/ECS122A_11-24-10.mov27Dan Gusfieldalgorithms, NP, reduction, Gusfield, UC DavisAn intuitive view of NPLecture 25 deals with an intuitive view of NP - not the correct formal definition.Formal definition of P and NP
http://itunescontent.ucdavis.edu/media/2010/FA/ECS122A/ECS122A_11-29-10.mov
In Lecture 26, Gusfield gives correct, formal definitions of P and NP, ending with a brief definition of NP-complete problems (languages).2729Mon, 29 Nov 2010 08:00:00 GMThttp://itunescontent.ucdavis.edu/media/2010/FA/ECS122A/ECS122A_11-29-10.mov28Dan Gusfieldalgorithms, NP-completeness, Gusfield, UC DavisFormal definition of P and NPIn Lecture 26, Gusfield gives correct, formal definitions of P and NP, ending with a brief definition of NP-complete problems (languages).Major theorems of NP-completeness
http://itunescontent.ucdavis.edu/media/2010/FA/ECS122A/ECS122A_12-01-10.mov
Lecture 27 covers the major theorems of NP-completeness, P = NP question, and how to prove a new problem in NP-complete.3025Wed, 01 Dec 2010 08:00:00 GMThttp://itunescontent.ucdavis.edu/media/2010/FA/ECS122A/ECS122A_12-01-10.mov29Dan Gusfieldalgorithms, NP-completeness, Gusfield, UC DavisMajor theorems of NP-completenessLecture 27 covers the major theorems of NP-completeness, P = NP question, and how to prove a new problem in NP-complete.Coping with NP-completeness
http://itunescontent.ucdavis.edu/media/2010/FA/ECS122A/ECS122A_12-03-10.mov
Lecture 28: Gusfield recaps NP-completeness.
The professor discusses coping with NP-complete problems: approximation algorithms and lowering the exponent of exponential-time algorithms.
2376Fri, 03 Dec 2010 08:00:00 GMThttp://itunescontent.ucdavis.edu/media/2010/FA/ECS122A/ECS122A_12-03-10.mov30Dan Gusfieldalgorithms, NP-completeness, approximation, Traveling Salesman, Gusfield, UC DavisCoping with NP-completenessLecture 28: Gusfield recaps NP-completeness.
The professor discusses coping with NP-complete problems: approximation algorithms and lowering the exponent of exponential-time algorithms.