Module 2 Exercise 4: Workflow and assignments with Classroom


(Pol Benedito Momplet) #161
  1. Will you keep all course materials in a repository? Or just assignments?
    Different repositories, one per project.
  2. When will you expect students to commit?
    Every time they achieve a goal, before leaving (if the code is working), or every time they want to “save” their process.
  3. What sort of commit messages should they use?
    Descriptives messages
  4. When do you want your students to push their code to GitHub?
    At least one per day, before they leave

(Nikola Dašić) #162

Will you keep all course materials in a repository? Or just assignments?
All course materials in a protected branch

When will you expect students to commit?
On every important change

What sort of commit messages should they use?
Sentence explaining the change.

When do you want your students to push their code to GitHub?
On every important change


(Antonio Gámez) #163

Will you keep all course materials in a repository? Or just assignments?
All course materials are hosted in an internal platform, nevertheless, some code and repo structure examples are located in a separate repository.

When will you expect students to commit?
Since it is a team work, on every change they should commit and push in order to work collaboratively.

What sort of commit messages should they use?
A short sentence explaining the change.

When do you want your students to push their code to GitHub?
On every change for the same reason, they are asked to work in teams, and each member should push the code in order to make it accesible by the rest of the team.


(JFE) #164

** How do you imagine using annotation tool ?**
I mostly work with “projects” rather than “assignments”. In practice we do mostly a global evaluation so annotation is not the primary tool we use. What we need is a build server so that student can get some automatic assessment of their repo. BTW in the video I guess that the tool used is some pull request, but I’m not sure.

Will you keep all course materials in a repository? Or just assignments?

I already use GitHub for classrooms (but without Classoom application). Everything is contained in repositories. One repository for code skeltons and so on. One repository for teaching material. Everything is on GitHub nothing elswhere (no longer moodle or something else). I’m very happy with GitHub and studend like this !

When will you expect students to commit?
There is no rule and this change from course to course. In master this depend on the assignment tasks. Basically they have different issue and they have to solve these issues. So at some point they will have “this commit close #4 or so”. They can however make some commits in the middle depending on they way the work (usually in pair).

What sort of commit messages should they use?
Some commits refer to issue number, most commit don’t. For licence student insisting on commit on atomic changes is too much. So this depend on what we need to teach.

When do you want your students to push their code to GitHub?
They do this quite often because they work on central repo model. I also ask them to push from time to time to check their progress. And some push just before the deadline with release and pre-release.


(John Isaacs) #165

This is going to make my teaching so much easier

!


(Paula Waite) #166

Imagining use in my courses

Provide starter code for weekly work. Would love to set this up so that when code is pushed, some unit tests and standards checks would run.

Workflow

  1. Will you keep all course materials in a repository? Or just assignments?

    • It depends on the course. For one class I already put all course materials in GitHub, and then create separate repositories for the assignments. For other classes, the course materials are hosted on a website already, but I would like to starting using a repository for each assignment.
  2. When will you expect students to commit?

    • They should commit when they have a small piece working.
  3. What sort of commit messages should they use?

    • Commits that explain what the commit “is about”. It should be detailed enough for students to be able to backtrack if they need to.
  4. When do you want your students to push their code to GitHub?

    • Pushing to github also serves as a backup, so these should be frequent.

Here is a screenshot of an actual organization and assignment that I’m using this semester:


(Vladimir Jovanović) #167
  1. Yes, I will keep them all in a repository.
  2. After they are done with particular logic part.
  3. Describing their changes in two words or three.
  4. Right after committing so that we can all stay up-to-date.


(Kevin ROBERT) #168

1 repo per assignment, including a cheatsheet. I’ll keep course materials in slides.

As often as possible, thus I should be able to better monitor them and be pro-active on helping them.

They should use meaningfull commit message, basically a verb then a complement.

After any commit if possible :wink:

Here is a screenshot of my dashboard:


(J Rice) #169


(Dejan Čurk) #170
  1. Will you keep all course materials in a repository? Or just assignments?

Depends of the tasks. Mostly just assigments.

  1. When will you expect students to commit?

Multiple times through out assignment, when they write a working block of code, to monitor the progres.

  1. What sort of commit messages should they use?

1-3 sentences describing the code.

  1. When do you want your students to push their code to GitHub?

When the finish coding. It could be one commit or several.


(Harun Umar) #171

@mozzadrella here is my Exercise: Workflow.

  1. Yes I will keep my course materials in a repository for my students to gain access anytime.
  2. I will expect them to commit anytime they make a major change to their project.
  3. They should use descriptive messages that shows what changes they have made.
  4. They should push their code each time the complete a reasonable milestone.


