Syllabus – Summer 2025

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.

Required textbook Algorithms, 4th Edition, Robert Sedgewick and Kevin Wayne, Princeton University
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 below for reference:
Course staff | Classmates | Other people | AI Chatbots | |
---|---|---|---|---|
Discuss concepts with: | Yes | Yes | Yes | No |
Acknowledge collaboration with: | Yes | Yes | Yes | Yes |
Expose code/solutions to: | Yes | No | No | No |
Copy code/solutions from: | No | No | No | No |
Rutgers CS Diversity and Inclusion Statement
Lectures
Lecture attendance will be tracked with periodic short quizzes in lecture. These quizzes will make up 5% of your final grade.
Note, that you will NOT receive credit for the quizzes if you did not attend the corresponding lecture. You may NOT attempt to complete these quizzes if you have not attended.
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
Recitation will be held directly after Monday’s lectures. Attendance will be taken for these recitations, and make up 5% of your final grade. Each recitation will be worth 5.5 points. 2 points for a pre-recitation quiz based on completion, 2 points for a post-recitation quiz based on correctness, and 1.5 points based on attendance.
Note, that you will NOT receive credit for the quizzes if you did not attend the corresponding recitation. You may NOT attempt to complete these quizzes if you have not attended.
Since, there are 11 recitations at 5.5 points each, this means the total available points is 60.5. However, the total amount of earnable points from recitation will be capped at 50. This means you can miss two recitations and still earn 49.5/50 points.
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.
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 become familiar with data structures which may not be covered by the larger assignments.
Similar to assignments, you will submit labs on Autolab (see below). Labs are always due at 11pm. There is a two day late-period after the due date, where you can submit the lab with no late-penalty.
Labs follow the same submission limits as assignments as described below: 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 and ensure you’re submitting the correct assignment to the correct place. Remember that technical problems happen and that due dates are enforced. We will not make exceptions if you submit the wrong assignment or submit to the wrong place.
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. You’re able to submit ten versions total (this includes submissions that have errors or don’t compile). Submissions that don’t compile don’t count towards the three versions but do count towards the ten-version cap.
Autolab uses the last submission for the assignment grade.
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 an 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 as follows:
- if you submit up to 24 hours after the deadline a 5% penalty applies.
- if you submit after 24 hours but before 48 hours after the deadline a 10% penalty applies.
- 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 (if a token applies, scores will be visible the day after the token due date).
Early submission. To incentivize an early start on the assignments we have added a 10 points extra credit option to the 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. Make sure you’re submitting to the right place!
Here’s how early submission works:
- Finish the first assignment method (unless otherwise specified) 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 submissions 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.
Tokens. To account for personal circumstances that may arise, we provide one token for you to use to submit a programming assignment late or resubmit without a penalty within a week of the late extension due date — no questions asked. You can use a token due to absences (illness, personal commitments, travel, etc), tech issues, other classes, or other issues that prevent you from submitting in full; you don’t need to ask us before you use a token.
- Tokens are only available for programming assignments 1 and 2. NOT for assignment 3. Labs, recitation quizzes, and exams do not have tokens.
- Tokens are not intended for you to redo assignments or get out of late penalties.
- Version penalties will still apply if you use a token, but late penalties won’t. Versions will carry over from submissions you made before you use a token.
- You receive one token per semester. Once you use a token, you can’t get it back or switch it to another assignment.
- While we provide flexibility to you, it’s your responsibility to manage your time. We advise that you submit early and by the posted due date.
- We cannot extend other assignments if you used a token on an assignment.
- Save your tokens for when you need them.

How to use a token. You can use a token within 1 week of an assignment’s LATE due date (closes at 11pm). You CANNOT use a token until the late deadline passes, and you can’t use a token for labs or assignment 3 (the last programming assignment).
- Head to the assignment’s full submission page in Autolab and select “use 1 token on this assignment.” Upload your solution and submit.
- Wait for your feedback as usual and if needed, follow the same steps to resubmit accordingly. Once you’ve used a token, you can resubmit the same assignment until the token end date – version penalties still apply.
- Make sure you’re submitting to the right place – we can’t revoke tokens if you use a token on the wrong assignment.
- Also, submitting under practice will make you ineligible to use a token on that assignment. Only submit under practice if you know you WILL NOT use a token on an assignment and you simply want to practice.
Academic Integrity. Autolab uses JPlag to detect similarities in code. DO NOT include any identifying information on the files you submit to Autolab (e.g. name, netid, RUID, email).
- DO NOT share or post your assignment until the late period or token due date (as described above) has passed.
- 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 is as follows:
- Student receives a 0 (zero) on the assignment, and possible further sanctions including a failing grade in the course or referral to your dean.
- The violation is reported. The consequences of reporting are (a) a record on your file of this violation, (b) suspension, (c) or expulsion.
- If you’re found responsible for academic dishonesty on an assignment you used a token for, you won’t get that token back.
Accommodations. If you’re an ODS student with accommodations pertinent to assignments, you can submit labs and assignments without a late penalty, as follows:
- Submit an assignment under full submission during the three-day late extension period. This waives late penalties on the existing built-in extension.
- Please reach out to us at cs112@cs.rutgers.edu as soon as possible with your letter of accommodations.
- Don’t use an assignment token for an ODS accommodation as tokens cannot be revoked.
Grading
Assignments are automatically graded by Autolab, you will see your score the following day after the built-in extension due date (or token due date if applicable). Exams are graded within Canvas, and scores will be available to view in Lockdown Browser in the days following the exam.
Regrades
You have one week after midterm exam grades and recitation grades (quizzes + attendance) 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.
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.
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 TAs, 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 one midterm exam and one final exam administered using Lockdown Browser. A functioning, compatible device is required on exam days. The exams will take place during the normal class period.
- A midterm, worth 165 points
- A final exam worth 185 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.
- 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.
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.
Quizzes
In addition to the exams, there will be three in-class quizzes. These will be completed through Respondus Lockdown Browser, and as such a functioning device will be needed on quiz days.
The policies above for the exams also apply to the quizzes.
Grading
Your grade is computed out of 1000 points. The donut chart to the right has the distribution of the 1000 points among labs, assignments, recitation attendance, quizzes and exams.
- 3 assignments, each worth 100 points (300 total)
- 3 labs, each worth 30 points (90 total)
- A midterm, worth 165 points
- A final exam worth 185 points
- 3 in-class quizzes, each worth 50 points (150 total)
- 11 recitations, each worth 5.5 points (50 max)
- Lecture attendance quizzes worth 50 points
- A course policy quiz worth 10 points
To calculate your grade, add up your scores for each of the categories above.
The in-class quizzes, midterms, and final exam are taken during the lecture period. You must arrive at 6PM (preferably before).
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+.
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 on assignment. There are 10 points of extra credit for each assignment (not labs). More information under Assignments.
