Skip to content

Latest commit

 

History

History
44 lines (26 loc) · 4.03 KB

instructions.md

File metadata and controls

44 lines (26 loc) · 4.03 KB

Principles and Practice in Programming Languages

Mini-Project

Overview

For the mini-project, you will develop a video/screencast tutorial with a team of three. The final deliverables for the mini-project will be

  1. A project repo with a README.md project page.
  2. Code and other materials for someone to follow your video/screencast linked and described in your README.md.
  3. A final script for your 10-15 minute video/screencast in your README.md.
  4. A 10-15 minute video/screencast on your topic.
  5. If time permits, you may be asked to give a short 5 minute presentation on your topic in class. The in-class presentation should be treated as a practice run to get feedback before creating the video/screencast.

There will be two choices of topic for your mini-project:

  • Pick a software framework about which you would like to learn. Download, explore, and learn about the software framework before producing your video. Given the short timeframe, you may follow an existing tutorial about the framework as the content for your video. For example, you might say that you want to learn about Apache Spark or React, so you find a web-based tutorial as the basis for your video content (be sure to cite your sources!). However, in your video, you must connect something about the software framework to the course content. This requirement is typically easy to satisfy because just about any software framework will make repeated use of the core concepts of this course (e.g., functions are values, code as data, callbacks and higher-order functions, abstract data types). Your task is to identify instances of these concepts occurring in the software framework.
  • Or, pick a topic from the course about which you would like to review. Develop some new examples and/or exam-like questions on which to base your video tutorial on the subject. If you choose this route, you must create new content (e.g., examples, illustrations) for the basis of your video. For example, you might say that you want to review "encapsulating computation" and DoWith, so you develop some new examples to illustrate Option, List, and DoWith in a different light. Challenge yourself to think about explaining the concept in a different way than me. You can also redo, for example, Lab 3 using a different implementation language (e.g., C++ instead of Scala).

Be creative!

Submission Instructions

Upload your recording to YouTube, link it from your README.md, and add it to the YouTube playlist given on Canvas. Instructions for contributing to a YouTube playlist are available here.

And push the following files in this repository in the this root directory and a .zip of this repository on Canvas:

You will not get credit for submissions in other file formats.

For the other materials that you develop (e.g., example code, script sources, recording sources), please commit them to this repository. All of these materials will be considered as part of your evaluation. Edit the README.md to explain your repository organization.

Examples

Some example tutorial video/screencasts to consider as you put together your project.

  • Baseline: reduce and fold (in Scala). This video tutorial is baseline example you can consider as a good target.
  • Reach: Insertion Sort. This video tutorial can be considered an example to inspire some additional creativity.