Interactive Visualization with Git

(Difference between revisions)
Jump to: navigation, search
Line 52: Line 52:
* Take screenshots of your solutions, AS YOU GO through each section
** 15 sections in all, so 15 screenshots
* Init, commit, and then create a remote repo (on github or elsewhere online) of your screenshots
** REMINDER: reuse of open source code is encouraged; submission of someone else's answers is academic plagiarism and will be enforced
=== Deliverables: ===
* Send URL / link of remote internet-accessible repository to instructor.
* 15 Screenshots of the solutions of each section, with commits
=== Assessment: ===
{| border="1" class="wikitable"
! Criteria
! Partial Credit
! Complete Credit
| '''Screenshots'''
| Bad file naming, difficult directory structure, or less than 15 screenshot files
| Easy to view files, no weird naming, all 15 screenshots
| '''Solutions'''
| Not all solutions given, or some solutions are not optimal (hard to tell from screenshot though)
| All solutions given and most are optimal (sometimes optimality is not necessary for completion)
=== Comments: ===
What are some likely difficulties that an instructor may encounter using this activity?
* Students might easily plagiarize or copy each others screenshots to the solutions.
* To fight this, a REMINDER has been added in the directions.
* Teachers might also mentioned it in-class and spot-check for it in grading.

Revision as of 22:52, 2 March 2016

Title Git: Interactive Visualization
Overview Students learn from an interactive visual git simulator / game. This activity focuses on LOCAL Git functionality (such as that on your laptop, NOT remote internet-based code repositories).

See Git_Activity_4 for the next in the series.

Prerequisite Knowledge Git_Activity and Git_Activity_2 or an introductory understanding of what SCM is about, and basic git commands.
Learning Objectives Students will be able to ...
  • Create a branch.
  • Checkout a branch.
  • Create a tag.
  • Checkout a tag.
  • Merge a branch into another.
  • Rebase a branch onto another.
  • Cherry-pick commits.
  • Use relative commit references to refer to commits.
  • Move branches to a different commit.
  • Detach and move around HEAD.
  • Explain the difference between a branch, a tag, and HEAD.
  • Clone a remote repository.
  • Fetch changes from a remote repository.
  • Merge changes from a remote repository.
  • Rebase changes from a remote repository.
  • Describe the difference between _rebase_ and _merge_.
  • Push changes into a remote repository.
  • Describe the relationship between `git fetch`, `git merge`, and `git pull`
  • Describe the relationship between `git fetch` and `git push`.
  • Delete a remote branch.
  • Push changes into a remote repository after remote history has diverged.


Is there background reading material?

What is the rational for this activity?

  • Getting familiar with git from the command line is not easy. This activity makes it a game!



Additional Information:

Knowledge Area/Knowledge Unit SE - Software Engineering / SE Tools and Environments from ACM_Body_of_Knowledge
Topic Software configuration management and version control
Level of Difficulty Medium, as the advanced commands become more difficult to follow
Estimated Time to Completion 2-4 hrs
  • Access to Internet/Web and web browser
  • Github account (or any online Git hosting)
Author Stoney Jackson, Nick Yeates

The MIT License (MIT) Copyright (c) 2012 Peter Cottle

Suggestions to Open Source Mentors:

Suggestions for an open source community member who is working in conjunction with the instructor.

  • Mentors might show what websites and resources (Stackoverflow, IRC, etc) they often utilize when they are stuck or something unexpected happens upon committing or branching.
    • What troubleshooting steps do they use in their head?
    • Do they chat or talk to fellow project-members or work colleagues?

Personal tools
Learning Resources
HFOSS Projects