-
Peter Keleher authoredPeter Keleher authored
Group Project
Due: Dec 1, 2021, 11:59:59 pm, v1.03
Requirements
The Semester Project is intended to be the capstone to this course. Your team should use the basics we learned in the first half of the course as a springboard to a project that contains elements we have not discussed in class, or at least not in any detail. The requirements are as follows:
- build an app using novel technologies or ideas, where novel means
something that we have not discussed in detail in the class. Note
that in class
we will be doing a small amount of augmented reality, ofmachine learning, and networking with Firebase. These are still fine for the project. - write a five-ten page report describing the evolution of your ideas, the process you went through to end up at the final app, and of course the app project itself.
- A five-minute screen-capture video (with audio desribing the app's features). I will choose among these for the last full week of classes. Each such team gets a 10% bonus.
- Turn in the app. It must compile and work as in the video/presentation.
Group Assignment
This is totally up to you:
- You can form your own group if you know others that you want to work with.
- You can advertise for teammates for teammates on piazza at @5.
Groups sizes are three or fewer students. You may work alone, but I will require you to justify why you can now work in a group in an email directly to me. If I disagree, you will be placed in a randomly-created group.
I expect groups with either two or three members to produce projects of roughly equivalent sophistication. Individuals would be expected to do somewhat less.
Group Communication and Workspace
You and your teammates can communicate any way you wish. Elms (build your team under the "Semester Project" tab, not "Student Groups") has a mechanism to build group collaboration spaces that allow group members to message and share files. However, I expect email and messaging to be more commonly used.
Each group will be assigned a new gitlab repository for development once groups have been defined.
Topics
Your app topic should satisfy the following constraints:
- be a significant departure from what we have explicitly covered in class.
- be an app is more suited to a mobile device that somehow takes advantage of the abilities or characteristics inherent to mobile phones circa 2020, i.e. mobile, (almost) always-connected, good graphics, useful hardware (camera, audio and video recording, gyroscope, GPS antenna, etc.).
Your team must write up and propose a topic (see below for specifics). I may disallow it if I consider it not innovative/novel enough, or not sufficient for a month-long project with multiple team members.
You will generally be expected to use techniques and/or APIs that we have not discussed at length in class. The ARKit and machine learning libraries are expansive enough that I encourage you to build on what we discuss in class, if we get there. FireBase may or may be considered novel, depending on how you are using it.
Project Ideas
These are ideas, you can either choose one of them to build on, or define your own. However, you need explicit permission for a proposed app from Dr. Keleher before proceeding.
- Asteroids-equivalent arcade game (but NOT asteroids), including:
- spritekit,
- sound,
- artwork.
- Clever puzzle games, like ToonBlast
- Augmented Reality (ARKit)
- Placing Objects and Handling 3D Interaction
- Scanning and Identifying 3D Objects
- Pokeman Go-lite (ARSCNView)
- Apple watch complications
- Bike route planner / tracker
- track route with line on map
- export to a .fit
- upload to strava
- plan from current location (this would require google map sdk)
- Healthkit data mining and presentation.
- Machine learning:
- Models at https://developer.apple.com/machine-learning/models/, https://github.com/SwiftBrain/awesome-CoreML-models Build an app to recognize specific types of objects and pull up online information and links for those recognized objects.
- Something else.
Artifacts to be turned in
- Due 10/7 midnight:
- Weekly updates of current progress will be submitted each Sunday night starting by midnight 4/12, possibly via Google Forms. Exact format of this will be defined once we find out how many groups we have.
- What to Turn in 12/1: Final project, including video, due.
- write a five-ten page report describing the evolution of your ideas, the process you went through to end up at the final app, and of course the app project itself.
- A five-minute screen-capture video (with audio desribing the app's features). I will choose among these for the last full week of classes. Each such team gets a 10% bonus.
- Turn in the app. It must compile and work as in the video/presentation.
Grading
You grade for this project will be composed of:
- 25% novelty/innovation of idea
- 25% degree of difficulty
- 25% overall execution of product
- 25% overall polish, look and feel
These are rough overall guides. If you propose a beautiful new idea for an app but do nothing, you still get a zero. If your propose something beautiful and ambitious but run out of time you might still get a very high score.
The weekly checkpoints are not graded, but they are required, and will influence the final grade, especially if the project falls short in the end.
Submitting
More details of the group repositories and submissions are forthcoming.