Milestone 3: Research

Due Date: October 15 @11:59pm
Grading: Individual

As a developer, you need to be intimately familiar with the technologies you are or could be using. You need to understand the pros, cons, and requirements of each library and platform that is relevant to your project. Thus, you need to be up to date on technology and, since technology seems to be always changing, this will be something you need to do throughout your career.

Specifically, you need to

  1. Know about the various platforms available to you: their options and limitations.
  2. Know about the various libraries that you can use to make your work easier.
  3. Download, install, and build sample 'Hello world' apps using the most promising technologies. It is not enough to just read about it, you have to do it in order to learn.
  4. Learn how to use the specific GUI-, Widget-, Database-, Physics-, 3D-, whatever-library you choose to use for the project by building little programs.

In other words, you need to Read The Fabulous Manual (RTFM) for your chosen framework(s) before you start programming, and apply it to a non-trivial sample program. If you do not, your team will likely spend countless hours programming something that, after reading the manual, you realize is completely wrong and has to be thrown away. Everyone thinks they can just google their way to a working app. It won't work.

We Never Stop Learning

If you take a look at the technologies used last year for Capstone projects you will find an endless list: node, Angular, Unity, mongo, Qt, ASP.NET, ionic, react-native, Java FX, Django, kivy, and so on, forever. The fact is that there is a near infinite set of ever-evolving and changing technologies. No one can know all technologies, but no one is expected to either. You are only expected to always be learning.

In your career as a developer, say the next 40 years of so, you will be learning a new framework or a new programming language every year or so. If you do not, you will be unemployed within a decade. Our industry revolves around innovation. If you stop innovating everyone else will pass you by.

So, what you have to do for this Milestone is exactly the same thing you will be doing every year for the rest of your career: teach yourself a new platform, a new programming language, a new technology. We are here to help. Reach out to us if you need help.

Deliverables

  1. Each person must create their personal repo by following this link to create your repo.
  2. In that repo you will place your sample project built using your chosen framework. It will have multiple commits, all by you. Link to your personal repo from your Personal Log in the team repo. The project will be more than just "hello word", or cut-n-paste from a tutorial.
  3. You will demonstrate to us that your sample project works. This might happen during our meeting, or in a meeting with the TA.
  4. We might ask you to implement "one more feature" for your app, and give you a 24-hour deadline.

Grading Rubric

  1. No repo created, or empty repo, or repo without code: -50 points.
  2. Did not show teacher or TA a working app: -50 points.
  3. App is just "Hello World"-type app: - 0 to 30 points.