Course Syllabus and Schedule/Map - Fall 2020 (Session A) : CSE 551: Foundations of Algorithms
Course Syllabus and Schedule/Map - Fall 2020 (Session A) : CSE 551: Foundations of Algorithms
Course Description
Algorithms, or a step-by-step process to efficiently reach the desired goal, have been part of
human history since the 1200s. Algorithms are a fundamental component to any computerized
system. In this foundational course, you to learn several different algorithms and be able to
explain how they work and why they are considered good. This will help you:
1. Evaluate appropriate algorithmic techniques that can lead to more efficient solutions for a
problem, instead of just coding the first idea that comes to mind.
2. Develop sound background knowledge on algorithms that will allow you to navigate the
literature, beyond the context of this class.
In order to gain these skills, you will have to work through and understand several algorithmic
techniques and the mathematical background necessary for analyzing the properties of these
techniques and the algorithms based on them.
1
CSE551: Foundations of Algorithms (Fall A, 2020)
Updated 8/20/2020 – SUBJECT TO CHANGE.
Specific topics covered include:
• Greedy Algorithms
• Stable Matching
• Divide-and-Conquer
• Dynamic Programming
• Amortized Analysis
• Network Flows
• NP-completeness
• Introduction to Randomized and Approximation Algorithms
Learning Outcomes
By completing this course, you will be able to:
Technology
Hardware
Standard with major OS
Software
No specialized software or other technology is needed to successfully complete this course.
2
CSE551: Foundations of Algorithms (Fall A, 2020)
Updated 8/20/2020 – SUBJECT TO CHANGE.
Textbook
There is no required textbook for this course. However, the following textbook is recommended:
J. Kleinberg and E. Tardos, Algorithm Design. United States: Pearson Education, 2006.
Late work: Late work will not be accepted and will result in a one-time 100% penalty.
3
CSE551: Foundations of Algorithms (Fall A, 2020)
Updated 8/20/2020 – SUBJECT TO CHANGE.
Week Main Topic Begin Date End Date Graded Solutions
Work Due Available
See Course
Map
Live events/virtual office hours may be joined using a computer or a mobile device. iOS devices,
however, are not fully supported at this time. To join from an iOS device, use the Zoom app and
paste in the session URL. Using other mobile operating systems or a computer, simply open the
Coursera app, navigate to “Live Events,” and click the active link to join.
4
CSE551: Foundations of Algorithms (Fall A, 2020)
Updated 8/20/2020 – SUBJECT TO CHANGE.
Day Start Time Hosted By
Mon 1:00-2:00pm Vinaya Chakati
(Instructor)
Tue 1:00-2:00pm Vinaya Chakati
(Instructor)
Wed 6:00-7:00 pm Vinaya Chakati
(Instructor)
Thu
Fri
Sat
Sun
Watch for announcements and check the Live Events page in the course for possible revisions to this
schedule. The September 7 event will be rescheduled due to the Labor Day holiday.
Note: These events will be recorded and the instructor’s events will be uploaded to the course by
the end of the day following each event. Look for the “Weekly Live Event/Office Hour Recordings”
section at the end of each week.
Course Content
The course comprises the following elements:
Instruction Assessments
Video Lectures Practice quizzes (auto-graded)
Readings Graded assignments (instructor- and auto-
Live Events/Virtual Office Hours graded)
NOTE: Transcripts are provided with Midterm and Final exam (proctored, partially
the videos. PDFs of all lecture slides auto-graded, instructor reviewed)
are provided in Week 1 in the NOTE: Solutions will be provided for graded
quizzes and assignments.
“Welcome—Start Here” module.”
Assessment Settings
The table below summarizes the course’s assessment settings:
Grade Breakdown
Course Work Quantity Format %
Grade Scale
7
CSE551: Foundations of Algorithms (Fall A, 2020)
Updated 8/20/2020 – SUBJECT TO CHANGE.
Consistent with CIDSE policy, you must have a cumulative grade of at least 83% to earn a “B” in this course,
and 73% (“C”) to earn credit for this course. The full list of cutoffs that will be used to generate your letter
grade follows:
A+ ≥97%
A ≥93%
A- ≥90%
B+ ≥87%
B ≥83%
B- ≥80%
C+ ≥77%
C ≥73%
C- ≥70%
D ≥60%
E < 60%
8
CSE551: Foundations of Algorithms (Fall A, 2020)
Updated 8/20/2020 – SUBJECT TO CHANGE.
NOTE: Grades may be curved based on overall class performance. For more information about
grading, visit ASU’s Grades & Records webpage.
Policies
All ASU and Coursera policies will be enforced during this course. For policy details,
please consult the MCS Graduate Handbook and the MCS Onboarding Course.
Absence Policies
a. If you are not able to attend live events, you are encouraged to watch the
recording(s) that will be made available each week. In addition, participation in
the discussion forums may be considered a measure of your engagement.
b. Excused absences are governed by the following policies:
i. Related to religious observances/practices: ACD 304–04,
“Accommodation for Religious Practices.”
ii. Related to university sanctioned events/activities: ACD 304–02, “Missed
Classes Due to University-Sanctioned Activities.”
iii. Related to missed class due to military line-of-duty activities: ACD 304–
11.
Academic Integrity
Students in this class must adhere to ASU’s academic integrity policy, which can be found
at https://provost.asu.edu/academic-integrity/policy). Students are responsible for
reviewing this policy and understanding each of the areas in which academic dishonesty
can occur. In addition, all engineering students are expected to adhere to both the ASU
Academic Integrity Honor Code and the Fulton Schools of Engineering Honor Code. All
academic integrity violations will be reported to the Fulton Schools of Engineering
Academic Integrity Office (AIO). The AIO maintains record of all violations and has
access to academic integrity violations committed in all other ASU college/schools.
Copyright
Course content, including lectures, are copyrighted materials and students may not share
outside the class, upload to online websites not approved by the instructor, sell, or
distribute course content or notes taken during the conduct of the course (see ACD 304–
06, “Commercial Note Taking Services” and ABOR Policy 5-308 F.14 for more
information).
You must refrain from uploading to any course shell, discussion board, or website used
by the course instructor or other course forum, material that is not the student's original
9
CSE551: Foundations of Algorithms (Fall A, 2020)
Updated 8/14/2020 – This syllabus is SUBJECT TO CHANGE.
work, unless the students first comply with all applicable copyright laws; faculty members
reserve the right to delete materials on the grounds of suspected copyright infringement.
Disability Accommodations
Suitable accommodations will be made for students having disabilities. Students
needing accommodations must register with the ASU Disabilities Resource Center and
provide documentation of that registration to the instructor. Students should
communicate the need for an accommodation in sufficient time for it to be properly
arranged. See ACD 304-08 Classroom and Testing Accommodations for Students with
Disabilities.
Title IX is a federal law that provides that no person be excluded on the basis of sex
from participation in, be denied benefits of, or be subjected to discrimination under any
education program or activity. Both Title IX and university policy make clear that sexual
violence and harassment based on sex is prohibited. An individual who believes they
have been subjected to sexual violence or harassed on the basis of sex can seek
support, including counseling and academic support, from the university. If you or
someone you know has been harassed on the basis of sex or sexually assaulted, you
can find information and resources at https://sexualviolenceprevention.asu.edu/faqs.
10
CSE551: Foundations of Algorithms (Fall A, 2020)
Updated 8/14/2020 – This syllabus is SUBJECT TO CHANGE.
Course Faculty
The following faculty member created this course.
Andrea Richa
Professor Andrea W. Richa joined Arizona State University (ASU) in 1998. She is
currently affiliated with the Biomimicry Center at ASU, and the Biosocial Complexity
Initiative in general. Prof. Richa’s main areas of expertise are in distributed/network
algorithms and computing in general. More recently she has focused on developing the
algorithmic foundations on what has been coined as programmable matter, through her
work on self-organizing particle systems (SOPS) (see sops.engineering.asu.edu ). Her
work has been widely cited, and includes, besides SOPS, work on bio-inspired
distributed algorithms, distributed load balancing, packet routing, wireless network
modeling and topology control, wireless jamming, data mule networks, underwater
optical networking, and distributed hash tables (DHTs). Dr. Richa received the 2017
Best Senior Researcher award from the School of Computing, Informatics, and Decision
Systems Engineering (CIDSE). She was the recipient of an NSF CAREER Award in
1999, an Associate Editor of IEEE Transactions on Mobile Computing, and the keynote
speaker and program\general chair of several prestigious conferences. In particular,
Prof. Richa was the Program Committee Chair of the 31st International Symposium on
Distributed Computing (DISC), 2017, one of the top two conferences in distributed
computing. Prof. Richa has also delivered several invited talks both nationally and
internationally. For a selected list of her publications and other accomplishments, CV,
and current research projects, please
visit www.public.asu.edu/~aricha or sops.engineering.asu.edu .
Course Schedule/Map
WEEK 1 (Unit 1)
Modules
Module 1: Welcome, Start Here!
Module 2: Stable Matching
WEEK 1 – To Do
❏ Introduce yourself and start getting to know your classmates
❏ Attend and/or access Live Event/Virtual Office Hour(s)
❏ Create your ProctorU account (if you do not already have one)
❏ Schedule your midterm exam and complete the system test with ProctorU
WEEK 2 (Unit 2)
Learning Objectives
• Explain interval scheduling and interval partitioning
• Explain the problem of scheduling to minimize lateness
• Explain how to solve the optimal caching problem
• Present cut and cycle properties of minimum spanning trees
• Explain how to solve the shortest path problem using Dijkstra’s algorithm
Modules
Module 1: Interval Scheduling and Interval Partitioning
Module 2: Scheduling to Minimize Lateness
Module 3: Optimal Offline Caching
Module 4: Revisiting Minimum Spanning Trees and Shortest Paths (Dijktra’s)
WEEK 2 – To Do
❏ Attend and/or access Live Event/Virtual Office Hour(s)
12
CSE551: Foundations of Algorithms (Fall A, 2020)
Updated 8/14/2020 – This syllabus is SUBJECT TO CHANGE.
❏ If you haven’t already, schedule your midterm exam and complete the system test
with ProctorU
WEEK 3 (Unit 3)
Modules
Module 1: Amortized Analysis
Module 2: Splay Trees
WEEK 3 – To Do
❏ Attend and/or access Live Event/Virtual Office Hour(s)
❏ If you haven’t already, schedule your midterm exam and complete the system test
with ProctorU
❏ Study for midterm exam – covers Units 1, 2, 3, and 4
Learning Objectives
• Review the basics of divide-and-conquer technique
• Demonstrate general techniques of divide-and-conquer via examples
• Explain the closest pair of points algorithm
13
CSE551: Foundations of Algorithms (Fall A, 2020)
Updated 8/14/2020 – This syllabus is SUBJECT TO CHANGE.
• Demonstrate the algorithm with an example
• Explain Karatsuba’s integer multiplication algorithm
• Explain Strassen’s fast matrix multiplication algorithm
Modules
Module 1: General Technique
Module 2: Closest Pair of Points
Module 3: Integer Multiplication and Matrix Multiplication
WEEK 4 – To Do
❏ Attend and/or access Live Event/Virtual Office Hour(s)
❏ If you haven’t already, schedule your midterm exam and complete the system test
with ProctorU
Midterm Exam
❏ Midterm exam (duration: 120 minutes + 15 minutes for startup with proctor)
Opens: Friday, September 11, 12:01 AM (AZ)
Closes: Sunday, September 13, 11:45 PM (AZ)
NOTICE: To avoid fees, you MUST schedule your exam on ProctorU at least 72 hours
prior to your desired appointment date. The last appointment will be Sunday, September
13, starting at 9:15 PM (AZ).
Allowed materials:
WEEK 5 (Unit 5)
14
CSE551: Foundations of Algorithms (Fall A, 2020)
Updated 8/14/2020 – This syllabus is SUBJECT TO CHANGE.
Learning Objectives
• Describe Dynamic Programming and its applications
• Explain solution of Weighted Interval Scheduling problem using Dynamic
Programming
• Explain the solution of Knapsack problem using Dynamic Programming
• Explain the solution of the Shortest Path problem using Dynamic Programming
and Bellman-Ford Algorithm
Modules
Module 1: General Technique
Module 2: Weighted Interval Scheduling
Module 3: Knapsack
Module 4: Shortest Path: Bellman-Ford
WEEK 5 – To Do
❏ Attend and/or access Live Event/Virtual Office Hour(s)
❏ If you haven’t already, schedule your final exam and complete a ProctorU system
test.
WEEK 6 (Unit 6)
Modules
Module 1: Ford-Fulkerson Algorithm
Module 2: Max Flow-Min Cut Theorem
Module 3: Capacity Scaling Algorithm/Edmonds-Karp Algorithm
15
CSE551: Foundations of Algorithms (Fall A, 2020)
Updated 8/14/2020 – This syllabus is SUBJECT TO CHANGE.
Module 4: Applications: Max Cardinality Bipartite Matching, Edge Disjoint Paths, and
Network Connectivity
WEEK 6 – To Do
❏ Attend and/or access Live Event/Virtual Office Hour(s)
❏ If you haven’t already, schedule your final exam and complete the system test with
ProctorU
WEEK 7 (Unit 7)
Modules
Module 1: Classes P and NP
Module 2: Polynomial-Time Reductions
Module 3: NP-Completeness
WEEK 7 – To Do
❏ Attend and/or access Live Event/Virtual Office Hour(s)
❏ If you haven’t already, schedule your final exam and complete the system test with
ProctorU
❏ Study for final exam – covers Units 5, 6, 7, and 8
Modules
Module 1: Introduction to Approximation Algorithms
Module 2: Knapsack
Module 3: Skiplists
WEEK 8 – To Do
❏ Attend and/or access Live Event/Virtual Office Hour(s)
❏ Study for final exam – covers Units 5, 6, 7, and 8
❏ Complete course evaluation survey
Final Exam
❏ Final exam (duration: 120 minutes + 15 minutes for startup with proctor)
Opens: Wednesday, October 7, 12:01 AM
Closes: Friday, October 9, 11:45 PM
NOTICE: To avoid fees, you MUST schedule your exam on ProctorU at least 72 hours
prior to your desired appointment date. The last appointment will be Friday, October 9,
starting at 9:15 PM (AZ).
Allowed materials:
17
CSE551: Foundations of Algorithms (Fall A, 2020)
Updated 8/14/2020 – This syllabus is SUBJECT TO CHANGE.