CS 141 - Intermediate Data Structures and Algorithms

Time: M W F - 2:10 PM to 3:00 PM

Location: Bourns Hall - Room A125

Instructor: Amr Magdy - - Office Hours: 159B Tomas Rivera Library - Monday & Wednesday 3:30 PM - 4:30 PM

TA: Tin Vu - Office Hours: 110 WCH - Thursday 1:00 PM - 3:00 PM

Textbook: Introduction to Algorithms - Third Edition by Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest, and Clifford Stein - ISBN 9780262033848 Amazon- UCR Bookstore - MIT Press

Click HERE for Teaching Feedback form

Syllabus

CS 141 provides the basic background for a computer scientist in the area of algorithms analysis, design, and advanced data structures. During this course, students will learn problem solving skills, how to analyze and compare different solutions, and how to apply them in computational problems. The topics that will be covered include:

  • Algorithms analysis (asymptotic notation & recurrence relations)
  • Divide-and-conquer algorithms
  • Greedy algorithms
  • Dynamic programming
  • Graph data structures and algorithms
  • Advanced topics in algorithms analysis and design

Grading and Policies

    Course work

  • Five homework assignments (33%)
  • Two quizzes (33%)
  • Final inclusive exam (34%)
  • Delivery policies

  • Late submission allowed for 20% penalty for a calendar day.
  • Assignments should be computer-typed.
  • Cheating is not allowed and will be reported
  • If you are using any external source, you must cite it and clarify what exactly got out of it.
  • You are expected to understand any source you use and solve problems in your own.

Schedule

Date Topic Slides Material
Mon 1/8 Introduction 1-25
Wed 1/10Analysis of Algorithms 18-26
Fri 1/12Analysis of Algorithms 27-39
Mon 1/15Martin Luther King Jr. Day
Wed 1/17Analysis of Algorithms 40-46
Fri 1/19Divide-and-Conquer 1-21
Mon 1/22Divide-and-Conquer 21-26
Wed 1/24Divide-and-Conquer 27-38
Fri 1/26Dynamic Programming 1-21
Mon 1/29Quiz #1
Wed 1/31 Dynamic Programming 22-33
Fri 2/2 Dynamic Programming 34-37
Mon 2/5 Dynamic Programming 38-48
Wed 2/7 Dynamic Programming 48-77
Fri 2/9Greedy Algorithms 1-15
Mon 2/12Greedy Algorithms 16-33
Wed 2/14Greedy Algorithms 34-46
Fri 2/16Greedy Algorithms 47-51
Mon 2/19Presidents' Day
Wed 2/21Greedy Algorithms / Graphs 52-61/1-15
Fri 2/23Graphs 16-32
Mon 2/26Graphs 32-50
Wed 2/28 Graphs 51-72
Fri 3/2 Quiz #2
Mon 3/5 NP-Completeness 1-26
Wed 3/7 NP-Completeness 27-58
Fri 3/9NP-Completeness 59-72
Mon 3/12NP-Completeness
Wed 3/14Review Problems
Fri 3/16Review Problems
Mon 3/19Final exam - 7:00 PM - 10:00 PM

Assignments

PDF
Assignment #1
Assignment #2
Assignment #3
Assignment #4
Assignment #5

Discussions

PDF
Week 2
Week 3
Week 4
Week 5
Week 6
Week 7
Week 8
Week 9
Week 10