carpentries / lesson-infrastructure

4 stars 3 forks source link

How do instructors deliver exercises? How can infrastructure better support that? #22

Open brownsarahm opened 5 years ago

brownsarahm commented 5 years ago

let's discuss how instructors provide exercises to students to help refine our plan to update the infrastructure to support teaching and giving exercises more efficiently.

I have written a blog post for the carpentries on how I use %load magic with jupyter notebooksand will update this issue with that link when it's available to start the discussion.

lexnederbragt commented 5 years ago

As @brownsarahm knows, I really like the %load method and I use it a lot in my regular teaching.

I am a big fan of multiple choice questions (MCQ) for formative assessment. I have used Socrative for that, and at some point one could import quizzes prepared by others. The Etherpad is till up: https://pad.okfn.org/p/swcarp-socrative-quizzes but not maintained. Biggest drawback is that this cannot be automated. I think Socrative allows excel import, so that may help.

Having the option of a page (or html slide) per exercise is really good. For MCQ, this can be combined with your favourite quiz-tool (or even a simple Google Form with 'option 1, option 2, option 3, option 4' as answers without any specific question). Once automated, creating a markdown file would also be helpful, people can then plug that into whatever they use for delivering the exercises.

wrightaprilm commented 5 years ago

In my own classes, I usually use the nb-extension codefolding. I like it because you can put multiple folds into a code block. So if I'm having them do something complex, the students can unfold a little if they're having a hard time getting started, then unfold totally to check the answer at the end.

But that means an additional install, and therefore more chances for something to go wrong. So as a maintainer, I'm on board with moving my repo to %load magic.

emilydolson commented 5 years ago

I've always just used powerpoint slides with questions on them, but the %load method sounds excellent!

DamienIrving commented 5 years ago

I simply get people to go to the online lesson notes (here's an example) and scroll to the bottom of the page where the lessons are in orange boxes. If they missed anything I said they can scroll up for the lesson notes, and I want to them to be familiar with navigating to the lesson notes as hopefully they'll be referring back to them after the workshop is over.

The %load magic is a neat trick, but obviously doesn't help with lessons where we are working from the command line (e.g. the bash and git lessons).

brownsarahm commented 5 years ago

@DamienIrving have you lessons where the exercises are spread throughout the episode? would, for example, having 1 page per exercise help? or a page of only exercises with numbering help?

DamienIrving commented 5 years ago

@brownsarahm I've done both in the past (i.e. exercises spread through the episode and exercises only at the end of the episode) - it's certainly less confusing for learners if the lessons are only at the end of the episode (the consequence being that you end up having more, shorter episodes).

Sometimes I think a separate page with the exercises would help, but I generally find that after I've just introduced a new concept, learners need to refer back to the lesson notes in order to answer the questions in the exercise (i.e. so the notes and exercises might as well be on the same page). Perhaps a hyperlink at the top of the lesson pages to the exercises at the bottom would be helpful so learners don't have to scroll all the way to the bottom would help?

gcapes commented 5 years ago

%load magic looks really good. But I don't see how we could use it for Git, Shell, or MATLAB lessons. I just show the exercise on my screen and tell learners which episode it's in so they can find it on their screen, and sometimes have a slideshow with a link e.g. http://slides.com/gcapes/git#/22

katrinleinweber commented 5 years ago

The possibility to collapse and expand every section like it's currently possible for challenge solutions would be helpful.

tobyhodges commented 5 years ago

A general point, followed by a couple of specific suggestions:

sstevens2 commented 5 years ago

As @tobyhodges sort of mentioned this question does come up a lot in instructor discussion session. Even in my somewhat limited time hosting this question has come up about half the time. I’d love to see a blog post/handbook page of the different methods to refer to. I mention some of the methods above: showing them on the website, making slides, socrative. I’d forgotten about @brownsarahm mentioning the how great load magic worked though. 👍 for the instructor discussion idea.

Like @lexnederbragt I’m a fan of socrative. From sticky note feedback, the learners seem to like it as well. Wish this could be more automated but I would really love an excel file in extras for importing the challenges from a lesson though. I’ve not taught python yet but I’m excited to try load magic when I do. I will certainly mention it to others now too. I ❤️ed the gif example in your blog post @brownsarahm. Thanks for starting this discussion! 👍

brownsarahm commented 5 years ago

@sstevens2 I actually came across this yesterday: https://docs.carpentries.org/topic_folders/hosts_instructors/instructor_tips.html#using-exercises So we can add things to that page from this discussion.

@sstevens2/ @lexnederbragt whatever scraping we do to extract exercises for individual files could be adapted to also/alternatively have output in the form for socrative. Can you link the format required here?

  • it would be excellent if the %load magic had an option to specify the cell type e.g. %load markdown /path/to/file. No idea how easy this would be to add to the existing Jupyter/iPython setup but there's potential here for a PR, I think.

I agree that would be super helpful, but I'm also not sure how easy that is to add. maybe we can submit it as an issue? it would have to go to the ipython project.

@tobyhodges I'm on board for a discussion

  • for the other SWC lessons, e.g. Shell and Git, perhaps a shellscript that takes an integer argument and writes the exercise text to STDERR? This should be relatively easy to write but perhaps harder to maintain unless one could find a way to update it automatically from the lesson repository

would cat be enough? the usage syntax would then be similar to the load magic syntax. we could have them navigate to the same place each time? However, for those lessons, since a terminal window is generally not full width so having a website open on the other half of the screen might actually be better? Since for Python, R, MATLAB we typically work full screen having files that can open in the context of the notebook/RStudio/MATLAB would be more important in terms of reducing cognitive load by reducing unrelated tasks.

But I don't see how we could use it for Git, Shell, or MATLAB lessons.

@gcapes the goal is to figure out what instructors are already doing in all of the different contexts so that we can update the lesson infrastructure, which is shared across all, to support instructors better. Load magic is one option, but there is unlikely to be any option that is equally good across all lessons, so we want the infrastructure to support many options.

From discuss, we also have the point that the web-rendered versions of exercise pages should be compatible with zooming in and projecting/ support large font.

brownsarahm commented 5 years ago

We will be having an instructor discussion session on this topic:

Wednesday, November 7 15:00 UTC - (3pm LON, 10 am NYC, 8am LA) - Europe/S. Africa/S. America/N. America see in your time zone sign up on the instructor discussion etherpad

lexnederbragt commented 5 years ago

Preparing a quiz for importing into Socrative (through an excel file):

I assume that with enough clever programming the code could spit our a compatible excel file for import into Socrative.

I guess it would be better to use an auto-generated excel file rather than import it to someones account and share the final quiz (as per these instructions).

tiagopereira commented 5 years ago

The %load magic also allows downloading from a URL. One advantage is that the exercises could be centrally located. I haven't tested this on a real workshop, but this also makes possible delaying the solution to an exercise. For example, load an exercise but don't give the solution straight away. Let the students try to solve it, and after a while update some remote file (e.g via a git push, or a simple static file on a server) and make the solution available.

brownsarahm commented 5 years ago

@tiagopereira I thought about that, but the urls learners have to type are potentially long; I think I unsuccessfully tried it with shortened urls

from trainer discussions: it would also be helpful (at least for instructor training) to support export to ether-pad compatible plain text