Skip to Main Content

Data Structures

Computer Science Department

Syllabus – Fall 2024

logo-black-lives-matter

Welcome to Data Structures, CS112. After completing the course the student will be able to:

  • Analyze runtime efficiency of algorithms related to data structure design.
  • Select appropriate abstract data types for use in a given application.
  • Compare data structure tradeoffs to select the appropriate implementation for an abstract data type.
  • Design and modify data structures capable of insertion, deletion, search, and related operations.
  • Combine data structures to build more complex implementations.
  • Trace through and predict the behavior of algorithms (including code) designed to implement data structure operations.
  • Identify and remedy errors/inefficiencies in a data structure implementation that may cause its behavior to differ from the intended outcomes.
  • Design data structures and associated algorithms to meet specified performance requirements for given task specifications.

We use the Java programming language for all assignments and exams in the course.

cover

Required textbook Algorithms, 4th Edition, Robert Sedgewick and Kevin Wayne, Princeton University

Book site 

Book videos access code eZKcbSEu. Videos accessible for free in the span of the topic listed in Lectures.

Academic Integrity

You are responsible for reading and understanding the DCS Academic Integrity Policy. Read the overview as well as the specific policies for exams. Instances of cheating will be punished by a zero grade, a failing grade for the course, and/or referral to your dean, at the discretion of the course staff.

All assignments and exams are individual but we encourage collaboration with course staff and classmates. However, you must be careful how you collaborate. Use the guidelines bellow for reference:

   Course staff    Classmates    Other people    AI Chatbots  
Discuss concepts with:YesYesYesNo
Acknowledge collaboration with:YesYesYesYes
Expose code/solutions to:YesNoNoNo
Copy code/solutions from:NoNoNoNo

Rutgers CS Diversity and Inclusion Statement

Rutgers Computer Science Department is committed to creating a consciously anti-racist, inclusive community that welcomes diversity in various dimensions (e.g., race, national origin, gender, sexuality, disability status, class, or religious beliefs).  We will not tolerate micro-aggressions and discrimination that creates a hostile atmosphere in the class and/or threatens the well-being of our students. We will continuously strive to create a safe learning environment that allows for the open exchange of ideas while also ensuring equitable opportunities and respect for all of us. Our goal is to maintain an environment where students, staff, and faculty can contribute without the fear of ridicule or intolerant or offensive language. If you witness or experience racism, discrimination micro-aggressions, or other offensive behavior, you are encouraged to bring it to the attention to the undergraduate program director, the graduate program director, or the department chair. You can also report it to the Bias Incident Reporting System http://inclusion.rutgers.edu/report-bias-incident/

Lectures

Attendance is expected and participation is very welcomed. Everyone benefits when you attend lecture and ask questions. Note that some examples might not be in the lecture slides. If you miss a lecture, you are responsible for getting class notes from a classmate.

Recitations

Recitations are the shorter of the listed periods on your class schedule listed as CS112. i.e. the only CS112 class meeting time that is NOT 1 hr 20 min. The recitation period is problem-solving oriented and is led by a Learning Assistant (LA), a senior undergraduate student that has taken CS112 previously and has been pedagogically trained.

You will find recitation problems under Canvas Modules. We will release recitation problems a week ahead of the week’s recitation along with the pre recitation quiz. The problem’s solutions are released the Monday after the week’s recitation. 

Each recitation is 5 points: 3 points for attendance (arrive within 10 minutes of scheduled time), 1 point (completion based) for the Canvas online pre-quiz and, 1 point (correctness based) for the Canvas online post-quiz.

The three weeks with the lowest recitation grades will be dropped, and no other absences/exceptions will be granted (other than extenuating circumstances verified by Dean of Students). This policy covers weekly absences due to illness, commute, weather, etc., so save it for when you truly need it.

  • We will release recitation problems a week ahead of the week’s recitation along with the pre-recitation quiz.
  • The week’s pre-quiz is available until Sunday 11:00PM preceding the recitation. 
  • The week’s post-quiz is available until Sunday 11:00PM following the recitation. 
  • You will only receive the quiz points if you attend the recitation section you are registered for and complete the quiz. 

Attend the recitation for the section that you are registered. You will not receive points if you attend a different recitation than the one you are registered for.

