CISC 220H, Data Structures, Fall 2016

 

Instructor:       Dr. Terry Harvey, 408 Smith Hall, tharvey at udel.edu

                        Office Hours (general): Mon 8 - 8:45, Fri 11:15 - 12PM or by appointment

TAs: Danielle Wegrzyn, office hours Mon 9:45 – 11:45; Mike McCloskey Tues, Thurs 12:30 – 1:30, both in 201 Smith

Textbook:        Weiss 3rd edition or other data structures text with C++ examples

Primary C++ Reference:  www.cplusplus.com

Lecture Notes

Class/Laboratory Schedule:    Two lecture sessions per week, 75 minutes per session

                                                One lab session per week, 50 minutes per session

 

 

Week

Topic

Assignment

Reading Chapters

28-Aug

C++, Pointers, Memory Management

Lab1

1.1-1.5

4-Sep

More C++, Arrays, make

Lab2+HW1

2

11-Sep

ADTs, Lists, Complexity Analysis 1

Lab3+HW2

3

18-Sep

Stacks and Queues

 

3

25-Sep

Exam 1 9/27; Recursion, Trees

4

2-Oct

Complexity Analysis 2

9-Oct

Balancing Trees

4+ extra

16-Oct

M-ary Trees

 

23-Oct

Exam 2 10/25; Hashing, Heaps

5, 6

30-Oct

Graphs, Graph Algorithms 1

 

9

6-Nov

Graph Algorithms 2, NP

 

9

13-Nov

Sorting 1, Sorting 2

 

7

20-Nov

 

 

 

27-Nov

Exam 3 11/29; Applied Data Structures

 

 

4-Dec

last class 12/6

 

 

11-Dec

 

Final Exam week 12/5-12/12

 

 

Grading:

Exams (3)

30%

Labs+Homeworks

35%

Presentations/Participation

5%

Final Exam

15%

Project

15%

 

 

Scale:

Number

100-93

93-90

90-87

87-83

83-80

80-77

77-73

73-70

70-67

67-63

63-60

<60

Letter

A

A-

B+

B

B-

C+

C

C-

D+

D

D-

F

 

If you have a disability that requires special accommodation, please contact me by email during the first week of class.

 

NOTE:  Honors section differences from regular section:

á       Team-based, self-proposed project

á       Some lectures will involve significant student participation and presentation - you will be required to work with your peers in the classroom to share in all phases of the learning experience

NOTE:  Students are required to attend ALL lab sessions.  Submitted work must be submitted no later than 11:55pm on the date it is due.  Assignments that are late are assessed a 10% per day late penalty, and after three days they will not be accepted. Saturday and Sunday are each days. This policy is necessary because late assignments are burdensome for the TA, both in terms of separate handling and separate time grading.

 

NOTE: Students are required to attend ALL lectures. I may make announcements in class that I do not post on the website. I will put lecture slides on the web, but these are not a substitute for class notes. Many classes will have no lecture slides because we will be coding. It is your responsibility to get the notes from any lecture you miss from another student (not your instructor, and not your TA). Lecture material is critical for projects and exams, and useful everywhere else.

 

A Note About Programming Conventions

Every organization that writes code (and does it well) subscribes to a set of conventions for naming variables, commenting, formatting, etc. 

 

While I will not be deducting points for minor errors in style/formatting, your code must be readable and follow a standard set of conventions.  For this course we will follow the Google C++ coding conventions (http://google-styleguide.googlecode.com/svn/trunk/cppguide.xml).  These conventions are very similar to standard C++ library code, and similar to the code you will find in the Drozdek text.  In particular: do not use tabs in your code -- use 2 spaces instead (most editors will do this for you), follow the 80 character line limit, and follow the trailing { with new line closing } for blocks.  See pages 203-207 for an extended example.

 

 

Academic Honesty

I expect you to observe the highest ethical standards, avoiding even the perception of ethical compromise.  You are expected to do your own work unless explicitly instructed otherwise.  This includes programming projects, labs, quizzes, and examinations.  All violations of academic honesty will be handled according to University policy.

 

In addition, copying another person's work without proper acknowledgment is plagiarism, a serious offense, and the one most common to computer science courses.  Anyone that aids another student with work that is expected to be done without collaboration is as guilty as the person who seeks help. Both will be prosecuted. It is strongly recommended that you familiarize yourself with the University's Policy of Academic Dishonesty found in The Official Student Handbook.

 

Any student who in any way facilitates another student's access to someone else's classwork is cheating, whether the classwork is written, electronic, verbal, or any other form.

 

Furthermore, there have been rare instances of people claiming that their work was stolen. In these cases it is very hard to determine if the person gave their work to someone else, or if it was taken without their permission. If there is any doubt, I will always assume that the work was deliberately shared. It is thus your responsibility to safeguard your papers, your passwords, your computers, and any other means by which your work can be copied.

 

Group or pair work is subject to the same rules, applied between groups or pairs.