Instructor thoughts and lessons learned#

This work-in-progress list contains a short list of thoughts and tips on various platforms and other aspects of the course

Slack#

  • Essential

  • No more email, organized discussions, students can post direct or group messages

  • Create new channel for each module/lab

  • Create a private #admin channel for instructors/TAs/IT

  • Create a public #it_help channel

  • Remind them that discussing on Slack is not cheating!

  • They will often answer each other’s questions

  • Can review Slack posts at end of quarter for class participation grade (some students don’t speak up in class, but are more active on Slack)

  • Set boundaries for yourself (use status)

Github#

  • Always a major challenge for new users

  • Keep it simple - just focus on single-user workflow (clone, add, commit, push)

Github classroom#

  • Simplifies assignment distribution

  • Handles forking behind the scenes, enables simple single-user git/github workflow

Jupyterhub#

  • Centralized, indentical environment

    • Don’t support individual student environment, OS, hardware!

  • Admin control panel is useful for monitoring recent usage, restarting student servers if they cannot do so themselves

  • Memory limits may be a problem

Jupyterlab#

  • Filesystem with icons is good stepping stone to navigating via terminal

  • Right-click and download is simple and effective

  • Right-click on markdown file, then Open With -> Markdown Preview

  • Set up two panes side-by-side (e.g., notebook and rendered markdown file)

Jupyter notebooks#

Using notebooks for problem sets#

  • Provide a good introduction

  • Sample code is good, but make them think or interpret resulting output

  • Don’t just tell them what to do!

    • Can walk them through steps, provide links to documentation, recommend methods

    • Undergrads may be used to more “plug and chug” problems, while grad students can

Large datasets#

  • Try to fetch data dynamically

General#

  • Students benefited from ~15-30 minutes at the beginning of lab to discuss code, answers, issues and questions. Useful before diving into new material. Lots of discussion when I wasn’t present, often hard to get them to stop when the time came :). It was critical that they had already attempted to work through the exercises independently (or with recent Slack discussions).

  • Throughout the quarter revisit imposter syndrome, emphasize we are all coming in with different backgrounds/experience, learning together

  • The grading workflow worked with 15 students, but won’t necessarily scale. Can use nbgrader or similar for automated grading support

  • The transition to remote/online instruction in weeks 8-10 was relatively smooth

    • The students had already established relationships, and the general informal atmosphere of the class was already established. Breakout rooms encouraged discussion.