Skip to content

Latest commit

 

History

History
171 lines (124 loc) · 5.73 KB

File metadata and controls

171 lines (124 loc) · 5.73 KB

GitHub Course Overview

This document provides a quick overview of all course sessions and their content, reflecting the updated 7-session structure.


Course Statistics

  • Total Sessions: 7
  • Total Duration: ~21 hours
  • Total Practices: 40+ hands-on exercises
  • Total Mega Challenges: 4 (including Graduation Project)
  • Image Placeholders: 200+ for visual explanation (Next step)
  • Format: Practice-heavy (70% hands-on, 30% theory)

Session 1: Git & GitHub Fundamentals (Part 1) (3 hours)

This session begins the core concepts of version control.

Topics Covered

  • What is Version Control? Git vs. GitHub
  • Git installation and configuration
  • Creating your first local repository (git init)
  • The Git Lifecycle (Working Directory, Staging Area, Repository)
  • Making commits (git add, git commit)
  • Viewing history (git log, git status)

Practices

  • Configuration and installation checks.
  • Creating a local project and making initial commits.
  • Writing effective commit messages.

Session 2: Pushing to the Cloud (Part 2) (2 hours)

This session focuses on connecting your local work to GitHub.

Topics Covered

  • GitHub account setup
  • Creating a remote repository on GitHub
  • Connecting local and remote repos (git remote)
  • Pushing code to GitHub (git push)
  • Authentication: Personal Access Tokens (PATs) vs. SSH Keys (introduction)
  • Understanding and using .gitignore files

Practices

  • Creating a GitHub repository and pushing the project from Session 1.
  • Setting up a .gitignore file for a Python project.
  • Mega Challenge 1: Calculator Project (complete local-to-remote workflow).

Session 3: Branching & Merging (Part 1) (3 hours)

This session introduces Git's most powerful feature: branching.

Topics Covered

  • Branching Fundamentals: What branches are, why they're critical.
  • Creating and switching branches (git branch, git switch).
  • Visualizing branch structures (git log --graph).
  • Merging Strategies: Fast-forward vs. three-way merges.
  • Merge Conflicts: How they happen and how to resolve them.
  • Stashing: Temporarily saving work (git stash).

Practices

  • Creating feature branches.
  • Merging branches and resolving a merge conflict.
  • Using git stash to handle interruptions.

Session 4: Advanced Workflows (Part 2) (2 hours)

This session covers advanced techniques for managing history and remote work.

Topics Covered

  • Rebasing: Basic vs. Interactive rebase (squash, fixup).
  • Undoing Changes: git restore, git reset (soft, mixed, hard), git revert.
  • Remote Management: origin vs. upstream, fetch vs. pull.
  • Branch Management: Deleting local and remote branches.

Practices

  • Interactive rebase to clean up commit history.
  • Using reset and revert to undo changes safely.
  • Syncing a fork with an upstream repository.
  • Mega Challenge 2: Blog Application (complete branching workflow).

Session 5: Professional Collaboration Workflows (3 hours)

This session focuses on team collaboration using professional standards.

Topics Covered

  • GitHub Collaboration Models: Shared Repo vs. Fork & Pull.
  • Authentication Deep Dive: Full SSH key setup.
  • Pull Request (PR) Workflow: Creating, reviewing, and merging PRs.
  • Code Review Best Practices.
  • Branching Models: Git Flow vs. GitHub Flow.
  • Tags and Releases: Semantic versioning and creating GitHub releases.
  • Cherry-Picking and Branch Protection Rules.

Practices

  • Setting up a team repository with permissions.
  • Full SSH key setup and usage.
  • End-to-end Pull Request and code review simulation.
  • Mega Challenge 3: Library Management System (team of 4, complete workflow).

Session 6: Open Source & Automation (3 hours)

This session prepares students for contributing to the wider software community.

Topics Covered

  • Open Source Contribution: Forking, finding issues, creating quality PRs.
  • GitHub Actions (CI/CD): Automating testing and deployment.
  • GitHub Pages: Hosting static sites and documentation.
  • Git Submodules & Repository Security Best Practices.
  • Building a Developer Portfolio on GitHub.

Practices

  • Setting up a CI/CD pipeline with GitHub Actions.
  • Deploying a documentation site with GitHub Pages.
  • Mega Challenge 4: A guided open source contribution.

Session 7: Graduation Project & Final Review (3 hours)

A final session to solidify knowledge and kick off the graduation project.

Topics Covered

  • Review of Core Concepts: A comprehensive Q&A and review of the entire course.
  • Advanced Problem-Solving: Tackling complex, real-world Git scenarios.
  • Graduation Project Announcement:
    • Detailed explanation of the project requirements.
    • Team formation and project planning.
    • Timelines, submission guidelines, and evaluation criteria.

Practices

  • A series of advanced, hands-on challenges to solve in teams.
  • Initial planning and repository setup for the graduation project.

Learning Outcomes

After completing all 7 sessions, attendees will be able to:

  • ✅ Use Git confidently for any project.
  • ✅ Collaborate effectively within a team using professional workflows.
  • ✅ Contribute to open source projects.
  • ✅ Implement CI/CD pipelines for automation.
  • ✅ Secure and document projects professionally.
  • ✅ Build and maintain a strong developer portfolio on GitHub.

Course prepared by: Omar Betawy
Instructed by: Omar Betawy, Amr Khaled
For: DSC Cairo University
Date: October 2025
Version: 2.0 (7-Session Structure)


This course follows the course guidelines and incorporates all requested topics with a strong emphasis on practical, hands-on learning.