Class 43 - Open Source
Lab 43 - Research, contribute to OSS
Setup
Code Challenge
Overview
Read this overview.
Video
Watch the video for this class from the demo playlist.
Demonstration
Look through these sample problems.
Challenges
- Navigate to the javascript folder within your data-structures-and-algorithms repository.
- Create a new branch for this challenge called for-each
git checkout -b for-each
- Retrieve the code challenge from the system
npm run get-challenge 01
- In your terminal, from the javascript folder, run npm test 01 to execute the tests in this file for this challenge.
- At this point you will see the failed tests scroll through your terminal window with a brief report of the number of failed tests at the bottom.
- If you do not see this, verify your installation of Jest by typing npx jest –version in your terminal. Filename typos can make things break!
- Write code to make the tests pass, one at a time. Let the error messages guide you.
- Once the test is passing, refactor as needed, then move on to the next challenge.
- Note, you can also run npm test (without a challenge number) to run all of the tests for every code challenge file assignment during the course all at once. This can get “noisy”, but it’s an opportunity to get a view of your overall progress
Submission
When you have completed the entire set of code challenges and all tests pass, create a pull request from your current branch to the main branch and merge it into main.
You will be able to see a test coverage report in GitHub on the Actions tab of your data-structures-and-algorithms repository. It should match what you saw on your terminal in the above steps. Your graders will be looking at this as well.
Submit a link to your pull request.
Written Class Notes
Read 43 - Open-Source Software Contribution
Resources Link/Pages
- First Timers Only
- GitHub’s Guide to Open Source
- What Motivates a Developer to Contribute to Open-Source Software?
- Review: List of Beginner-Friendly Projects (select your language of choice, also search for label:first-timers-only)
- Review: Call for Code: Open Source for Good (follow the “Get started” button)
Reading Questions
- List one (or more) open source projects that look interesting.
Cluster Duck Protocol
Call for code
Retrospective
Retrospectives are a critical part of Agile, and typically take the form of meetings held by a team at the end of a sprint cycle. To get us acclimated to that process, we will use the format of a retrospectives to guide today’s reflection.
This article gives a nice overview to the role of retrospectives.
- What went well, that I might forget if I don’t write down?
- What did I learn today?
- What should I do differently next time?
- What still puzzles me, or what do I need to learn more about?
- Thinking about each of your assignments for the day, reflect on:
- Is the assignment complete? If not, where exactly did you leave off, and what work remains?
- Do not get bogged down in written analysis; instead, focus on capturing the moment with an eye toward how your observations can guide you toward future productivity.