CS 141 - Intermediate Data Structures and Algorithms

Time: Section 001: M W F - 1:00 PM to 1:50 PM
             Section 002: M W F - 5:00 PM to 5:50 PM

Location: Section 001: Winston Chung Hall - Room 143
                    Section 002: Winston Chung Hall - Room 143

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

TA: Mayur Patil - Office Hours: WCH 110 WCH - Tuesday 9:00 - 11:00 AM
Tanmay Shah - Office Hours: 110 WCH - Tuesday 2:00 - 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: NP-Completeness

Grading and Policies

    Course work

  • Class participation (3%)
  • Four homework assignments (30%)
  • Two mid-term exams (33%)
  • Final inclusive exam (34%)
  • Delivery policies

  • Unless mentioned otherwise, 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.

News

  • Homework assignment 4 posted, check it here
  • Homework assignment 3 posted, check it here
  • Homework assignment 2 posted, check it here
  • Homework assignment 1 posted, check it here

Schedule

Date Topic Slides Material
Fri 9/27 Introduction S1: 1-28
S2: 1-28
Mon 9/30Analysis of Algorithms S1: 1 - 30
S2: 1- 30
Wed 10/2Analysis of Algorithms S1: 31 - 44
S2: 31 - 43
Fri 10/4Analysis of Algorithms S1: 45 - 63
S2: 44 - 61
Mon 10/7Divide-and-Conquer S1: 1 - 16
S2: 1 - 17
Wed 10/9 Divide-and-Conquer S1: 17 - 27
S2: 18 - 29
Fri 10/11 Divide-and-Conquer S1: 28 - 42
S2: 30 - 42
Mon 10/14 Dynamic Programming S1: 1-20
S2: 1-21
Wed 10/16 Dynamic Programming S1: 21-34
S2: 22-36
Fri 10/18 Dynamic Programming S1: 35-52
S2: 37-52
Mon 10/21 Mid-term Exam #1
Wed 10/23 Dynamic Programming S1: 53-69
S2: 53-81
Fri 10/25 Dynamic Programming S1: 70-104
S2: 82-104
Mon 10/28 Dynamic Programming S1: 104-118
S2: 104-118
Wed 10/30 Greedy Algorithms S1: 1-25
S2: 1-25
Fri 11/1 Greedy Algorithms S1: 26-48
S2: 26-48
Mon 11/4 Greedy Algorithms S1:
S2:
Wed 11/6 Greedy Algorithms S1:
S2:
Fri 11/8Mid-term Exam #2
Mon 11/11Veterans Day
Wed 11/13Greedy Algorithms / Graphs S1:
S2:
Fri 11/15Graphs S1:
S2:
Mon 11/18 Graphs S1:
S2:
Wed 11/20 Graphs S1:
S2:
Fri 11/22 NP-Completeness S1:
S2:
Mon 11/25 Revisiting Dynamic Programming
Wed 11/27Revisiting Divide-and-Conquer
Fri 11/29Black Friday
Mon 12/2Revisiting Greedy Algorithms
Wed 12/4Review Problems
Fri 12/6Review Problems
Final exam: Section 001: Mon 12/9 - 7:00 PM - 10:00 PM
Section 002: Thu 12/12 - 3:00 PM - 6:00 PM

Assignments

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