Skip to content

Milestone 3: Research

Due Date

Due Date : October 13
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) and use that knowledge to build a sample app. Many beginners think they can just google their way to a working app This works the first few weeks, but completely fails once your app starts to implement non-trivial features.

We Never Stop Learning

If you take a look at the technologies used last year for Capstone projects you will find a long list of technologies: node, Angular, Unity, mongo, Qt, ASP.NET, ionic, react-native, flutter, Java FX, Django, kivy, and so on. There is a very large set of ever-evolving and changing technologies in the Software business. 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, you will be learning a new framework or a new programming language every year. If you do not, you will be fired in less than a decade. Our industry revolves around innovation. If you stop learning 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.


  1. Each person must create their personal repo by following this link to create your personal repo at GitHub. Your repo will have the name m3-yourusername.
  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. The TA’s will setup times when you can drop by. Alternatively, you can post a youtube demo of your app, or publish it on the web if it is a webapp.
  4. We might ask you to implement “one more feature” for your app, and give you a 24-hour deadline.

Grading Rubric

Grade is 100 minus the total points lost, with minimum of 0. See grading scale in Syllabus. Points lost are:

  1. No repo created, empty repo, repo without code, repo with code irrelevant to project: 0–50 points.
  2. Did not show teacher or TA a working app: 0–50 points.
  3. App is too simple, just a “Hello World”-type app: 0–30 points.