CS 502 Data Structures and Algorithms

Term and Credits

Winter 2021-2022
3 Credits

Room and Time

While we are online only:
Lecture recording will be posted in BBlearn. Class time will be used for additional office hours. Extra Office Hours will be held 6:30-7:30PM and 8:30-9:20PM in Zoom/Discord.

Once In-Person Sections Return:
Room 1052 in 3675 Market Street on Tuesdays from 6:30PM-9:20PM. Lecture will be streamed on Zoom and also Echo 360. Recordings will be made available using Echo 360.

Instructor

Mark Boady
Electronic Mail Address: mwb33@drexel.edu
Office: 3675 Market Street Room 1058 (Next to Snack Machine)
Extension: 215-895-2347 [Not Available During COVID]
Office Hours: Tuesday 4-6PM
If you want to meet in Zoom, send a Discord message first. This helps me ensure both in-person and online students get attention. I need to close Zoom when I am helping a student in person.

Teaching Assistant(s)

Reza Moradinezhad
Electronic Mail Address: rm976@drexel.edu
CLC Website: https://www.cs.drexel.edu/clc
Office: Room 1066 of 3675 Market Street
Office Hours: Monday 4PM-6PM in the CLC
[While Classes Are Online Only, Office hours will be in Zoom/Discord]

Jennifer Engimann
Electronic Mail Address: jae63@drexel.edu
CLC Website: https://www.cs.drexel.edu/clc
Office: Online in Zoom/Discord
Office Hours: Thursday 6PM-8PM online

Andrew McDonald
Electronic Mail Address: awm32@drexel.edu
CLC Website: https://www.cs.drexel.edu/clc
Office: Online in Zoom/Discord
Office Hours: Wednesday 6PM-8PM online

Course Description

An introduction to classical algorithms with a focus on implementation and applications. Covers both analysis and implementation of algorithms. Algorithms include searching, sorting, and shortest path. Data Structures and their analysis is also covered. Data Structures include trees and graphs.

Course Objective and Goals

  1. Learn to analyze the running time of iterative and recursive algorithms.
  2. Learn to analyze the running time of data structures.
  3. Gain familiarity with basic data structures and algorithms related to them, such as trees and graphs.
  4. Learn various applications of algorithms and data structures.
  5. Learn to choose the correct data structure to efficiently solve problems.
  6. Learn the basic theoretical foundations of computation.

Topics

  1. Algorithm Fundamentals
  2. Recursion
  3. Searching and Sorting
  4. Fundamentals of Simple Data Structures( lists, trees, graphs)
  5. Intro to algorithm analysis and order of growth
  6. Intro to algorithms in distributed systems.

Audience and Purpose within Plan of Study

This course is for graduate students with little prior knowledge of data structures and algorithms. It serves to give such students a firm foundation for future graduate study, and it is a requirement of the Computer Science Minor and Computer Science Post Bachelor Certificate degree programs.

Prerequisites
CS570 or CS501 is a required co/prerequisites.

What Students Should Know Prior to this Course

  1. Basic Computer Usage Skills.
  2. Some experience with programming is strongly recommended.
  3. The following concepts from mathematics will be important in class. You can review the below links for more information.
    1. Summation Notation
    2. Exponents
    3. Logarithms
    4. Polynomial Expressions
    5. Recursive Formulas

What Students will be able to do upon Successfully Completing this Course:

  1. Students will be able to analyze algorithms.
  2. Students will understand a set of fundamental algorithms and how to apply them.
  3. Students will understand fundamental data structures and when to use each.
  4. Students will be able to explain why algorithms are efficient and correct solutions to problems.
  5. Students will be able to determine the applications and limits of data structures and algorithms.
  6. Students will understand how complex computation is built from simple components.

Textbook

Algorithms (The MIT Press Essential Knowledge series)
Author: Panos Louridas
Published: August 18, 2020
ISBN-10: 0262539020
ISBN-13: 978-0262539029
Read Free from Drexel Library
Buy from Amazon

Algorithms Unlocked
Author: Thomas H. Cormen
Published: March 1, 2013
ISBN-10: 0262518805
ISBN-13: 978-0262518802
Read Free from Drexel Library
Buy from Amazon

Optional Supplement

If you want a more detailed textbook, we recommend The Algorithm Design Manual. It is not required.

The Algorithm Design Manual (Second Edition)
Author: Steven S. Skiena
Published: April 27, 2011
ISBN-13: 978-1848000698
ISBN-10: 1848000693
See it on Amazon

Course Material

Lectures/Readings

Homework Assignments

Blogs

Research Papers

Discord Channel

Late Submissions

Special Circumstances

Course Policies

Academic Honesty Policy

The CCI Academic Honesty policy is in effect for this course. Please see the policy at http://drexel.edu/cci/resources/current-students/undergraduate/policies/cs-academic-integrity/.

Academic Honesty Violations will be reported to the University. Punishment will be determined by the severity of the incident. Punishments include, but are not limited to,

