2 Syllabus
Warning
🚧 This course is still in active development 🚧
2.1 Learning outcomes
Our overall learning outcome for the course is:
- Describe some core features of effective team-based, collaborative workflows and use Git and GitHub with approaches that support effective collaboration.
This outcome is broken down into specific learning objectives that will be addressed within the individual sessions:
- Explain what humans, both psychologically and organizationally, need in order to work well together as a team.
- Discuss the different ways people work together as a team and identify how some of these ways work better than others for effective teamwork.
- Describe how the widely used Git and GitHub are used for collaboration, explain their biggest strengths and weaknesses compared to alternatives, and review the basics of using Git and GitHub.
- Set up a project on GitHub (called a repository) and apply some key settings on GitHub to improve collaboration and teamwork.
- Differentiate between contributor and reviewer/admin roles in a team and explain why they should be dynamic and explicit.
- Create and use a task list (called issues) to assign team members to tasks that they are responsible for.
- Apply a contributor workflow that involves:
- selecting an issue to work on,
- creating an isolated section of a repository (called branches),
- making small and distinct changes to files (known as atomic commits), and
- contributing those changes to the project (called pull requests).
- Apply a reviewer/admin workflow that involves:
- reviewing a pull request,
- giving suggestions and feedback, and
- identifying how (and if) the changes should be merged into project.
2.2 Is this course for you?
This course will cover:
- Using Git and GitHub with VS Code and the GitHub web interface
- Working with at least one other person on a project (a Git repository)
- Working with plain text files (as Markdown
.md
)
This course will NOT cover:
- Using any programming language (like R or Python)
- Any project management, for example related to tasks/issues (even though we briefly cover issues) and Kanban boards
To help manage expectations and develop the material for this course, we make a few assumptions about who you are as a participant in the course:
- You want to work more effectively within a team-based setting on a common set of files
- You have a desire to work together in a more open and transparent way in your team(s)
- You’ve used Git and/or GitHub a bit, maybe through GitHub’s web interface, RStudio, VS Code, Jupyter Lab/Notebook, or GitHub Desktop, but not often or in a collaborative setting.
These assumptions help guide the course content, but if you don’t meet the assumption but are interested in learning, you’re still welcome to join! We welcome everyone, that is until the course capacity is reached.