swcarpentry / DEPRECATED-bc

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

Can we make the shell challenge files available to learners? #646

Closed DamienIrving closed 8 years ago

DamienIrving commented 9 years ago

In the novice shell lessons there are a number of challenges where students are asked to consider a hypothetical directory tree, or a hypothetical file (i.e. the tree or file doesn't exist, but the question describes it in words or via a diagram). The most common feedback I get at bootcamps (and I've been involved in quite a lot of them) is that learners would really like to be able to have those directories and files on their own machine. I try and explain that they can simply create a dummy file or directory tree, but this explanation just doesn't seem to wash with most learners. When they are struggling to come to terms with so many new concepts, creating a dummy file is just another confusing thing that they have to figure out how to do.

A related question is how best to make these files and directory trees available to the learners. It would probably be nice if they didn't have to clone the entire bc repo (particularly because at that point version control hasn't even been introduced), but I'm not sure what an easier alternative would be...

wking commented 9 years ago

On Sun, Aug 03, 2014 at 04:09:32PM -0700, Damien Irving wrote:

A related question is how best to make these files and directory trees available to the learners. It would probably be nice if they didn't have to clone the entire bc repo (particularly because at that point version control hasn't even been introduced), but I'm not sure what an easier alternative would be...

In my #102 mock-up, I split the shell examples out into their own repositories (preserving their history). I haven't been following their development since then, but these were current in October 2013:

Each repository is pretty small, since there hasn't been much churn in the examples themselves. The idea was that instructors preparing for a workshop would pull in only the exercises they would actually use. For example:

2014-08-06-my-site$ git pull git://tremily.us/swc-modular-shell-hearing.git namespaced

pulls the hearing example into the repository you're distributing to your students. The ‘namespaced’ branch, with the example content under modular/shell/exercises/hearing/. If you prefer a different location, you can create a new hearing branch with your preferred prefix path.

An alternative to #102's branched workflow would be to use a package manager, as sketched out during the recent sprint 1.

claresloggett commented 9 years ago

In a workshop for my class, where I used those Unix lessons, I wanted the same thing, so I pulled the filesystem containing nelle (novice/shell/filesystem I think) into my repo at the root (moved it to /filesystem) and instructed students to clone the whole repo and then cd repo-name/filesystem/users/nelle right at the start. This had the side benefit of getting them the source of the lessons themselves. But I could also have zipped it and added the zip file to the repository - then you can just give them the download link.

I found though that many things which the lesson says are in nelle's home directory were actually in vlad's home directory! I had to move that content between directories. I just took everything from vlad and gave it to nelle, since the lesson I had doesn't use vlad at all. Even then I think there were some slight inconsistencies with the lesson, but it was pretty close and students seemed happy. I'm not sure if I was using the wrong example filesystem.

Some commands will obviously still never give the example results, like whoami and ls /. I think this is fine though, it gives you a chance to explain to students what's going on.

Here are the instructions I gave them for setting up the Unix workshop, in case that's helpful: http://claresloggett.github.io/hammingdist_workshop/novice/shell/setup_unix.html

And here is an example where I've added a zip file to a gh-pages repository for them to download (this is for a different lesson): http://claresloggett.github.io/comp90014_workshops/assembly_workshop_data.zip

claresloggett commented 9 years ago

Actually, I am in the middle of SC teacher training right now and we're up to the point where we make pull requests to content. So I'll check with Greg and if this is a sensible fix, will pull-request in a zip file of the appropriate (fixed up) filesystem and edit the Unix lesson to tell students to download and unzip it.

chendaniely commented 9 years ago

I think I remember reading somewhere that someone proposed a shell script that makes a standard set of files and directories for the bash lesson?

This can be done in the beginning of the lesson and then later when we cover scripts we can open it up and show them everything they learned.

rbeagrie commented 9 years ago

This probably won't work so well for learners but if you have SVN installed you can download just the "filesystem" directory and it's contents with svn export https://github.com/swcarpentry/bc/trunk/novice/shell/filesystem

I'm also teaching unix at a bootcamp for next week and I've put all of the files from all 6 shell lessons into nelle's home directory. I'm in the process of changing the lesson text/diagrams to match the new layout and was planning to submit it as a PR either today or tomorrow if that helps...

gvwilson commented 9 years ago

This probably won't work so well for learners but if you have SVN installed you can download just the "filesystem" directory and it's contents with |svn export https://github.com/swcarpentry/bc/trunk/novice/shell/filesystem|

|"Won't work so well for learners" is masterful understatement :-)|

I'm also teaching unix at a bootcamp for next week and I've put all of the files from all 6 shell lessons into nelle's home directory. I'm in the process of changing the lesson text/diagrams to match the new layout and was planning to submit it as a PR either today or tomorrow if that helps...

Clare, would you be willing to review the PR when it lands?

rbeagrie commented 9 years ago

PR is up - #671

Review would be great, I'm sure I will have missed something somewhere!

gvwilson commented 9 years ago

@claresloggett over to you for review?

claresloggett commented 9 years ago

Sure!

claresloggett commented 9 years ago

I've added a comment to the PR with a couple of minor things. I suspect some more directories may have been empty and therefore not added to the filesystem in git. Looks great though!

claresloggett commented 9 years ago

Following on from the fixes by @rbeagrie , now that the example filesystem is consistent with the lessons, I wanted to try to make it easier to get students to download this filesystem and use it in workshops. Since they haven't usually covered git by this point and may not have it installed, I thought a zip file would be a good option - nearly every system can download and unzip.

I've also added a little bit of instruction to the start of the first shell lesson to tell students to download the zip file. I'm not convinced I've done this in the best way... comments would be great. Here's a pull request with my initial attempt: #716

@DamienIrving do you think this will work for your workshops? Suggestions very welcome...

@gvwilson is this an appropriate topic for me to cover in teacher training?

wking commented 9 years ago

On Sun, Sep 14, 2014 at 03:44:46AM -0700, claresloggett wrote:

Since they haven't usually covered git by this point and may not have it installed, I thought a zip file would be a good option - nearly every system can download and unzip.

If it's in a repository on GitHub (or most any hosting site), there's going to be a way to get zipped and tarballed archives of the repository. For example, we had students downloading from:

https://github.com/wking/2014-03-17-uw/archive/master.zip

(or one of its relatives) when they couldn't get:

$ git clone https://github.com/wking/2014-03-17-uw/archive/master.zip

to work. I don't see any downsides to this approach ;).

wking commented 9 years ago

On Tue, Sep 30, 2014 at 11:10:11AM -0700, Greg Wilson wrote:

Assigned #646 to @wking.

This (and the related #716) should be automatically solved once #759 lands.