Skip to content
Snippets Groups Projects
Commit 73ddf596 authored by Peter J. Keleher's avatar Peter J. Keleher
Browse files

Merge branch 'master' of gitlab.cs.umd.edu:keleher/iosstudents

parents 06dc9afe 7bb19b9b
No related branches found
No related tags found
No related merge requests found
# Assignment 3: Fancy Triples
**Due: Mar 29, 2020, 11:59:59 pm, v1**
**Due: Apr 5, 2020, 11:59:59 pm, v1**
## Goals
......
# Group Project
**Due: May 3, 2020, 11:59:59 pm, v1.01**
## Requirements
The group 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.
- Either a five-minute screen-capture video (with audio desribing the
app's features), or a seven-ten minute presentation in class. Every
team that signs up gets a 10% bonus, even if we do not have time to
show your presentation (though in that case you will need to do a
video.
- 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
[@6](https://piazza.com/class/k602f3dx9xi6ru?cid=6).
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#) 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.__
## 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. FireBase may or may be considered novel, depending on how you are using it.
## Artifacts to be turned in
1. **Due 4/5**: 1-2-page PDF document with/
- Project Name
- Group Number
- Group Members (names)
- Minimal product goals (1 paragraph)
- Stretch goals (1 paragraph)
- Projected timeline, w/ milestones and assignment of work to group members.
You will be assigned to a TA who will be your ***advisor*** for the
life of the project.
1. Weekly updates including current progress will be submitted to your
advisor each Sunday night.
1. **Due 5/3**: Final project, including video, due.
1. Sample [here](sampleSemesterProjectWeek1.pdf).
# Project Ideas
You **must** choose one of these idea. You should obviously build on it, but
any project that is not one of these, without explicit permission from Dr. Keleher, gets a 0.
1. Asteroids-equivalent shooter game, including:
- spritekit,
- sound,
- artwork.
1. Augmented Reality
- Pokeman Go-lite
- Grocery store ingredients scanner (for those with sensitivities to
specific ingredients
1. AVController for recording audios of people’s voices and plays with them adding different effects
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. Cryptocurrency/Stock price tracker
- Get price data as a stream (NSURLSession)
- Add streams to current app instance
- Display graphs, compute price indicators based on data
1. Healthkit data mining and presentation.
1. Local events: Swipe to find events, and event hosters can swipe to match with who they want to invite.
- GPS to find events based on location
- Basic UI with swipe gestures, notifications, etc.
1. Location based messaging app. All users would be anonymous, and can choose to see and reply to posts made within a radius of their choosing.
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. Proximity-based swapping, messaging.
- Use app-generated QR codes the camera to get an anonymous
handle. Even better if the messaging is secure.
1. Weasley magic clock (inspired by Harry Potter)
- clock laid out with pre-specified locations (home, work, gym..)
- arm for each family member / friend, pointing out where they are
- intelligent interpolation for intermediate states
## 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.
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment