Textbook(s)



Book cover

(REQUIRED)
Object-Oriented Data Structures Using Java, Third Edition
By Nell Dale, Daniel T. Joyce, Chip Weems
ISBN-13: 9781449613549
Jones & Bartlett Learning
Publisher's website
Available on reserve at the NYU Bobst Library: https://getit.library.nyu.edu/go/9366637

Book cover

Open DSA - online eBook
OpenDSA is an open source project whose goal is to provide online course materials for a wide range of Data Structures and Algorithms courses.
It is currently funded by two National Science Foundation grants: TUES program grant DUE-1139861 and EAGER program grant IIS-1258571 .

DO NOT SELL YOUR CS101 BOOK JUST YET!
(this text is not mandatory but may come very helpful)

(OPTIONAL)
Introduction to Java Programming, Brief Version, 9/E
By Y. Daniel Liang
ISBN-10: 0132923734, ISBN-13: 9780132923736
©2013 Prentice Hall

Other textbooks available through BobCat library (OPTIONAL)

Data structures using Java by Duncan A. Buell, online version available here

Schaum's outline of data structures with Java by J. R. Hubbard, online version available here

Data structures and algorithms for game developers by Allen Sherrod, online version available here (this book uses C++)

Data structures and algorithms using Java by William McAllister, online version available here

Prerequisites



Passing CSCI.UA.0101 with a grade of C or better.

You are expected to know and remember the material from CSCI.UA.0101 course. If you took the course a few semesters ago and/or do not remember parts of the material, start reviewing it during the summer break.

Grading



Your grade will be based on

Assignments



There will be two different types of assignments in this course: homework assignments and programming assignments.

Homework assignments (10% of your final grade) will be given on a weekly (sometimes bi-weekly) basis. In general, they will be due one week after they are given. They will consist of short answer questions that may ask you to write a code/psudocode fragment, read some code and determine its output, describe what happens to a given data structure after a series of operations has been applied to it, etc. They will not require you to submit complete programs, although it might be beneficial for you to write code and run it yourself to check correctness of your answers.
Each homework assignment will consist of three (3) questions/problems. The homework assignments will be graded out of 6 points. You will receive one (1) point for each question just for attempting to answer it (if you write anything that seems to be related to what the question asks for). You will receive two (2) points for each question answered correctly (or nearly correctly).
The complete solutions to the problems will be provided during the recitations (they will not be posted on the website so make sure you attend the recitations). The types of questions will be similar to the ones that you will see on the midterm and final exams.

There will be three to five (3 to 5) programming projects (20% of your final grade) during the semester. In general, they will be due two-three weeks after they are assigned. The programming projects will require you to submit programs consisting of several classes that may take several days to design, develop and test. You should start working on these as soon as they are given.
The programming projects will be graded out of 100 points.

Late and missed assignments:

Broken programming projects: If you hand in a program that does not compile or crashes when it is run, you will get a grade of zero on it (so it might be worth your while to submit it two days late and fix it, rather than submit a broken program on time).

Challenging an assignment or a project grade:
You can challenge your grade on any assignment or project. To do so, you need to come to see me during the office hours, or schedule an appointment.

Academic Integrity Policy



I use MOSS (a system for detecting software plagiarism) to make sure that the submitted assignments are not duplicates of one another. Your code has to be your own.

I follow the department's academic integrity rules. In short, it is fine to talk to other students about your ideas and your programs, but it is not fine to work together on assignments or copy someone else's assignment. You cannot copy other people's work without giving them a proper credit (and part of your grade).
You may discuss any of the assignments with your classmates (or anyone else) but all work for all assignments must be entirely your own unless a group project is specifically assigned. Any sharing or copying of assignments will be considered cheating. By the rules of the College of Arts and Science, I am required to report any incidents of cheating to the department.
If you have any doubt if something that you are doing qualifies as academic dishonesty, talk to me!

Exams



There will be a midterm and a final exam. All exams are cumulative, although they will have larger emphasis on the new material covered since the previous exam.
On all exams you will get to choose which questions (one or two) you do not wish to answer. There will be no extra credit for answering all questions.

Missing an exam: There will be no make-up exams. Failure to take an exam counts as a zero grade on that exam. The only exception to this rule is for students who have a legitimate medical or personal emergency (documented). These students need to talk to me as soon as possible (trying to excuse an exam absence three weeks after it happened will not work).

The type of questions you should expect to see on the exams is the same type of questions you will see on homework assignments.

Topics Covered



This is a tentative list of the topics and their order:

For detailed schedule, see the Daily tab of this page.