CS 260 Data Structures - Syllabus

Term and Credits

Summer 2020
3 Credits

Room and Time

Summer 2020 - All Classes held Aschronously
Section 001 - MW 9:30AM-10:50AM Prof. Augenblick
Section 002 - MW 11:00AM-12:20PM Prof. Augenblick
Section 006 - TR 2:00PM-3:20PM Prof. Boady
Section 008 - TR 5:00PM-6:20PM Prof. Boady

Instructor

Dave Augenblick
Electronic Mail Address: augenbdh@drexel.edu
Office: 3675 Market Street Room 1161
Extention: 215-895-2494
Office Hours: 10AM-12PM Wednesday

Mark Boady
Electronic Mail Address: mwb33@drexel.edu
Office: 3675 Market Street Room 1058 (near snack machine)
Extention: 215-895-2347
Office Hours: Tuesday/Thursday 2PM-3:20PM and 5-6:20PM
Wednesday 3-4PM

Teaching Assistant(s)

Joel Pepper
Electronic Mail Address: jcp353@drexel.edu
Office: CLC 3675 Market Room 1066
Office Hours: Monday 2PM-4PM, Wednesday 4PM-6PM

Sanskriti Seernami
Electronic Mail Address: ss4288@drexel.edu
Office: CLC 3675 Market Room 1066
Office Hours: Thursday 8-10PM

Nicki Barari
Electronic Mail Address: nb895@drexel.edu
Office: CLC 3675 Market Room 1066
Office Hours: Tuesday 12PM-2PM

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

Online Textbook from ZyBooks

  1. Sign in or create an account at learn.zybooks.com
  2. Enter zyBook code: DREXELCS260Summer2020
  3. Subscribe
A subscription is $58. Students may begin subscribing on Jun 08, 2020 and the cutoff to subscribe is Aug 31, 2020. Subscriptions will last until Sep 21, 2020.

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,


Componentes

Readings

Assignments

Exams

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 Assignments
1 (June 22, 2020) Lecture 1: Searching
Lecture 2: Analysis of Algorithms
Assignment 1 (Due June 23, 2020 at 11:59PM)
Assignment 2 (Due June 25, 2020 at 11:59PM)
Reading Week 1 (Due June 28, 2020 11:59PM)
2 (June 29, 2020) Lecture 3: Bubble and Insertion Sorts
Lecture 4: Merge Sort and Quick Sort
Assignment 3 (Due June 30, 2020 at 11:59PM)
Assignment 4 (Due July 2, 2020 at 11:59PM)
Reading Week 2 (Due July 5, 2020 11:59PM)
3 (July 6, 2020) Lecture 5: Stacks and Queues
Lecture 6: Linked Lists
Assignment 5 (Due July 7, 2020 at 11:59PM)
Assignment 6 (Due July 9, 2020 at 11:59PM)
Reading Week 3 (Due July 12, 2020 11:59PM)
4 (July 13, 2020) Lecture 7: Hash Tables
Lecture 8: Password Hashing
Assignment 7 (Due July 14, 2020 at 11:59PM)
Assignment 8 (Due July 16, 2020 at 11:59PM)
5 (July 20, 2020) Midterm Thursday
Online. Details to be decided.
Reading Week 5 (Due July 26, 2020 11:59PM)
6 (July 27, 2020) Lecture 9: Binary Search Trees (P1)
Lecture 10: Binary Search Trees (P2)
Assignment 9 (Due July 28, 2020 at 11:59PM)
Assignment 10 (Due July 9, 2020 at 11:59PM)
Reading Week 6 (Due August 2, 2020 11:59PM)
7 (August 3, 2020) Lecture 11: AVL Trees
Lecture 12: Red/Black Trees
Assignment 11 (Due August 4, 2020 at 11:59PM)
Assignment 12 (Due August 6, 2020 at 11:59PM)
Reading Week 7 (Due August 9, 2020 11:59PM)
8 (August 10, 2020) Lecture 13: Heaps
Lecture 14: Intro to Graphs (DFS/BFS)
Assignment 13 (Due August 11, 2020 at 11:59PM)
Assignment 14 (Due August 13, 2020 at 11:59PM)
Reading Week 8 (Due August 16, 2020 11:59PM)
9 (August 17, 2020) Lecture 15: Dijkstra + Bellman Form
Lecture 16: Sets and MST
Assignment 15 (Due August 18, 2020 at 11:59PM)
Assignment 16 (Due August 20, 2020 at 11:59PM)
Reading Week 9 (Due August 23, 2020 11:59PM)
10 (August 24, 2020) Lecture 17: Huffman Encoding
Lecture 18: The Master Theorem
Assignment 17 (Due August 4, 2020 at 11:59PM)
Assignment 18 (Due August 6, 2020 at 11:59PM)
11 (August 31, 2020) Final Exam
Online Details TBD