swcarpentry / DEPRECATED-bc

DEPRECATED: This repository is now frozen - please see individual lesson repositories.
Other
299 stars 383 forks source link

Create lesson on Make. #556

Closed gvwilson closed 8 years ago

gvwilson commented 10 years ago

Make isn't a pretty tool, but it's ubiquitous, and many people use it to manage data pipelines. The directory intermediate/make contains material recycled from Version 4; the goal is to clean it up, add diagrams and challenge exercises, and field-test it.

The topics from the Version 4 lessons are listed below; there's no requirement that the final Version 5 lesson stick to these topics, or this division of material, but it seems like a good starting point. If you'd like to work on one of these, please add your name in a comment on this issue.

chwilk commented 10 years ago

Mark Wilbur, Timothy Warren, and I (Chandler Wilkerson) are going to work on this as part of the SW Carpentry cohort 9 instructor training.

mikej888 commented 10 years ago

Steve Crouch did a make boot camp session based on protein database file analysis for Oxford October 2012, https://github.com/swcarpentry/boot-camps/tree/2012-10-oxford I'd updated that for Cranfield's boot camp next month (text files => word frequency count script => data files => matplotlib => jpg) https://github.com/hpcarcher/2014-07-21-cranfield-students (for wordcount.py and plotcount.py), https://github.com/hpcarcher/2014-07-21-cranfield/tree/gh-pages/archer/sessions (for instructor script). Maybe some things of use in there.

chwilk commented 10 years ago

We've run into some questions working on the Make lesson:

mikej888 commented 10 years ago

Would it be advisable to tone down the apologies for how terrible (because of its very old syntax) Make is? I remember a conversation about how it is better to present software tools without adding a bias if possible.

The conversation was in: http://lists.software-carpentry.org/pipermail/discuss_lists.software-carpentry.org/2014-June/001782.html

This is more minor, but I also think we lose people when we apologize about the behaviour of programs. I know I do this, and I see many other instructors do the same. "Sorry that bash commands are so cryptic", "The syntax for X in Python is a bit strange", "I know that Y isn't terribly intuitive, but...". I think explaining WHY something is implemented in a specific way is good - the SwC bash lessons do a nice job without being apologetic - but apologizing for what you are teaching does not help.

Don't say Make is terrible because of its syntax, but it's good despite its syntax ;-) For make, it's the concepts - targets, rules, dependencies, automation - not the syntax that's important, since these concepts are common to ANT and other build tools too. One could also emphasise that Make has been around for 38 years and that is testament to its utility!

We're thinking of redesigning the examples so they may be attempted by the students in the class--and to do this, we must decrease the prerequisite to the lowest common denominator. Since Linux and Mac are nearly equivalent (and I can test in both) that leaves Windows. @mqwilber suggests that we figure that will be Git Bash, and asks the question, 'What can we expect to find in Git Bash?'

Most the bash commands. But not make! That can be installed by downloading make.exe from https://github.com/msysgit/msysgit/blob/master/bin/make.exe?raw=true and putting it in the Git Bash bin directory e.g. C:\Program Files (x86)\Git\bin. See also #533.

ethanwhite commented 10 years ago

On Jul 3, 2014 2:00 AM, "mikej888" notifications@github.com wrote:

We're thinking of redesigning the examples so they may be attempted by the students in the class--and to do this, we must decrease the prerequisite to the lowest common denominator. Since Linux and Mac are nearly equivalent (and I can test in both) that leaves Windows. @mqwilber suggests that we figure that will be Git Bash, and asks the question, 'What can we expect to find in Git Bash?'

Most the bash commands. But not make! That can be installed by downloading make.exe from https://github.com/msysgit/msysgit/blob/master/bin/make.exe?raw=true and putting it in the Git Bash bin directory e.g. C:\Program Files (x86)\Git\bin. See also #533.

We can have the Windows installer add this if folks are going to use it. Please add an issue to: https://github.com/swcarpentry/windows-installer/issues

timClicks commented 10 years ago

@chwilk and others .. I have had my eyes on this issue for the upcoming Science Lab sprint (https://etherpad.mozilla.org/swc-sprint-2014). Let me know if there's still work to be done by then. If it's wrapped up, I'll find something else to get involved with.

chwilk commented 10 years ago

@timClicks, I don't know that we'll have it wrapped up--we're coming to the end of the instructor training, and this is our final project. I've cloned the repo to chwilk/teaching09-make and we're pretty new with the SWC style, so will probably stomp all over innocent files in the process of learning. Hopefully at the end, we'll have something worthy of a pull request :-)