CSCI-UA 102.05 (Data Structures), F21

Textbook(s)


Data structures books

We do not require you to purchase any particular textbook. But, you should use a textbook to study more in depth the topics that are discussed in class. The list below contains some recommended titles. During the semester we will suggest readings from some of them. You do not need to read every chapter from every book.

Most of the books in this list are accessible through NYU libraries for either download or online access. For the books available through O'Reilly online access, you can either start at the NYU library page or login to the site directly using Single-Sign-On (SSO) option with your NYU credentials. Some books are provided as open books through their publisher's or author's websites.

book image

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

book image

Think Data Structures, Allen B. Downey, Open book.
(accessible through NYU libraries, or O'Reilly online access, or download a PDF from Greenteapress website ).

book image

Codeless Data Structures, Armstrong Subero,

(accessible through NYU libraries or O'Reilly online access).

book image

Algorithms in Java, Robert Sedgewick,

(accessible through NYU libraries or O'Reilly online access).

book image

Open Data Structures An Introduction, Pat. Morin

(accessible through NYU libraries or book's site).

book image

Guide to data structures : a concise introduction using Java, James T. Streib, Takako Soma

(accessible through NYU libraries).

book image

Data structures & algorithms in Java, Robert Lafore

(accessible through NYU libraries or O'Reilly online access).

Java reference books

Introduction to Java Programming, 11th
Herbert Schildt,
O'Reilly online access (sign in using Single-Sign-On option with your NYU credentials)
or start from NYU Libraries page for the book
Think Java: How To Think Like a Computer Scientist,
Chris Mayfield, Allen Downey,
Optional Java resource
Open book - available online
Java, Java, Java: Object Oriented Problem Solving,
Ralph Morelli, Ralph Walde,
Optional Java resource
Open book - available online
Introduction to Java Programming, any edition
Daniel Liang,
This is your cs101 textbook. It is a good resource for refreshing the Java material.

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/winter break.

If you took an equivalent of this course at a different school, you need to make sure that you are familiar with Java. We assume you know enough Java to read and write fairly large programs right at the beginning of the semester.

Grading


Your grade will be based on:

Grades will be determined using the following scale:

        A 	95-100
        A- 	90-95
        B+ 	87-90
        B 	83-87
        B- 	80-83
        C+ 	76-80
        C 	72-76
        D 	65-72
        F 	less than 65

The grade of Incomplete is reserved for students who, for legitimate and documented reason, miss the final exam. The grade of Incomplete will not be given to student who started falling behind in class. Those students should withdraw from the class or switch to Pass/Fail option.

Absences (excused and unexcused)


We generally do not take attendance during the lectures, although, if you miss too many sessions, we will notice.

The take-home quizzes and exams can be made up only in case of an excused absence with appropriate documentation.

If you will miss a take-home quiz or an exam due to a religious observance, please familiarize yourself with University Calendar Policy on Religious Holidays and talk to the instructor well in advance to come up with alternative arrangements.

You will not be able to excuse an absence weeks after it happens. You should contact the instructor as soon as you are able (you will need to provide appropriate documentation).

In general, make sure you talk to your instructor about any missed assessments as soon as possible to determine if they can be made-up.

Recitations


Recitations are the times to have most of your questions answered. These could be questions about upcoming projects, material covered during the prior week or the weekly labs. They are also a chance for you to work with a group of students from the class to solve some problems together.

Weekly Labs


Each week you will be given a lab to work on. You should review the lab instructions before your weekly recitation so that you can discuss any questions and issues during the recitation.

The weekly labs can be retrieved any time during the week in which they are assigned but you should review them prior to the recitation session for which you are registered.

During the recitation session you may work on parts of the lab that may not be published until the actual recitation meeting. This will be small-group work and the submission for that part, if any, will be made as a group (keep in mind, that a small-group means two to four students, not one).

Programming Projects


Programming projects will be given on a regular basis. In general, they will be due 7-10 days after they are assigned. They will require you to write and, often, read and understand significant amount of code.

The programming projects should be completed individually and they should be your own work.

Late and missed programming projects:

For each project you will have a 5 hour buffer window after the due date. You can submit or resubmit the project during this time without any point penalty.
The late project submissions lose 20% of their original score for each day they are late. If the project has multiple parts, the late penalties apply to the entire project not only the parts that are submitted late. If you submit the project 5-24 hours late, the maximum score is 80 (instead of 100). If you submit the project 24-48 hours late, the maximum score is 60 (instead of 100), etc.

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. As you are working on your code, make sure that it compiles and does what you expect it to do. Test frequently, not only after you write hundreds of lines of code. It makes more sense to comment out broken pieces of the code and submit incomplete implementation of the project, instead of submitting a program that does not compile or run.

No programming projects can be accepted after the last day of classes.

Exams and Quizzes


There will be two timed online exams: midterm and final. They will be given during the class time (midterm) or during the university scheduled time (final). Those exams are synchronous.

In addition there will be several online quizzes (30 minute each). You will be able to complete them at any point during a fixed 24hr period.

All online quizzes and exams must be completed individually by you with no assistance of any other people, except for the instructor and proctors (in case of the synchronous exams).

Academic Integrity


This course follows the university and departmental policies on academic integrity:

Our main philosophy is that you need to be honest and fair to yourself, other students in the class and the instructional stuff.

We know that interactions with your classmates can facilitate deeper understanding of the subjects and provide invaluable lessons. We also know that in the real world large programming projects are rarely implemented by individuals. Finally, we know that in the real world you are rarely asked to take timed exams and be graded on them. But you are in the process of preparing for the real world, and you need to prove to yourself and to others that you can be a valuable contributor to a group project or a team.

All your work that is submitted for grading in this class has to be your own, unless otherwise specified. If you receive any help from a human or use any non-human resources, you need to acknowledge that in your submissions.

Regret clause

If you violate the rules of academic integrity when submitting work for this class, but bring it to the attention of the instructor within 48 hours of your submission, we will impose only local sanctions (i.e., failing or reduced grade on a given assignment), but we will not refer your case for further disciplinary actions (except in the case of repeated violations).

Here are examples of fair and not fair actions that a student may take. This is not an exhaustive list and should serve as examples of behaviors rather than a complete definition.

Fair Actions

Not Fair Actions

Topics Covered


(not necessarily in this order)

Tentative schedule:

For detailed schedule, see the Content page on NYU Brightspace.

Academic Email Etiquette