Grading and Policies

Final grades will be determined by your total points weighted according to this distribution. Grades may be curved but are generally computed via the formula below. It may be modified at the instructor's sole discretion, but letter grades will generally not be lower than those shown here.

University Policies
In addition to the course policies listed on this syllabus, course assignments or course website, the following University policies are in effect:

Appropriate Use of Course Materials

It is important to recognize that some or all of the course materials provided to you are the intellectual property of Drexel University, the course instructor, or others. Use of this intellectual property is governed by Drexel University policies, including the IT-1 policy found at: https://drexel.edu/it/about/policies/policies/01-Acceptable-Use/
Briefly, this policy states that all course materials including recordings provided by the given prior written approval by the University. Doing so may be considered a breach of this policy and will be investigated and addressed as possible academic dishonesty, among other potential violations. Improper use of such materials may also constitute a violation of the University's Code of Conduct found at: https://drexel.edu/cpo/policies/cpo-1/ and will be investigated as such.

Recording of Class Activities:

In general, students and others should not record course interactions and course activities in lecture, lab, studio or recitation.
Students who have an approved accommodation from the Office of Disability Resources to record online lectures and discussions for note taking purposes should inform their course instructor(s) of their approved accommodation in advance. The recording of lectures and discussions may only be carried out by the students enrolled in the class who have an approved accommodation from Disability Resources with their instructors' prior knowledge and consent. Students with approved accommodations may be asked to turn off their recorder if confidential or personal information is presented.
If a student has any comments, concerns, or questions about provided class materials and/ or recording, talk to your course instructor first. If this does not resolve the issue, you can also reach out to the Department Head, and use the process described for a grade appeal to move your concern forward. The process described for grade appeals can be found at: https://drexel.edu/provost/policies/grade-appeals/

Tentative Course Schedule

Please see the appropriate assignment webpages for a detailed description of course deliverables.

Week Topic Assignments
1 (1/3/22) Binary and Logic HW 1 - Due Thurs. 1/6 at 11:59PM
Blog 1 - Due Fri. 1/7 at 11:59PM
Blog Comments 1 - Due Sun. 1/9 at 11:59PM
2 (1/10/22) Basic Algorithmic Structures HW 2 - Due Thurs. 1/13 at 11:59PM
Blog 2 - Due Fri. 1/14 at 11:59PM
Blog Comments 2 - Due Sun. 1/16 at 11:59PM
3 (1/17/22)
Martin Luther King, Jr. Day
Recursion HW 3 - Due Thurs. 1/20 at 11:59PM
Blog 3 - Due Fri. 1/21 at 11:59PM
Blog Comments 3 - Due Sun. 1/23 at 11:59PM
4 (1/24/22) Analysis of Algorithms HW 4 - Due Thurs. 1/27 at 11:59PM
Blog 4 - Due Fri. 1/28 at 11:59PM
Blog Comments 4 - Due Sun. 1/30 at 11:59PM
5 (1/31/22) Searching HW 5 - Due Thurs. 2/3 at 11:59PM
Blog 5 - Due Fri. 2/4 at 11:59PM
Blog Comments 5 - Due Sun. 2/6 at 11:59PM
6 (2/7/22) Sorting HW 6 - Due Thurs. 2/10 at 11:59PM
Blog 6 - Due Fri. 2/11 at 11:59PM
Blog Comments 6 - Due Sun. 2/13 at 11:59PM
Research Paper 1 Due Friday 2/11/21 at 11:59PM
7 (2/14/22) Linked Lists, Stacks, and Queues HW 7 - Due Thurs. 2/17 at 11:59PM
Blog 7 - Due Fri. 2/18 at 11:59PM
Blog Comments 7 - Due Sun. 2/20 at 11:59PM
8 (2/21/22) Trees (BST and Heaps) HW 8 - Due Thurs. 2/24 at 11:59PM
Blog 8 - Due Fri. 2/25 at 11:59PM
Blog Comments 8 - Due Sun. 2/27 at 11:59PM
9 (2/28/22) Graphs I HW 9 - Due Thurs. 3/3 at 11:59PM
Blog 9 - Due Fri. 3/4 at 11:59PM
Blog Comments 9 - Due Sun. 3/6 at 11:59PM
10 (3/7/22) Graphs II HW 10 - Due Thurs. 3/10 at 11:59PM
Blog 10 - Due Fri. 3/11 at 11:59PM
Blog Comments 10 - Due Sun. 3/13 at 11:59PM
11 (3/14/22) No Lectures - Exam Week Report 2 Due this week.
Research Paper 2 Due Friday 3/18/2022 at 11:59PM

Additional Resource Links

  1. Binary Numbers
  2. Hex Numbers
  3. Assembly
  4. Algorithms
  5. Recursion
  6. Analysis
  7. Searching
  8. Sorting
  9. Sets
  10. Trees
  11. Graphs
  12. DFA