Will you keep all course materials in a repository? Or just assignments?
I have my own website that I publish other course materials so I would primarily use github for assignments.
When will you expect students to commit?
Frequently and often. I want them to get into the habit. Using Github also means they have a remote backup for their work, so fewer “my machine” died excuses.
What sort of commit messages should they use?
Reasonably explanatory ones…
When do you want your students to push their code to GitHub?
Frequently and often. This will act as their remote backup and if they have questions for me on the assignment they must push their code!
- For the majority of my courses, I will keep only assignments and examples in the repositories.
- Students will commit assignments frequently. I will look at the commits when they need feedback or when the assignment is due.
- Commit messages should always be a log of everything that changed, since most of the students will eventually start working with others in groups. In groups, the messages are extremely important.
4.A minimum at the end of each work session.
Last year, I created a single repository for each student and had them create a separate Java package for each assignment that they then used EGit in Eclipse to commit and push to github. It worked pretty well, but since all work was merged into one repository, it became somewhat burdensome and not very conducive to partner/group work.
I think this year, I’ll try to create one repository per assignment per student and seed it with some starter code. I probably won’t put other course materials in the repositories until I determine that I want to commit to this approach (assignment info is currently in Google Docs and pushed out to students with reflection questions through Google Classroom).
I expect students will commit and push often as they work through labs: at the end of each class period (90 minutes), from home, to submit for peer review/testing, and to “turn in” final code. Github has the advantage of making it fairly easy to work on code both in class on school computers and from home/library computers. (EGit in Eclipse has a convenient “Staging Area” window that allows student to commit and push in a single operation - I expect I’ll continue to use that while emphasizing the difference between committing and pushing to students).
Commit messages haven’t been particularly descriptive in the past, but I’m hoping to “encourage” students to describe major milestones as well as an indication of finished work.
See #2 above
The way this is organized, where a classroom links to an organization, lends itself well to keeping all course materials here. Layout the entire course in the Organization level. Each semester/year, individual courses (Classrooms) are linked to the Organization. Assignments within each Classroom reference resources in the Organization. They can be set up in advance or as you go. They only become available when invitation links are shared.
What goes in repository—So, I am leaning toward keeping all course materials in a repository.
When to commit—I think I would like students to commit whenever it makes sense and at the end of a working session.
Commit messages—should be short, yet descriptive
When to push—push working code. It may not meet requirements, yet, but I want to see their iterations.
I am teaching a statistics courses for undergraduate and graduate students. The courses contain other material that is not git related so only the git-related projects will be kept in a repository. I am breaking with the suggestion of one repository per assignment and doing multiple assignments in one github repository because each assignment will build on the previous one as students build up to a complete project. This allows me to actually go in and make corrections between assignments to make sure that projects stay on course.
I expect students to commit in small units as they complete various tasks within each assignment and I want them to push regularly so that I can track their progress and identify any errors early. I have never given them much direction about their commit messages besides writing something that is brief but will make sense later.
- I will keep all the course materials such as Notes and Tuitorial sheets so that student can take help from that i order to solve the assignment.
- I will expect student to commit gradually within the duration assigned.
- They should use proper formal commit message that is easily understandable.
- when they complete their assignment fully and revised it already.
- I will keep Assignment in the repository and course material on google classroom
- I expect them to commit as frequently as possible
- short and descriptive commit messages
- as often as possible
1- I will keep all the course materials such as Notes and Tuitorial sheets so that student can take help from that i order to solve the assignment.
2-I will expect student to commit gradually within the duration assigned.
3- They should use proper formal commit message that is easily understandable.
4-when they complete their assignment fully and revised it already.
As a community leader - I think that classroom would be really helpful for distributing assignments in community workshops and training.
It would be useful to keep all the information needed for a course within one repository. So that there is one central place for students to check in.
I’d expect students of my workshops to commit in a “little and often” approach - making regular commits for each change they make during the process of the workshop.
Their commit messages should be descriptive of the changes made and relevant to help their future selves should they need to reflect on the changes made.
Students should push their changes when they are happy with the commits they have made locally and they should try to keep their remote as up-to-date with their local working repo as much as is possible within their workflow. For example - when they have been working during a workshop session they should push their changes at the end of the session to ensure the remote is up to date, instead of leaving this process until the next session - as this is where they risk getting out of sync with themselves.
Here’s my screen shot of my Classroom Dashboard
I will probably keep the material associated with a particular assignment in the same repository as the assignment itself.
Students should commit after major changes to their program, or at a minimum at the end of class.
Descriptive but short.
At the end of each class period, or if they are working from home, when they finish their work session.
Exercise: Distributing assignments
I don’t have any colleagues that use GitHub, so I sent an invite to myself.
In the academic year 2017/18 used repositories for assignments as well as workshop tasks. They all came with explanations in the form of markdown files, but course materials in the sense of lecture material was not kept in repositories.
Good students did commit often (I advised them to commit eraly and often), but not so good students would just hastily upload their files into the repo through the web interface in teh last moment. I will tr to get this sitution to improve.
They did encounter some problems if one of their classmates forgot their password. If in a workshop one student had too many failed login attempts through GitHub Desktop our IP address would be blocked and none of the students could commit.
Commit messages ranged from poor to very good. This is another area where I will try hard to get the students to use better commit messages.
Regarding the question when students should push, that depends. In one of my modules they use GitHub to submit questions to answers, in another module they are programming. I wil leave it up to the students, but my feeling is that more often is better.
Below is a screenshot from one of my assignments.
- At the moment I anticipate creating one repository per Unit of the curriculum. I may create a second repository containing all review material for that Unit that would be distributed towards the end of that Unit’s coverage.
- I would expect students to commit upon completion of an individual assignment to indicate a submission of that assignment. Other commits would also be allowed at key points of the work flow with expectations of clear comments to distinguish an assignment submission from any other commit.
- I am still attempting to work out when students will “push” to GitHub as they will be working from Chromebooks and not traditional PCs. I am searching for appropriate cloud based editors and IDEs that will be compatible with Chrome.
I am most certainly open to suggestions and ideas to improve upon this process.
- Will you keep all course materials in a repository? Or just assignments?
There will be a repository for each assignment. This will serve as the “starter code”. These repositories will contained in the organization which we set up for the class.
- When will you expect students to commit?
We expect the students to commit as soon as they start working on the assignment. As they write code finish portions of the assignment, they should commit it.
- What sort of commit messages should they use?
Commits should be concise and descriptive, giving insight as to what was changed with each commit without being too long.
- When do you want your students to push their code to GitHub?
Code should be pushed to GitHub by the due date of the assignment.
I created a second account for myself as a student so I could log in on both the instructor and student sides and see both at the same time (using two different browsers). So, I am my own colleague in this case, since I don’t currently have a colleague around.
I created an organization for one of my sections of Robotics.
Within that, I created a repository for the first chapter that has code (Ch 3; Ch1 is just course outline, grading, etc; Ch2 is beginning construction).
In that repo was one file: README.md, and, in that, there is just basic instructions on what codes to submit. The chapter is built by giving the students a sequence of short, separate codes that they have to type in (from screenshots, the idea being that there is some value in the act of accurately typing this stuff in and getting that right), and then a challenge where they have to put these codes together into a larger code in a new way.
I created an assignment off this repo, and assigned it to a student (myself).
As student, I logged in, opened the assignment, and submitted the first activity as a commit.
I noticed that the three commits I made when creating the original repo all showed up as commits on the student’s repo as commits, so the student started with 3 commits.
Q: Will you keep all course materials in a repository? Or just assignments?
A: I wasn’t thinking on keeping all the course material in a repository, however based on what I’ve seen now with GitHub Classroom I’ll need to reflect on the options during the summer holidays!
Im teaching some subjects in post obligatory studies ( secondary studies from 16-19 ). In our Institute we use Moodle. So i think that theory and other materials would still be there. I have to think to create a repo for theory and reference materials.
Also i will publish the assignments in Moodle with the link to github and dead line. I think theres no way to manage marks and notify them to students in Github Classroom. So id use a mix of these two platforms.
Q: When will you expect students to commit?
In short Asap.
As im newbie in Github and this project that seems exciting and useful, right now i think that id distribute a link to an assignment with specifications, and some starter code or some general ideas. They would have to create some kind of developer branch or test branch, with their work. Id recommend to commit with many frequency in order to go back or forward with no big changes. Finally when they finish their assignment they d have to merge it in the master branch. I think is the one delivered to students.
This final work have to be downloaded and send via moodle, just in case. Then id comment and assign marks with moodle.
As said this is a beta version, as in September we begin the course, if problems arise or whatever, we can change this initial idea.
Q: What sort of commit messages should they use?
A : As said before many commits, with a little comment inside. So they know about what changes are being made and what is stil in the to do list. Comments like added login form, adding blog page, modifying blog, working in database etc…
Q: When do you want your students to push their code to GitHub?
In short Asap.
Also id recommend to make git pull in order to avoid many differences between Github in the cloud and git in local machine.
My assignments would be individual and perhaps with Github id take advantage and make one or two group assignments.
Exercise: Distributing assignments
Create an organization with your course materials for one assignment in a repository.
Create a Classroom, and an individual assignment.
Send it to a colleague to accept.
Take a snapshot of your teacher dashboard and post it below.
I have to make the roaster as i dont have any students till the beginning of the course in late September. Same happens with my mates.
Looks great @theportablegeek! I look forward to hearing how these strategies play out
I’m a big fan of pushing after each commit! Every step to mitigate student data loss saves us time