CS 141 - Intermediate Data Structures and Algorithms

Time: Section 001: M W F - 4:10 PM to 5:00 PM
            Section 002: M W F - 1:10 PM to 2:00 PM

Location: Section 001: Humanities & Social Sciences Building - Room 1501
Section 002: Olmsted Hall - Room 1208

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

TA: Xiaolin Jiang - Office Hours: 463 WCH - Thursday 1:00 PM - 3:00 PM
Samriddhi Singla - Office Hours: 368 WCH - Tuesday 9:00 AM - 11:00 AM

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

  • Five homework assignments (33%)
  • Two quizzes (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.

Schedule

Date Topic Slides Material
Fri 9/28 Introduction S1: 1-26
S2: 1-26
Mon 10/1Analysis of Algorithms S1: 1-39
S2: 1-39
Wed 10/3Analysis of Algorithms S1: 40-51
S2: 40-51
Fri 10/5Analysis of Algorithms S1: 52-61
S2: 52-61
Mon 10/8Divide-and-Conquer S1: 1-17
S2: 1-23
Wed 10/10 Divide-and-Conquer S1: 18-27
S2: 24-27
Fri 10/12 Divide-and-Conquer S1: 28-41
S2: 28-41
Mon 10/15 Dynamic Programming S1: 1-27
S2: 1-30
Wed 10/17 Dynamic Programming S1: 28-42
S2: 31-42
Fri 10/19Quiz #1
Mon 10/22 Dynamic Programming S1: 42-58
S2: 42-54
Wed 10/24 Dynamic Programming S1: 55-82
S2: 55-83
Fri 10/26 Dynamic Programming S1: 83-97
S2: 84-97
Mon 10/29 Greedy Algorithms S1: 1-32
S2: 1-33
Wed 10/31 Greedy Algorithms S1: 33-46
S2: 34-46
Fri 11/2 Greedy Algorithms S1: 47-51
S2: 47-51
Mon 11/5 Greedy Algorithms S1: 52-61
S2: 52-61
Wed 11/7 Greedy Algorithms / Graphs S1: 1-22
S2: 1-22
Fri 11/9Quiz #2
Mon 11/12Veterans Day
Wed 11/14Graphs S1: 23-28
S2: 23-28
Fri 11/16Graphs S1: 29-48
S2: 29-48
Mon 11/19 Graphs S1: 49-63
S2: 49-63
Wed 11/21 Graphs S1: 64-73
S2: 64-73
Fri 11/23 Black Friday
Mon 11/26 NP-Completeness S1: 1-38
S2: 1-33
Wed 11/28NP-Completeness S1: 39-61
S2: 34-64
Fri 11/30NP-Completeness
Mon 12/3NP-Completeness
Wed 12/5Review Problems
Fri 12/7Review Problems
Fri 12/14Final exam:
Section 001- 7:00 PM - 10:00 PM
Section 002- 8:00 AM - 11:00 AM

Assignments

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