name: inverse layout: true class: center, middle, inverse --- # Practice Quiz 6 Review Lauren Bricker CSE 340 Spring 2021 --- name: normal layout: true class: --- # Match the actions to each of the layers of the application stack. ![:img Practice Quiz 6 problem 1 Toolkit responses, 40%, width](img/review/toolkit.png) --- # Match the actions to each of the layers of the application stack. ![:img Practice Quiz 6 problem 1 high level tools responses, 40%, width](img/review/highleveltools.png) --- # Match the actions to each of the layers of the application stack. ![:img Practice Quiz 6 problem 1 application responses, 40%, width](img/review/application.png) --- # Callbacks Imagine you are developing a new driving game app. The app will contain at least one car, represented as `CarView` in the code. A `CarView` keeps track of whether it is on or off the route, and will inform any other object in the app that is "listening" when it has gone off the route. We will denote the listener as an interface `OffRoute` that requires one method `goneOffRoute()` to be implemented as the callback when the driver’s vehicle deviates from the route. Correctly label each method call, based on what object (Application, View, or Neither) you would use to call it, and where you would put the code to implement it. --- # Callbacks - `goneOffRoute()` is called by [appview1] and implemented in [appview2] - `setOnOffRouteListener()` is called by [appview3] and implemented in [appview4] .left-column50[
sequenceDiagram participant Application participant CarView participant CarModel Application->>CarView: setOnOffRouteListener(this) CarModel->>CarView: Deviated from road CarView-->>Application: goneOffRoute()
] .right-column50[
classDiagram class OffRoute { } class CarView{ #offRouteListenerList +setOnOffRouteListener() } class Application { goneOffRoute() } OffRoute <|-- Application : Implements CarView --> "many" OffRoute : Contains
] --- # MVC Imagine you have a system for unlocking a door using voice commands. .left-column50[ ![:img Practice Quiz 6 problem 3 voice commands, 90%, width](img/review/voicecommands.png) ] .right-column50[ ![:img Practice Quiz 6 problem 3 voice commands student answers mostly right, 90%, width](img/review/voicecommands-a.png) ] --- # MVC Imagine you have a system for unlocking a door using voice commands. .left-column50[ ![:img Practice Quiz 6 problem 3 voice commands, 90%, width](img/review/voicecommands.png) ] .right-column50[ ![:img Practice Quiz 6 problem 3 voice commands student answers mostly right, 90%, width](img/review/voicecommands-b.png) ] --- # MVC Imagine you have a system for unlocking a door using voice commands. .left-column50[ ![:img Practice Quiz 6 problem 3 voice commands, 90%, width](img/review/voicecommands.png) ] .right-column50[ ![:img Practice Quiz 6 problem 3 voice commands student answers mostly right, 90%, width](img/review/voicecommands-c.png) ] --- # Capture/Bubble Given the following screen and interactor hierarchy, where V0 and V4 are decorative and do not respond to input. .left-column50[ ![:img Practice Quiz 6 problem 4 picklist capture and bubble image, 90%, width](img/review/picklist-quiz.png) ] .right-column50[ A lot of people didn't answer these problems. - The picklist is {V6, V5, V1, V3, V2, V4, V0} - The filtered picklist is {V6, V1, V3, V2} - The capture order is {V2, V3, V1, V6} - The bubble order is {V6, V1, V3, V2} ] --- # Bike What regions would define your EssentialGeometry in order to correctly identify the 3 regions (positions with respect to the arrow). .left-column50[ ![:img Practice Quiz 6 problem 4 picklist capture and bubble image, 90%, width](img/review/bike.png) ] .right-column50[ Take aways: This question needs to be re-designed for an autograded canvas quiz. A lot of people used INSIDE, OUTSIDE instead of what the matching was looking for: - DOUBLE - STOP - SCROLL ]