CSCI-UA 102 (Data Structures)

Syllabus for CSCI-UA 102 sec 1, Professor Klukowska

Instructor Information

Course Information

Course Description

This course covers use and design of data structures, which organize information in computer memory. Topics covered include data structures (stacks, queues, linked lists, binary trees, binary search trees, etc.), how to implement them in a high-level programming language (Java), how to analyze their effect on algorithm efficiency, and how to use and modify them.

Communication, Asking Questions, Getting Help

If you have questions related to the course materials or assessments:

If you have questions regarding your grades or some personal issues

Assessments and Grading

The grade for this course will be determined according to the following formula:

Course Grade

The final course grade will be assigned as follows:

Score Letter Grade
95-100 A
90-95 A-
87-90 B+
83-87 B
80-83 B-
76-80 C+
72-76 C
65-72 D
< 65 F

The grade of Incomplete is reserved for students who miss the final exam or the last project after completing all other coursework in the semester (the reasons for missed exam will need to be verified and approved by the Dean Of Students).
The grade of Incomplete will not be given to students who started falling behind in class for any reason. Those students should withdraw from the course or switch to Pass/Fail option.

Course Materials

Brightspace and the Course Website

You can access all course related materials through Brightspace page for this course.

In addition, you may find some links to the course slides and labs at the course website.

Textbook(s)

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.

Here is a listing of chapters in different books that discuss different topics covered in this course: reading list.

Data Structures Books

Java reference books

Other Resources

Recitations and Labs

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 from the weekly labs together.

The recitations are essential part of the course. You are expected to attend them. They are a chance for you to learn the material and collaborate with your peers. They are NOT optional part of this course.

Weekly Labs

(Almost) every 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.

During some of the recitation session you will get a chance to work on parts of the lab with other students and with guidance of the recitation instructor.

Some parts of the weekly labs will be submitted and will contribute to the "participation and progress" part of your grade for this course. To get the credit for this part, you must submit it before the due date.

Course Policies

This course follows CAS Academic Policies that can be found at https://cas.nyu.edu/academic-programs/bulletin/policies/academic-policies.html.

Attendance

This is an in-person synchronous class and you are expected to attend the lectures and recitations.

Missing a class or two is reasonable and often unavoidable, but missing more than five course meetings will likely result in decreased understanding of the course content and, hence, lower scores.

If, for any reason, you need to miss a lot of class meetings, you should contact cas.deanforstudents@nyu.edu for verification and guidance for an extended absence period. Extended absences often result in students inability to make-up missed material and assessments. You should consider withdrawing from the class and attempting it again in the future semester.

Missed Assessments

If you miss an assessment due to a religious observance, illness, family emergency, or any other reason beyond your control, you need to notify your instructor ahead of time (in case of a planned absence) or as soon as possible (in case of an unplanned emergency absence). Trying to excuse/explain the absence two weeks after it happened will not work.

Late 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. You do not need to use your freebie days (see below) if you submit your assignment during this 5-hour buffer window.

Each student is granted seven freebie days at the start of the semester. The freebie days can be used for any project except for the first one and the last one. If you are unable to submit a programming project on time due to religious observance, illness, family emergency, or any other reason beyond your control, you can use your freebie days to avoid point deductions for lateness on the assignment.

To use your freebie days, submit the project as soon as possible after the due date passes and then complete the Freebie Days Request form (https://forms.gle/gSqPWKjMwi72nVvx7).
Note: You are responsible for keeping track of how many freebie days you use and how many you still have. You are responsible for submitting the form as soon as you submit your final version of the project. Do not submit the form multiple times for the same project.

Freebie days are not transferable and they expire at the end of the semester.

Once you run out of freebie days, the late project submissions lose 10% 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 90 (instead of 100). If you submit the project 24-48 hours late, the maximum score is 80 (instead of 100), etc.

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

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 an incomplete implementation of the project, instead of submitting a program that does not compile or run.

Disability Disclosure Statement

New York University is committed to providing equal educational opportunity and participation for students of all abilities. We work with NYU students to determine appropriate and reasonable accommodations that support equal access to a world-class education.

Students requesting academic accommodations are advised to reach out to the Moses Center for Student Accessibility as early as possible in the semester for assistance.

Henry and Lucy Moses Center for Student Accessibility

Telephone: 212-998-4980

Website: http://www.nyu.edu/csd

Email: mosescsd@nyu.edu

Wellness Statement

In a large, complex community like New York University, it's vital to reach out to others, particularly those who are isolated or engaged in self-destructive activities. Student wellness (https://cas.nyu.edu/content/nyu-as/cas/academic-programs/student-wellness.html) is the responsibility of us all.

The NYU Wellness Exchange is the constellation of NYU’s programs and services designed to address the overall health and mental health needs of its students. Students can access this service 24 hours a day, seven days a week: wellness.exchange@nyu.edu; (212) 443-9999. Students may also call the Wellness Exchange hotline (212-443-9999) or the NYU Counseling Service (212-998-4780) to make an appointment for single session, short-term, or group counseling sessions.

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

See the Tentative Weekly Schedule for approximate times when topics will be covered. All dates there are tentative, but should be a good indicator or the course timing.