|
| 1 | +# Principles and Practice in Programming Languages |
| 2 | + |
| 3 | +# Mini-Project: Fall 2016 |
| 4 | + |
| 5 | +- Draft script due Friday, December 2, 2016 |
| 6 | +- Final script and video due Friday, December 9, 2016 |
| 7 | + |
| 8 | +## Overview |
| 9 | + |
| 10 | +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 |
| 11 | + |
| 12 | +1. A short, approximately 5 minute presentation on your topic to be given in class. |
| 13 | +2. A final script and materials for your video/screencast. |
| 14 | +3. An approximately 10-15 minute video/screencast on your topic. The in-class presentation should be treated as a practice run to get feedback before creating the video/screencast. |
| 15 | + |
| 16 | +There will be two choices of topic for your mini-project: |
| 17 | + |
| 18 | +- 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](http://spark.apache.org/), 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. |
| 19 | +- **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. |
| 20 | + |
| 21 | +## Submission Instructions |
| 22 | + |
| 23 | +Submit your script in this repository in the this root directory *and* on [moodle](https://moodle.cs.colorado.edu) the following files: |
| 24 | + |
| 25 | +- Script: [script.md](script.md) or [script.pdf](script.pdf) with your recording script (using either Markdown or a pdf). |
| 26 | +- Recording: [recording.mp4](recording.mp4) with your video recording. Please use this standard format. |
| 27 | + |
| 28 | +**You will not get credit for submissions in other file formats.** |
| 29 | + |
| 30 | +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 this README below to explain your repository organization. |
| 31 | + |
| 32 | +For convenience, you might consider uploading a video to Vimeo to YouTube and noting a link here, but you still need to submit a .mp4 recording here and on moodle. |
| 33 | + |
| 34 | +## Repository Organization |
| 35 | + |
| 36 | +TODO: to be completed by the student authors. |
0 commit comments