The In-Lab Quiz

In lab the week of Dec 5th, the main exercise will be a Canvas-based quiz on Java Programming, Program Design, and Data Structures. This quiz will partly make up points for the midterm and partly test material since the midterm that is readily amenable to the quiz-style format. Everyone must take this quiz.

The quiz is not solely makeup for the midterm (though it also has that component). By putting material from the back part of the course on the quiz as well, you get more than one exam-based setting in which to demonstrate understanding of material from the back section, rather than have all of your work riding on the final. This also takes pressure off the final to cover quite as much material.

Expect questions that Canvas can grade automatically (multiple choice, multiple answer, fill in the blank, etc). This implies that you will not write code on this quiz.

Update 12/5: The quiz has 18 questions (plus a couple of text blocks that set up the questions).


During the lab:

  • You will log into Canvas to access the quiz
  • You must complete the quiz in lab (those with accommodations, see below)
  • You will use the lab computers, not your own laptops, for the quiz
  • The quiz is closed-book/closed notes.
  • (Added 12/5) We will provide a handout with the code samples on the quiz (so you don't have to scroll up and down on the pages). You must hand these sheets back in to the staff before you leave the lab room, or your quiz will not be graded.
  • As with an in-class exam, you may ask staff for clarification if needed

We will check WPI IDs during the lab. Place your WPI ID on the table in your work area as lab starts. Staff will take attendance using your IDs this week.

We will collect any scratch paper you used during the quiz as you leave the room.

You may not have other applications open or phones out during the quiz.. You may only be using the web browser to take the quiz.

You need to take the exam in your registered lab time. If you cannot, you must contact Professor Fisler by the end of Monday. We will be checking timestamps on quiz submission (or configuring Canvas to only allow you access based on your lab times). If you try to take the test at a different time, you may not have access to the quiz.

Those with Academic Accomodations can take the quiz in the EPC, as usual (we will adjust your access times within Canvas accordingly). You will need to bring your own laptop to the EPC. If you need to take the quiz in the EPC but do not have a laptop, contact Professor Fisler by the end of this week to make other arrangements.

What You are Expected to Know

The quiz will focus on the higher-level concepts we have covered so far, going through what we cover in class on Friday, December 2. Specifically, you are expected to know:

  • The difference between classes and objects
  • When to create each of classes, abstract classes, and interfaces
  • The differences between classes, abstract classes, and interfaces
  • How the type you put on a field or piece of data affects which parts of an object Java will let you access
  • When you create nested objects and associate names with objects, how many objects exist "under the hood" and how are they connected (through fields and known names)
  • The definitions of the various data structures we have covered
  • What the different access modifiers (public, private, protected) do
  • Which class a desired method should be placed in (based on the fields/variables that it references)

You do NOT need to know exceptions.

There are sample data structures questions on the prior-year's midterm exams (on the Midtern prep page).

Miscellaneous Notes

Now that we've written the quiz, here are some things to be aware of:

  • Each question will have a tag of the form [ID456] near the end of the text. Ignore these. They are for use in grading only.
  • Ignore seeming syntax issues, such as missing semicolons at the end of lines (they have been omitted on purpose). If a question or option asks whether something compiles, we are not asking about syntax, but rather about available/visible methods and fields.
  • If details of a method aren't relevant, they will not be included. You'll see ... instead.
  • Constructors are generally omitted. Assume any missing constructor takes in and sets all of the fields (as usual).
  • To save vertical space, some short methods are written all on one line, as in
    		    public int add(int a, int b) { return a + b; }
    This isn't new syntax, just a new placement of line breaks.

How Will Grading Work?

On the grading side, we will separate out questions that retested midterm material from those testing new material. If you had a low score on a midterm question but perform well on the corresponding concept on the quiz, the quiz grade will significantly offset your midterm grade for that question.

For new material, your grade will be considered alongside any questions on the final exam on the same theme. There is no offset rule for material since the midterm: both the quiz and the final will play into your theme grades for material since the midterm.

Seeing Answers and Getting Grades?

We will configure Canvas to show the answers (and I think your answers) as of 6pm Wednesday, after everyone has taken the quiz.

We have to convert the Canvas data into theme-based points. That will take a couple of days. We will let everyone know when those grades are ready (but understand you want the scores as soon as possible).

If Canvas does report a "score" for you on the quiz, that score will show how many points you got when all of the questions are treated together. Canvas does not have the ability to separate questions into themes, so that grade will be suggestive but incomplete.