teachers icon indicating copy to clipboard operation
teachers copied to clipboard

What is hard about using GitHub in classrooms?

Open afeld opened this issue 10 years ago • 34 comments

If you are using GitHub in class already, what are the pain points? If you aren't, is there something blocking you?

afeld avatar Jun 18 '14 16:06 afeld

Knowing the kids logins and passwords helps if using public github. I get kids to set up public but then assign them to private repositories. A pain to setup but great since you have admin access to the repo and can make your own groups of students.

Github private is free for education just like google docs for education.

hpssjellis avatar Jun 19 '14 21:06 hpssjellis

@hpssjellis Out of curiosity: Do you create the accounts for them? What do you need their passwords for?

afeld avatar Jun 20 '14 00:06 afeld

Speaking as a student, my security class used Github as our primary hub for lectures and assignments. Unfortunately my professor removed the repository so I'll simply try to describe what he did, what worked and what didn't.

Every week he would push in a new md file for the week where we could get the agenda, assignments, and he would also add powerpoint lectures on top of it. He also sometimes added coding samples but most of the time he simply hosted his assignments on his own domain where we could interact with them. Overall this was a pretty clean process because we simply watched the repository for updates and pulled the new lectures. Students also were able to submit pull requests in case there was a mistake in the lectures (sometimes even awarded bonus points I think?). An MD file was also made for assignments clearly stating what was required, what we needed to turn in, and where.

Unfortunately, there was no system implemented for turning in assignments and quite honestly there shouldn't be because they would be public and people could easily cheat in that regard. We used a separate system for turning in assignments (the one our school uses) and so I guess that was a little frustrating because we did not interact with everything in one place -- assignment dropbox and grades would be in one place whereas lectures and assignment details were in another. I guess this is a tough thing about using Github... everything is public unless everyone can get access to a private repository. We also asked questions via email but maybe that's something that could have easily been done through issues such as how this discussion is taking place.

Hope this is helpful!

augbog avatar Jun 20 '14 01:06 augbog

As a high school student taking my school's computer science course, I can say we don't use GitHub or any other VCS-like mechanism, mostly because some students simply don't know how to use Git and teachers don't have the time to teach how to use it. Also, unless they installed the GitHub for Windows program across the network (our district's IT department is somewhat lacking), all Git operations would have to go through the command line, which is also cryptic, foreign, and prone to typos for new users, and possibly a security issue if advanced users exploited such command line privileges.

For educational uses and beyond, I think adding in-browser upload or Git operations, while probably tricky to implement, would make the process much more convenient for both teachers and students since most people will know how to attach files to emails or upload pictures to Facebook, but not many will know how to stage and push commits, branch, fork, etc.

alebcay avatar Jun 20 '14 02:06 alebcay

there was no system implemented for turning in assignments

Yeah, we hear ya. Pull requests can be used to submit assignments, but this only really works when using forks as described here:

https://education.github.com/guide/forks#3-completing-assignments

The catch is that forks are all visible to one another.

unless they installed the GitHub for Windows program across the network

Just FYI, GitHub for Windows (and Mac) can be installed without needing admin permissions.

in-browser Git operations

You can edit files on github.com, but the intention is really for quick edits rather than development, which usually needs to be run locally anyway.

Thanks for the info!

afeld avatar Jun 20 '14 02:06 afeld

For us, the hardest part is the working out the kinks that the kids have at home.

I basically:

  1. Have them create accounts.
  2. point them to some tutorial resources and have them go through them.
  3. Walk them through doing things (command line) in class.
  4. Have them actually go through the workflow in class.

The hard part is debugging problems that they have at home since it takes time to train kids to go from posting questions like "It doesn't work -- help!!" to giving something meaningful with screen shots, error messages and the like.

zamansky avatar Jun 23 '14 15:06 zamansky

On the public / private thing - we use github for homeworks and projects.

Unless there's some special reason, I want all the repositories to be public -- the kids have plenty of ways of sharing information without us knowing about it so I'd rather try to create a culture of sharing with attribution.

This semester, I had each kid create a homework repo and then fill out a form to provide me with the info. I then created a single repo with a submodule for each of their homeworks - that way we could easily look at things together in class.

I haven't really gotten all the kinks out yet -- I'd love to see more, clearer documentation on dealing with submodules (or perhaps I'll create something once I work things out).

zamansky avatar Jun 23 '14 15:06 zamansky

Unless there's some special reason, I want all the repositories to be public -- the kids have plenty of ways of sharing information without us knowing about it so I'd rather try to create a culture of sharing with attribution.

Immortalized: https://github.com/education/guide/pull/15

afeld avatar Jun 23 '14 15:06 afeld

Cool

zamansky avatar Jun 23 '14 17:06 zamansky

Many students have difficulty learning git. Outside of the typical add/commit/push workflow, a good portion of the students are pretty clueless when it comes to even basic things like merge conflicts. As some of our students put it (hopefully as a joke), they learned more about git during the class than the topic of the class itself. I figure this can be helped with optional git workshops toward the beginning of the class for those who need extra help.

georgeyiu avatar Jul 14 '14 20:07 georgeyiu

Would it be possible for anonymous gist to have the ability of commenting anonymously? I wish that my teacher who has no time to sign up on GitHub could comment on my paper I made as a private Gist.

eduOS avatar Oct 21 '14 08:10 eduOS

I would guess it's not allowed for spam reasons.

afeld avatar Oct 21 '14 12:10 afeld

@afeld ok,thanks

eduOS avatar Oct 22 '14 12:10 eduOS

@zamansky I'm interested in how you built the course around having all of the repositories open. I might be teaching a programming course at the college level in the near future and (hopefully I can use Github for it), I have been thinking about what types of projects might be a good fit and how to make sure everyone is involved and one person doesn't dominate it etc.

I love the idea of teaching Git/Github during the course. It does present the need to think differently about how assignments/projects are completed.

I think the best way to make this work would be to focus the students on a semester long project taking full advantage of everything Github has to offer.

caseydunham avatar Nov 05 '14 02:11 caseydunham

Presently I am posting my assignments on github but I am getting my students to use Nitrous.io or c9.io to run the assignments.

hpssjellis avatar Nov 05 '14 05:11 hpssjellis

Casey,

It just isn't an issue for me - everything comes clean in the end. I make it clear that I know that they have access to each others work and I encourage them to look at it but ask that they cite it if they use it. Day to day homework is graded for correctness so students aren't encouraged to copy code just to get it to work - rather, I try to impress on them that it's more valuable for me to see a problem than a false positive, so to speak.

On projects, the kids work on a range of assignments - some solo and others in ever changing groups -- as I said, things come clean in the end - patterns emerge -- who slacks, who leads, etc.

Of course, Github graphs, logs, and diffs help paint the picture.

Mike

On Tue, Nov 4, 2014 at 9:30 PM, Casey Dunham [email protected] wrote:

@zamansky https://github.com/zamansky I'm interested in how you built the course around having all of the repositories open. I might be teaching a programming course at the college level in the near future and (hopefully I can use Github for it), I have been thinking about what types of projects might be a good fit and how to make sure everyone is involved and one person doesn't dominate it etc.

I love the idea of teaching Git/Github during the course. It does present the need to think differently about how assignments/projects are completed.

I think the best way to make this work would be to focus the students on a semester long project taking full advantage of everything Github has to offer.

— Reply to this email directly or view it on GitHub https://github.com/education/teachers/issues/2#issuecomment-61750719.

http://cestlaz.github.com

zamansky avatar Nov 05 '14 12:11 zamansky

How could it be possible without using any code to edit synchronously? You know, it is inevitable to make conflicts when editing between branches and in a branch at the same time. Many thanks. @afeld

eduOS avatar Nov 12 '14 13:11 eduOS

Yeah, conflicts will happen if you have multiple people editing in the same area of a file. If you're asking about doing realtime collaborative editing, look into Google Docs or Hackpad for text, or something like CollabEdit, FirePad, or Floobits for code.

afeld avatar Nov 12 '14 15:11 afeld

@afeld Thanks for your help.

eduOS avatar Nov 13 '14 09:11 eduOS

am new to github and i have a problem of submitting my assignment to my teacher,what is the easy steps to overcome this?

adaudanielle1 avatar Oct 16 '15 21:10 adaudanielle1

Is there any pages available to help teachers get their classroom set up to use GitHub? Would be great for them to learn from the pain points others experienced.

BuildMonkey-zz avatar Feb 01 '16 21:02 BuildMonkey-zz

This conference paper highlights several challenges related to using Github in classrooms, together with motivations and benefts: http://alexeyza.com/pdf/cscw15.pdf

meefen avatar Oct 04 '16 03:10 meefen

Thanks for the conference paper.

So I am teaching an intro to Java course and I think it is working well. Here are my thoughts:

  • Labs :: Here I post the labs to everyone in the organization and use the pull request model to grade. It works well but this means all my comments are viewable to the class. I am ok with this as I view labs as collaborative time. I do feel there might be some FERPA issues though. But I don't give grades this way, just feedback. This is by far my favorite way of using the organization.
  • Homework and Projects :: I assign homework problems using https://classroom.github.com/. This works well because only the student and I can see the repo. So all comments and work are kept private. The problem is grading. If for some reason I want to download and run all the programs, I have to clone each repo separately. This could probably be done in a clever way, but I don't know it.
  • Continuous Integration :: In all of these I use continuous integration to run basic tests on the code. Mainly testing to see if the code compiles. I really like this, but I feel like there could be better documentation about it. I don't know much about CI and would like to see some solid examples on how to use it in the classroom.
  • Examples and Lecture Notes :: I post items for the students to look back on. This seems to be a great way for them have a central place for basic examples and references.
  • Teams :: Teams are great. I have each class as a different team and never the two shall meet. I think this is a nice way to send info to everyone. Biggest problem with teams is that you have to add people one at a time. Can we not just give a list of usernames and then add them all at once?
  • Too many repos :: When the students fork a repo or start an assignments, all of these repos are displayed in the organization. I know that I am the only person to see these, but it would be nice to have discard forks and assignments. This way I can see my repos. In fact a My Repos button would be fun.
  • Learning Git :: I had the first week of labs be GitHub labs. This is where I walked them through the basic work flow. From that point on, anytime someone had a git question, I just referred them to the first lab. After two weeks I did not have any more questions and the class if focused on Java. Further, I only support command line git questions, so if they are using some GUI interface they are on their own. I found they got used to git bash very quickly. Luckily I have not had to deal with merge conflicts yet. But I plan on having GitHub part 2 labs soon to deal with branches and collaboration. Fingers crossed.

Thats all for now. Cheers.

bstone avatar Oct 04 '16 17:10 bstone

@b-stone , since you mentioned that

Homework and Projects ... The problem is grading. If for some reason I want to download and run all the programs, I have to clone each repo separately. This could probably be done in a clever way, but I don't know it.

And

Teams ... Biggest problem with teams is that you have to add people one at a time. Can we not just give a list of usernames and then add them all at once?

You might want to take a look at Gitomator, it's a command-line tool that solves exactly these kind of automation issues.
For example, you can create teams based on a YAML file.

joeyfreund avatar Oct 04 '16 17:10 joeyfreund

Wow, thanks for this @joeyfreund.

bstone avatar Oct 04 '16 20:10 bstone

can a student share his/her private repository with teacher? so no other student can see his/her work ?

re-identification avatar Sep 09 '17 11:09 re-identification

certainly, just make the repo private and then add the teacher as a collaborator.

http://cestlaz.github.com

On Sat, Sep 9, 2017 at 7:48 AM, Wajeeha-Ansar [email protected] wrote:

can a student share his/her private repository with teacher? so no other student can see his/her work ?

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/education/teachers/issues/2#issuecomment-328272291, or mute the thread https://github.com/notifications/unsubscribe-auth/AAm3_1DfwO-uIELPIRMJbk4YSsHpH9u2ks5sgnsggaJpZM4CFZ2_ .

zamansky avatar Sep 09 '17 11:09 zamansky

Note that if you turn on GitHub Pages from the settings of that private repository, the exposed webpages would be public. This is actually quite handy, and I'm using this feature for student journals.

https://github.com/idia640

lisah2u avatar Sep 09 '17 12:09 lisah2u

Set up assignments here: https://classroom.github.com. There is an introductory video that shows you how.

lisah2u avatar Sep 09 '17 12:09 lisah2u

GitHub assignments are private repos. And you can just as easily create a private repo for each student and yourself - one at a time. But by using an 'assignment' you can pre-seed a repo that will be the same for each student. They only have to click on a link to activate. Inside each repository, whether created manually or using assignments, you can adjust the settings (private, public, etc.) to suit.

On Sat, Sep 9, 2017 at 8:20 AM Wajeeha-Ansar [email protected] wrote:

thanks @lisah2u https://github.com/lisah2u . but my question is how i can make private repo..

is it possible that every student make his/her private repo and share it with me ? or i ask github for discount and make private repo for every student?

— You are receiving this because you were mentioned.

Reply to this email directly, view it on GitHub https://github.com/education/teachers/issues/2#issuecomment-328273818, or mute the thread https://github.com/notifications/unsubscribe-auth/AA9EGLdGdp4CMNBIb_rWB-7PVExPrizjks5sgoJwgaJpZM4CFZ2_ .

lisah2u avatar Sep 09 '17 16:09 lisah2u