Exams
The format, at a glance:
- The course is assessed through three tests plus a comprehensive final exam.
- Each test covers material up to and including the week before the week of the test; the final exam is comprehensive. See the Schedule for exact coverage.
- Each test is taken on your computer, on a dedicated exam platform (ExamFlow), and proctored in person.
- Tests are held at a common evening time (6:00–8:00 PM) shared by both sections, not during the regular class period. The final exam is during the university’s final exam period. See the Schedule for exact dates, times, and locations.
- Make sure to read Missed exams and conflicts below to understand course policy on those issues.
See the Homework page for why homework grades do not count toward your course grade.
Why tests are held outside class time
The three tests are held at a common evening time, 6:00–8:00 PM, in a shared room, rather than during the regular class period. (The final exam is also given at one common time for both sections, but on its own separate schedule; see the Schedule page.) A few reasons went into this:
- We do not want to give up instruction time. The semester already loses several lecture days to holidays and breaks. We have a lot of material to cover, and we want to use the class period for instruction, not testing.
- A 75-minute class period does not leave much room for a test. If you count roughly 15 minutes of overhead, getting everyone set up and then collecting the exam at the end, a test held during class would only have about 60 minutes actually available. The two-hour evening window allows 80 to 90 minutes of working time. The rest of the time covers check-in, setup, submission, and any technical problems.
- A common time for both sections means everyone takes the same problem set. Writing two separate exams for two sections and then balancing their difficulty against each other is genuinely hard to do well. One shared exam avoids that problem.
- We also do not want to put all the weight on a single high-stakes exam. Rather than relying on the final exam alone, you take three tests spread across the semester.
- The room we booked, Hackerman B17, is larger and better equipped than a typical classroom. For example, every desk has an outlet, so you can keep your laptop plugged in. We booked a room that is easier to proctor compared to where the lectures are held.
What an exam looks like
You take the exam on your own laptop at the scheduled time, in the assigned room. I (and any TAs) proctor the room in person.
- You will be given a problem set that includes, primarily, programming tasks in Java along with a few conceptual questions, tracing and complexity analysis, etc.
- We use a special software platform for the exam, ExamFlow (see the Logistics page). You will be given access to it. You see the questions and write your code/answers in this platform. You will submit your work through the platform at the end of the exam.
You may not consult notes, AI assistants, search engines, or any other source during the exam. The exam is closed-book.
During the exam
- Bring your J-card; you may be asked to present it for identification before the exam begins.
- Only your laptop, running ExamFlow, belongs on your desk. Phones, smartwatches, tablets, headphones, and the like are not allowed. Turn them off and put them away, not just on silent.
- The exam app runs fullscreen, so while the exam is active you will not be able to see anything else on your laptop.
- Keep the room quiet. If you have a question, raise your hand rather than speaking; I will come to you.
- Do not leave the room during the exam except with permission.
How proctoring works
The exam platform has some built-in security measures. For example, it notices things like tab switches. These exist to keep the exam fair for everyone, and they are not perfect: false positives happen.
If the app flags something during your exam, keep working. I may come and check on you to make sure it is nothing serious. In most cases the follow-up resolves the issue. A software flag is not itself evidence of misconduct. If a flag or something I observe raises a reasonable concern, I may ask to speak with you after the exam so that I can understand what happened. If I have reason to believe that you may have used unauthorized help, I may refer the case to the office of student conduct.
None of this is meant to be adversarial. It is meant to keep the exam conditions the same for everyone.
Your setup is your responsibility
Taking this course requires access to a working, charged laptop for regular lectures and exams. Before the first test, complete any announced compatibility or setup check. Bring your charging cable to every exam. If you know in advance that you will not have access to a suitable laptop, contact me as early as possible so we can discuss available options.
If you experience a technical failure beyond your reasonable control during an exam, notify the proctor immediately. Depending on the circumstances, I may ask you to continue on paper or on a backup laptop, or make another arrangement.
Grading
Your course grade is the sum of two parts: exams (98%) and class participation (2%). See the Syllabus for the full breakdown, including how participation is earned.
Each test and the final exam has a fixed number of possible points, distributed across the questions on that exam. Each question is graded on its own merits; partial credit is available where the work shows partial progress. Each test score and the final exam score is calculated as the percentage of the available points that you earned on that assessment.
Each of your three tests contributes 20% of your course grade, for a total of 60%. The final exam contributes 38%, and class participation contributes the remaining 2%.
I do not apply a predetermined curve or adjust scores to produce a particular grade distribution. Except for the adjustments described below, the percentage score you earn on each assessment is used directly in the weighted course-grade calculation above. No minimum or maximum score is imposed on an individual assessment beyond the points you earn through its grading rubric. If an exam or question proves ambiguous, defective, or materially more difficult than intended, I may revise its rubric, redistribute its points, or reduce the total points available. Any such adjustment will be applied consistently to the class and will not reduce credit already earned.
Optional replacement test
I have set aside Thursday, December 10, from 6:00–8:00 PM for a possible replacement test. This is not a fourth test for everyone. It is there for a student who feels that one of their test scores was a one-off poor performance.
If you think this applies to you, email me by Friday, December 4. Tell me which test you are concerned about and why you do not think the score reflects your performance in the course. I’ll consider what you tell me and let you know whether you can take the replacement test.
If you take the replacement test, the new score will replace the score from the test you identified, even if the new score is lower. Also keep in mind that the replacement test will cover all course material through Week 14, not just the material on the test you are replacing.
Missed exams and conflicts
Missed assessments
If an unexpected circumstance prevents you from taking an exam at its scheduled time, contact me as soon as reasonably possible. Ordinarily, this should be within 24 hours, but I understand that some circumstances may make that impossible. Include reasonable verification when it is available.
My preference is not to give makeup exams, but missed exams will be handled on a case-by-case basis, consistently with university policy and any approved accommodations. If an exception is warranted, I may offer a makeup exam or excuse the missed exam and adjust the grade calculation accordingly. If an exception is not warranted, the missed exam will receive a score of zero.
Scheduling conflicts
Test dates, times, and locations are published in the Schedule from the beginning of the semester. Check the schedule during the first week of classes and contact me right away if you have a conflict. If a test conflicts with another course or with an obligation you committed to before classes started, contact me as soon as possible. Once the classes start, you are responsible for avoiding new conflicts, including interviews, travel, work, or other obligations.
A conflict that recurs across most or all test dates means the course’s assessment structure may not fit your academic schedule. Contact me immediately to determine whether any workable arrangement exists. You should not enroll in or remain in the course expecting repeated exceptions. If a test date turns out to conflict with something affecting many students, another course’s exam, for instance, I may move it for everyone. That is a decision I make for the whole class, not something I promise to any one student.
Students registered with SDS
If you are registered with Student Disability Services (SDS), contact me as early as possible, preferably at the start of the term or as soon as your accommodations are approved, so we can put them in place before your next test. If your accommodation includes extended time, I will try to arrange an alternate testing setup that I or a TA proctor directly, on the same test date. Where that is not possible, we will defer to the SDS testing center to schedule and proctor your extended-time test. Accommodations approved through SDS are administered under university policy. The rest of this section describes the default policy for everyone else, and does not limit or replace what SDS has approved for you.
Preparing for the exams
Please refer to the How to Study for This Course guide. Doing the review and practice problems in the coursebook is the best way to prepare for the exams. The exam questions will be, in most cases, similar to those problems.
You should not need to look for additional resources beyond the coursebook, but if you want to, there are plenty of options available online and in print.
You can pick any textbook on Data Structures and Algorithms and work through its exercises. The following books are especially good for coding exercises, the kind you are asked in this course and in technical (coding) interviews for software engineering internships and jobs:
- Aziz, A., Lee, T. H., & Prakash, A. (2012). Elements of programming interviews: The insiders’ Guide. EPI.
- McDowell, G. L. (2015). Cracking the coding interview: 189 programming questions and solutions. CareerCup, LLC.
If books are not your preferred medium, you will find many websites and online platforms that contain coding exercises. Examples:
- https://leetcode.com/
- https://www.interviewcake.com/
- https://www.hackerrank.com/
- https://app.codility.com/programmers/
- https://projecteuler.net/
- https://www.algoexpert.io/product
- https://codingbat.com/java
- https://exercism.org/
- https://www.codewars.com/
- https://www.codechef.com/
- https://www.interviewbit.com/
- https://codeforces.com/
- https://coderbyte.com/
- and many more…