Fall Quarter, 2014

# Intermediate Data Structures and Algorithms

## News

• (Dec 11) Homework 9 solution
• (Dec 11) warm-up problems
• (Dec 4) Homework 8 solution
• (Dec 1) Homework 9 (deadline postponed to Dec 11th)
• (Dec 1) Quiz 2 (w solution)
• (Nov 25) Homework 7 solution
• (Nov 25) Homework 8
• (Nov 21) Problems discussed in class
• (Nov 19) Homework 6 solution
• (Nov 17) Homework 7
• (Nov 14) Homework 5 solution
• (Nov 8) Homework 6
• (Nov 4) Quiz 1 (w solution)
• (Nov 4) Homework 5
• (Nov 4) Homework 4 solution
• (Oct 30) Review problems slides posted
• (Oct 30) Zach's writeup on Homework 3 (problem 1) posted
• (Oct 30) Problems to practice the Master Thm
• (Oct 28) Homework 3 solution, and Homework 4
• (Oct 27) Mock exam posted
• (Oct 21) Greedy slides
• (Oct 21) Homework 2 solution
• (Oct 19) Homework 3
• (Oct 17) Homework 1 solution
• (Oct 13) Homework 2 posted
• (Oct 9) Divide and Conquer slided posted
• (Oct 7) Lecture moved to CHUNG 138
• (Oct 6) Homework 1 posted
• (Sep 29) Slides posted (intro and analysis)
• (Sep 26) Zack Benavides is our TA

• ## Overview

CS 141 introduces the "core" of Computer Science: data structures like graphs, and problem solving techniques. This material is essential in almost all of our upper-division courses.

Catalog description: CS 141 Intermediate Data Structures and Algorithms 4 Lecture, 3 hours; discussion, 1 hour. 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. Integrate knowledge of data structures, algorithms, and programming.

## Basic information

Syllabus:

• Instructor:
• Stefano Lonardi (stelo@cs.ucr.edu)
• Office hours: Thursday 11:10am-12:10pm.
• Office: CHUNG HALL, room 325.

• Teaching Assistant:
• Zachary Benavides (benavidz@cs.ucr.edu)
• Office hours: Thursday 12-1pm
• TA Office hours are held in CHUNG HALL, room 110.

• Lectures:
• TR 9:40am-11:00am, CHUNG HALL, room 138.

• Text Book:
• Algorithms, by Sanjoy Dasgupta, Christos Papadimitriou, Umesh Vazirani. McGrawHill 2007.

• References:
• Introduction to the Design and Analysis of Algorithms, 2nd edition, by A. Levitin.
• Introduction to Algorithms (3rd Edition) by Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest, and Cliff Stein, MIT Press.
• Algorithm Design (Foundations, Analysis, and Internet Examples) by Michael T. Goodrich and Roberto Tamassia, Wiley.

• Approximate Time Requirements:
• This is a four-unit CS course. As such, you should expect to spend the following approximate amount of time: 3 hours/week in lecture
1 hour/week discussion
6 to 10 hours/week doing individual study (readings, homework, programming assignments, preparation for lectures, etc).
• Please don't underestimate the time you will need to spend on this course. These are real time amounts spent by average successful past students. Computer Science and Engineering are challenging disciplines requiring extensive time to master.

• ## Discussion Board

We will be using Piazza for class discussion. The system is highly catered to getting you help fast and efficiently from classmates, the TA, and myself. Rather than emailing questions to the teaching staff, I encourage you to post your questions on Piazza. If you have any problems or feedback for the developers, email team@piazza.com. Find our class page at: https://piazza.com/ucr/fall2014/cs141/home

## Lectures

Read the book and the slides before lecture! Reading ahead is one of the most effective ways of doing better in class -- you'll be amazed how much more comprehensible and useful the lectures will be. The schedule is subject to change as the quarter progresses.
• Course Overview [PDF]
• Algorithm Analysis [PDF]
• Divide & Conquer [PDF]
• Greedy [PDF]
• Dynamic Programming [PDF]
• Weighted Graphs [PDF]

• Content covered in lectures:
• Oct  2: Overview of the course, Analysis (slides 1-26)
• Oct  7: Analysis (slides 27-50)
• Oct  9: Analysis (slides 51-74)
• Oct 14: Analysis (75-end), Divide and Conquer (slides 1-9)
• Oct 16: Divide and Conquer (slides 10-36)
• Oct 21: Divide and Conquer (slides 37-55)
• Oct 23: Divide and Conquer (slides 56-end), Greedy (1-8)
• Oct 28: Greedy (9-35)
• Oct 30: Greedy (36-37), Review for Quiz 1
• Nov  4: Quiz 1
• Nov  6: Greedy (38-38, skipped Huffman), Dynamic Programming (1-29)
• Nov 11: Holiday: Veterans' day
• Nov 13: Quiz 1 review, Dynamic Programming (30-39)
• Nov 18: Dynamic Programming (40-end)
• Nov 20: Review for Quiz 2
• Nov 25: Quiz 2
• Nov 27: Holiday: Thanksgiving
• Dec  2: Weighted Graphs
• Dec  4: Weighted Graphs
• Dec  9: Weighted Graphs
• Dec 11: Weighted Graphs, Review for Final
• Dec 16: Final 8am-11am, WCH 138
• Do not put off reading the assignments or you will risk falling behind. Reading ahead is one of the most effective ways of doing better in class -- you'll be amazed how much more comprehensible and useful the lectures will be.

## Homework and Solutions

• Homework 1 [PDF], [LaTeX] (posted October 7th, due October 14th)
• Homework 1 solution [PDF] (posted October 17th)
• Homework 2 [PDF], [LaTeX] (posted October 14th, due October 21th)
• Homework 2 solution [PDF] (posted October 21th)
• Homework 3 [PDF], [LaTeX] (posted October 21th, due October 28th)
• Homework 3 solution [PDF] (posted October 28th)
• Zach's discussion on Problem 1, homework 3 [PDF] (posted October 30th)
• Homework 4 [PDF], [LaTeX] (posted October 28th, due November 4th)
• Homework 4 solution [PDF] (posted Nov 4th)
• Homework 5 [PDF], [LaTeX] (posted November 4th, due November 13th)
• Homework 5 solution [PDF] (posted Nov 14th)
• Homework 6 [PDF], [LaTeX] (posted November 11th, due November 18th)
• Homework 6 solution [PDF] (posted Nov 19th)
• Homework 7 [PDF], [LaTeX] (posted November 18th, due November 25th)
• Homework 7 solution [PDF] (posted Nov 25th)
• Homework 8 [PDF], [LaTeX] (posted Nov 25th, due Dec 2nd)
• Homework 8 solution [PDF] (posted Dec 4th)
• Homework 9 [PDF], [LaTeX] (posted Dec 2nd, due Dec 11th)
• Homework 9 solution [PDF] (Dec 11th)