Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
162 changes: 162 additions & 0 deletions _posts/2018-05-01-day-26.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,162 @@
---
categories: [website]
---

{% include toc %}

## For Next time
* prepare your materials for the Final Demo session
* Tuesday, May 8, 12:00 PM

### Final Demo session schedule

* 12:00
* all students arrive in AC326 and AC328.
* we will watch a playlist of <2 minute videos created by each SoftDes team while we set up demo stations.
* each team will be given a place on a whiteboard to hang the project poster and a table to set up a demo.
* the teaching team will thank the students and have closing remarks.
* we jam into one studio and take a class photo.
* 12:30
* guests arrive.
* at least one team member will remain at demo stations while other team members enjoy the open house.
* light snacks are available.
* 2:30
* teams begin to clean up when guests leave.
* time is available to complete course evaluations.

### Before the Final session
* finalize your poster, website, and video/animated gif
* sign up with NINJAs to get help if your team wants assistance recording audio and video for your <2-minute project video.
* This week's SLAC will have several NINJAs in the Library's doc lab
* other times are available, up until the morning of the Final Demo session

### 2-minute Video Presentations

We are eliminating the live project presentation and website demo video requirements and replacing them with a single deliverable: a ~2 minute video presentation telling your story to an external audience.

The video will explain your goal (what the project is all about) and demo your work in action. It might also introduce the problem domain in service of saying why your project is interesting or explain some crucial implementation details, but remember that 2 minutes is pretty short.

There are two main routes you can take to create this presentation:
- video with audio narration
- "silent film" with title cards and/or text overlay explanations

Below are some recipes to help you accomplish this technically, but for either path today's deliverable is the same: ***Create a script and storyboard for your presentation and show it to your studio faculty member*** either in-class or by email.
Once this outline is finished, you should start generating content for the video/animation.


#### Silent film option

From your storyboard, combine a series of still images and/or short GIF clips into a longer animated GIF. There are several tools you can use to do the stitching:
* [GIFMaker.me](http://gifmaker.me/) - recommended
* [Clip Champ](https://app.clipchamp.com/editor)


#### Video option

We recommend the instructions for creating an [Ubuntu screen cast](https://wiki.ubuntu.com/ScreencastTeam/RecordingScreencasts) using [Pitivi](http://www.pitivi.org/) for stitching together a video. Note that you can also use this flow to create a "silent film" with a bit more control.

#### Recording audio

Since it's difficult to get a demo and your narration right at the same time, we recommend that you first create your video and then record an audio voiceover using Audacity, then compose the two using Pitivi.

#### Capturing your program in action

For still images, there is a Ubuntu built-in tool called [Screenshot](https://help.ubuntu.com/lts/ubuntu-help/screen-shot-record.html) that will allow you to capture the entire screen, one window, or a region you select.

There are many options to record video of your screen, but for Ubuntu we recommend you start by trying [Peek](https://github.com/phw/peek). To install:

```
sudo add-apt-repository ppa:peek-developers/stable
sudo apt update
sudo apt install peek
```

If you want to use the video clips with Pitivi (below) you should record as MP4.
To embed short interactions directly on your project webpage, you can also save as a GIF.

If you saved as a GIF and you need an MP4 to work with Pitivi, you can convert it using ```ffmpeg```:

```bash
ffmpeg -i foo.gif foo.mp4
```

#### Generating title slides and text overlays

Regardless of what implementation technology you use, you will likely want title cards, transitions, and credits (don't forget to add your names and give credit to resources you use). There are many options to generate these still images, including:

- Use a photo editor to add text overlays to screenshots. The NINJAs have created a [nice guide](https://docs.google.com/document/d/1FX9MCTKgzSn73iF24vFpg69Rrl6vLXkg3Gi8xkz5Lbk/edit?usp=sharing)
- Use presentation software (e.g. Google Slides) and download the slide as an image
- Screenshot from a presentation
- Use magic markers and scan it in


## Some Software Design Topics We've Explored

### Professional skills
* Where to find information
* Google
* Stack Overflow
* Tools
* git
* GitHub
* command line
* Python 3.6
* text editors / IDEs
* Jupyter notebooks

### Programming with People
* Collaboration techniques
* Divide and conquer
* Pair programming
* How to talk about code
* Architecture reviews

### Visualizing a program
* “state diagrams” (Python Tutor “frames”)
* call graphs
* class diagrams
* UML diagrams

### Engineering and design practices
* specification and implementation
* noticing recurrent failure patterns
* encapsulation and modularity
* comparing alternatives
* tradeoffs in general
* between specificity and abstraction
* how much to test
* how long to make a variable name
* efficiency vs readability
* identifying appropriate Packages
* healthy approaches to APIs and keeping keys safe

### Techniques
* caching
* unit testing
* MVC
* optimizing, debugging
* tiny increments – one change at a time
* 5 whys

### Dynamic view of project
* commit history

### Python concepts
* variables
* functions
* data structures
* loops
* classes
* inheritance
* exceptions
* modules

### Sampled topics
* bioinformatics
* graphics / data visualization
* text processing
* web scraping
* artificial intelligence / machine learning
* recursion
* complexity
* interactive gaming