Brainstorm for Program

My partner and I decided to make a simple quiz

Questions and Answers

Q1: What does SUV stand for?

A1: Sports Utility Vehicle

A2: Semi Utilitarian Veteran

A3: SUper Van

A4: Slightly Upset Volvo

Q2: Which unique number helps the manufacturer identify your vehicle?

A1: VIN

A2: License Plate Number

A3: MSRP

A4: Radiator

Q3: What part of ChrisFix's car failed in the 24 hours of Lemons?

A1: Blinker Fluid

A2: Piston Return Spring

A3: Piston Connecting Rod

A4: Camshaft

Final Result

Discoveries, Challenges, and Successes

  • Block coding is a great introduction to a new language
  • It takes a long time to figure out how to program something you have in your head
  • There are various issues that come along with a theoretical plan
  • I was able to program my quiz so that the first question would be graded and the user could move on to the next question, but from there, I had a lot of trouble continuing that loop until the third question was answered (EDIT: I was able to find a way for this to work using stacked buttons)
  • Developing a good program takes a lot of trial, error, and debugging to make sure everything runs smoothly
  • I was able to build the quiz successfully eventually, you can access it here or in the embed above

Program and Purpose

This program is a simple 3-question quiz about random automotive knowledge. It doesn't really have a purpose other than helping us experiment with AppLab and having something to submit for this hack

Data Abstraction

We used a data table with all of the question and answer values that we needed. We also figured out how to take values from that table and display them on the virtual screen using getColumn.

Managing Complexity

We originally were going to use button elements for the user to select an answer, but that would have made it a lot more complex to code, since they were able to select more than one choice at a time by default. Instead, we decided to use radio buttons, which only allow one selection at a time. This made it simpler to code, but also resulted in us having to figure out how to link those buttons to the choices they represent.

Procedural Abstraction

We utilized procedural abstraction in the Display function. This function displayed the question and the answer choices for a given problem (based on the parameter that is set when calling the function). For example, if the parameter is set to 0 and we call the Display function, it will display question #1 with its corresponding answer choices.

Algorithm Implementation

One algorithm that we programmed was to recognize which choice the user has selected and display different things in the answer indicator box after the check button is clicked based on if that choice is recognized as correct or incorrect.

Testing

After we finished a simple draft of the quiz, I asked another partnership to test it out and give us some tips. I also asked other people outside of class for feedback. One thing someone suggested was to add a start screen and an end screen. Another piece of feedback was that the user should receive a score at the end, so we implemented a start screen with a start button and an end screen that displays the score and a button to try again (which dumps the user back to the start screen).

Alternate App Idea

I think that programming an app where the user is able to create and store virtual flashcards would be interesting.