CS 260 Data Structures - Syllabus

Term and Credits

Summer 2018
3 Credits

Room and Time

Section 002 - Monday 6:00pm-8:50pm UC151
Section 004 - Tuesday 6:30pm-9:20pm UC149

Instructor

Mark Boady
Electronic Mail Address: mwb33@drexel.edu
Office: University Crossings 138
Extention: 215-895-2347
Office Hours: Monday 4-5PM, Tuesday 12-1PM, Thursday 12-1PM

Teaching Assistant(s)

Amira Mefteh
Electronic Mail Address: am3836@drexel.edu
Office: Drexel CLC UC 152
Office Hours: Wednesday 6-8pm

Sandesh Bhandari
Electronic Mail Address: sb3728@drexel.edu
Office: Drexel CLC UC 152
Office Hours: 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.

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 https://learn.zybooks.com
  2. Enter zyBook code DREXELCS260BoadySummer2018
  3. Subscribe
A subscription is $77 and will last until Sep 22, 2018. Students will be able to subscribe until Sep 01, 2018.

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

Lectures

Exercises

Readings

Homeworks

Exams

Slack Channel

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,

Topics

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

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 Reading Assignment
1 (June 25, 2018) Analysis of Algorithms / Binary Search Week 1 - Due July 1 at 11:59PM HW1 - Due July 1 at 11:59PM
2 (July 2, 2018) Sorting Algorithms Week 2 - Due July 8 at 11:59PM HW2 - Due July 8 at 11:59PM
3 (July 9, 2018) Linked Lists, Stacks, and Queues Week 3 - Due July 15 at 11:59PM HW3 - Due July 15 at 11:59PM
4 (July 16, 2018) Hash Tables / Advanced Analysis Week 4 - Due July 22 at 11:59PM HW4 - Due July 22 at 11:59PM
5 (July 23, 2018) Binary Search Trees, Heaps, and Huffman Codes    
6 (July 30, 2018) Midterm Exam in Class Week 6 - Due August 5 at 11:59PM HW5 - Due August 12 at 11:59PM
7 (August 6, 2018) Balanced Trees Week 7 - Due August 12 at 11:59PM *HW5 Continued*
8 (August 13, 2018) Graphs - DFA and MST Week 8 - Due August 19 at 11:59PM HW7 - Due August 19 at 11:59PM
9 (August 20, 2018) Graphs - BSF, Dijkstra, and Bellman-Ford   HW8 - Due August 26 at 11:59PM
10 (August 27, 2018) Final Exam - In Class
11 (September 3, 2017) No Class - Happy Labor Day!