πŸ—£οΈ Week 10 Lecture

Practical Git Collaboration & Group Project Setup

Author

Dr Jon Cardoso-Silva

Published

26 March 2025

πŸ₯… Learning Goals
By the end of this lecture, you should be able to: i) Actively participate in collaborative Git workflows with Issues and Pull Requests, ii) Form effective project teams and establish team communication, iii) Create a basic GitHub Pages website for your project, iv) Prepare for your group project pitch presentation next week.
DS105W course icon

πŸ“Time and Location: Thursday, 27 March 2025 from 4-6 pm at MAR.1.04

Exasperated Panda crying I beg you

We are at 41%
β„Ή
(26 out of 63 of you have completed the course survey)
41%
0% - 50%
50% - 75%
75% - 100%

Don’t let this poor panda beg in vain 😒🐼 β€” help us get to the 75% mark by completing the survey!

πŸ’‘ Note: Please assess all the instructors you have interacted with (and Jon also counts as your teacher!).

Last updated: 26 March 2025, 22:00

This week’s lecture is devoted to forming groups for your final project (worth 30% of your grade) and getting hands-on practice with collaborative Git workflows. We’ll focus on practical skills you’ll need for the next few weeks.

πŸ“‹ Preparation

Bring your laptop with GitHub access ready. If working on your own machine, make sure Git is installed. Review our Team Git Collaboration guide before the session, and come with ideas about who you might like to work with for your group project.

Hour 1: Hands-on Git Collaboration (4:00-5:00 PM)

We’ll work directly with a real GitHub repository to gain practical experience. The DS105W-2025 repository will be our playground for experiencing Issues, Pull Requests, and merge conflicts.

I’ll share a notebook and we will work through it together.

If you are reviewing later, you might want to consult our Git Collaboration guide for more details.

Hour 2: Group Formation & Project Setup (5:00-6:00 PM)

At the end of this course, you will need to submit a final group project. We start today by forming groups and creating a GitHub repository for your project.

🧩 Group Formation

🎯 ACTION POINTS:

  1. Form groups of 3-4 students

    Ideally you should all be from the same Friday class. This is because the πŸ’» W10 Lab is designed for groups. Also, you will need to present your project pitch next week.

    πŸ‘‰ Contact one of us teaching staff if you don’t know many people in this course or if you want to form a group across different class slots.

  2. Choose a team name. Don’t choose a sad boring name like β€œTeam 1” or β€œTeam A”. A little panda will die every time you use a boring name.

  3. Decide who will play the role of πŸ§‘β€βœˆοΈ Pilot, the person typing the code. The other(s) will act as πŸ™‹ Copilots.

  4. The πŸ§‘β€βœˆοΈ Pilot should click on the link below and accept the assignment.

    πŸ”— PROJECT-GITHUB-CLASSROOM-LINK

  5. Once you click on the link above, you will be asked to specify the name of your team.

  6. The πŸ™‹ Copilots should now click on the link above and use exactly the same name to join the team.

🌐 Creating the website

Let’s consider this a warm-up. So we won’t bother with GitHub Issues and Pull Requests.

  1. Everyone should clone the newly created repository to their Nuvolos or local machine:

    git clone <your-team-repo-url>
  2. The πŸ§‘β€βœˆοΈ Pilot should create a docs/ folder in the repository:

    mkdir docs
  3. The πŸ§‘β€βœˆοΈ Pilot should create an index.md file in the docs/ folder.

    Because the repository already comes with a README.md and a .gitignore file, you should now see this folder structure:

    <your-team-repo>/
    β”œβ”€β”€ .gitignore
    β”œβ”€β”€ docs/
    β”‚   └── index.md
    └── README.md
  4. Together, edit this simple Markdown file and add:

    • A title for your project (can be tentative)
    • Team member names

    You can use the following example:

    # Project Title 
    
    > "_A silly inspirational quote here_"
    
    Team members:
    
    - [Person A](https://github.com/person-a)
    - [Person B](https://github.com/person-b)
    - [Person C](https://github.com/person-c)
  5. The πŸ§‘β€βœˆοΈ Pilot should commit and push the changes to the repository.

  6. ⭐ Enable GitHub Pages:

    • Go to repository Settings β†’ Pages
    • Select β€œmain” branch and β€œ/docs” folder
    • Click Save
  7. The πŸ™‹ Copilots should help ensure that the website is visible on the Internet (more info on the live lecture but also here)

🏑 Take-Home Task: Plan Your Project Pitch

Next week, at πŸ’» W11 Lab, each team will present a 3-5 minute pitch of their project idea. This pitch is worth 10% of your final grade.

Keep these key requirements in mind:

  1. We don’t want to see data yet! Focus on:

    • The data source(s) you’re planning to use
    • The research questions you hope to answer
    • How you’ll divide the work among team members
  2. A topic you are interested in (you can always change it later).

πŸ’‘ Ideas for project topics

To give you ideas, top final projects from the past cohorts have ranged from:

By the way, all of these projects were great but of course, all of them had some minor issues which were addressed in our feedback to the group. Try to spot them!

  1. Ideas of API(s) you might want to use.
πŸ’­ What is the scale of the final project?

On ✍️ Mini Project 1, we gave you a data source and we asked a curiosity-driven exploratory question ourselves.

On ✍️ Mini Project 2, we gave you a data source but we asked you to pose your own curiosity-driven exploratory question.

Now, for the final group project, you will have to find your own data source and pose your own curiosity-driven exploratory question! The scale of the project is the same as that of your ✍️ Mini Project 2. The demands in term of project complexity will be similar. The complexity will be in working as a team effectively via Git/GitHub and on the quality of your insights and your website presentation.

Detailed marking criteria will be shared at the start of Week 11.

  1. What would the database schema look like? (it can be a high-level view of the tables and their relationships, no need to get too detailed)

  2. Which plots, and which geom_*() functions would you use to explore the hypothetical dataframes?

Presentation Format

  • Your presentation MUST be a GitHub Page: Present your pitch using the GitHub Pages site you created today
  • Do not add excessive text: The page should be a visual aid to your presentation, not a full script
  • Include visuals: Consider adding diagrams or images that help explain your concept
  • Keep it professional (or entertaining): This is practice for presenting data science work in professional settings

The pitch presentation is your opportunity to get early feedback on your project idea before investing significant time in implementation. Be open to suggestions and prepared to adjust your approach based on feedback.

On πŸ—£οΈ W11 Lecture you will also learn how to use GitHub Projects to plan your work, which will be important for your final submission at the end of May 2025.

πŸ“š Resources