{"action":"created","comment":{"url":"https://api.github.com/repos/swcarpentry/website/pulls/comments/60082717","id":60082717,"diff_hunk":"@@ -0,0 +1,73 @@\n+---\n+layout: post\n+authors: [\"Lex Nederbragt\"]\n+title: \"10 tips and tricks for instructing and teaching by means of live coding\"\n+date: 2016-04-20\n+time: \"00:00:00\"\n+category: [\"education\", \"instructor-training\"]\n+---\n+\n+One of the key teaching practices used at Software and Data Carpentry workshops is 'live coding': instructors don't use slides, but work through the lesson material, typing in the code or instructions, with the workshop participants following along. Learning how to teach using live-coding is best done in practice, with feedback from peers (this is why it is included in [instructor training](http://swcarpentry.github.io/instructor-training/08-practices.html). Nonetheless, this post lists ten tips and tricks to help you get started.\n+\n+This text (re)uses, and expands on, elements from the Software and Data Carpentry [instructor training](http://swcarpentry.github.io/instructor-training/08-practices.html) materials.\n+\n+\n+### 1. Be seen and heard\n+\n+If you are physically able to stand up for a couple of hours, do it while you are teaching. When you sit down, you are hiding yourself behind others for those sitting in the back rows. Make sure to notify the workshop organisers of your wish to stand up and, ask them to arrange a high table/standing desk or [lectern](https://en.wikipedia.org/wiki/Lectern#Academic_context).\n+\n+Regardless of whether you are standing or sitting, make sure to move around occasionally. You can for example move to the screen to point something out, or draw something on the white/blackboard (see below). Moving around makes the teaching more lively, less monotonous. It draws the learners' attention away from their screens, to you, which helps getting the point you are making across.\n+\n+Even though you may have a good voice and know how to use it well, it may be an idea to use a microphone, especially if the workshop room is equipped with one. Your voice will be less tired, and you increase the chance of people with hearing difficulties being able to follow the workshop.\n+\n+### 2. Take it slow\n+\n+For every command you type, every word of code you write, every menu item or website button you click, say out loud what you are doing while you do it. This not only slows you down, it allows learners who are following along to copy what you do, even when they are looking at their screen while doing it. If the output of your command or code makes what you just typed disappear from view, scroll back up so learners can see it again - this is especially needed for the unix shell lesson.\n+\n+Other possibilities are to execute the same command a second time, or copy and paste the last command(s) into the workshop Etherpad.\n+\n+### 3. Mirror your learner's environment as much as possible\n+\n+You may have set up your environment to your liking, with a very simple or rather fancy unix prompt, colour schemes for your development environment, keyboard shortcuts etc. Your learners usually won't have all of this. Try to create an environment that mirrors what your learners have, and avoid using keyboard shortcuts. Some instructors create a separate 'bare-bone' user (login) account on their laptop, or a separate 'teaching-only' account on the service being taught (e.g. github).\n+\n+### 4. Use the screen - or screens - wisely\n+\n+Use a big font, and maximise the window. A black font on a  white background works better than a light font on a dark background. When the bottom of the projector screen is at the same height, or below, the heads of the learners, people in the back won't be able to see the lower parts. Draw up the bottom of your window(s) to compensate. \n+\n+If you can get a second screen, use it! It will usually require its own PC or laptop, so you may need to ask a helper to control it. You could use the second screen to show the Etherpad content, or the lesson material, or illustrations.\n+\n+Pay attention to the lightning (not too dark, no lights directly on/above the presenter's screen) and if needed, reposition the tables so all learners can see the screen, and helpers can easily reach all learners.\n+\n+### 5. Use illustrations, or even better, draw them\n+\n+Most lesson material comes with illustrations, and these may help learners to understand the stages of the lesson and to organise the material. What can work really well is when you as instructor generate the illustrations on the white/blackboard as you progress through the material. This allows you to build up diagrams, making them increasingly complex in parallel with the material you are teaching. It helps learners understand the material, makes for a more lively workshop (you'll have to move between your laptop and the blackboard) and gathers the learners' attention to you as well.\n+\n+### 6. Avoid being disturbed\n+\n+Turn off any notifications you may use on your laptop, such as those from social media, email, etc. Seeing notifications flash by on the screen distracts you as well as the learners -  and may even result in awkward situations when a message pops up you'd rather not have others see.\n+ \n+### 7. Stick to the lesson material\n+\n+The core Software and Data Carpentry lessons are developed collaboratively by many instructors and tried and tested at many workshops. This means they are very streamlined - which is great when you start teaching them for the first time. It may be tempting to deviate from the material because you would like to show a neat trick, or demonstrate some alternative way of doing something. Don't do this, since there is a fair chance you'll run into something unexpected that you then have to explain. If you really want to use something outside of the material, try it out thoroughly before the workshop: run through the lesson as you would during the actual teaching and test the effect of your modification.\n+\n+Some instructors use printouts of the lesson material during teaching. Others use a second device (tablet or laptop) when teaching, on which they can view their notes and the Etherpad session. This seems to be more reliable than displaying one virtual desktop while flipping back and forth to another.\n+\n+### 8. Leave no learner behind\n+\n+Give each learner two sticky notes of different colours, e.g., red and green. These can be held up for voting, but their real use is as status flags. If someone has completed an exercise and wants it checked, they put the green sticky note on their laptop; if they run into a problem and need help, the put up the red one. This is better than having people raise their hands because:\n+\n+* it's more discreet (which means they're more likely to actually do it),\n+* they can keep working while their flag is raised, and\n+* the instructor can quickly see from the front of the room what state the class is in.\n+\n+Sometimes a red sticky involves a technical problem that takes a bit more time to solve. To prevent this issue to slow down the whole class too much, you could use the occasion to take the small break you had planned to take a bit later, giving the helper(s) time to fix the problem.\n+\n+### 9. Embrace mistakes\n+\n+No matter how well prepared you are, you will be making mistakes. Typo's are hard to avoid, you may overlook something from the lesson instructions, etc. This is OK! It allows learners to see instructors' mistakes and how to diagnose and correct them. Some mistakes are actually an opportunity to point something out, or reflect back on something covered earlier. Novices are going to spend most of their time making the same and other mistakes, but how to deal with the is left out of most textbooks.\n+\n+> The typos are the pedagogy - [Dana Brunson](https://twitter.com/danabrunson/status/684764295196876800)\n+\n+### 10. Have fun\n+\n+Teaching is performance art and can be rather serious business. On the one hand, don't let this scare you - it is much easier than performing Hamlet. You have an excellent script at your disposal, after all! On the other hand, it is OK to add an element of 'play', i.e. use humor and improvisation to liven up the workshop. How much you are able and willing to do this is really a matter of personality and taste - as well as experience. It becomes easier when you are more familiar with the material, allowing you to relax more. Choose your words and actions wisely, though. Remember that we want the learners to have a welcoming experience and a positive learning environment - a misplaced joke can ruin this in an instance. Start small, even just saying 'that was fun' after something worked well is a good start. Ask your co-instructors and helpers for feedback when you are unsure of the effect you behaviour has on the workshop.","path":"_posts/2016/04/2016-04-20-tips-tricks-live-coding.md","position":73,"original_position":73,"commit_id":"4acd502c96b0bdb239eaa286d0de23b8b1634af6","original_commit_id":"4acd502c96b0bdb239eaa286d0de23b8b1634af6","user":{"login":"raynamharris","id":7544197,"avatar_url":"https://avatars.githubusercontent.com/u/7544197?v=3","gravatar_id":"","url":"https://api.github.com/users/raynamharris","html_url":"https://github.com/raynamharris","followers_url":"https://api.github.com/users/raynamharris/followers","following_url":"https://api.github.com/users/raynamharris/following{/other_user}","gists_url":"https://api.github.com/users/raynamharris/gists{/gist_id}","starred_url":"https://api.github.com/users/raynamharris/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/raynamharris/subscriptions","organizations_url":"https://api.github.com/users/raynamharris/orgs","repos_url":"https://api.github.com/users/raynamharris/repos","events_url":"https://api.github.com/users/raynamharris/events{/privacy}","received_events_url":"https://api.github.com/users/raynamharris/received_events","type":"User","site_admin":false},"body":"+1 This is excellent! I am so sharing this blog with my colleagues once its goes live. I especially love tip 3 about mirroring the learner's environment... some people really don't realize that using fancy/personalize console can actually hinder a newbie's performance.","created_at":"2016-04-18T15:47:14Z","updated_at":"2016-04-18T15:47:14Z","html_url":"https://github.com/swcarpentry/website/pull/342#discussion_r60082717","pull_request_url":"https://api.github.com/repos/swcarpentry/website/pulls/342","_links":{"self":{"href":"https://api.github.com/repos/swcarpentry/website/pulls/comments/60082717"},"html":{"href":"https://github.com/swcarpentry/website/pull/342#discussion_r60082717"},"pull_request":{"href":"https://api.github.com/repos/swcarpentry/website/pulls/342"}}},"pull_request":{"url":"https://api.github.com/repos/swcarpentry/website/pulls/342","id":66810347,"html_url":"https://github.com/swcarpentry/website/pull/342","diff_url":"https://github.com/swcarpentry/website/pull/342.diff","patch_url":"https://github.com/swcarpentry/website/pull/342.patch","issue_url":"https://api.github.com/repos/swcarpentry/website/issues/342","number":342,"state":"open","locked":false,"title":"Draft blog post: tips and tricks for live coding","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},"body":"#Please don't post yet, I want to give the instructor trainer (in training) a chance to comment.","created_at":"2016-04-18T07:41:00Z","updated_at":"2016-04-18T15:47:14Z","closed_at":null,"merged_at":null,"merge_commit_sha":"46b4e365c633189bd5422049e2bf7dc3fa2f3f86","assignee":{"login":"gvwilson","id":911566,"avatar_url":"https://avatars.githubusercontent.com/u/911566?v=3","gravatar_id":"","url":"https://api.github.com/users/gvwilson","html_url":"https://github.com/gvwilson","followers_url":"https://api.github.com/users/gvwilson/followers","following_url":"https://api.github.com/users/gvwilson/following{/other_user}","gists_url":"https://api.github.com/users/gvwilson/gists{/gist_id}","starred_url":"https://api.github.com/users/gvwilson/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/gvwilson/subscriptions","organizations_url":"https://api.github.com/users/gvwilson/orgs","repos_url":"https://api.github.com/users/gvwilson/repos","events_url":"https://api.github.com/users/gvwilson/events{/privacy}","received_events_url":"https://api.github.com/users/gvwilson/received_events","type":"User","site_admin":false},"milestone":null,"commits_url":"https://api.github.com/repos/swcarpentry/website/pulls/342/commits","review_comments_url":"https://api.github.com/repos/swcarpentry/website/pulls/342/comments","review_comment_url":"https://api.github.com/repos/swcarpentry/website/pulls/comments{/number}","comments_url":"https://api.github.com/repos/swcarpentry/website/issues/342/comments","statuses_url":"https://api.github.com/repos/swcarpentry/website/statuses/4acd502c96b0bdb239eaa286d0de23b8b1634af6","head":{"label":"lexnederbragt:patch-2","ref":"patch-2","sha":"4acd502c96b0bdb239eaa286d0de23b8b1634af6","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},"repo":{"id":56091481,"name":"website","full_name":"lexnederbragt/website","owner":{"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},"private":false,"html_url":"https://github.com/lexnederbragt/website","description":"Software Carpentry website","fork":true,"url":"https://api.github.com/repos/lexnederbragt/website","forks_url":"https://api.github.com/repos/lexnederbragt/website/forks","keys_url":"https://api.github.com/repos/lexnederbragt/website/keys{/key_id}","collaborators_url":"https://api.github.com/repos/lexnederbragt/website/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/lexnederbragt/website/teams","hooks_url":"https://api.github.com/repos/lexnederbragt/website/hooks","issue_events_url":"https://api.github.com/repos/lexnederbragt/website/issues/events{/number}","events_url":"https://api.github.com/repos/lexnederbragt/website/events","assignees_url":"https://api.github.com/repos/lexnederbragt/website/assignees{/user}","branches_url":"https://api.github.com/repos/lexnederbragt/website/branches{/branch}","tags_url":"https://api.github.com/repos/lexnederbragt/website/tags","blobs_url":"https://api.github.com/repos/lexnederbragt/website/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/lexnederbragt/website/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/lexnederbragt/website/git/refs{/sha}","trees_url":"https://api.github.com/repos/lexnederbragt/website/git/trees{/sha}","statuses_url":"https://api.github.com/repos/lexnederbragt/website/statuses/{sha}","languages_url":"https://api.github.com/repos/lexnederbragt/website/languages","stargazers_url":"https://api.github.com/repos/lexnederbragt/website/stargazers","contributors_url":"https://api.github.com/repos/lexnederbragt/website/contributors","subscribers_url":"https://api.github.com/repos/lexnederbragt/website/subscribers","subscription_url":"https://api.github.com/repos/lexnederbragt/website/subscription","commits_url":"https://api.github.com/repos/lexnederbragt/website/commits{/sha}","git_commits_url":"https://api.github.com/repos/lexnederbragt/website/git/commits{/sha}","comments_url":"https://api.github.com/repos/lexnederbragt/website/comments{/number}","issue_comment_url":"https://api.github.com/repos/lexnederbragt/website/issues/comments{/number}","contents_url":"https://api.github.com/repos/lexnederbragt/website/contents/{+path}","compare_url":"https://api.github.com/repos/lexnederbragt/website/compare/{base}...{head}","merges_url":"https://api.github.com/repos/lexnederbragt/website/merges","archive_url":"https://api.github.com/repos/lexnederbragt/website/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/lexnederbragt/website/downloads","issues_url":"https://api.github.com/repos/lexnederbragt/website/issues{/number}","pulls_url":"https://api.github.com/repos/lexnederbragt/website/pulls{/number}","milestones_url":"https://api.github.com/repos/lexnederbragt/website/milestones{/number}","notifications_url":"https://api.github.com/repos/lexnederbragt/website/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/lexnederbragt/website/labels{/name}","releases_url":"https://api.github.com/repos/lexnederbragt/website/releases{/id}","deployments_url":"https://api.github.com/repos/lexnederbragt/website/deployments","created_at":"2016-04-12T19:24:00Z","updated_at":"2016-04-12T19:24:06Z","pushed_at":"2016-04-18T07:40:16Z","git_url":"git://github.com/lexnederbragt/website.git","ssh_url":"git@github.com:lexnederbragt/website.git","clone_url":"https://github.com/lexnederbragt/website.git","svn_url":"https://github.com/lexnederbragt/website","homepage":"http://software-carpentry.org","size":92824,"stargazers_count":0,"watchers_count":0,"language":"HTML","has_issues":false,"has_downloads":true,"has_wiki":false,"has_pages":false,"forks_count":0,"mirror_url":null,"open_issues_count":0,"forks":0,"open_issues":0,"watchers":0,"default_branch":"gh-pages"}},"base":{"label":"swcarpentry:gh-pages","ref":"gh-pages","sha":"4886301376d629321ccca85f8cf12291d48ee552","user":{"login":"swcarpentry","id":2238358,"avatar_url":"https://avatars.githubusercontent.com/u/2238358?v=3","gravatar_id":"","url":"https://api.github.com/users/swcarpentry","html_url":"https://github.com/swcarpentry","followers_url":"https://api.github.com/users/swcarpentry/followers","following_url":"https://api.github.com/users/swcarpentry/following{/other_user}","gists_url":"https://api.github.com/users/swcarpentry/gists{/gist_id}","starred_url":"https://api.github.com/users/swcarpentry/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/swcarpentry/subscriptions","organizations_url":"https://api.github.com/users/swcarpentry/orgs","repos_url":"https://api.github.com/users/swcarpentry/repos","events_url":"https://api.github.com/users/swcarpentry/events{/privacy}","received_events_url":"https://api.github.com/users/swcarpentry/received_events","type":"Organization","site_admin":false},"repo":{"id":46616312,"name":"website","full_name":"swcarpentry/website","owner":{"login":"swcarpentry","id":2238358,"avatar_url":"https://avatars.githubusercontent.com/u/2238358?v=3","gravatar_id":"","url":"https://api.github.com/users/swcarpentry","html_url":"https://github.com/swcarpentry","followers_url":"https://api.github.com/users/swcarpentry/followers","following_url":"https://api.github.com/users/swcarpentry/following{/other_user}","gists_url":"https://api.github.com/users/swcarpentry/gists{/gist_id}","starred_url":"https://api.github.com/users/swcarpentry/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/swcarpentry/subscriptions","organizations_url":"https://api.github.com/users/swcarpentry/orgs","repos_url":"https://api.github.com/users/swcarpentry/repos","events_url":"https://api.github.com/users/swcarpentry/events{/privacy}","received_events_url":"https://api.github.com/users/swcarpentry/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/swcarpentry/website","description":"Software Carpentry website","fork":false,"url":"https://api.github.com/repos/swcarpentry/website","forks_url":"https://api.github.com/repos/swcarpentry/website/forks","keys_url":"https://api.github.com/repos/swcarpentry/website/keys{/key_id}","collaborators_url":"https://api.github.com/repos/swcarpentry/website/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/swcarpentry/website/teams","hooks_url":"https://api.github.com/repos/swcarpentry/website/hooks","issue_events_url":"https://api.github.com/repos/swcarpentry/website/issues/events{/number}","events_url":"https://api.github.com/repos/swcarpentry/website/events","assignees_url":"https://api.github.com/repos/swcarpentry/website/assignees{/user}","branches_url":"https://api.github.com/repos/swcarpentry/website/branches{/branch}","tags_url":"https://api.github.com/repos/swcarpentry/website/tags","blobs_url":"https://api.github.com/repos/swcarpentry/website/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/swcarpentry/website/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/swcarpentry/website/git/refs{/sha}","trees_url":"https://api.github.com/repos/swcarpentry/website/git/trees{/sha}","statuses_url":"https://api.github.com/repos/swcarpentry/website/statuses/{sha}","languages_url":"https://api.github.com/repos/swcarpentry/website/languages","stargazers_url":"https://api.github.com/repos/swcarpentry/website/stargazers","contributors_url":"https://api.github.com/repos/swcarpentry/website/contributors","subscribers_url":"https://api.github.com/repos/swcarpentry/website/subscribers","subscription_url":"https://api.github.com/repos/swcarpentry/website/subscription","commits_url":"https://api.github.com/repos/swcarpentry/website/commits{/sha}","git_commits_url":"https://api.github.com/repos/swcarpentry/website/git/commits{/sha}","comments_url":"https://api.github.com/repos/swcarpentry/website/comments{/number}","issue_comment_url":"https://api.github.com/repos/swcarpentry/website/issues/comments{/number}","contents_url":"https://api.github.com/repos/swcarpentry/website/contents/{+path}","compare_url":"https://api.github.com/repos/swcarpentry/website/compare/{base}...{head}","merges_url":"https://api.github.com/repos/swcarpentry/website/merges","archive_url":"https://api.github.com/repos/swcarpentry/website/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/swcarpentry/website/downloads","issues_url":"https://api.github.com/repos/swcarpentry/website/issues{/number}","pulls_url":"https://api.github.com/repos/swcarpentry/website/pulls{/number}","milestones_url":"https://api.github.com/repos/swcarpentry/website/milestones{/number}","notifications_url":"https://api.github.com/repos/swcarpentry/website/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/swcarpentry/website/labels{/name}","releases_url":"https://api.github.com/repos/swcarpentry/website/releases{/id}","deployments_url":"https://api.github.com/repos/swcarpentry/website/deployments","created_at":"2015-11-21T13:26:31Z","updated_at":"2016-04-01T21:34:42Z","pushed_at":"2016-04-18T07:41:00Z","git_url":"git://github.com/swcarpentry/website.git","ssh_url":"git@github.com:swcarpentry/website.git","clone_url":"https://github.com/swcarpentry/website.git","svn_url":"https://github.com/swcarpentry/website","homepage":"http://software-carpentry.org","size":95192,"stargazers_count":4,"watchers_count":4,"language":"HTML","has_issues":true,"has_downloads":true,"has_wiki":false,"has_pages":true,"forks_count":54,"mirror_url":null,"open_issues_count":40,"forks":54,"open_issues":40,"watchers":4,"default_branch":"gh-pages"}},"_links":{"self":{"href":"https://api.github.com/repos/swcarpentry/website/pulls/342"},"html":{"href":"https://github.com/swcarpentry/website/pull/342"},"issue":{"href":"https://api.github.com/repos/swcarpentry/website/issues/342"},"comments":{"href":"https://api.github.com/repos/swcarpentry/website/issues/342/comments"},"review_comments":{"href":"https://api.github.com/repos/swcarpentry/website/pulls/342/comments"},"review_comment":{"href":"https://api.github.com/repos/swcarpentry/website/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/swcarpentry/website/pulls/342/commits"},"statuses":{"href":"https://api.github.com/repos/swcarpentry/website/statuses/4acd502c96b0bdb239eaa286d0de23b8b1634af6"}}}}