CS 260 Data Structures - Syllabus

Term and Credits

Summer 2019
3 Credits

Room and Time

Section 003 - Tuesday/Thursday 2:00PM - 3:20PM (3675 Market Street Room 1052)
Section 004 - Tuesday 6:30PM - 9:20PM (3675 Market Street Room 1052)
(Night Section Content will match Day Section. Tuesday material 6:30-7:50PM, Thursday material 8:00PM-9:20PM)


Mark Boady
Electronic Mail Address: mwb33@drexel.edu
Office: 3675 Market Street Room 1058 (near snack machine)
Extention: 215-895-2347
Office Hours: Tuesday 11-12, Wednesday 2-4, Thursday 11-12

Teaching Assistant(s)

Levi Kapllani
Electronic Mail Address: lk489@drexel.edu
Office: CLC 3675 Market Room 1066
Office Hours: See CLC Website

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.


  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.


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.


Online Textbook from ZyBooks

  1. Sign in or create an account at learn.zybooks.com
  2. Enter zyBook code: DREXELCS260BoadySummer2019
  3. Subscribe
A subscription is $77. Students may begin subscribing on Jun 10, 2019 and the cutoff to subscribe is Sep 01, 2019. Subscriptions will last until Sep 21, 2019.

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,

In Class Lab Exercises




Slack Channel

Computer/Software Help
iCommons: http://drexel.edu/cci/about/our-facilities/rush-building/iCommons/

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

Tentative Course Schedule

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

Week Topic ZyBooks
1 (June 24, 2019) Lecture 1A: Analysis of Algorithms and Searching
Lecture 1B: Analysis using Big-Oh Notation
Lab 1 and Lab 2
Reading Week 1 - Due July 3 at 11:59PM
HW1 - Due July 3 at 11:59PM
2 (July 1, 2019) Lecture 2A: Comparison Sorts
Lecture 2B: Bubble Sort, Insertion Sort, Quick Sort, and Merge Sort
July 4th Holiday Thursday:
Complete Lab on your own and submit via slack before Monday July 8, 11:59PM
Lab 3 and Lab 4
Reading Week 2 - Due July 10 at 11:59PM
HW2 - Due July 10 at 11:59PM
3 (July 8, 2019) Lecture 3A: Linked Lists
Lecture 3B: Stacks and Queues
Lab 5 and Lab 6
Reading Week 3 - Due July 17 at 11:59PM
HW3 - Due July 17 at 11:59PM
4 (July 15, 2019) Lecture 4A: Hash Tables
Lecture 4B: Master Theorem
Lab 7 and Lab 8
Reading Week 4 - Due July 24 at 11:59PM
HW4 - Due July 24 at 11:59PM
5 (July 22, 2019) Midterm Tuesday in Class
Optional Lecture on Topic of Instructors Choosing
(Thursday Material will not appear on any tests.)
Extra Credit 1 Readings - Due July 31 at 11:59PM
6 (July 29, 2019) Lecture 6A: Binary Search Trees
Lecture 6B: Huffman Codes
Lab 9 and Lab 10
Reading Week 6 - Due August 7 at 11:59PM
HW5 - Due August 7 at 11:59PM
7 (August 5, 2019) Lecture 7A: 2-3 Trees
Lecture 7B: Heaps
Lab 11 and Lab 12
Reading Week 7 - Due August 14 at 11:59PM
HW6 - Due August 14 at 11:59PM
8 (August 12, 2019) Lecture 8A: Introduction to Graphs
Lecture 8B: Dijksta's Algorithm
Lab 13 and Lab 14
Reading Week 8 - Due August 21 at 11:59PM
HW7 - Due August 21 at 11:59PM
9 (August 19, 2019) Lecture 9A: Prim's Algorithm
Lecture 9B: Kruskal's Algorithm
Lab 15 and Lab 16
Reading Week 9 - Due August 28 at 11:59PM
HW8 - Due August 28 at 11:59PM
10 (August 26, 2019) Lecture 10A: Depth First Search
Lecture 10B: Breadth First Search
Lab 17 and Lab 18
Extra Credit Reading 2 - Due September 4 at 11:59PM
11 (September 2, 2019) Final Exam
Day Class TBD
Night Class Tuesday regular time/room