Need help designing a semester final project for AP CSP

I was going to assign the hackathon project for Unit 5 for the first semester final assessment, but we didn’t get through traversals. So my plan now is to modify the Flashcard/Study Quiz App project that code.org has so that it will include functions, lists, and loops. My idea is to have them create a list of the vocabulary terms they have learned this semester in our class, and have a definition and/or a screenshot of an example for the back of the flashcard. I need help wording the instructions for this extension of the project, and also how to assign it so students can submit their final project to me. Can anyone help me with this? Their final is on Thursday 12/17. This is what I have adapted from the project guide for the flashcard app.https://docs.google.com/document/d/1d4S2kPktkDp034bU0jJljElddEmgyHvBvgEQD7cyUEI/edit?usp=sharing

Hi @erogers Emily!

Is there a particular part of the wording you’re having trouble with?

For assigning a final project on App Lab, there’s a couple ways I can think of or have tried in the past:

  1. Have students do the work in a new App Lab project, which they can get to from their Dashboard, in the “Start new project” section => App Lab

    To submit the project, they click “Share” to get a link and they submit the link.
  2. Find a bubble in one of the lessons that is for submitting an App Lab project. Tell the students to ignore the on-screen instructions and to follow your separate set of instructions. They’re using that page just to submit a project.

Method 1 is guaranteed full App Lab capabilities, whereas depending on which bubble you repurpose, Method 2 may not have all App Lab blocks/toolboxes available.

Method 2 has the advantage of teacher tracking features - like being able to track the green circles from the teacher dashboard.

Not sure if that was what you were asking about… :thinking:

Frank

Thanks so much for your help, Frank! I worked on it quite a bit yesterday, and I came up with a doc for the final version of the project here. The wording I’m struggling with is around the concept of adding functionality to the basic flashcard app that is provided on code.org. I was able to design one myself that includes lists. https://studio.code.org/projects/applab/lkf4fIjXelsXmSbYhM0XfaPLyFogVdgrxE0rTxm2gMA. It’s still kind of rough, but I wanted to see what was possible. I’d like students to add a function and a for loop as well to demonstrate that they know how to do that. I can’t quite think of what the purpose of those would be in this app. Can you see how they might incorporate the concepts of functions and loops here?

Thanks again!
Emily

Hi @erogers,

Sorry for the delayed reply!

Hm, I can definitely see the challenge in trying to shoehorn in a couple concepts.

Not sure if this will open the door to other issues, but I might loosen the boundaries of the project a bit to allow and encourage more divergent/creative thinking. For example, maybe instead of specifically a flashcard app, you can make it a general study/review app (and students are welcome to start with the existing flashcard app as their foundation). This could open the door to additional “features” (or just entirely separate apps), like a quiz feature, or kind-of anything, and then the students just have to justify how it helps studying (maybe the justification is really where they exercise their creativity lol).

Other than that, I feel shoehorning features is actually pretty difficult. For functions, one could create a “restart” feature that performs a sequence of events and can be triggered by a button on any screen (thus the need for a function, otherwise having just one button at the end would call for just a single onEvent).

It looks like there’s a good opportunity to incorporate lists (and functions), although I don’t remember if the curriculum has gotten this advanced at this point. Students might notice the large amount of manual code required for each additional flashcard and may be prompted to think of a more efficient way to just have some “next card” function that just get passed a word/definition (possibly from say… a list(s)? :open_mouth:) (disclaimer: I haven’t thoroughly run this through my head so I don’t know how feasible/challenging it’ll be)

I get zero points for turning this in late.

I think Frank is on the right track here. Use lists [aka Array] for the card’s front and back. Unit 5 is all about lists. I think you want to put the terms and definitions into arrays like this:

They can then add a third list to track the score. Add a button for I knew it and I didn’t know it. In the end, they would presumably have to traverse the list to total the score. I think we call that multi-lists or something like that.

They could add functionality to show cards randomly, but only once. That forces them to create a list to track if it was used yet or reuse the score list with a third possibility.

Thanks for the suggestions, Frank! Most students followed the suggestion I gave them of creating a list with the flashcard terms and then adding a “randomize” button to have the app choose a random card from the list of terms for them to study next. Some took it a step further and turned it into a multiple choice quiz app. It was a pretty successful project, overall. Everyone was able to complete it, and most did really well.

Wow, this looks much better than what I came up with! Thanks for taking the time to create this demo app. We hadn’t covered traversals yet before the semester ended, so I just had them create a list and then do a randomize button to access a random card.

Glad to hear things worked out! Thanks for the update. :slight_smile: