Prerequisites

In GitHub…

  1. Login
  2. Create new organization in GitHub
    • select the “+” in the upper right of the screen and choose “new organization”
    • you will create a new organization for each class
    • the organization is linked to your github profile and will house the student repositories created through GitHub Classroom
Fig. Initate new GitHub organization

Fig. Initate new GitHub organization


  1. Set up the organization
    • the free version is sufficient
    • you can request free unlimited private repositories through GitHub Education later
Fig. Set up GitHub organization

Fig. Set up GitHub organization


  1. Skip the prompt to “invite members” to your organization (select “Continue”)
    • students will NOT be “members” of the organization
    • students will become “outside collaborators” when later added through GitHub Classroom
Fig. Skip prompt to invite members

Fig. Skip prompt to invite members


  1. Populate organization details
    • mark that the organization is for educational use
    • mark length of time for your class
    • mark number of users (class enrollment)
Fig. GitHub organization details

Fig. GitHub organization details


In GitHub Classroom…

  1. GitHub Classroom Sign In (using GitHub credentials)
  2. Initate a “New Classroom” from GitHub Classroom landing page
Fig. Initiate new classroom

Fig. Initiate new classroom


  1. Grant GitHub Classroom access to the GitHub organization created previously
    • The organizations shown (if any) have already been configured for access from GitHub Classroom
    • Newly initiated organizations will not populate on the list yet
    • Choose “Grand access to an organization that is not listed”
Fig. Initate access to GitHub organization

Fig. Initate access to GitHub organization


  1. Grant access to GitHub organization
    • GitHub Classroom will populate a list of organizations associated with your GitHub credentials
    • Click “Grant” next to the organization you want affiliated with your class
    • You may also “Revoke” access if needed
  2. You will be prompted for your GitHub credentials
Fig. Grant access to GitHub organization

Fig. Grant access to GitHub organization


  1. Select GitHub organization for your class
    • back to GitHub Classroom main page (may need to refresh page)
    • your newly configured organization should be among the available options
  2. You will be prompted to rename your classroom (can be changed later if necessary)
  3. You will have an opportunity to invite other administrators (can be invited later if necessary)
Fig. Select GitHub organization for your class

Fig. Select GitHub organization for your class


  1. Set up class roster in GitHub Classroom
    • this step is optional, and can be revisited later
Fig. Select GitHub organization for your class

Fig. Select GitHub organization for your class


Creating an assignment in GitHub Classroom

  1. Create your first assignment
    • Choose “individual” or “group assignment”
      • individual: each student has their own repository for the assignment
      • group: the group will have a shared repository for the assignment
Fig. Create first assignment in GitHub Classroom

Fig. Create first assignment in GitHub Classroom


  1. Configure GitHub Classroom Assignment
    • create concise assignment title
    • choose public vs private–should student work be visible to public, including other students?
    • determine whether students should have admin permissions on their repository, allowing them to
      • revoke instructor access
      • make private repo public
      • and more
    • enable assignment URL for easy distribution
    • you may initialize student repos with code, templates, data sets, etc
      • imports contents of an existing GitHub Repo
      • can be a private repo associated with your own GitHub credentials
    • you can configure a due date in GitHub Classroom
Fig. Configure assignment

Fig. Configure assignment


  1. Deploy assignment to students!
    • invitation link can be posted in LMS, or otherwise distributed.
    • when students click the link they will be prompted to accept the assignment
    • once accepted, the assignment “clones” a version of the starter code (if provided) and initiates a new repo for the student
    • student is then provided a link to their new GitHub repository (within your controlled github organization linked to the class)
Fig. Distribute assignment

Fig. Distribute assignment


