Catalog description: CS 141. Intermediate Data Structures and Algorithms. (4) Lecture, three hours;
laboratory, three hours. Prerequisite(s): CS 014 with a grade of "C-" or
better; MATH 009C or MATH 09HC; CS/MATH 111 or MATH 112; 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