Labs

Labs involve programming in Java. Labs are short programming practice assignments on some of the data structures you will learn this semester. They are intended to help you assimilate the data structures before you tackle the larger assignments.

Similar to assignments, you will submit labs on Autolab (see below). Labs are always due at 11pm and deadlines are firm. You will have 4 days to complete each lab, with a 1 day built in extension (with a 5% penalty). Labs also follow the same submission limits as assignments: 3 are penalty free and there is a hard cap of 10 submissions total.

Assignments

Assignments involve programming in Java. The due dates are strictly followed by the course staff. All assignments are due at 11:00PM. Always make a copy of your assignment. Remember that technical problems happen and that due dates are enforced.

Assignments are graded automatically by AutoLab. Your program must compile without errors on Autolab – otherwise you will not receive any credit for the assignment. For each problem, your code will be tested using a suite of test cases, and you will receive credit for each case on which your code performs correctly. AutoLab will not display a score but it will give you feedback on your submitted program, which you can then update and submit again for grading. Always read the feedback!

You have 3 submissions without deductions; 5% of the problem total points are deducted for every submission thereafter. Autolab uses the last submission for the assignment grade.

Each assignment is worth 88 points total: 85 Points from AutoLab as well as 3 points from a Post-Assignment Reflection due directly after each assignment (which will be submitted via Google Form). Make sure to sign into this form with your Rutgers Email (netid@scarletmail.rutgers.edu).

Autolab. When your first programming assignment is released you will be able to login into AutoLab using your Rutgers credentials.

Plan to submit your work with at least one day in advance.

  • Depending on the load AutoLab MAY TAKE UP TO 1 day to give you feedback.
  • Note that if the system is busy it may take some time before it gets to your submission request. If the deadline passes while you are waiting, your assignment will not be accepted. In other words, if you try to hand in your work close to the end of the deadline, you may be too late.

AutoLab uses Java 17 to compile and run assignment’s test cases. After each submission the feedback includes a written text and a light:

  • red means that either your program didn’t compile or it passed very few of our test cases (0 – 20% of points);
  • yellow means that your program passed some test cases (21 – 80% of points);
  • green means that your program passed most of our test cases (81 – 100% of points).

Programming assignments have a built-in extension of 3 days. The extension works are follows:

  1. if you submit up to 24 hours after the deadline a 5% penalty applies.
  2. if you submit after 24 hours but before 48 hours after the deadline a 10% penalty applies.
  3. if you submit after 48 hours but before 72 hours after the deadline a 15% penalty applies.

Scores will be visible the day following the end of the built-in extension.

Early submission. To incentivize an early start on the assignments we have added a 10 points extra credit option to the last 4 assignments.

In Autolab you will see two assignments with the same name. One of those is for early submission (extra credit) and the other is the full assignment.

Here’s how early submission works:

  • Finish the first assignment method within one week of the assignment release date.
  • It is worth 10 points.
  • Submit into the Autolab early submission.
  • The early submission option closes one week from the release date at 11PM.
  • You have the 3 submission without penalty.
  • There is no built-in extension for the early submission.

Here’s how full submission works:

  • Once your assignment is complete (all methods have been implemented) you can submit it into Autolab under the assignment name (full submission).
  • Even if you submitted the entire assignment under early submission you STILL HAVE TO SUBMIT under the full assignment. The early submission is only worth 10 points.
  • Your first method will be tested again.

Academic Integrity Violations. Autolab uses JPlag to detect plagiarism. DO NOT include any identifying information on the files you submit to Autolab (e.g. name, netid, RUID, email).

  • See Academic Integrity section above.
  • DO NOT share or post your assignment before the assignment 3-day extension due date.
  • You MAY NOT use generative AI software (such as ChatGPT or GitHub Copilot) to create or debug programming assignment code. 

Our policy for Academic Integrity Violations are:

  • Student receives 0 (zero) on the assignment.
  • The violation is reported. The consequences of reporting are (a) a record on your file of this violation, (b) suspension, (c) or expulsion.

Accommodations. ODS Extensions will NOT be provided for assignments. Use the full time given by starting assignments early and attending office hours, and seek extra help if needed.

Grading

