Intermediate Data Structures and Algorithms
Note: these are the materials from WINTER 2005.
Go here for other offerings of cs141.
winter quarter, 2005
news
/FinalReview
You may want to review the grading policy... see /Grades and make sure you
note that change to the policy described there.
Hwk4 is graded and available at the instructor's office (Surge 347).
Stop by during office hours (Tuesday 2-3pm) or send email to make
an appt.
Upcoming events:
- March 16, Wednesday, 2-4pm, Surge 349: study group
- March 17, 11:30am-2:30pm -- final exam
Lectures, Homeworks, Projects
/Lecture1 - Course administration. What is an "algorithm"? Correctness, running time. Two algorithms for greatest common divisor, analyzed for correctness and running time.
Comments about
/Proofs .
/Lecture2 - Euclid's algorithm for g.c.d. --- worst-case running time.
/Lecture3 - Fibonacci numbers - recursion diagrams
/Lecture4 - mathematics (polynomials, exponentials, sums), Big-O notation.
/Lecture5 - intro. dynamic programming - fibonacci, counting paths, n choose k
/Lecture6 - More dynamic programming - counting odd paths, shortest paths, longest paths, subset sum
Lectures 7 and 8 - Longest ascending subsequence, longest common subsequence (see book section 11.5).
Subset sum code added to the
/Repository so you can run the algorithms and see detailed code.
/Lecture9 - depth-first search
/Lecture10 - cut vertices by DFS
Lecture11 - recurrence relations, recurrence trees (see here:
S04_CS141:RecurrenceRelations)
Lecture12 - DFS in digraphs and topological sort (
S04_CS141:DFSInDiGraphs,
S04_CS141:CyclesByDFS and
S04_CS141:TopologicalSortByDFS)
Lecture13 - bread-first-search, graph representations (
S04_CS141:BreadthFirstSearch,
S04_CS141:GraphDataStructures)
Lecture14 - shortest paths (Dijkstra's algorithm) (
S04_CS141:ShortestPathsByDijkstras)
Lecture15 - weighted graphs, minimum spanning trees (
S04_CS141:MinimumSpanningTreesByKruskals)
/Hwk1, /Hwk1Soln
/Hwk2, /Hwk2Soln
/Hwk3, /Hwk3Soln
/Hwk4, /Hwk4Soln
/Prog1 -- Programming assignment 1. (Solution available in the /Repository)
/Prog2 - program assignment 2 - making change. (solution in /Repository)
/Prog3 - text formatting. (solution in /Repository)
/Prog4 - bread-first-search in maze (solution in /Repository)
MidtermReview
practice midterm and solutions to practice midterm
midterm solutions
midterm solutions and /Grades
miscellany
Reading: Read chapters 3, section 11.5 (longest common subsequence algorithm), chapter 12 (graphs, focus on DFS, BFS, Dijkstra's algorithm)
Jason's demonstration of longest common subsequence algorithm...
/Grades - grading policy changed (best 3 of 4 on hwks and progs, final can replace midterm)
C++ and STL documentation
/Debugging
/Repository -- Get started for /Labs by downloading files from the /Repository .
/Labs (attendance required).
Lab2 - survey on book topics, search algorithms, stl, hwk1, prog2
course info
instructor: Neal E. Young (office hours: Tuesday, 2-3pm, Surge 347)
teaching assistants:
- Serdar Bozdag (office hours: Thursday, 3:30-4:30pm, Surge 282),
- Adam Meadows (office hours: Wednesday, 12-1pm, Surge 282)
More
/CourseInfo