(Bgarnb) #172

Exercise: Workflow

  1. Will you keep all course materials in a repository? Or just assignments?
    I am planning to use one assignment per repository and maybe some repositories for extra materials
  2. When will you expect students to commit?
    Students are expected to commit as more as possible
  3. What sort of commit messages should they use?
    Messages that describe their work or code issues
  4. When do you want your students to push their code to GitHub?
    I would prefer that the students will work their code on github or at least commit very often.
    Exercise: Distributing assignments
  5. Create an organization with your course materials for one assignment in a repository.
    The name of the organization for one assignment is test-campus
  6. Create a Classroom, and an individual assignment.
    The names of the classroom / assignment are Module 2 Network Activity
  7. Send it to a colleague to accept.
    I sent it to a colleague
  8. Take a snapshot of your teacher dashboard and post it below.
    image

(Ethan McGee) #173

Since we are in the middle of the semester I was able to get a student to help with this. We even got Travis-CI setup and automatically confirming that the submission could compile!

I am currently keep course material and assignments in separate repositories.
I expect students to commit on a regular basis using Git to have a live-ish backup of assignments.
Commit messages should be relatively detailed (mainly to remind them what they did the day before).
Code should be pushed to Github regularly. Failing CI tests are fine until their submission is considered by them to be complete.


(Mari Potgieter) #174
  1. Will you keep all course materials in a repository? Or just assignments?

It will depend on the task but I will probably keep my assignments and course material together in different repositories – one per project.

  1. When will you expect students to commit?

After completing a task or achieving a goal.

  1. What sort of commit messages should they use?

Short but descriptive, so it easy for students to backtrack to previous work done.

  1. When do you want your students to push their code to GitHub?

After completing a task or achieving a goal. This should be done frequently, as GitHub also serves as a backup for their work.


(Bhavin Jawade) #175

I use repositories for learning materials and resources but github classroom specifically for assignments for students.

I expect them to commit after every update they make and when they are moving on to other feature.

Informative: Usually of this format
Featureupdate_nextTodo

After every feature update. When they have a doubt in the assignment or when they want to submit the assignment.


(John Simonsen) #176

I used GitHub Classroom for the first time this semester - so the screen shot show’s multiple assignments that were accepted by many students.

  1. I kept the template code and a readme rubric in the repository. The lessons were kept on Canvas LMS since that’s where I need to submit my grades.
  2. I expect students to commit their progress as they work on assignments in class throughout the week (due Sunday at 11;59pm, so mostly Sunday night)
  3. I’ve tried to have them make meaningful commit messages when they figure out a part of the assignment, but mostly get garbage messages on the individual assignments.
  4. I’ve had my student push to their own branch on the repository as often as they like, since I have them do a pull request (so that I get a email) when they’re ready to be graded. I did this mainly because I’m letting them do corrections (another pull request) that happen after the assignment is due. I’m wanting to change this so that I’m not grading each assignment by hand and use CI to automate the majority of the work.

(Chris Cannon) #177

This all looks great @brrcrites! I’d be interested to read the articles you share with your students regarding git workflow and good commit messages if you wouldn’t mind sharing them here.


(Brian Crites) #178

I don’t mind sharing the articles I use at all @ccannon94. I started using git about 5 years ago for my research (and personal projects), and these were some of the articles that I found most useful for myself and the small team of researchers I work with. I use these as the basis of advice that I give to my class on ways to use git. While every team will be different, I think its good to give them some type of best practices to start with so they are at least aware that how they use git can be as important as using it in the first place.

For workflow, I use this MojoTech article on git workflow. I find the branch naming convention (prepending it with your GitHub handle) one of the most useful suggestions, especially when you have projects that involve partners or on my team with multiple researchers, although I am having trouble getting my course students to actually use branches vs. just committing straight to master. I don’t personally use tags in commits messages, which is another one of their suggestions, but I do like the budding idea of using emoji to tag what type of commit it is. I’m not sure what kind of accessibility issues are introduced by this type of tagging, but I do think its creative.

For commit messages I generally follow this article by Chris Beams (which it looks like @neloe has already mentioned, the “already posted” feature on these forums is really cool).


(Chris Cannon) #179

These are awesome resources, thanks for sharing @brrcrites! I’ve had the same problem with my students, and getting them to commit atomically and consistently. My LEAST favorite exchange is when a student loses work, comes to me for recovery help, and it turns out it was lost and they hadn’t made a commit since they started working :expressionless: