Skip to content
Nick Timkovich edited this page Apr 20, 2015 · 2 revisions

What makes a good Bootcamp?

Thoughts, arguments, and musings for how to conduct Python bootcamps.

Interactive (REPL) Instruction

i.e. learning by executing bits of code without having to write scripts over and over

Raw Python Interpreter (python)

Advantages

  • Forces awareness of the shell and paths
  • Easier to transition between interpreter and running scripts
  • Minimal system requirements

Disadvantages

  • Can't correct previous lines in a multi-line block
  • Won't be remembered (students end up taking photos of the screen)
  • Idiosyncratic methods of creating blocks of code (blank lines are syntactically important)
  • Drag-and-dropping files into shell (name shortcut) is fragile under Windows (sometimes unescaped backslashes are OK, sometimes not)
  • Copying/pasting is unintuitive under Windows
  • Cannot use mouse to move cursor

IPython

Advantages

  • ???

Disadvantages

  • ???

IPython Notebook

Advantages

  • Naturally creates a record of what happened for students to review later
  • Can rapidly modify previous code and re-execute (or duplicate cells)
  • Mouse does things
  • Python name autocomplete
  • Path autocomplete

Disadvantages

  • Abstracts away Python and the shell
  • Autocomplete works differently in some text editors (a crutch that might disappear later)
  • Need another shell to run programs
  • Executing cells non-sequentially (or re-executing cells) can mask what actually happened
  • Correcting frozen shells is a multi-step process
  • Conceptual disconnect about what the thing running in the shell is/does (students frequently close the shell or kill the process)

Program Writing

Arguable if this is even needed nowadays for some computational projects, but it's an important skill.

PyCharm

Advantages

  • Extremely intelligent autocomplete
  • IPython integration(?)
  • Free (as in beer)

Disadvantages

  • Extremely complex

Text Editor

If people don't have a "favorite text editor", recommend Sublime Text (works on Windows/Mac/Linux) and is a fairly low-bar.

Advantages

  • Simple

Disadvantages

  • Simple

Room Requirements

  • Rows are accessible from both sides of the room for TAs
  • Power outlets:
    • for each student
    • arranged such that cables do not need to cross aisles

Student Laptop Requirements

  • Operating System
    • Windows 7 or later
    • Mac OS 10.?? or later
  • Anaconda Python 3.4
    • Notes:
      • Sometimes the installer doesn't seem to modify PATH on Windows...this an install checkbox?
      • Anaconda Command Prompt defaults to cmd.exe

Logistics

Requirements

  • Student distributions shall not be changed after they are released

Suggestions

  • Split up videos for each bit of software to make them more modular?

Source Code

Requirements

  • Adhere to PEP-8
    • Lines <= 80 characters
    • Spaces around operators
    • Spaces after commas
    • No superfluous parenthesis (return()...)

Suggestions

  • Avoid multiple chained function calls (more lines are OK)