Homework7 (Mini-Project) (due Sat 10-Oct at 8pm)


Please note the homework policies in the syllabus.
Note: grace days cannot be used for this assignment.
Assignment
For this assignment, you will create an original app of your choosing that showcases your coding skills along with your AI skills. You are expected to invest at least 6 hours of earnest effort which should be plainly evident in the size and quality of your submission.

By "original", we mean "original to you". That is, something you have not built before. It is acceptable if someone else built something similar. Thus, you can build your own version even of a popular app.

Expectations
This counts as a single homework grade (for Hw7), which means it counts for about 1% of your semester grade. As such, we are not expecting heroics. But we are expecting quality work that clearly demonstrates the required effort.

Starter Files
To get started, first download hw7_koz.zip. When you unzip the file, it will create a folder named 'hw7_koz'. Rename the folder by replacing 'koz' with your andrew id. Then edit the files in that folder as noted below. If you are unsure how to do this, please attend OH by Wednesday and our TAs will assist.

Policies
Here are some important policies regarding this assignment:

  1. You must work outside of CS Academy. We recommend that you use Kiro or VS Code, whichever you have been using for our labs so far.

  2. Your app must be written in Python or JavaScript and must be richly interactive. It also must be graphical. We strongly advise that you use CMU Graphics, but this is not strictly required. We caution you that AI will lead you away from CMU Graphics and encourage you to use other more-complicated graphics packages. But if you tell AI to "use CMU Graphics with MVC", it will do so.

  3. You must store your project in a folder named "hw7_andrewID" (where of course you use your andrewID -- so something like "hw7_koz").

  4. You must keep a log of all your AI prompts (at least 5 of them) and the responses to them. Store this in a subfolder named "ai_prompts". You can place them in a single file in that folder, or in multiple files in that folder, whichever is easiest for you.

  5. You must keep a log of all the time you spend earnestly working on the project. Store this in the project folder in a file called "time_log". Each entry should include a date, a start time, end time, total time (in minutes), and a very brief description of what you did in that time. At the top of the file, the first entry should be the total time in minutes you spent earnestly working on the project.

  6. You must work solo and create your own unique project. However, you are free to use any resources and discuss your project with anyone.

  7. You must create a file in the project folder named "citations". In this file, list all the resources (including AI) that you used and a very brief description of how you used the resource.

  8. While you may (and in fact you must) use AI, you also must not overuse AI or any other resource. Specifically, you must be sure that you understand your project's design and that you also fully understand every single line of code that you submit. No exceptions.

  9. You must create a submission video (see below) that you upload (to Google Drive or YouTube, for example). Then include a link to that video in a file in the project folder named "video_link". Please be sure that we can view this video without a password. To be sure of that, access the video yourself from a private browser.

  10. You must meet once during Week7 with a TA for 15 minutes to discuss your project. This required meeting is meant to help you select a well-chosen project with a sound design. You will be graded on showing up on time, being attentive, and participating fully.
Submission Video
When you are ready to submit, you must create a submission video. Submissions without a compliant video will not be graded and will receive a 0 for the project.

The video must be a screen recording with your narration and must be no longer than 5 minutes in total. We will not view or grade anything after 5 minutes. We recommend using Zoom screen recording, OBS studio, or (on a Mac) Quicktime for this. If you do not know how to do this, go to OH before Friday and our TAs will assist.

The video should have 3 parts:

  1. Project Demo
    Start with a 1-minute demo where you show your app running. Do not show every feature, just focus on what the app does in general. Then showcase one or two of what you consider to be the best, most interesting features.

  2. Project Design
    Next, include a roughly 1-minute segment where you discuss the overall design of the code.

  3. Code Review
    Finally, use the remaining 3-minutes-or-so to walk through the code. Find the parts that are less obvious, and explain how the code works so that the viewer can be confident you understand your code.
    • This is a critical part of your submission. It is not enough for you to understand all your code. Your video must make it clear to us that you do so.
Submission
By the project deadline, you must submit a zip file of your project here. If you do not know how to make a zip file, go to OH prior to Friday and our amazing TAs will gladly assist. To be sure your zip file works properly, prior to submitting you should unzip it and verify the contents of the unzipped folder.

Your zip file must contain your project folder, which includes:
  1. All the files required to run your project.
  2. The "ai_prompts" folder (see above).
  3. The "time_log" file (see above)
  4. The "citations" file (see above)
  5. The "video_link" file (see above)
Your zip file must be no larger than 1MB. This is a hard limit, so do not use too many large media files.

Grading
You will be graded as such:
CategoryWeightNotes
Effort50% Fully half your grade is based solely on earnest effort. Just put in 6 solid hours of earnest effort and you will be fine. Be sure to record this in your time_log file.
TA Meeting 5% Be sure to show up on time to your required TA meeting with good ideas about your project, and remain fully engaged and participatory throughout the meeting.
Spec 5% These points are based on your project submission zip file matching the spec above, with all the required files and folders containing all the specified data.
AI Use10% This requires that you use AI effectively. Do not use a one-shot prompt. You must include at least 5 well-considered and substantively different prompts. Be clever with your prompts to help you design a lovely app you can be proud of. And be sure to keep a record of all your prompts and their responses in your ai_prompts folder. Note that submissions with notably poor AI use (either overuse or underuse) may result in deductions beyond 10%.
Code Understanding10% This is based on you clearly demonstrating that you understand all of the code you submitted. Even a few poorly understood lines will result in losing these points. Note that submissions with multiple lines of poorly understood code may result in significant deductions, perhaps leading to a 0 on the project (and in the worst cases, perhaps leading to an AIV, so please do not do this).
Code Quality10% Your code should be well-written, without any extreme violations of our style guidelines.
App Quality10% This is based (subjectively) on the app being interesting, engaging, and coherent. Note that submissions with very poor app quality may lose more than these points, perhaps leading to a 0 on the project.

Our TAs will grade your project based on the contents of your submission folder and especially on your submission video. If we have concerns, especially about your effort or code understanding, you will have to meet with a TA or course faculty after Fall Break for an in-person grading session.

Early-Bird Bonus
To encourage you to start early, and to help us spread out grading, anyone who submits their project by Wed 7-Oct at 8pm (and does not resubmit the project later) will receive an Early-Bird Bonus of +2 points.

Have Fun
This is meant to be a fun project (truly!). So long as you put in earnest effort, and follow the spirit of this assignment, you should get a solid grade. So don't worry about the grade. Instead, focus on having fun and building something you can be proud of.