Logistics

Grading

programming assignments 35%
APTs 10%
recitations 10%
tests (2) 25%
final exam 20%

Grading is done on an absolute, but adjustable scale. This means that there is no curve. Anyone earning at least 94% = A, 90% = A-, 87% = B+, 84% = B, 80% = B-, etc. This scale may go down, but it will not go up.

In order to earn an A+ you must do most of the optional assignments, perform exceptionally well on the final, and exceed expectations in general.

Programming Assignments

Assignments are due by midnight on their due date and will not be accepted late for full credit. Each student is granted two assignment extensions with no penalty during the semester. To request an assignment extension, you must complete this form within 24 hours of the due date, and the assignment must be received within 72 hours of the original due date. Assignments turned in on time receive no penalty, and students who do not use their late penalties receive extra credit at the end of the semester.  Assignments can be submitted up to one week late (or one week late + 72 hours with an extension) for half credit.  All assignments must be received before the last day of class regardless of any extension.

Individual extensions will be granted for medical reasons (see the Short-term Illness Notification policy) or other circumstances beyond your control that must be presented with an official Dean’s excuse. We do not grant extensions after an assignment is due. If you have personal reasons to ask for an extension, and you do so at least a week in advance, it’s possible to get one, so please ask.

Points on assignments will vary. Harder assignments will be worth more than previous assignments, and most assignments will get harder as the semester progresses (harder means takes more time, requires more thought).

If you’re having trouble, be sure to see a UTA/TA and preferably the professor in charge of the course as far before the due date as possible. Don’t give up, ask for help. Don’t give up, ask for help. Don’t give up, PLEASE ask for help.

APTs

Algorithmic Problem-solving Testing problems (APTs) will be given throughout the semester. You’ll be given a description of a problem and asked to write code to solve it — testing the code online and when you’re happy with the code submitting it for grading. We don’t look at the source code when grading, we run it and test it. However, you should strive to make your code small and beautiful.

Once an APT is posted it will be available all semester, that is, you may hand in APTs at any time. However, a recommendation of the total number of APTs that should be completed by a specific due date will be marked on the calendar, and falling behind on the suggested number of APTs will hurt your overall APT grade.

Keeping up with APTs ensures you understand the topics we’re discussing in class, while falling behind will hurt your overall APT grade. You’ll have many chances to do extra APTs and this is highly encouraged.

Recitations

Recitations will be held every Friday and are due by the end of recitation for full credit and must be submitted within one week for half credit. We anticipate that every student will need to miss a few classes during the semester and each student will be given 1 excused late recitation submission without penalty. STINFs will only be accepted under special circumstances for recitation work, and the professor must be contacted directly.

Exams

Exams will be held during the lecture time and in the same room. The final will also be in the same room. See the Calendar page for dates and times.

Course Policies

Quizzes and Exams taken online or in-class must be your own work, you should not collaborate on them unless you’re given explicit permission to do so. This means you don’t talk to anyone or look up anything on the web unless you’re given instructions otherwise.

On programming assignments, you may consult with professors, and TAs/UTAs about any aspect of the assignment. You may consult with other students only in a general way, e.g., about debugging or Java issues, or questions about wording on the assignment. You cannot actively work with someone unless the assignment specifically grants permission to work together with another student. You can ask for hints or help, but if you do you must acknowledge this in your README that you submit with each assignment. Similarly, if anyone looks at your code to offer you help, guidance, or words of encouragement you must acknowledge this in your README.

Consult means you can discuss the programs before writing code, and get help with debugging your program, but you should write your own code. Writing one program and making multiple copies of it is NOT acceptable! For each assignment you are expected to include a list of the people with whom you have consulted (including students, TA’s, tutors, professors) as part of your submission. That is, you must include the names of everyone who helped you as well as the names of everyone you helped.This is required, it’s called the README file, and failure to provide it will result in rejection of the assignment as complete (you can resubmit).

Grading Policies

All care will be taken to make sure that grades are accurately calculated and reported. However, mistakes happen. If there is an error in your grade, due to a grading mistake or a reporting mistake we want to fix it. Please report the error: here

Due to the bookkeeping challenges of a large class, all grading error requests MUST be made within 3 days (days count as weekdays while Duke is in session) from the initial grade being posted. No grade change requests will be accepted more than 3 days after a grade is posted.

Textbook (Optional)

textBook
Data Structures and Algorithms in Java Third Edition, by Mark Allen Weiss, Pearson, ISBN 10: 0-13-257627-9, ISBN 13: 9780-13-257627-7

This book is available at the Duke bookstore.