diff --git a/groupProject/groupProject.md b/groupProject/groupProject.md new file mode 100644 index 0000000000000000000000000000000000000000..f789c04b83f4c1c3dea465c698b4660cf4804004 --- /dev/null +++ b/groupProject/groupProject.md @@ -0,0 +1,141 @@ +# 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~~, of + ~~machine 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](https://piazza.com/class/kqis2c9qzre3wr?cid=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](https://myelms.umd.edu/courses/1275375/groups#) (**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: +1. be a significant departure from what we have explicitly covered in +class. +1. 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. + +## Artifacts to be turned in +1. **Due 10/7**: 1-2-page PDF document with/ + - Project Name + - Group Name + - Group Members (names) + - Minimal product goals (1 paragraph) + - Stretch goals (1 paragraph) + - Projected timeline, w/ milestones and assignment of work to group members. + - Sample [here](sampleSemesterProjectWeek1.pdf) +1. 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. +1. **What to Turn in 5/10**: 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. + +# 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. + +1. Asteroids-equivalent arcade game (but NOT asteroids), including: + - spritekit, + - sound, + - artwork. +1. Clever puzzle games, like ToonBlast +1. Augmented Reality (ARKit) + - Placing Objects and Handling 3D Interaction + - Scanning and Identifying 3D Objects + - Pokeman Go-lite (ARSCNView) +1. Apple watch complications +1. 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) +1. Healthkit data mining and presentation. +1. Machine learning: + - Models at + [https://developer.apple.com/machine-learning/models/](https://developer.apple.com/machine-learning/models/), + [https://github.com/SwiftBrain/awesome-CoreML-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. +1. Something else. + +## 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. diff --git a/groupProject/sampleSemesterProjectWeek1.pdf b/groupProject/sampleSemesterProjectWeek1.pdf new file mode 100644 index 0000000000000000000000000000000000000000..04be603c4d9f39934fa9b28a67849d0ab2152e03 Binary files /dev/null and b/groupProject/sampleSemesterProjectWeek1.pdf differ diff --git a/groupProject/sampleSemesterProjectWeek3.pdf b/groupProject/sampleSemesterProjectWeek3.pdf new file mode 100644 index 0000000000000000000000000000000000000000..589e23273c1bc1066b902779892f26bbf4a67a93 Binary files /dev/null and b/groupProject/sampleSemesterProjectWeek3.pdf differ