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
- A project repo with a README.md project page.
- Code and other materials for someone to follow your video/screencast linked and described in your README.md.
- A final script for your 10-15 minute video/screencast in your README.md.
- A 10-15 minute video/screencast on your topic.
- 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 illustrateOption
,List
, andDoWith
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!
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:
- Script: script.md or script.pdf with your recording script (using either Markdown or a pdf)
- Recording: recording.mp4 with your video recording. We ask that you use H.264 for video and AAC for audio (see https://vimeo.com/help/compression to make it easier to share later). Please use this standard format.
- Slides (if you use them in your recording): slides.pdf and slide sources (e.g., slides.pptx or slides.key).
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.
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.