Operations Guide: How to Run a Bootcamp

The Software Carpentry Bootcamp Operations Guide includes checklists for each role involved in running a bootcamp, and a long-form description of the story of a bootcamp. The description explains how bootcamps work, and the checklists explain how each role contributes to a successful bootcamp. The checklists will also be useful to people who have taken on each role.

Checklists


The Story of a Bootcamp

A Software Carpentry bootcamp is an intensive hands-on workshop at which scientists learn software skills through short tutorials and practical exercises. A typical bootcamp runs over two days with 20-50 attendees and two or three instructors per room, and one helper for every 10 attendees. The members of a bootcamp team are:

Note that:

What makes a bootcamp a Software Carpentry bootcamp?

As explained in our FAQ, anyone can use our materials and run a bootcamp. However, you must have our explicit prior permission to use our name and logo (which are trademarked). We normally require that the lead instructor be certified by Software Carpentry, and that the training covers:

  • using the shell to automate tasks;
  • modular programming;
  • unit testing; and
  • version control.

Early Planning

Before the bootcamp organization begins, the host has to consider the answers to a series of questions. At some point in this decision-making process, the host will contact Software Carpentry admin to initiate bootcamp planning.

Who is the bootcamp for?

The host must think about the intended audience for the bootcamp. Will it be restricted to a specific lab, university, or company? Will it target people in a particular discipline (or range of related disciplines), or will it be open to all?

Open or closed? Public or private?

A closed bootcamp can be more easily restricted to a specific audience, which allows the instructors to tailor material to that field. In addition, attendees are more likely to know one another, which in our experience means they're less inhibited about asking questions and are more likely to help each other during practical sessions.

On the other hand, it may be harder to find enough people to fill a bootcamp if you restrict enrollment, and if your funding comes from the university or company level, it may be politically difficult to turn people away.

Having said that, there are a number of reasons why you might consider allowing external personnel to come to your bootcamp:

  • Others can see how a bootcamp is run and decide whether they want to run one too, which contributes to the growth and sustainability of Software Carpentry.
  • Attendees are given the opportunity to network and build relationships with researchers from elsewhere within your institution or community, or foster cross-disciplinary collaboration.
  • Your profile is raised within your institution or community as one experienced in hosting bootcamps which means others may seek your advice when they come to run theirs.

How many learners?

Bootcamps work best with rooms of between 15 and 40 learners. Above that, they become more like a lecture and the hands-on workshop feeling is lost. If you are expecting significantly more than 40 registrants, consider hosting a multi-room bootcamp.

Multi-room bootcamps can work very well because they allow us to stream learners into groups according to their computing experience. The disadvantage, of course, is that you have to book multiple rooms and recruit more instructors and helpers.

What about cost?

The host needs to think about the cost of running a bootcamp and where the money might come from, and apply for funding if necessary.

The cost of running a bootcamp

Our instructors are volunteers, and do not need to be paid for their time, but bootcamp hosts are expected to cover their travel and accommodation costs. (As much as possible, we try to match instructors to nearby sites in order to reduce costs.)

We suggest hosting institutions contribute $1500 to Software Carpentry, to support central development activities (including curriculum development, instructor training, website maintenance, and administrative costs). The hosting site may also have to pay to book the room and for catering.

Altogether, the total cost for a bootcamp is in the $2500-4000 range, depending on instructors' travel costs.

Possible funding sources

Some possible sources of funding are:

  • "Miscellaneous" funds (e.g., a few thousand dollars in a faculty member's grant). This is by far the most common case.
  • Training budgets at the lab, department, or institutional level.
  • Workshop budgets set aside as part of conferences.
  • Charging for registration (typically $20-$40). This also reduces the number of no-shows from 20-25% to about 5%.

How to reduce costs

The host can consider these ways to reduce the costs of running a bootcamp:

  • Find out if there are others in your institution or community who are willing to help with instructor travel expenses, room bookings and other costs. They may be willing to share costs if their researchers can attend your bootcamp…
  • …or just go all-out and agree to run one jointly.
  • Use local instructors and helpers (by local we mean from within your institution, region or country) who will have lower travel costs.
  • Co-locate with conferences or workshops being run by your institution or within your community.

Should the bootcamp be free to learners?

The host and admin also need to decide whether the bootcamp is free or not. On the one hand, we want bootcamps to be as accessible as possible. On the other hand, charging $20-$40 for registration cuts the number of no-shows from 20-25% to 5% or less. Note that:

  • If the host decides to charge for registration and keep the revenue to defray the cost of catering and other expenses, we will still manage registration so that we can see how it's going, release people from the waiting list, access registrant information, etc.
  • Be aware that as soon as you charge anything at all—even a refundable deposit—some venues will charge for use of the space.
  • Refundable deposits are great in theory, but are an administrative nightmare in practice.

When should the bootcamp be?

Many factors determine when to hold a bootcamp. The first is obviously the availability of instructors: admin will help with this.

If the bootcamp will be at a university, the start of term works better than the end of term (when people are tired, and busy with final assignments and exams), and the start of the second (or subsequent) term works better for graduate students than the start of first term. (The start of an academic year is busy anyway, and by their second term most students have a better idea of their research problem's programming needs.) In our experience mid-term breaks and reading weeks do not work well: bootcamps held then usually have high no-show rates.

Bootcamps can also be scheduled immediately before or after a conference (or run as a tutorial within a conference). In this case, the conference organizers must be involved early and often.

Should there be follow-up sessions?

The host will decide before the bootcamp what kind of follow-up they're going to offer (if any). Some groups run weekly lunch-and-learn sessions for a couple of months after a bootcamp to help people put what they've learned into action. Other groups set up mailing lists, and we've tried running online tutorials. Whatever they decide to do, figuring it out in advance means that they can tell learners about it at least a couple of times.

Initial Organization

Instructors

A bootcamp room of approximately 40 people needs at least two instructors, and a third is a good idea, because:

  • It's too much to ask a single person to talk for eight hours a day for two days.
  • Attendees will be more engaged if they hear from more than one person.
  • Having two or three instructors reduces the risk of having to cancel because of illness, travel mishaps, etc.

Instructors must be recruited before advertising the bootcamp or opening up registration. At least one instructor must be certified by Software Carpentry in order for the bootcamp to use our name and logo. The other instructors should have prior teaching experience, be taking the instructor training, or have helped with at least one previous bootcamp.

Mailing list

Once the bootcamp has a full roster of instructors, admin will set up a mailing list for the organizer, instructors, and helpers so they can discuss audience, content, schedule, dinner plans, etc. (This is optional—some bootcamp teams prefer to email back and forth without a mailing list.)

Registration

Software Carpentry admin can set up an Eventbrite registration page on our Eventbrite account, but some sites do use their own system: for example, bootcamps being run in conjunction with conferences may use the conference registration system.

If admin sets up an Eventbrite page, we can give the host adminstrator permission so they can send messages to registrants, download the registrant list, manage the waiting list, etc.

Setting up Eventbrite

If the host would like Software Carpentry to run registration through Eventbrite, we'll need the following information:

  • how many people will be registering
  • how much to charge for registration, if anything
  • whether the registration page should be public or private

Eventbrite events can be public, which means they appear on Google and in listings, or private, which means they can only be seen by people who have the link. We can also add a password to protect the registration page further.

The bootcamp venue

It's the host's job to identify and book a suitable room (or rooms) for the bootcamp.

Characteristics of a good bootcamp venue

You'll need a room with:

  • Front-facing tables so that attendees can watch an instructor and use their laptop at the same time. (Typing on a laptop for two days in theater-style seating can cause back strain.)
  • High-speed WiFi or network access that can withstand everyone using it at the same time.
  • Power outlets for all the computers. This often involves extension cords; make sure they're taped down.
  • Space for mingling without squeezing between chairs and tripping over cables. This is essential: if helpers cannot reach learners who are having problems quickly and easily, those learners will fall further and further behind as the day goes on. Again, theater-style lecture rooms are not recommended as their banked floors and fixed seating makes it very difficult for helpers to mingle.
  • A microphone if the room is large or has poor acoustics, or if the bootcamp will be recorded.
  • Disabled access. (Make sure the washrooms are accessible as well.)
  • Air-conditioning, because all those computers (and attendees) will generate a lot of heat.
  • Space to serve coffee and snacks, because learning is hungry work.

Bootcamp webpage

The lead instructor and other instructors are responsible for creating the bootcamp's home page on GitHub. (The README on the template page explains how to do this.) The webpage should have instructions for attendees, including the bootcamp dates, the location, a link to the registration page, and so on. The host should make sure this page also includes local travel information, parking instructions, and whatever other information is needed. After the bootcamp topic list and schedule are finalized, they will be posted to the webpage too.

Software Carpentry admin will check that the bootcamp is showing up properly on the list of upcoming bootcamps.

Publicity

Once the webpage is set up, the host will start spreading the word about the bootcamp using our example text or something more creative. The host can tweet and blog about the event, and send emails to departmental mailing lists, discipline-specific mailing lists, specific people (e.g., lab directors or principal investigators), and anyone else who may be interested.

Software Carpentry admin is happy to promote the host's blog articles and tweets. We'll tweet and blog about the event, too.

Catering

If it's in the bootcamp budget, the host will provide coffee and snacks. Doing so cuts the time per coffee break to 10-15 minutes from 20-25 minutes. If this isn't possible, the host should identify somewhere nearby where attendees can get refreshments, and the schedule should include longer coffee breaks.

If snacks will be provided, try to allow for allergies and other dietary restrictions.

The pre-bootcamp assessment

A few days before the bootcamp begins, learners will be asked to complete a pre-bootcamp skills assessment, usually as a Google form. The responses to the assessment will help the instructors tailor the bootcamp material to the group's needs.

Travel arrangements and reimbursement

If there is someone at the host institution who usually handles travel arrangements, admin or the host will connect them with instructors as soon as possible.

The host should also make sure it's clear who's paying for what and how people will be reimbursed before anyone buys plane tickets. The hosting site must reimburse instructors directly—Software Carpentry cannot route payments.

Instructors should not be shy about asking admin or the host about how to be reimbursed if they're not sure.

Pulling It Together

Once the initial conversations and setup are done, it's time to move forward with the nitty-gritty details of running a bootcamp.

Curriculum and Schedule

The lead instructor, other instructors and host will decide what content will be covered in the bootcamp. The lead instructor will put together a schedule of topics and assign an instructor to each topic.

Equipment

In addition to booking a room and catering, the host is responsible for providing an assortment of equipment and supplies for the bootcamp.

Everything you need

The host should check that the following equipment and information is available and working:

  • A projector (and a spare if you can find one, or a spare bulb if you can't).
  • A Mac VGA adapter if anyone is presenting with a Mac.
  • Extension cords and power bars if necessary.
  • Two different colors of sticky notes for use as flags and for feedback. You'll need enough for each learner to have four of each color per day. The two colors should be very distict and preferably clearly recognizable as "good" and "bad"—red and green work well (but be conscious of color vision deficiencies).
  • Guest usernames and passwords for everyone.
  • If possible, a couple of spare computers with the required software already installed, in case someone can't get access to the network, forgets their machine, has hardware problems, etc.
  • A handful of USB sticks with installers on them just in case there are network problems.
  • Photo release forms (if required).
  • Name badges or stickers for instructors, helpers, and attendees.

Helpers

Helpers keep bootcamps flowing smoothly by assisting learners who are having trouble with exercises. It's the host's responsibility to recruit local helpers. There should be at least one helper for every ten attendees.

Most of our helpers are scientists who have either gone through a previous bootcamp, or learned most of what we teach on our own. Hosts usually recruit them from the hosting institution and nearby institutions.

Usually, bootcamps don't cover helpers' travel or accommodation expenses. Taking the whole team out to dinner the day before the bootcamp starts is a nice way to thank everyone and give them a chance to get acquainted.

Waiting list

If registration fills up, potential learners can add themselves to the waiting list (if the bootcamp is using Eventbrite). A week or two before the camp, the host or admin should contact the registered learners and confirm that they'll be attending. If anyone cancels and opens up a spot, admin or the host should offer that spot to someone on the waiting list.

Waiting list management in Eventbrite

Either the host or Software Carpentry admin can manage the waiting list. There are a couple of tricks to managing Eventbrite waiting lists:

  • You have to manually release people—Eventbrite doesn't automatically detect that a space has opened up and release a ticket.
  • You release tickets by selecting the person's entry on the waiting list and clicking "Release Tickets". When you release a ticket to someone their name is moved to the top of the list and they are sent email letting them know they have a day to register. If they don't register within 24 hours, the offer times out and the host or admin must manually rerelease that ticket.
  • Once the waiting list is activated people cannot register outright, even if there are spaces available; they must add their name to the waiting list and have a ticket released to them.

Photo release

If the bootcamp will be photographed, recorded, or broadcast, the host will let learners know by posting on the bootcamp's website. Institutions may require the host to obtain a signed photo release from each person if pictures are being taken; the host is responsible for finding out if a release is required, and printing out enough copies.

The Day of the Bootcamp

Introductions

The host will introduce the instructors and helpers by name, and talk about why the bootcamp is being held and the desired outcome. They'll also let everyone know where to get coffee, whether they can bring drinks and snacks into the bootcamp room, and where the bathrooms are. The host will also remind learners of the code of conduct.

Sign-in sheet and stickies

Before the bootcamp instruction begins, the host will hand out sign-in sheets and two different-colored sticky notes to each learner. The sign-in sheets help us keep track of how many learners we are reaching, and how successful our efforts to reduce no-shows are. The sticky notes let the learners communicate with instructors and helpers, both during the tutorials and exercises, and when giving feedback afterwards.

Feedback, or "What are the sticky notes for?"

  • During demonstrations, learners post a red sticky note on their laptop to indicate that they have a question or need help.
  • During exercises, learners post a red sticky note at the start of the exercise and switch to a green one when they finish, so the instructor can clearly see when everyone is ready to continue, and helpers can see who needs support.
  • Just before each break, the instructor will ask learners to write down one good point (something they learned or enjoyed) on their green sticky and one bad one (something that they still don't understand or that is bothering them) on their red sticky. It only takes a couple of minutes for the instructors to sort through these, and it tells them whether they're going too fast or too slow, what they need to review after the break, etc. (If possible, someone will mail the sticky notes to Software Carpentry admin after the bootcamp so we can look for patterns.)
  • At the very end of the bootcamp, the host or lead instructor can ask learners to give one good point or one bad one about the entire bootcamp. This can be done on the sticky notes, the Etherpad, or through a Google form. (This feedback will also be sent to Software Carpentry admin.)

Bootcamp flow

Once the bootcamp starts in earnest, the day will alternate between the instructor describing and demonstrating concepts and tools, and the learners completing short exercises. Sometimes the learners will type along as the instructor demonstrates. Learners are encouraged to work in pairs and groups, and to mix up their groups over the course of the bootcamp.

The instructor will ask lots of questions and encourage the learners to ask questions too. No more than ten or fifteen minutes will go by without the instructor engaging the learners or asking them to complete an exercise.

Helpers walk around the room looking out for learners who are confused or stuck with an exercise, or who have gotten behind the flow of the demonstration.

Meanwhile, there is an Etherpad open where all the learners and helpers are invited to take notes, post links and examples, and ask and answer questions. (This is a great opportunity for learners and helpers who aren't so gregarious to participate more fully in the bootcamp.)

Good instruction practices

The instructors will try to adhere to these good instruction practices:

  • If you are using multiple windows (e.g., a command window and an editor window) make sure they are both large enough to be visible by all attendees. Remember to pause when switching from one window to the other so that learners don't become confused. If possible, use different background colors for different text windows to make it easier for learners to tell them apart (but keep in mind red-green and blue-yellow color blindness).
  • As you type at the command line, read out what you're typing. Remember that most learners can only go half as fast as you, because they have to watch you type then type it all in again themselves.
  • Use Etherpad to share small data sets, snippets of code, and commands with learners.
  • Encourage learners to take notes in the Etherpad. This reduces the effort per learner, gives you a chance to see what they think you're saying, and provides a record after the bootcamp of what was actually taught.
  • Back up the material with your own anecdotes, experiences and evidence—it makes you more credible, helps learners understand how to apply what you're teaching to their own problems, and prevents the lectures from becoming too dry.
  • Emphasise that good software development skills contribute to productive, reproducible, reusable research.
  • For every question with a binary answer (yes/no, have done/have not done, works/does not work), ask learners to hold up green (yes) or red (no) sticky notes to help you gauge their level of understanding.

Post-bootcamp assessment

Before the bootcamp ends, the host or an instructor will direct the learners to a post-bootcamp assessment. This is very much like the pre-bootcamp assessment, and helps us establish how well our bootcamps actually work.

Note that we match the pre- and post-bootcamp assessments answers using email addresses, so learners should use the same address when answering both surveys.

We have plans to ultimately send a third assessment a few months after the bootcamp, to see how well and how long learners' new knowledge and skills stick around.

Parting words

At the end of the bootcamp, the host or an instructor will give the learners some final pieces of information:

After the Bootcamp

Report back

Once the bootcamp is over, the host will send the following information to Software Carpentry admin:

  • the number of attendees
  • names and email addresses of attendees, for our internal database and so we can invite them to join our announcements mailing list

The host will also let admin know how the bootcamp went. Was it the right content? The right pace? Did it seem well organized or were there things we could improve? What did you hear from learners afterward, and would you like us to visit you again?

We're also happy to hear from the instructors, helpers, and learners with comments and suggestions.

Blog posts

Our goal at Software Carpentry is to have at least one blog post from each bootcamp, whether it's written by the host, an instructor, a helper or a learner. So if you've been involved in a bootcamp and you'd like to write a blog post, or if you have written one on your blog, let us know so we can post it or link to it.

comments powered by Disqus