Day 27
Studio Time for Day 27 - videos
Final work deadline
- Everything is due Thursday night (and then you are almost done with SoftDes)
- we cannot accept any work (current or make-up assignment) after Friday 5/8 and there are no exceptions per Olin policy
- Please let us know how Software Design might improve moving forward
- fill out this survey by Friday at 5PM EST to make sure that your opinions are heard
For Friday
- Friday’s class is a celebration
- Depth teams will have time to share their screens to show what they’ve been cooking up (optional)
- Depth teams: please answer the two questions that are a part of this assignment by Thursday 5/7 noon EST
- 1) YES! We want to talk about and/or demo our project during the final virtual session, or
- 2) NO! It’s been fun, but we’re done - we shan’t share about our project during the final session.
- Depth teams: please answer the two questions that are a part of this assignment by Thursday 5/7 noon EST
- Faculty will give Course Assistants awards, such as:
- The Zoom Unicorn - for the most unique Zoom backgrounds used
- The Announcer Award - for the most class announcements sent
- The Infinite Feedback Award - for the most characters typed in comments to students
- we’ll definitely make up some of the spot too
Class photo Backdrop Challenge
- We’ll take at least 2 class photos for posterity (a SoftDes tradition)
- we usually capture a class photo during the last session - see last year’s photo
- because we’re all in little video squares this year, we’d like to use interesting virtual backgrounds as a class if possible
- see what Olin Baha did in a Faculty + Staff thank you video - baha background example
- check out this example SoftDes backdrop for inspiration
- submit your own using the optional Canvas assignment for the Zoom class photo backdrop challenge
- The winning backdrops will be decided during the teaching team’s Thursday lunch meeting
- we will unveil the final decisions during Friday’s class
- we’re also likely to share funny stories about the selection process
- we also might make a “people’s choice” winner and take an extra photo
Capturing videos
If you would like to create a video of a game or interactive project that you’re working on, we have some guidance on our class page.
- videos are great for embedding dynamic footage into your project websites
- they can also be ads
- explaining your goals
- showing your work in action
- introduce the problem domain, establishing why what you’re working on is interesting
- 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
- There are recipes to help you accomplish this technically on the resources page
- we encourage you to storyboard or script your draft before shooting
- you may have a website MVP already that can guide the storyboard
- be careful of how you present yourself and your work (in videos of photos including humans / voices)
- playful is a tone that can work well if used thoughtfully
- think about what is socially appropriate for different audiences
- guardians, peers, employers, profs, clergy, neighborhood superheroes etc
- think about what is socially appropriate for different audiences
- playful is a tone that can work well if used thoughtfully
Capturing dependencies
Your project may require 3rd party Python packages that are not part of the standard library. In your README file (e.g. “Getting Started” or Install section), you must at minimum list these extra packages necessary to run your code (with versions if necessary).
You should know what modules are needed because you wrote an import statement for each (read about best practices for import statements), but in case you forget or you’re looking at someone else’s code: command line tools can help. In your project directory, type:
grep -hr "^import" . | sort | uniq
This means 1) search recursively in the current directory for lines that start with “import” (without printing which file you found them in), 2) sort those results alphabetically, and 3) don’t show me duplicates.
(Technically "^\(from .\+ \)\?import"
would be a better search expression, since it also catches from foo import bar
style imports.)
In order to make things easier for your users, in addition to just listing the required packages, you can give them a listing that they can automatically install using their package manager.
To generate this list, you can run:
pip freeze > requirements.txt
or
conda list --export > requirements.txt
depending on which package manager you are using. This will create a file called requirements.txt
that you can include in your project repository.
Users can then install the needed dependencies by simply running:
pip install -r requirements.txt
or
conda install --file requirements.txt
as appropriate.
Important caveat: this process will dump every package you’ve installed, not just the ones needed for this project. It is best practice to edit down the list to just those necessary for your project.
Make sure the README file for your project has up-to-date installation instructions including required packages. A requirements.txt file for your project is a nice-to-have, but you can submit your final code with written instructions for packages that users will need to install.