CSCI-313: Data Structures, Spring 2007
CUNY Queens College
Dr. Matt Huenerfauth
Office: Science Building A330
Phone: 7 1 8 - 9 9 7 - 3 2 6 4
Email: matt (AT) cs (DOT) qc (DOT) cuny (DOT) edu
Office Hours: Tuesdays and Thursdays 4:20pm - 5:20pm or by appointment.
Tuesday and Thursday afternoons, 1:40pm to 2:55pm.
Classroom for Tuesdays: Science Building B145.
Classroom for Thursdays: Science Building A103.
The public website for this course is: http://www.cs.qc.cuny.edu/matt/csci313/
Lecture slides, assignments, and handouts are only available on the BlackBoard site.
CSCI-211 (C++), CSCI-212 (Java), CSCI-220 (Discrete Structures).
Data Structures and Algorithms in Java (4th edition).
Authors: Michael T. Goodrich and Roberto Tamassia.
Publisher: John Wiley & Sons, 2006.
Your final grade in the class will be calculated as follows:
30% Homework Projects
30% Midterm Exam
30% Final Exam
10% Class participation
These percentages are tentative. Any changes will be announced in class.
The midterm exam will be administered in class sometime in the middle of the semester. The date will be announced in the first few weeks of the semester. There is no scheduled make-up for the exam; so, if for some reason you are unable to attend the exam, you should contact the instructor ahead of time to discuss the circumstances.
The final exam will occur during the final exam period of the semester.
Class Participation Policy:
Your class participation grade will be determined based on your attendance and active participation in class throughout the semester. Participating in discussions, answering questions, reading the textbook before class, and participating during in-class activities are all good ways to show "active participation." There are also CUNY/Queens College policies that can become applicable if there is an excessive number of lateness or absences.
Being considerate of your fellow students in the classroom is also an important part of your "class participation" grade. You can do this by not causing a distraction for your fellow classmates -- you can remember to turn off your cell phone before class, arrive on time for class, avoid side conversation or noise during class, etc. A good learning environment is also one in which everyone feels welcome and comfortable; so, please be respectful of the diversity of backgrounds, beliefs, and lifestyles of the students in our class.
We will be following the organization and terminology of the textbook throughout the semester. (We will be covering some topics in a different order than they are presented in the textbook -- see the "COURSE TOPICS" section below.) You are encouraged to read the relevant chapters of the textbook before each class.
Your grades will be posted on BlackBoard during the semester. If you have specific questions about your grade on an assignment or exam, then the best way to proceed is to send an e-mail with your question to the instructor. You should mention which problem/question you are referring to, and you should discuss why you feel the grade should be reexamined.
Students with Disabilities:
If you are registered with the Office of Special Services for Students with Disabilities (OSS), please feel free to make an appointment with the course instructor to discuss any academic accommodations you may need. It is best if this is done at the beginning of the semester. If you need academic accommodations and are not registered with the OSS, please contact them in person at 171 Kiely Hall or by telephone at 718-997-5870. Upon individual request, this syllabus can be made available in alternative forms.
Students with Other Concerns:
If you are having academic concerns beyond issues specifically connected with this class, you may find it useful to make an appointment with an academic counselor at the Queens College Advising Center, tel: (718) 997-5599. If you need counseling or advisement beyond academic issues, you may find it useful to contact the Counseling and Advisement Center, tel: (718) 997-5420.
The following is a tentative set of topics that will be discussed in class. Specific calendar dates for each topic will be determined during the course of the semester. The numbers in the "Readings" column indicate the chapter and section numbers in the textbook that correspond to each topic.
|Java Programming||1, 2|
|Arrays and Linked-Lists||3.1-3.3|
|ADTs, Vectors, Lists, Iterators||6.1-6.4|
|Stack, Queues, and Deques||5|
|Trees||7, 9.3, 10.1, 10.2, 10.4, 14.2.1, 14.3|
|Heaps (Priority Queues)||8.1, 8.3|
|Sorting||8.2.3, 8.3.5-8.3.6, 11.1-11.5, 14.4|
|Hash Tables||9.1, 9.2|
|Algorithm Design Techniques||11.1, 13.6|
Slides will appear in the Course Documents page of the BlackBoard site.
An initial version of the slides will be posted shortly before class, and a final version of the slides will be posted after class. (We will use a TabletPC in class for lectures, and sometimes we will add additional drawings/comments to the slides during lecture.)
Assignments will be posted on the class page on BlackBoard as they are announced. Tentatively, there will be three homework projects for the semester. (Each would be worth 10% of the final grade.) Each project will require you to answer questions and write programs that use or implement some of the data structures we discuss in class.
Assignments will appear in the Assignments page of the BlackBoard site.
Homework projects will be handed out in class and posted on the course page on BlackBoard. Unless otherwise specified, homework is due at the beginning of class. (Depending on the assignment, some homeworks may be submitted via Blackboard and some may be submitted as a paper copy in class.)
Late homeworks will be penalized according to this policy:
-- after class on the day that the HW is due: 20% penalty.
-- after class on the following class day: 35% penalty.
-- after class one week after the HW was due: 50% penalty.
If homework will be submitted more than two weeks late, then you should discuss the circumstances ahead of time with the instructor. Such homework will be accepted on a case-by-case basis. After the answers to a homework assignment have been discussed in class or handed out, then homeworks can no longer be accepted.
Academic Integrity Policy:
There is no group work in this class. It is fine to discuss course topics with other students and to discuss assignments in general terms with other students. However, you should think about and work on all assignments yourself, and you should write your own solutions to any problems which are assigned. You should not search the web for computer code which you can copy and submit for your homework assignments. In general, the instructor will have also performed an extensive search for code on the web that could be similar to the assignments you will be asked to write, and it's pretty easy to see past surface modifications to detect when code has been adapted from another source. If asked, you should be able to explain any code which you submit. Since assignments are a much smaller portion of your total grade than the exams, it is in your interest to do the assignments yourself (and to understand them) since these skills will be tested during the in-class exams.
At the bottom of each assignment, I'd like you to include a section entitled: "Resources that Helped Me." If you had a good conversation with someone in the class, you had a good discussion with me during office hours, or you found a useful website that helped you understand a concept (without copying code from the website), then you can list these resources at the end of your assignment. I'd like to know about information sources that you found helpful (they might also be good to share with other students in the class). If you only used the textbook and the in-class lectures when you did your assignment, then you don't need to include a "Resources that Helped Me" section on your assignment.
The textbook for the course is your primary resource for background information about the important data structures we will be learning about. You may also find it useful to consult websites about the Java programming language or about the BlackBoard course website.
Logging-In to the BlackBoard Online Course System:
Information about Using BlackBoard:
SUN Java Tutorials Websites: