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