DATA STRUCTURES - SECTION 050


Course Information

Lecture Recitation
Uday Kusupati - uk2154@nyu.edu TBD
Tuesday / Thursday: 2 - 3:15 pm, CIWW 317 Friday: 2 - 3:15 pm, GCASL 388

Prerequisites

  • Passing CSCI-UA 101 with a minimum grade of C
  • If you took an equivalent of this course at a different school, please make sure that you are familiar with Java.
  • Testing out of the course: See the Placement page

Communication

  • Brightspace
    • Announcements for project releases, access to quizzes
  • Ed Discussion
    • Please make public posts for any questions you have unless you are revealing large fragments of (potentially) solution code.
    • Please make a private post for all queries regarding grading or any question not related to the course content.
  • Office Hours

Course Description

This course covers use and design of data structures, which organize information in computer memory. Topics covered include data structures (lists, stacks, queues, graphs, binary trees, binary search trees, hash tables), 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.

Learning Outcomes

  • Choosing the right abstract data structure
    • Lists, Stacks, Queues, Heaps, Hash Table, Binary Trees
  • Programming implementations of data structures and their associated creation, retrieval, modification, and deletion
  • Basic algorithms related to efficient data structure use
    • Recursion
    • Traversal
      • Search
      • Graphs and Trees
    • Sorting
  • Java and Object Oriented Programming
    • Generics
    • Inheritance and Polymorphism
    • Memory Management

Assessment and Grading

All the assessment criteria are focused towards individual performance. However, collaboration is encouraged during the recitation sessions and lab exercises. This section is currently TENTATIVE and will be finalized by the first week of classes.

Exams (50%)

  • Midterm - in lecture (20%)
  • Final (30%)

5 Programming Projects (20%)

  • 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.
  • Make sure you test frequently, after every few lines of a code (0 < few « 100)
  • If you have an incomplete piece of code, submit a commented out implementation rather than broken/uncompilable code.

4 Quizzes (20%)

  • 30 min each
  • Best 3 counted for grade

Participation and Progress (10%)

  • Labs during Recitation and Mini-quizzes

Final Grade Composition

  • 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
  • Incomplete is reserved for students who miss the final exam for a reason verified and aproved by the Dean of Students Office and will not be given for any other reason.

Course Policies

Late/Absence Policy

Exams

  • If you miss the midterm exam, it is extrapolated averaging the quizzes and the final
  • If you miss the final exam, you receive an Incomplete (the reasons for missed exam will need to be verified and approved by the Dean Of Students)

Projects

  • Deadlines are strict. Please DO NOT wait till the last minute to submit. If it’s late on the system, it counts as a late day.
  • 7 late days, and ZERO after that

Quizzes

  • If you miss 2 quizzes with valid reasons, a make-up quiz is provided before the final, please talk to the instructor as soon as possible.

Participation

  • Lower 25 percentile of scores is dropped
  • If, for any reason, you need to miss a lot of classes/recitations, please contact cas.deanforstudents@nyu.edu for verification and guidance for an extended absence period.

AI Usage

  • The programming projects are a key component in realizing the learning outcomes of this course, particularly, to develop and instil a good understanding of data structures and associated coding practices. The goal is not to obtain a correct solution of many possible ones somehow, but to deduce a correct solution on one’s own. This involves understanding how information flows in large codebases, adapting one’s code and data structures to the use-case and understanding the costs associated. For that, we strongly advise forbidding your AI assistants to write any code for this course. Sure, AI is great at writing code, but that is not the point of this course.
  • However, AI assistants can be excellent illustrators and tutors to assist learning. Use them to understand concepts deeper faster. You can ask it to break down a concept, provide simple examples and walk you through a solution.
  • Be very careful since sometimes AI assistants hallucinate and correctness of their answers cannot be guaranteed. Particularly when you are learning quite a lot of new concepts, it can be hard to also be on the guard to critically evaluate and catch AI’s mistakes. When in doubt, refer to the textbooks, shoot a question on Ed, or visit office hours.

Academic Integrity

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

Be honest and fair to your peers, the staff, and most importantly yourself. Discussion and interactions with classmates is highly encouraged for better understanding of not just the material but to gain real world experience. However,

  • Make sure, you do not share explicit code that is part of the programming projects/tests.
  • Always mention/cite people/resources that helped you, not just this course, it is always a good practice to acknowledge.

Disability Disclosure Statement

New York University is committed to providing equal educational opportunity and participation for students of all abilities. 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.

Please register with the Moses Center early in the semester (as opposed to within just a few dats of the timed assessment) so that we can provide the necessary accommodations for the assessments.

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.

Acknowledgment

Thanks to Prof. Joanna Klukowska for providing the source material for this course. This content is licensed under a Creative Commons Attribution 4.0 International License.