Final Project: Exploring Other Programming Languages and Platforms

Table Of Contents

Explore a programming technology or platform that you’ve been curious about. This can be anything reasonable. Your goal should be to develop a sufficient understanding and working knowledge to implement programs of similar scope to our lab programs.

Ideally, this will be a group project, and the first step is to come up with an idea. It may take some time to solidify and refine your idea, so please start thinking early!

There are many excellent online resources and classes for learning new languages and development platforms. If you spend a little time looking around you are likely to find something that can be used for our purposes. Here are two examples that would both provide ample opportunity to learn something different:

A key benefit of these online classes is the inclusion of integrated assignments to work through as you learn the material.

There are a number of milestones to ensure you stay on track.

General Requirements

  1. Work in groups of 1-4, although I strongly encourage you to work in groups of two or three. If you would like to do an individual project or work in a group of 4, please chat with me ahead of the first deadline.
  2. Your learning objectives should be non-trivial and fit within the ~3 week timeframe for completing the bulk of the work. I can help refine your objectives to fit within the time we have.
  3. Appropriate attention to the course themes — specification, design, programming, documentation, style, testing, etc. — as you proceed.
  4. A short presentation of your work.

Phase 0: Groups

Form your project group and propose an initial idea for a topic. A sentence or two is sufficient.

Deliverables

Send me an email with the above items.


Phase 1: Vision Statement and Requirements

Develop the requirements your project should meet.

Deliverables

A Project Write-Up including at least the following sections.

  • Group Name and Members
  • Vision Statement: Summarize your objectives in one paragraph.
  • Resources: What are the primary resources you will utilize. What software/hardware do you need?
  • Syllabus: List of topics you will explore.
  • Deliverables: How will you demonstrate what you’ve learned? Possible deliverables:
    • List of assignments from an online class you will complete.
    • A small program of your own design, if sufficient time.

Since you may collaborate on writing this, I suggest either:

  • using a Markdown document stored in a git repository, or
  • using a shared GoogleDoc.

In either case, you can simply invite me to view the contents before the deadline. (Using git will be required starting in Phase 2.)


Phase 2: Initial Work

  1. Begin working through your syllabus, updating your Phase 1 Document to reflect any changes you make along the way.

Deliverables

  1. Your updated Project Write-Up.
  2. Your git repository containing all work you’ve done to date.

    The project should have a README.md. You don’t need to repeat items from your Write-Up, but please include at least the following section:

    • Overview: A short paragraph or list describing the current status. What have you done? What’s next? This will help me evaluate the work done and make constructive suggestions, and it will help you keep your group organized and stay on task for the next part.

Phase 3: More Work and Presentation

You should have covered most of the topics in your syllabus.

At this point you will give a short presentation to me on what you’ve done. Sign up for a time slot in Glow on or before the Phase 3 deadline. More details can be found on the Giving a Presentation page.

While not required, you are free to sign up for additional times slot in Glow to meet with me to discuss your progress at any time.

Deliverables

  1. Your updated Project Write-Up, README.md. Both should be updated to reflect any changes to the scope of the project.
  2. Your git repository containing all of your work.
  3. Your presentation.

Phase 4: Final Demo, Completed Project, and Write-Up

You will demonstrate your app to me and wrap up all work, and all work on the project should be complete.

You must sign up for a time slot in Glow before or on the Phase 4 due date.

Deliverables

  1. A demonstration.
  2. Your updated Project Write-Up, README.md. Both should be updated to reflect any changes to the scope of the project or to the implementation or testing plans.
  3. Your final push to Gitlab.