Final Exam

  1. Instructions
  2. Setup
  3. Scenario
    1. Requirements
    2. Hint
  4. Grading

Instructions

  1. Your final must be submitted by 11am.
  2. If joining remotely, you must be on Zoom until you submit your final.
  3. I will post updates, clarification, corrections, and answer questions on Zoom and summarize changes on a slide shared through Zoom.
  4. The exam is open book and open notes. You may Google and use online resources, but you may not use any code generation tool. Doing so is an Honor Code violation.
  5. You must complete the exam on your own.
  6. If you have questions and are online, type them in Zoom chat or send me a Slack message.

Setup

  1. It would be a good idea to run flutter upgrade first.
  2. Follow this link to GitHub: https://classroom.github.com/a/-Ho3O9PJ.
  3. Select your name from the list.
  4. Click “Accept the assignment” on the next page.
  5. The next page will say “You accepted the assignment…” Click on the link to your assignment repository. You may have to refresh the page a few times before the link appears as GitHub takes a second to create the repository.
  6. Your project repository will have an empty Flutter application in it along with a file lib/questions.dart.
  7. You are now ready to check out your code using Git and open the folder in VSCode. Instructions for checking out the project from Github using VSCode can be found on the Assignment 2 page.

Scenario

A customer has requested a hi-fidelity (semi-working) prototype for an idea they have.

The customer wants a simple quiz application. They have provided the following lo-fidelity prototypes. It is two screens. You will implement the customer’s ideas in the time allotted.

I suggest you right-click the image and “Open in New Window” Prototypes

Requirements

  1. Your app must have two screens: the “home screen” containing the quiz questions and the question screen.
  2. Your goal is to implement all the items in the purple boxes and each enumerated item in the red boxes. The order is up to you.
  3. A Question class is defined in questions.dart. You must use the Question.questions static list in this file, which provides a small set of provides Questions.
  4. You may use any widgets you choose. You may define your own widgets. Your goal is to meet the layout, styling, and interactivity requirements in the box. How you do that is up to you.
  5. The Question Screen will be a Stateful widget.

Hint

  1. The Question Screen can be tricky depending the organization of your widgets. The Question screen will be easiest with everything in one “screen” widget so that the selected answer and the “Correct!/Wrong!” message are updated at the same time in one place based on the selected answer tap.
  2. You are not required to use ListView or GridView, but they will make life easier in the long run.

Grading