CS 260 Data Structures - Syllabus

Term and Credits

Summer 2021
3 Credits

Room and Time

Summer 2021 - Remote Classes held Aschronously
Section 004 - MW 10:30AM-11:50AM Prof. Boady [3675 Market Street 1053]
Section 005 - MW 1:00PM-2:20PM Prof. Boady [3675 Market Street 1053]
Section 804 - MW 10:30AM-11:50AM Prof. Boady [Remote Aschronously]
Section 805 - MW 1:00PM-2:20PM Prof. Boady [Remote Aschronously]

Instructor

Mark Boady
Electronic Mail Address: mwb33@drexel.edu
Office: 3675 Market Street Room 1058 (near snack machine)
Extention: 215-895-2347
Office Hours: Monday/Wednesday 12PM-1PM
Tuesday 4-5PM

Teaching Assistant(s)

Uday Jain
Electronic Mail Address: uj26@drexel.edu
Office: CLC 3675 Market Room 1066
Office Hours: Tuesday 6-8PM

Vivek Khimani
Electronic Mail Address: vck29@drexel.edu
Office: CLC 3675 Market Room 1066
Office Hours: Monday 6-8, Thursday 6-8PM

Course Description

Data structures form the basics for the programmer's toolbox. You will become familiar with the basic common data structures, and learn to modify them or create your own. Further, the notion of data abstraction is important from several aspects. You will start down the road of separating interface from implementation, to viewing a problem simply in terms of functional requirements and dependencies (or lack of). On the flip side, we will explore various issues involved in implementing a given interface.

Course Objective and Goals

  1. Understand what an algorithm is.
  2. Master the ability to analyze the complexity of programs and algorithms. Understand recurrence relations and sums and basic asymptotic analysis.
  3. Understand algorithms and abstract data types. In particular, understand sets, stacks, queues, priority queues, dictionaries, binary search trees, hash tables, arrays, linked lists, trees, graphs, and heaps.
  4. Understand what basic operations each data structure supports and why one might choose one over another.
  5. Understand data abstraction and recursion, both in the context of procedures and of data types.

Topics

  1. Arrays
  2. Trees
  3. Graphs
  4. Dictionaries/ Hash Tables
  5. Algorithm Analysis

Audience and Purpose within Plan of Study

This is required course for CS BS students and CS Minor Students. It is generally taken sophomore year.

Prerequisites
CS265

What Students Should Know Prior to this Course

  1. Students should be able to program in a high level language (C++, Java, Python, etc)
  2. Familiarity with basic data structures such as vectors and arrays.
  3. Familiarity with object oriented design principles.

What Students will be able to do upon Successfully Completing this Course: Statement of Expected Learning

  1. Students will be able to analyze data structures.
  2. Students will understand a set of fundamental algorithms and how to apply them.
  3. Students will understand basic data structures and how to apply them to different situations.

Textbook

Algorithms (The MIT Press Essential Knowledge series)
Author: Panos Louridas
Published: August 18, 2020
ISBN-10: 0262539020
ISBN-13: 978-0262539029
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

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.

Course Material

Late Policy

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,


Components

Blogs

Homeworks

Labs

Assessments

Slack Channel


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 (June 21, 2021) Lecture 1: Searching
Lecture 2: Analysis of Algorithms
Lab 1 - Due Tuesday June 22, 2021 at 11:59PM
Homework 1- Due Friday June 25, 2021 at 11:59PM
2 (June 28, 2021) Lecture 3: Bubble and Insertion Sorts
Lecture 4: Merge Sort and Quick Sort
Blog 1 - Due Monday June 28, 2021 at 11:59PM
Lab 2 - Due Tuesday June 29, 2021 at 11:59PM
Homework 2- Due Friday July 2, 2021 at 11:59PM
Blog Comments 1 - Due Friday July 2, 2021 at 11:59PM
3 (July 5, 2021) Lecture 5: Stacks and Queues
Lecture 6: Linked Lists
Blog 2 - Due Monday July 5, 2021 at 11:59PM
Lab 3 - Due Tuesday July 6, 2021 at 11:59PM
Homework 3- Due Friday July 9, 2021 at 11:59PM
Blog Comments 2 - Due Friday July 9, 2021 at 11:59PM
4 (July 12, 2021) Lecture 7: Hash Tables
Lecture 8: Password Hashing
Blog 3 - Due Monday July 12, 2021 at 11:59PM
Lab 4 - Due Tuesday July 13, 2021 at 11:59PM
Homework 4- Due Friday July 16, 2021 at 11:59PM
Blog Comments 3 - Due Friday July 16, 2021 at 11:59PM
5 (July 19, 2021) Lecture 9: Binary Search Trees (P1)
Lecture 10: Binary Search Trees (P2)
Blog 4 - Due Monday July 19, 2021 at 11:59PM
Lab 5 - Due Tuesday July 20, 2021 at 11:59PM
Homework 5- Due Friday July 23, 2021 at 11:59PM
Blog Comments 4 - Due Friday July 23, 2021 at 11:59PM
6 (July 26, 2021) Lecture 11: AVL Trees
Lecture 12: Red/Black Trees
Blog 5 - Due Monday July 26, 2021 at 11:59PM
Midterm Assessment- Due Friday July 30, 2021 at 11:59PM
Blog Comments 5 - Due Friday July 30, 2021 at 11:59PM
7 (August 2, 2021) Lecture 13: Heaps
Lecture 14: Intro to Graphs (DFS/BFS)
Blog 6 - Due Monday August 2, 2021 at 11:59PM
Lab 6 - Due Tuesday August 3, 2021 at 11:59PM
Homework 6- Due Friday August 6, 2021 at 11:59PM
Blog Comments 6 - Due Friday August 6, 2021 at 11:59PM
8 (August 9, 2021) Lecture 15: Dijkstra + Bellman Form
Lecture 16: Sets and MST
Blog 7 - Due Monday August 9, 2021 at 11:59PM
Lab 7 - Due Tuesday August 10, 2021 at 11:59PM
Homework 7- Due Friday August 13, 2021 at 11:59PM
Blog Comments 7 - Due Friday August 13, 2021 at 11:59PM
9 (August 16, 2021) Lecture 17: Huffman Encoding
Lecture 18: The Master Theorem
Blog 8 - Due Monday August 16, 2021 at 11:59PM
Lab 8 - Due Tuesday August 17, 2021 at 11:59PM
Homework 8- Due Friday August 20, 2021 at 11:59PM
Blog Comments 8 - Due Friday August 20, 2021 at 11:59PM
10 (August 23, 2021) Instructor Special Topic Blog 9 - Due Monday August 23, 2021 at 11:59PM
Lab 9 - Due Tuesday August 24, 2021 at 11:59PM
Homework 9- Due Friday August 27, 2021 at 11:59PM
Blog Comments 9 - Due Friday August 27, 2021 at 11:59PM
11 (August 30, 2021) Blog 10 - Due Monday August 30, 2021 at 11:59PM
Final Assessment - Due Friday September 3, 2021 at 11:59PM
Blog Comments 10 - Due Friday September 3, 2021 at 11:59PM