**Term and Credits**

Summer 2016-2017

3 Credits

**Room and Time**

Section 002 - Monday 6:00pm-8:50pm UC153

Section 004 - Tuesday 6:30pm-9:20pm UC151

Section 005 - Monday 6:00pm-8:50pm RUSH006

**Instructors**

Professor Mark Boady

*Electronic Mail Address:* mwb33@drexel.edu

*Office:* University Crossings 138

*Extention:* 215-895-2347

*Office Hours:* Monday 4-5pm, Tuesday 4-5pm

*Sections:* 002 and 004

Professor David Augenblick

*Electronic Mail Address:* augenbdh@drexel.edu

*Office:* University Crossing 134

*Extention:* 215-895-4910

*Office Hours:* TBD

*Sections:* 005

**Teaching Assistant(s)**

Rachel Goeken

*Electronic Mail Address:* rmg92@drexel.edu.edu

*Office:* Drexel CLC UC 152

*Office Hours:* Thursday 4-6pm

*Sections:* Grader for 002 and 004 (Prof. Boady)

Adam Feldscher

*Electronic Mail Address:* aff39@drexel.edu

*Office:* Drexel CLC UC 152

*Office Hours:* Monday 2-4pm, Wednesday 4-6PM

*Sections:* Grader for 005 (Prof. Augenblick)

**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**

- Understand what an algorithm is.
- Master the ability to analyze the complexity of programs and algorithms. Understand recurrence relations and sums and basic asymptotic analysis.
- 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.
- Understand what basic operations each data structure supports and why one might choose one over another.
- 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**

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

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

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

**Textbook**

Data Structures and Algorithms

Alfred V. Aho, Jeffrey D. Ullman, John E. Hopcroft

ISBN-10: 0201000237

ISBN-13: 978-0201000238

See it on Amazon

**Grading and Policies**

- Attendence: 10%
- Homework Assignments (8) 50%
- Quizzes (4) 20%
- Final Exam 20%

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.

- [100-97]A+
- (97-93] A
- (93-90]A-
- (90-87]B+
- (87-83] B
- (83-80]B-
- [80-77]C+
- (77-73] C
- (73-70]C-
- (70-67]D+
- (67-60]D
- (60-0]F

**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/ .

Punishments for those caught violating the Academic Honesty Policy include, but are not limited to

- Zero for Assignment in Question
- Reduction of One Letter Grade
- Failure for the Class

**Submitting Assignments**

Assignments must be completed in Python 3.

Assignments will be submitted to learning.drexel.edu by 11:59PM on the date they are due. Grades will be reported via learning.drexel.edu.

Assignments and exams will be returned on a regular basis to provide feedback to students.

Assignments may be submitted late at 10% penalty per day UNTIL 6pm on the first Monday following the due date. Selected assignment answers will be reviewed in class. After this late deadline NO submissions will be accepted unless there are special circumstances.

Special Circumstances: If you have a documented reason why you cannot submit a homework by the cut-off deadline, a special exception may be made. The Professor may also wave the late submission penalty for documented special exceptions.

**Quizzes**

Quizzes will be given at the END of class in the weeks noted.

If a quiz is missed, it must be taken within 1 week of the original quiz. Contact the TA to schedule a makeup.

Special Exceptions may be made, but require documentation.

**Topics**

- Arrays
- Trees
- Graphs
- Dictionaries/ Hash Tables
- 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:

- Academic Honesty: http://www.drexel.edu/provost/policies/academic_dishonesty.asp
- Judicial Affairs Academic Integrity: http://drexel.edu/studentlife/community_standards/facultystaff/integrity/
- Official Final Exam Schedule: http://www.drexel.edu/registrar/scheduling/exams/
- Students with Disability Statement: http://drexel.edu/oed/disabilityResources/overview/
- Course Drop Policy: http://www.drexel.edu/provost/policies/course_drop.asp
- The instructor may, at his/her/their discretion, change any part of the course during the term, including assignments, grade brakdowns, due-dates, and the schedule. Such changes will be communicated to students via the course web site Announcements page. This page should be checked regularly and frequently for such changes and announcements. Other announcements, although rare, may include class cancellations and other urgent announcements.
- Drexel Student Learning Priorities: http://www.drexel.edu/provost/irae/assessment/outcomes/dslp/

**Tentative Course Schedule**

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

Week | Topic | Reading | Assignment |

1 (June 26, 2017) | Analysis of Algorithms / Solving Recurrence Relations | Chapters 1.3, 1.4, 9 | HW1 Assigned |

2 (July 3, 2017) No Class Tuesday |
Arrays, lists; stacks and queues | Chapters 2.1-2.4 | HW1 Due July 7 11:59PM |

3 (July 10, 2017) | Sorting (Insertion Sort, Merge Sort, Quicksort) | Chapters 8.2-8.4 | HW2 Due July 14 11:59PM Quiz 1 - (On Week 1 Material) |

4 (July 17, 2017) | Trees; Huffman coding | Chapter 3 | HW3 Due July 21 11:59PM Quiz 2 - (On Week 2 & 3 Material) |

5 (July 24, 2017) | BSTs, Tries, Heaps (Priority Queues) | Chapters 5.1-5.3, 4.10, 8.4 | HW4 Due July 28 11:59PM |

6 (July 31, 2017) | Graphs - Intro to Graphs DFS, BFS | Chapter 6.1, 6.2, 6.5, 7.1, 7.3 | HW5 August 4 Due 11:59PM Quiz 3 - (On Material Week 4 & 5 Material) |

7 (August 7, 2017) | Graphs - Minimum Spanning Trees (Prim, Kruskal) and Sets | Chapter 4.2-4.4, 7.1, 7.2 | HW6 Due August 11 11:59PM |

8 (August 14, 2017) | Dijkastra (SSSP), Floyd-Warshall (APSP) | Chapter 6.3-6.4, 10.2 | HW7 Due August 18 11:59PM Quiz 4 - (On Material Week 6 & 7 Material) |

9 (August 21, 2017) | Hash Tables, Dictionaries | Chapters 4.5-4.8 | HW8 Due August 25 11:59PM |

10 (August 28, 2017) | Final - During Regular Class Session Final Exam covers entire term. |
||

11 (September 4, 2017) | No Class - Happy Labor Day! |