LS0tCnRpdGxlOiAiR2l0SHViIENsYXNzcm9vbSBDb25maWd1cmF0aW9uIgpzdWJ0aXRsZTogIk9yaWdpbmFsbHkgcHJlcGFyZWQgZm9yIFVTQ09UUyAyMDE5IEJyZWFrb3V0IFNlc3Npb24iCmF1dGhvcjogIk1hdHRoZXcgQmVja21hbiAmIEFkYW0gU3VsbGl2YW4iCmRhdGU6ICJNYXkgMTcsIDIwMTkiCm91dHB1dDogaHRtbF9ub3RlYm9vawotLS0KCgojIFByZXJlcXVpc2l0ZXMKCi0gR2l0SHViIHVzZXIgaWQgKGlmIHlvdSBoYXZlbid0IGRvbmUgc28gYWxyZWFkeSkKLSAocmVjb21tZW5kZWQpIHBob3RvIG9mIHlvdXIgZmFjdWx0eSBJRCB0byByZXF1ZXN0IGVkdWNhdGlvbiBiZW5lZml0cwoKCiMgSW4gR2l0SHViLi4uCgoKMC4gTG9naW4gCjEuIENyZWF0ZSBuZXcgb3JnYW5pemF0aW9uIGluIEdpdEh1YgogICAgLSBzZWxlY3QgdGhlICIrIiBpbiB0aGUgdXBwZXIgcmlnaHQgb2YgdGhlIHNjcmVlbiBhbmQgY2hvb3NlICJuZXcgb3JnYW5pemF0aW9uIgogICAgLSB5b3Ugd2lsbCBjcmVhdGUgYSBuZXcgb3JnYW5pemF0aW9uIGZvciBlYWNoIGNsYXNzCiAgICAtIHRoZSBvcmdhbml6YXRpb24gaXMgbGlua2VkIHRvIHlvdXIgZ2l0aHViIHByb2ZpbGUgYW5kIHdpbGwgaG91c2UgdGhlIHN0dWRlbnQgcmVwb3NpdG9yaWVzIGNyZWF0ZWQgdGhyb3VnaCBHaXRIdWIgQ2xhc3Nyb29tCgo8Y2VudGVyPgoKIVtGaWcuIEluaXRhdGUgbmV3IEdpdEh1YiBvcmdhbml6YXRpb25dKEdpdEh1YiBDbGFzc3Jvb20gSW1hZ2VzLzAyLW5ldyBnaXRodWIgb3JnLnBuZyl7d2lkdGg9ODAlfQoKPC9icj4KCjwvY2VudGVyPgoKMi4gU2V0IHVwIHRoZSBvcmdhbml6YXRpb24KICAgIC0gdGhlIGZyZWUgdmVyc2lvbiBpcyBzdWZmaWNpZW50CiAgICAtIHlvdSBjYW4gcmVxdWVzdCBmcmVlIHVubGltaXRlZCBwcml2YXRlIHJlcG9zaXRvcmllcyB0aHJvdWdoIEdpdEh1YiBFZHVjYXRpb24gbGF0ZXIKCjxjZW50ZXI+CgohW0ZpZy4gU2V0IHVwIEdpdEh1YiBvcmdhbml6YXRpb25dKEdpdEh1YiBDbGFzc3Jvb20gSW1hZ2VzLzAzLXNldCB1cCBvcmcucG5nKXt3aWR0aD03MCV9Cgo8L2JyPgoKPC9jZW50ZXI+CgozLiBTa2lwIHRoZSBwcm9tcHQgdG8gImludml0ZSBtZW1iZXJzIiB0byB5b3VyIG9yZ2FuaXphdGlvbiAoc2VsZWN0ICJDb250aW51ZSIpCiAgICAtIHN0dWRlbnRzIHdpbGwgTk9UIGJlICJtZW1iZXJzIiBvZiB0aGUgb3JnYW5pemF0aW9uCiAgICAtIHN0dWRlbnRzIHdpbGwgYmVjb21lICJvdXRzaWRlIGNvbGxhYm9yYXRvcnMiIHdoZW4gbGF0ZXIgYWRkZWQgdGhyb3VnaCBHaXRIdWIgQ2xhc3Nyb29tIAoKPGNlbnRlcj4KCiFbRmlnLiBTa2lwIHByb21wdCB0byBpbnZpdGUgbWVtYmVyc10oR2l0SHViIENsYXNzcm9vbSBJbWFnZXMvMDQtaW52aXRlIG1lbWJlcnMgKGNvbnQpLnBuZyl7d2lkdGg9ODAlfQoKPC9icj4KCjwvY2VudGVyPgoKNC4gUG9wdWxhdGUgb3JnYW5pemF0aW9uIGRldGFpbHMKICAgIC0gbWFyayB0aGF0IHRoZSBvcmdhbml6YXRpb24gaXMgZm9yIGVkdWNhdGlvbmFsIHVzZQogICAgLSBtYXJrIGxlbmd0aCBvZiB0aW1lIGZvciB5b3VyIGNsYXNzCiAgICAtIG1hcmsgbnVtYmVyIG9mIHVzZXJzIChjbGFzcyBlbnJvbGxtZW50KQoKPGNlbnRlcj4gCgohW0ZpZy4gR2l0SHViIG9yZ2FuaXphdGlvbiBkZXRhaWxzXShHaXRIdWIgQ2xhc3Nyb29tIEltYWdlcy8wNS1vcmcgZGV0YWlscy5wbmcpe3dpZHRoPTgwJX0KCjwvYnI+Cgo8L2NlbnRlcj4KCgoKCgojIEluIEdpdEh1YiBDbGFzc3Jvb20uLi4KCjUuIEdpdEh1YiBDbGFzc3Jvb20gU2lnbiBJbiAodXNpbmcgR2l0SHViIGNyZWRlbnRpYWxzKQo2LiBJbml0YXRlIGEgIk5ldyBDbGFzc3Jvb20iIGZyb20gR2l0SHViIENsYXNzcm9vbSBsYW5kaW5nIHBhZ2UKCjxjZW50ZXI+CgohW0ZpZy4gSW5pdGlhdGUgbmV3IGNsYXNzcm9vbSBdKEdpdEh1YiBDbGFzc3Jvb20gSW1hZ2VzLzAwLWdpdGh1YiBjbGFzc3Jvb20ucG5nKXt3aWR0aD04MCV9Cgo8L2JyPgoKPC9jZW50ZXI+Cgo3LiBHcmFudCBHaXRIdWIgQ2xhc3Nyb29tIGFjY2VzcyB0byB0aGUgR2l0SHViIG9yZ2FuaXphdGlvbiBjcmVhdGVkIHByZXZpb3VzbHkKICAgIC0gVGhlIG9yZ2FuaXphdGlvbnMgc2hvd24gKGlmIGFueSkgaGF2ZSBhbHJlYWR5IGJlZW4gY29uZmlndXJlZCBmb3IgYWNjZXNzIGZyb20gR2l0SHViIENsYXNzcm9vbQogICAgLSBOZXdseSBpbml0aWF0ZWQgb3JnYW5pemF0aW9ucyB3aWxsIG5vdCBwb3B1bGF0ZSBvbiB0aGUgbGlzdCB5ZXQKICAgIC0gQ2hvb3NlICJHcmFuZCBhY2Nlc3MgdG8gYW4gb3JnYW5pemF0aW9uIHRoYXQgaXMgbm90IGxpc3RlZCIKCgo8Y2VudGVyPiAKCiFbRmlnLiBJbml0YXRlIGFjY2VzcyB0byBHaXRIdWIgb3JnYW5pemF0aW9uXShHaXRIdWIgQ2xhc3Nyb29tIEltYWdlcy8wNi1iYWNrIHRvIGNsYXNzcm9vbS5wbmcpe3dpZHRoPTgwJX0KCjwvYnI+Cgo8L2NlbnRlcj4KCgo4LiBHcmFudCBhY2Nlc3MgdG8gR2l0SHViIG9yZ2FuaXphdGlvbgogICAgLSBHaXRIdWIgQ2xhc3Nyb29tIHdpbGwgcG9wdWxhdGUgYSBsaXN0IG9mIG9yZ2FuaXphdGlvbnMgYXNzb2NpYXRlZCB3aXRoIHlvdXIgR2l0SHViIGNyZWRlbnRpYWxzCiAgICAtIENsaWNrICJHcmFudCIgbmV4dCB0byB0aGUgb3JnYW5pemF0aW9uIHlvdSB3YW50IGFmZmlsaWF0ZWQgd2l0aCB5b3VyIGNsYXNzCiAgICAtIFlvdSBtYXkgYWxzbyAiUmV2b2tlIiBhY2Nlc3MgaWYgbmVlZGVkCjkuIFlvdSB3aWxsIGJlIHByb21wdGVkIGZvciB5b3VyIEdpdEh1YiBjcmVkZW50aWFscyAKCgo8Y2VudGVyPgoKIVtGaWcuIEdyYW50IGFjY2VzcyB0byBHaXRIdWIgb3JnYW5pemF0aW9uXShHaXRIdWIgQ2xhc3Nyb29tIEltYWdlcy8wNy1sb2NhdGUgbmV3IG9yZy5wbmcpe3dpZHRoPTgwJX0KCjwvYnI+Cgo8L2NlbnRlcj4KCgoKMTAuIFNlbGVjdCBHaXRIdWIgb3JnYW5pemF0aW9uIGZvciB5b3VyIGNsYXNzCiAgICAtIGJhY2sgdG8gR2l0SHViIENsYXNzcm9vbSBtYWluIHBhZ2UgKG1heSBuZWVkIHRvIHJlZnJlc2ggcGFnZSkKICAgIC0geW91ciBuZXdseSBjb25maWd1cmVkIG9yZ2FuaXphdGlvbiBzaG91bGQgYmUgYW1vbmcgdGhlIGF2YWlsYWJsZSBvcHRpb25zCjExLiBZb3Ugd2lsbCBiZSBwcm9tcHRlZCB0byByZW5hbWUgeW91ciBjbGFzc3Jvb20gKGNhbiBiZSBjaGFuZ2VkIGxhdGVyIGlmIG5lY2Vzc2FyeSkKMTIuIFlvdSB3aWxsIGhhdmUgYW4gb3Bwb3J0dW5pdHkgdG8gaW52aXRlIG90aGVyIGFkbWluaXN0cmF0b3JzIChjYW4gYmUgaW52aXRlZCBsYXRlciBpZiBuZWNlc3NhcnkpCgo8Y2VudGVyPiAKCiFbRmlnLiBTZWxlY3QgR2l0SHViIG9yZ2FuaXphdGlvbiBmb3IgeW91ciBjbGFzc10oR2l0SHViIENsYXNzcm9vbSBJbWFnZXMvMTAtcmVmcmVzaCBhbmQgdmVyaWZ5IGNsYXNzcm9vbS5wbmcpe3dpZHRoPTgwJX0KCjwvYnI+Cgo8L2NlbnRlcj4KCgoxMy4gU2V0IHVwIGNsYXNzIHJvc3RlciBpbiBHaXRIdWIgQ2xhc3Nyb29tCiAgICAtIHRoaXMgc3RlcCBpcyBvcHRpb25hbCwgYW5kIGNhbiBiZSByZXZpc2l0ZWQgbGF0ZXIKCjxjZW50ZXI+IAoKIVtGaWcuIFNlbGVjdCBHaXRIdWIgb3JnYW5pemF0aW9uIGZvciB5b3VyIGNsYXNzXShHaXRIdWIgQ2xhc3Nyb29tIEltYWdlcy8xMy1zZXQgdXAgcm9zdGVyLnBuZyl7d2lkdGg9ODAlfQoKPC9icj4KCjwvY2VudGVyPgoKCgojIChSZWNvbW1lbmRlZCkgR2l0SHViIEVkdWNhdGlvbiBCZW5lZml0cwoKMTQuIEluaXRpYXRlIEdpdEh1YiBFZHVjYXRpb24gQmVuZWZpdHMKICAgIC0gdW5saW1pdGVkICoqcHJpdmF0ZSoqIHJlcG9zaXRvcmllcyAKICAgIC0gdW5saW1pdGVkIGNvbGxhYm9yYXRvcnMgKHN0dWRlbnRzKQogICAgLSBjbGljayB0aGUgKHdlbGwgY2Ftb3VmbGFnZWQpIGxpbmsgb3IgSW50ZXJuZXQgc2VhcmNoICJnaXRodWIgZWR1Y2F0aW9uIgogICAgLSBbaHR0cHM6Ly9lZHVjYXRpb24uZ2l0aHViLmNvbV0oaHR0cHM6Ly9lZHVjYXRpb24uZ2l0aHViLmNvbSkKCjxjZW50ZXI+IAoKIVtGaWcuIEluaXRpYXRlIEdpdEh1YiBFZHVjYXRpb24gQmVuZWZpdHNdKEdpdEh1YiBDbGFzc3Jvb20gSW1hZ2VzLzE0LWdpdGh1YiBlZHVjLnBuZyl7d2lkdGg9ODAlfQoKPC9icj4KCjwvY2VudGVyPgoKCjE1LiBBcHBseSBmb3IgR2l0SHViIEVkdWNhdGlvbiBCZW5lZml0cwoKPGNlbnRlcj4gCgohW0ZpZy4gQXBwbHkgZm9yIEdpdEh1YiBFZHVjYXRpb24gQmVuZWZpdHNdKEdpdEh1YiBDbGFzc3Jvb20gSW1hZ2VzLzE1LWpvaW4gZ2l0aHViIGVkdWMgZm9yIGZyZWUgcHJpdmF0ZSByZXBvcy5wbmcpe3dpZHRoPTgwJX0KCjwvYnI+Cgo8L2NlbnRlcj4KCgoxNS4gQXBwbHkgZm9yIEdpdEh1YiBFZHVjYXRpb24gQmVuZWZpdHMKMTYuIEZvbGxvdyBwcm9tcHRzIHRvIGlkZW50aWZ5IHRoZSBnaXRodWIgb3JnYW5pemF0aW9uIGFuZCBkZXNjcmliZSB5b3VyIHVzZQoxNy4gWW91IG1heSBuZWVkIHRvIHNob3cgcHJvb2Ygb2YgYWNhZGVtaWMgc3RhdHVzIChlLmcuLCB1cGxvYWQgcGhvdG8gb2YgaW5zdGl0dXRpb24gSUQpCiAgICAtIHZlcmlmaWNhdGlvbiBvZiBmYWN1bHR5IHN0YXR1cyBtYXkgdGFrZSBhIGZldyBidXNpbmVzcyBkYXlzIAogICAgLSB2ZXJpZmljYXRpb24gcmV0YWluZWQgdG8gZXhwZWRpdGUgZnV0dXJlIHJlcXVlc3RzIAoxOC4gVXBncmFkZSB5b3VyIG9yZ2FuaXphdGlvbiBvbmNlIHlvdSBhcmUgdmVyaWZpZWQgYXMgZmFjdWx0eQoKPGNlbnRlcj4gCgohW0ZpZy4gVXBncmFkZSB5b3VyIG9yZ2FuaXphdGlvbiBvbmNlIHZlcmlmaWVkXShHaXRIdWIgQ2xhc3Nyb29tIEltYWdlcy8yMS12ZXJpZmllZCBmYWN1bHR5LnBuZyl7d2lkdGg9ODAlfQoKPC9icj4KCjwvY2VudGVyPgoKCiMgQ3JlYXRpbmcgYW4gYXNzaWdubWVudCBpbiBHaXRIdWIgQ2xhc3Nyb29tCgoxOS4gQ3JlYXRlIHlvdXIgZmlyc3QgYXNzaWdubWVudAogICAgLSBDaG9vc2UgImluZGl2aWR1YWwiIG9yICJncm91cCBhc3NpZ25tZW50IgogICAgICAgIC0gaW5kaXZpZHVhbDogZWFjaCBzdHVkZW50IGhhcyB0aGVpciBvd24gcmVwb3NpdG9yeSBmb3IgdGhlIGFzc2lnbm1lbnQKICAgICAgICAtIGdyb3VwOiB0aGUgZ3JvdXAgd2lsbCBoYXZlIGEgc2hhcmVkIHJlcG9zaXRvcnkgZm9yIHRoZSBhc3NpZ25tZW50CgoKPGNlbnRlcj4gCgohW0ZpZy4gQ3JlYXRlIGZpcnN0IGFzc2lnbm1lbnQgaW4gR2l0SHViIENsYXNzcm9vbV0oR2l0SHViIENsYXNzcm9vbSBJbWFnZXMvMjMtZmlyc3QgYXNzaWdubWVudC5wbmcpe3dpZHRoPTgwJX0KCjwvYnI+Cgo8L2NlbnRlcj4KCgoyMC4gQ29uZmlndXJlIEdpdEh1YiBDbGFzc3Jvb20gQXNzaWdubWVudAogICAgLSBjcmVhdGUgY29uY2lzZSBhc3NpZ25tZW50IHRpdGxlCiAgICAtIGNob29zZSBwdWJsaWMgdnMgcHJpdmF0ZS0tc2hvdWxkIHN0dWRlbnQgd29yayBiZSB2aXNpYmxlIHRvIHB1YmxpYywgaW5jbHVkaW5nIG90aGVyIHN0dWRlbnRzPwogICAgLSBkZXRlcm1pbmUgd2hldGhlciBzdHVkZW50cyBzaG91bGQgaGF2ZSBhZG1pbiBwZXJtaXNzaW9ucyBvbiB0aGVpciByZXBvc2l0b3J5LCBhbGxvd2luZyB0aGVtIHRvCiAgICAgICAgLSByZXZva2UgaW5zdHJ1Y3RvciBhY2Nlc3MKICAgICAgICAtIG1ha2UgcHJpdmF0ZSByZXBvIHB1YmxpYwogICAgICAgIC0gYW5kIG1vcmUKICAgIC0gZW5hYmxlIGFzc2lnbm1lbnQgVVJMIGZvciBlYXN5IGRpc3RyaWJ1dGlvbgogICAgLSB5b3UgbWF5IGluaXRpYWxpemUgc3R1ZGVudCByZXBvcyB3aXRoIGNvZGUsIHRlbXBsYXRlcywgZGF0YSBzZXRzLCBldGMgCiAgICAgICAgLSBpbXBvcnRzIGNvbnRlbnRzIG9mIGFuIGV4aXN0aW5nIEdpdEh1YiBSZXBvCiAgICAgICAgLSBjYW4gYmUgYSBwcml2YXRlIHJlcG8gYXNzb2NpYXRlZCB3aXRoIHlvdXIgb3duIEdpdEh1YiBjcmVkZW50aWFscwogICAgLSB5b3UgY2FuIGNvbmZpZ3VyZSBhIGR1ZSBkYXRlIGluIEdpdEh1YiBDbGFzc3Jvb20KCgo8Y2VudGVyPiAKCiFbRmlnLiBDb25maWd1cmUgYXNzaWdubWVudF0oR2l0SHViIENsYXNzcm9vbSBJbWFnZXMvMjQtY29uZmlndXJlIGFzc2lnbm1lbnQucG5nKXt3aWR0aD04MCV9Cgo8L2JyPgoKPC9jZW50ZXI+CgoKMjEuIERlcGxveSBhc3NpZ25tZW50IHRvIHN0dWRlbnRzIQogICAgLSBpbnZpdGF0aW9uIGxpbmsgY2FuIGJlIHBvc3RlZCBpbiBMTVMsIG9yIG90aGVyd2lzZSBkaXN0cmlidXRlZC4KICAgIC0gd2hlbiBzdHVkZW50cyBjbGljayB0aGUgbGluayB0aGV5IHdpbGwgYmUgcHJvbXB0ZWQgdG8gYWNjZXB0IHRoZSBhc3NpZ25tZW50CiAgICAtIG9uY2UgYWNjZXB0ZWQsIHRoZSBhc3NpZ25tZW50ICJjbG9uZXMiIGEgdmVyc2lvbiBvZiB0aGUgc3RhcnRlciBjb2RlIChpZiBwcm92aWRlZCkgYW5kIGluaXRpYXRlcyBhIG5ldyByZXBvIGZvciB0aGUgc3R1ZGVudAogICAgLSBzdHVkZW50IGlzIHRoZW4gcHJvdmlkZWQgYSBsaW5rIHRvIHRoZWlyIG5ldyBHaXRIdWIgcmVwb3NpdG9yeSAod2l0aGluIHlvdXIgY29udHJvbGxlZCBnaXRodWIgb3JnYW5pemF0aW9uIGxpbmtlZCB0byB0aGUgY2xhc3MpCgo8Y2VudGVyPiAKCiFbRmlnLiBEaXN0cmlidXRlIGFzc2lnbm1lbnRdKEdpdEh1YiBDbGFzc3Jvb20gSW1hZ2VzLzI1LWFzc2lnbm1lbnQgbGluay5wbmcpe3dpZHRoPTgwJX0KCjwvYnI+Cgo8L2NlbnRlcj4KCgoKCgo=