{"action":"created","issue":{"url":"https://api.github.com/repos/swcarpentry/git-novice/issues/304","repository_url":"https://api.github.com/repos/swcarpentry/git-novice","labels_url":"https://api.github.com/repos/swcarpentry/git-novice/issues/304/labels{/name}","comments_url":"https://api.github.com/repos/swcarpentry/git-novice/issues/304/comments","events_url":"https://api.github.com/repos/swcarpentry/git-novice/issues/304/events","html_url":"https://github.com/swcarpentry/git-novice/issues/304","id":163810371,"number":304,"title":"Pointer to let the group keep up","user":{"login":"TomKellyGenetics","id":5493325,"avatar_url":"https://avatars.githubusercontent.com/u/5493325?v=3","gravatar_id":"","url":"https://api.github.com/users/TomKellyGenetics","html_url":"https://github.com/TomKellyGenetics","followers_url":"https://api.github.com/users/TomKellyGenetics/followers","following_url":"https://api.github.com/users/TomKellyGenetics/following{/other_user}","gists_url":"https://api.github.com/users/TomKellyGenetics/gists{/gist_id}","starred_url":"https://api.github.com/users/TomKellyGenetics/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/TomKellyGenetics/subscriptions","organizations_url":"https://api.github.com/users/TomKellyGenetics/orgs","repos_url":"https://api.github.com/users/TomKellyGenetics/repos","events_url":"https://api.github.com/users/TomKellyGenetics/events{/privacy}","received_events_url":"https://api.github.com/users/TomKellyGenetics/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":5,"created_at":"2016-07-05T09:41:08Z","updated_at":"2016-07-05T13:31:13Z","closed_at":null,"body":"Tried my hand at being Instructor for `git` at [SWC Otago](mikblack.github.io/2016-06-29-Otago/) rather than my usual R. I had a few issues with the pace of the group varying wildly and I'd like to raise some potential solutions for discussion among `git` instructors.\r\n\r\nWhen you're teaching R in the RStudio IDE, you can have the script and command windows separate. This way we can run commands with loads of input, learners can still see the command that generated it. This has the added bonuses of leaving recently run commands above so that learners lagging behind can work through them at their own pace and enabling helpers to better troubleshoot issues. Similar set ups can be achieved in iPython Notebooks and it isn't really necessary in `bash`, rarely generating such a large output until learners are building up scripts themselves.\r\n\r\nHowever, I found the `git` lessons more challenging to pace in this regard. With `git log` and `git status` commands to show where we are quickly crowding out the history. We tried to integrate the `git` and `bash` lessons with me taking over the previous instructor's machine to have the same file structure as the participants. This merely exacerbated the issue with Mac printing `git log` to the terminal so I couldn't return and continue to the previous commands with `q` as I would do in Linux.\r\n\r\nI tried to stick to my RStudio style of running several commands and pausing to explain what we'd done and what we would need to do next. It quickly didn't work. I improvised with `clear` and `history -n 10` and used it profusely to restore our session so learners could follow along for mini-tasks rather than line-by-line (say checkout a branch, make a commit, and check the new log). This worked somewhat and even got several special mentions in the feedback. Some even used `history` themselves to adapt their loops into scripts as we were doing in a later lesson. Our instructor for the second half of `git` used `zsh` which alleviated some of the need for `ls`, `pwd`, `git status` commands and it seemed to work but I'm unsure that fits in the realm of Software Carpentry.\r\n\r\nAnother solution I came up with to maximise the time showing previous commands for learners to follow along was to edit text using redirects and appends `echo \"example text\" > file.txt` rather than an editor so the editor didn't hide the terminal. However this backfired, I was able to go faster, while many learners were fretting about the syntax of the arbitrary strings as carefully as commands they'd just learned in the bash lesson rather than focusing on `git` at the level of files.\r\n\r\nBoth of these were ad-hoc solutions so I was wondering whether others could benefit from these pointers or had suggestions for solutions of their own. My aims were simple:\r\n- have a history of the recently run commands for learners to follow\r\n- have text large enough to view at the back of a class of 40-60 people\r\n\r\nI have heard of convoluted `.bashrc` set ups but I'd rather a solution which does not reconfigure an instructor's personal machine. A similar set up to RStudio (pushing commands from a text window to a terminal) could be suitable if the text were large enough but copy/paste seems rather crude.\r\n\r\nThe main take-home message is that the best way to code is not the best way to live-code for a class. Any Suggestions?"},"comment":{"url":"https://api.github.com/repos/swcarpentry/git-novice/issues/comments/230478656","html_url":"https://github.com/swcarpentry/git-novice/issues/304#issuecomment-230478656","issue_url":"https://api.github.com/repos/swcarpentry/git-novice/issues/304","id":230478656,"user":{"login":"lexnederbragt","id":1122351,"avatar_url":"https://avatars.githubusercontent.com/u/1122351?v=3","gravatar_id":"","url":"https://api.github.com/users/lexnederbragt","html_url":"https://github.com/lexnederbragt","followers_url":"https://api.github.com/users/lexnederbragt/followers","following_url":"https://api.github.com/users/lexnederbragt/following{/other_user}","gists_url":"https://api.github.com/users/lexnederbragt/gists{/gist_id}","starred_url":"https://api.github.com/users/lexnederbragt/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/lexnederbragt/subscriptions","organizations_url":"https://api.github.com/users/lexnederbragt/orgs","repos_url":"https://api.github.com/users/lexnederbragt/repos","events_url":"https://api.github.com/users/lexnederbragt/events{/privacy}","received_events_url":"https://api.github.com/users/lexnederbragt/received_events","type":"User","site_admin":false},"created_at":"2016-07-05T13:31:12Z","updated_at":"2016-07-05T13:31:12Z","body":"I don't have the same experience with learners getting lost after several commands - at least for the standard git lesson (that does not do any branching). I usually take it quite slow, and there are not that many commands. In addition to pointing learners to the lesson website, you could also ask learners or a helper to mirror all commands in the etherpad. Finally, whenever I modify a text file, after I close the editor (`nano`), I run `cat` to show the final content in the terminal (following the novice lesson, you'll have at most four lines of text)."}}
{"actor":{"display_login":"lexnederbragt"}}