Catalog description: CS 141 Intermediate Data Structures and Algorithms 4 Lecture, 3 hours; laboratory, 3 hours. Prerequisite(s): CS 014 with a grade of "C-" or better; CS 111/MATH 111; MATH 009C or MATH 09HC; proficiency in C++. Explores basic algorithm analysis using asymptotic notations, summation and recurrence relations, and algorithms and data structures for discrete structures including trees, strings, and graphs. Also covers general algorithm design techniques including "divide-and-conquer," the greedy method, and dynamic programming. Homework and programming assignments integrate knowledge of data structures, algorithms, and programming.
UCR course schedule, UCR course catalog. Note: Students receiving less than a C- in the CS 14 prerequisite will be dropped automatically a few weeks into the quarter, as the course relies heavily on basic knowledge of and skills in data structures, discrete mathematics, and programming.
week 1: Course overview, analysis of algorithms week 2: Discrete math for algorithm analysis week 3: Greedy approach for algorithm design week 4: Divide and conquer, dynamic programming week 5: Graphs, and their representation week 6: Graph traversal, connectivity week 7: Minimum cost spanning tree, single-source shortest path week 8: All-pais shortest path week 9: String matching, KMP week 10: NP completeness, review
Actual list of topics