Assignments are automatically graded by Autolab, you will see your score the following day after the built-in extension due date. Exams are graded by a group of senior or graduate students in Gradescope and you will receive your score one week after the exam date.

Regrades

You have one week after exam grades and recitation quizzes are released to ask for a regrade. Only ask for a regrade if you think there was a grading error, do not request a regrade simply because you think you deserve more partial credit. Submitting a regrade request.

All programming assignments are autograded, make sure you read the Hints for each submission and correct your code accordingly before your next submission. Programming assignments are not regraded unless there is a problem on the autograder. A regrade of a programming assignment would involve running the same autograder code that Autolab runs, and that would not affect your grade. If your program does not perform correctly on a particular test case, you will not receive points for that test case. For all programming assignments you have one week after the grades are released to contest your grade. The grades are released the next day after the assignment is due.

Canvas

Canvas is a course management tool that will be used to keep students scores and send out announcements. Once registered to the course you will be automatically added to Canvas. Use your Rutgers credentials to login.

The course staff expects all students to read the announcements. All recitation quizzes will be administered through Canvas.

Piazza 

This term we will be using Piazza for class discussion. The system is highly catered to getting you help fast and efficiently from classmates, the LAs, and instructors. Rather than emailing questions to the teaching staff, we encourage you to post your questions on Piazza. If you have any problems or feedback for the developers, email team@piazza.com. Find our class page at Canvas’s left menu under Piazza.

DO NOT post any assignment solution or partial solution on Piazza. Those posts will be promptly deleted.

Exams

There will be 3 in person exams, 2 midterms and 1 final. The common hour exams are scheduled so that students from every section take the exams at the same time.

  • Each exam is 150 points.
  • Exams are in person. You are required to be on campus to take the exams, DO NOT make travel arrangements for those days. 
  • You cannot consult the textbook, notes, and assignments during exams.
  • You will have 80 consecutive minutes to complete a midterm exam and 3 consecutive hours to complete the final.
  • Refer to the Exams page for exam dates. 

Academic Integrity Violations. One warning will be given if proctors suspect academic dishonesty from a student during an exam, and further issues will result in exams being taken and reviewed. If necessary, a report to Academic Integrity will be made and a grade of 0 given.

Conflict exams. Given documentation we provide a conflict for in person exams. The exam will be in person within 3-days of the exam. Conflict form will open a few week before each exam.

Accommodations. Students that require accommodations, such as extra time, must contact ODS at least two weeks before the quiz date. Email your accommodations letter to the course coordinator.

Grading

Your grade is computed out of 1000 points. The donut chart to the right has the distribution of the 1000 points among assignments, recitation attendance, quizzes and exams.

There are 5 labs. Each lab is worth 10 points.

There are 5 assignments. Each assignment is worth 88 points, 85 points for your program submission and 3 points for your post-assignment reflection. The last 4 assignment have an extra 10 points can be earned with the early submissions, totaling to 98 points per assignment (if you start early)!

Each recitation is 5 points (3 attendance, 1 pre quiz, 1 post quiz). You have to attend at least 10 out of 13 recitations and take the respective quizzes for the full 50 points. Quiz points are dependent upon recitation attendance (if you don’t attend a recitation it is 0 (zero) points even if you take the quizzes). Canvas will retain the highest 10 scores (up to 50 points) and drop the remaining 3 lowest scores.

The two midterm exams and one final exam are equally weighted at 150 points.

There will also be 2 quizzes on our Course Policies, one at the start of the semester and one midway through, each worth 5 points.

To compute your grade sum up all the assignments, reflections, exams, quizzes, and recitations points (up to 10 recitations).

There is no curve. You must earn a minimum of 900 of the available points for an A, 850 for a B+, 800 for a B, 750 for a C+, 700 for a C, and 600 for a D. You will fail the course if you earn less than 600 points.

The cutoffs are strictly followed for each letter grade. A computed grade of 749.99 is a C not a C+.

Extra credit Surveys. For the purpose of improving the course, there are two surveys that you will be asked to fill out, an entry survey at the beginning of the semester and an exit survey at the end of the semester. The surveys are extra credit and each is worth 2.5 points.

The surveys will be sent in a Canvas announcement.

Extra credit on assignment. There are 10 points of extra credit for assignments 2, 3, 4, and 5. More information under Assignments