Module 2 Exercise 4: Workflow and assignments with Classroom


(Mark Patterson) #41

Will you keep all course materials in a repository? Or just assignments?
We use our moodle site for course materials. We’re looking at GitHub Classrooms for code submission, but we also require written reports with most of our assignments.

When will you expect students to commit?
Ideally, atomically, but like others have posted, it is difficult to get the students to understand this. I think this is one of those things that takes experience and use.
We might also look at trying to model other version control systems using git, so the students have an understanding of different workflows.

What sort of commit messages should they use?
A sentence or two describing the changes to code since the previous commit.

When do you want your students to push their code to GitHub?
If it’s their own private repo, then frequently. If it’s a shared repo, they should make sure any new commits are satisfactory before pushing (appropriate commit messages, no files/data accidentally included that shouldn’t be, etc)


(Joachim Francois) #42

Exercise: Workflow
Will you keep all course materials in a repository? Or just assignments?
When will you expect students to commit?
What sort of commit messages should they use?
When do you want your students to push their code to GitHub?

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!

I’d expect my students to make a commit on every meaningful addition of code when they’re working. Preferably working with branches per User Story they create, commiting at least once per related task in that story. Their commit messages should be a clear summary, so someone with knowledge of the project they’re working on can already see the progress based on browsing the commit overview.

If students are working on an individual assignment they’re free to push the code to GitHub once they are done. Ofcourse when they’re working in groups they’ll need to make some teamrules and agree upon those wjile working.

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.

@mozzadrella I do wonder as I’ve got a lot of parallel courses if I’ll need to go through the approval process for every single Organisation I’d create as recommended in this Module?
Not that I’m bothered to do so, but I’ll need to plan well in advance so all the Organisations are approved in time prior to the start of the first assignments.


(Danny de Vries) #43
  1. Will you keep all course materials in a repository? Or just assignments?
    Overall course materials are guidelines are in one repository. Then all individual assignments will be in different repo’s.
  2. When will you expect students to commit?
    They commit each step whenever they want but push at the end of a workshop day. So that’s their progress of the day.
  3. What sort of commit messages should they use?
    Based on Chris Beams guidelines which can also be specified in a contributing.md.
  4. When do you want your students to push their code to GitHub?
    After the day of a workshop they push the progress thus far.


(Vanessa) #44

@ConsoleFriend the answer is yes, you will need to re-apply. The approval process takes about 48 hours on average.


(Vanessa) #45

If it’s their own private repo, then frequently. If it’s a shared repo, they should make sure any new commits are satisfactory before pushing (appropriate commit messages, no files/data accidentally included that shouldn’t be, etc)

In shared projects, I would also remind your students to run git pull fairly often, as smaller incremental changes and syncing will help prevent very complicated merge conflicts.


(Joachim Francois) #46

Thanks for the info!
I wanted to make sure that I didn’t cause any issues in spamming the approval process :slight_smile:


(Rohith Pudari) #47


(Roberto Martínez Román) #48
  • Will you keep all course materials in a repository? Or just assignments?
    

Just assignments. I’ll keep materials in my personal page.

  • When will you expect students to commit?
    

Assignments in my class are a list of exercises. So i’d like to see how often my students commit. My course is gamified, so early commits means more points :slight_smile:

  • What sort of commit messages should they use?
    

Which exercise is finished, problems with solution, etc.

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

As early as they have an advance.


(Marco Chiapello) #49

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

Just assignments

When will you expect students to commit?

Asap

What sort of commit messages should they use?

As clear as possible to allow me to understand their progress

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

Asap


Example of my classroom for R course.


(Vanessa) #50

I would recommend that your students make commits that are meaningful, logically-grouped changes–as opposed to ASAP :slight_smile:


(Marco Chiapello) #51

Thank you for the useful advice! I am always in doubt about the commits frequency.


(Dr. Ayaz H. Khan) #52


(Robert McKenney) #53


(Cwoods88keys) #54

We’ve been using an LMS for all course materials so I would start by leaving that material there. However, assignments in the GitHubClassroom would be a great way to deliver the starter code. I would also like to create various “checkpoints” when I can log into their repo, review their progress, and make comments before they go too far in the wrong direction. I LOVE the ability to comment in-line rather than reference a line number and hoping they take the time to look at it.


(Mark Lantsberger) #55

No. I’ll begin with using Classroom for working with Lab Assignments. I have a system using Edmodo that I’m very comfortable with.

My expectation will be at least a few commits per day. I’m planning on GitHub to replace the “flash drive” mentality and avoid students “forgetting” their drive and losing a day’s work time.

The messages need to be traceable. So for each new step in their pseudocode they take and complete, there should be a commit for that.

I would expect AT LEAST one push per class period and (if they work at home) one push per evening [it could be more]. This way they have the habit of the remote holding their most current work AND they have the option of backtracking when things don’t work out.


(Mrculp Mhs) #56

Once a class period.


(Theportablegeek) #57

Based on previous experience using GitHub Classroom, I have found it incredibly helpful to include all course material related to the assignment in the repository for the student’s to have easy access to reference material while completing the assignment.

I haven’t yet used GitHub Classroom for a programming specific task, but would recommended to students that they commit any time they make a significant change to their codebase that they would want to remember, or they think would be important for someone else reading the code to know. While the commits are certainly helpful for me when marking assignments, I would make sure to highlight to the students that these message are most useful as a way to log important changes so they can easily track errors if (and when) they occur.

I would recommend to students that their commit messages are short but descriptive, summarizing the change and giving enough information for them (or a third party) to identify why it was made. Ultimately, for them these messages are a way to spark their memory and for me they are a way to understand the student’s thinking as they progressed through the assignment.

Students should push their code at the end of every programming session to help show their skill development as time progresses. This is both to help identify potential areas of weakness within their technical understanding of concepts as well as to potentially provide process marks if their final product was not completed as expected.


(Hammad Mashkoor) #58

Exercise: Workflow

  1. Will you keep all course materials in a repository? Or just assignments?—Course Materials as well as assignments
  2. When will you expect students to commit?—Yeah , commit often
  3. What sort of commit messages should they use?----Strictly logical and definitive.
  4. When do you want your students to push their code to GitHub?-----At the end of every class session.

Exercise Snapshot :


(Charlotte Morrison) #59

Hello,

  1. I will only use the repositories for coding assignments. The rest of my course materials will be kept in a CMS that allows for me to incorporate a lot more features (online quizzes/test banks, etc). It is far more time consuming for me to use repositories for this type of student assignment. But, for the coding projects it will be perfect, the students often have no way to save/share work or transport it between computers. This will be very helpful.
  2. I will expect to see commits whenever I assign a project. Normally (unless a student has a problem) they should have at least 1 commit for each class session that they work on the project. I may also expect commits over weekends or in the evening if a project is assigned for homework. I would also have them commit after they finish a requirement/functionality of a program and get it working properly.
  3. The students should use detailed messages (I am not good about this myself!) to explain what was updated or changed from the previous commit. This way, I can easily look back and help them figure out where problems are and I can track progress.
  4. Students should push their code to github at the end of each period (we have 1 1/2 hour blocks) or when they complete a discrete portion of a program and have it functional. They should also push to github after they work at home- so that they can have access to current code when they come to class.

I don’t have any colleagues on github :frowning_face: but I hope to share this with them later this school year after I get it implemented with my students. But I was able to add all my students in preparation for the next year. They won’t be able to access assignments until they have training.


(Dadremarie) #60

I will put assignments with starter code in GitHub Classroom
I will have students commit with code as they make changes, for steps in the assignments
The message should say grade or question
I will have students push code is ready to grade or they have questions