| EECS 311: DATA STRUCTURES |
General Information
Instructor:
Teaching Assistants
| Name: |
Daniel Kornhauser |
| Office: |
3-215, Ford |
| Email: |
dkorn at cs plus northwestern plus edu |
| Office Hours: |
TBD
|
| Name: |
Stephen Tarzia |
| Office: |
L470, Tech |
| Email: |
starzia at northwestern plus edu |
| Office Hours: |
Mondays 2-3 and 5:30-6:30 |
Tech Institute, L160
MWF 11:00-11:50
A tentative syllabus has been posted under Lecture
Notes
EECS 211 or 231. You must be fluent in C++.
Data Structures and Algorithm Analysis in C++ by
Mark Allen Weiss, 3rd edition
The author's web site has
errata
for the book (most were fixed in the
second printing) and
source code.
This book assumes a working knowledge of C++. It is recommended that you
acquire a C++ reference book. The Association of C and C++ Users has a
searchable compendium of book reviews, of varying quality.
The list by subject
is a good place to start, where you'll find entries
for beginners, advanced, data structures, and so on.
Some titles I personally turn to all the time:
C++ gives the programmer great power. But as Uncle Ben
told Spiderman:
"With great power comes great responsibility." Or,
as Steve Haflich has said,
"When your hammer is C++, everything begins to look like a thumb."
There a zillion ways to do things badly in C++ (and C too), so it's good
to have some books on avoiding the traps and pitfalls. The following
are particularly good:
Some popular titles are:
- Absolute C++ by Walter Savitch (2nd edition)
- C++: How to program by Deitel & Deitel (5th edition).
- The C++ programming language by Bjarne Stroustrup (3rd edition):
by the creator of C++
- In this course you are required to work individually or use pair programming.
- This means that you must never copy solutions from any source or
give your homework to another student/pair (even if the deadline is past). You
must not share code or show your code to anyone other than the instructor,
the class TA, or your pair partner.
- However, you are allowed and encouraged to discuss the assignments. You may
ask for suggestions when you are stuck and discuss examples that are not
part of the assignment. The newsgroup is an ideal forum for this.
- Keep in mind that all assignments are checked for similarities and, if
applicable, compared to assignments from past quarters.
- Cheating may result in a failing grade for the course.
University policy requires that graduate students who are caught cheating
are reported to the graduate school and undergraduates to the Dean.
- You are advised to start your assignments early.
- Late programming assignments will not be penalized as long as the total
late hours for the whole quarter do not exceed 96. After those "free"
hours have been used up, you must submit your assignments before the due date
for them to be accepted.
- If you are scheduled to be out of town on the day or week when the
assignment is due (e.g. interview trip, participation in sports event)
you must make arrangements for turning in your work.
- If you know in advance that you will miss enough days to make it
impossible to finish an assignment on time, please contact the
instructor in advance to make arrangements. Unplanned absences
will be dealt with in a case-by-case
basis. Make sure you have documentation (e.g. doctor's note).
- Extensions will not be given unless in extreme circumstances.
Lab downtime does not apply. Nuclear meltdown does. Make sure you
always keep backups of
your work. There will be no extension if you accidentally lose your
files.
| Assignments |
55% |
| Midterm |
15% |
| Final exam |
30% |
There is no option of doing additional work to improve your grade.
- Requests for regrades must be submitted to the TA no sooner
than 24 hours from having received the marked assignment, and no later
than two weeks after your grade was given to you. If the appeal to the TA does not
satisfy you, you can then talk to Vana. There will be no exceptions
to these rules. You should expect a reply to your request within a week after it was submitted.
- At the end of the quarter you will be given a chance to review your final
exam before the letter grades are submitted to the Registrar's office.
- Participate in class. Ask questions and don't be afraid to challenge
the instructor. You are here to learn and you should take advantage of the
fact that you have a live person teaching you and not a TV.
- Don't hesitate to come to office hours if you have additional questions
on the material.
- Start your assignments early. The newsgroup is your friend.
Posting your questions there will usually get you an answer much faster
than if you email them to us, or wait until class/office hours.
- Do not wait until the day before the final to ask for help. Do not ask
to be given additional work in order to improve your grade. If this was an
option it would be applicable to the whole class, not individual students.
- If there is a minimum acceptable grade that you need
(e.g. you are on academic probation or need good grades for a scholarship),
and you seem to be having trouble achieving it, ask for help as soon as
possible. Do not hesitate to ask for an appointment with the instructor or
TAs to go over the material/assignments again.