Module 2 Exercise 2: Recreate Your Assignment Workflow

(Sara Marín-López) #201

Here is my mine :slight_smile:

(Ali Bayram) #202

(Dr. Ayaz H. Khan) #203

excellent suggestion.
GitKraken seem to be an excellent tool to use.

(Carla Giner) #204

I imagine two students dividing the group assignment (although I guess it would require at least two local repositories and one remote, just experimenting with branches for now :stuck_out_tongue: ).

(Yann Thierry-Mieg) #205

Can’t really correctly model my scenario with this graphical viz tool, there are several clones of the repo, one on the machine in the lab class, end probably one on the home machine of each student. The tricky part is when to clone, push and pull, and if necessary merge when the students have worked in parallel on separate copies.

(Nathan Eloe) #206

I suppose this takes some explaining, since it doesn’t look like much. My students have had a lot of conflicting information about version control (and git), and even when they get to my senior level classes haven’t had much (or any) experience with it. I’m focusing more on the formation of good habits (specifically commit small and often, and only related changes). My assignments specify “milestones”, small related things that require they have at least one commit. For example, a recent Data Structures assignment had the following milestones:

  • add required code comment header to all files
  • complete exception class
  • complete non-default constructor
    and so on.

Students were required to have at least one commit that satisfied each milestone (to reinforce what you were talking about in the being selective with Git video).

In future assignments (and when I have them working in groups) I hope to introduce branches, but since that doesn’t change the fundamental workflow (develop, add, commit, repeat) I want to build that in later once I get them using the tool and seeing how frequent commits can give you that “infinite undo” functionality.

(Hernando Enrique Moreno Moreno) #207

hi module 2 exercise 2 gitflow

(Michael Clausen) #208

(Christian Nievas) #209

(JagCode) #210

(Robert Foreman) #211

Our most common workflow is a simple topic branch pull request to master after some amount of local testing as well as some semi-automated testing against the remote topic branch from other sources.

(Pol Benedito Momplet) #212

(Chris Cannon) #213

I dig it, solid explanation! In my class, I’ve found that branches can also be integrated quite well if you have slightly larger individual projects, rather than necessarily waiting for group work. My professor and I set specific milestones that we group into levels, students complete each level on a separate branch, and can actually receive feedback from a TA while the assignment is ongoing through pull requests.

Also, I really like your method of enforcing best practices in commits.

(Gustavo Freitas) #214

It’s very cool, the course! :heart_eyes:

(Lluisgarciapons) #215

(Baptiste Pesquet) #216

(Chris Jones) #217

Only showing the branches without the associated merges.

(Chris Janes) #218

We typically expect students to build new features on branches in the attempt to keep “master” to be “buildable” at all times.

(Glenn) #219

The students have to implement a factorial function, both in an iterative and recursive fashion (factorial_recursive, factorial_iterative). They have to test both functions with user input (testIO_recursive and testIO_iterative).

(Konstantin) #220