I am going to be teaching a workshop on Julia for data science and scientific computing soon. I came up with a plan that has a lot more than we will be able to do (just in case), but was wondering about how to come up with a good estimate for how far along we will get. I find this hard to estimate since for most of the assignments I could do them really quickly, but that's because I am experience in the language and the biggest hurdle will be learning the documentation, syntax, and all the special issues of a new language.

That said, do you have any good heuristics for how long projects will take in a workshop? It's hard to know the exact number of students right now, but I think it will be anywhere from 10~30, and I'd assume more students would make it go slower. I thought of doing something like "this takes me 5 minutes, so plan 20 minutes", but the number 20 has no basis in reality because I have never done this.


Test drive

Grab a couple of local students of comparable level and have them do the assignments.

Your own speed is not indicative - something that takes you five minutes may take ten minutes or may be incomplete after an hour; only practical experience can show how it will turn out.

In addition, usually setting up a working development environment can be a major time sink - if people use their own hardware and various operating systems, then some of them can waste a lot of time until they are able to run a 'hello world' program; you should have a clear plan on how you will handle it.

| improve this answer | |

I am not very good at judging how long things take. To work around this, I prepare a number of different versions of each exercise. From hardest to easiest, I provide

  • A statement of objectives (i.e., write a function that does X, Y, and Z)
  • A detailed description of the objectives, input and output arguments, and some helpful functions
  • Some framework code with comments describing what needs to be done and where
  • Nearly complete code which only needs a few lines of additional code
  • Complete code with instructions on how to run it and an explanation of what it does

Depending on the specifics, I often start with a simple exercise to gauge the level of experience that the students have. If the experience is fairly uniform, I then try and provide the appropriate level exercise. I make the first real exercise too hard, I provide a hint to speed things up. If it is too easy, I choose a more difficult level for the next activity. If there is a lot of diversity in the students, I let them know that they can choose the difficulty.

I do this both for ungraded workshops and graded programming/practical classes. In my graded classes the students just get a statement of objectives for the final project. During the course of the class I let them build up to that however they want.

| improve this answer | |

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.