Posted Thu Apr 6 @ 11:59pm Eastern (2 weeks ago)
CSCI E-15 Dynamic Web Applications

A3 Quiz released (Due Thu Apr 13 11:59pm Eastern)


With the Assignment 3 Submission deadline behind us, we can turn now to the Assignment 3 Quiz.

The A3 quiz is...

(Remember that assignment quizzes are in addition to, not in place of, the weekly lecture quizzes that are due every Thursday @ 6:30pm Eastern).

Relevant topics

Question logistics

The A3 Quiz has 10 questions, each worth 1 point, broken down as follows:

In Canvas you'll find an optional, ungraded Assignment 3 PRACTICE Quiz that includes an example of each of these question types.

Time limit

You will have 60 minutes to complete this quiz.

This time limit is based on the following estimate of how much time is needed for each question:

   3 minutes for the multiple choice questions (1 min each)
+ 28 minutes for the open-ended coding questions (7 minutes each)
+ 10 minutes for the open-ended concept questions (5 minutes each)
+  3 minutes for the debugging question
+ 16 minutes to check work
= 60 minutes total

This is a rough estimate. The amount of time different students will spend on questions will vary.

Misc. logistics

Study Tips

In theory, most of your preparation/studying for the quiz should have taken place over the last 4 weeks while you were watching lectures, building the foobooks example, working with classmates in Piazza, and building your Assignment 3 submission.

However, some students may feel more confident going into the quiz if they spend some time reviewing concepts beforehand. With that in mind, here are some suggested study tips:

Study tip 1

Dedicate an hour (or more) before taking the quiz to read through the course notes relevant to Assignment 3. The idea here is to refresh your memory on where information is so you can quickly retrieve it if needed.

Study tip 2

Review the following parts of the foobooks code (and your own assignment submission):

  1. Routes (/routes/web.php)
  2. Controllers (/app/Http/Controllers/)
  3. Views (/resources/views)
  4. Configuration (config/ and /.env)

Study tip 3

Make yourself a quick reference sheet highlighting common concepts that we’ve covered and were necessary to complete Assignment 3. For example:

  1. Location of common files (e.g., your Routes file, Controllers, Views, configuration, log files, etc.).
  2. How to return a View
  3. How to return a View and make data accessible to that View
  4. How to write a Route that responds to a POST request
  5. How to write a Route that responds to a GET request
  6. How to write a Route that uses route parameters (both optional and required)
  7. How to display a variable in Blade
  8. How to use a for loop or if statement control structure in Blade
  9. How to validate a form request in a controller method, using validation rules covered in lecture such as required, alpha, numeric, alpha_num, min, max, etc.
  10. Etc.

This is an example list; it is not exhaustive and each student is responsible for their own preparation.

Study tip 4

Take the optional, ungraded practice quiz in Canvas called Assignment 3 PRACTICE Quiz.

Quiz taking tips

Quiz taking tip 1

When starting the quiz, set your own timer (e.g., on a cellphone) so you always know how much time you have left, even if you leave the Canvas window.

Quiz taking tip 2

When answering an open-ended question, do not attempt to test/execute the code you're writing— it would take too much time to set up all the necessary pieces (routes, controllers, views, etc.) and you will run out of time.

The goal of the quiz is to assess your understanding of the material, not how well you can experiment, iterate, and debug to eventually arrive at an answer (that's assessed in the Submission component).

Knowing that you are not expected to test your answers, there will be some leniency in grading in regard to minor syntax issues (e.g., forgetting a semicolon, omitting a closing bracket on a function, etc.)

Quiz taking tip 3

Be prepared going into the quiz so you do not have to rely heavily on notes/documentation. If you have to spend too much time looking up answers and reading how to do things you will run out of time, and this is a reflection of how much you understand the concepts being tested.

Instead, a more ideal reliance on notes/documentation might look like this:

Imagine you’re posed with the following question:

Reading through this question you know you need to write a block of code to validate the $request data.

You should also know that validation happens in Controllers.

As a starting point, you pull up a Controller file, for example, BookController.php from foobooks.

Scanning the code, you find this example:

public function storeNewBook(Request $request) {

    $this->validate($request, [
        'title' => 'required|min:3',
        'publishedYear' => 'required|numeric',

    # [...]


Borrowing from this example, you copy the relevant code...

$this->validate($request, [
    'title' => 'required|min:3',
    'publishedYear' => 'required|numeric',

And then adapt it to apply to the question at hand.

Note how in this scenario, while you might not have the exact notation memorized, your understanding of validation and Controllers, as well as your familiarity with lecture code, quickly gets you to the information you need.


If you have any questions about the above information, connect with me or your TA via Slack or Email.