Skip to content

Secondary Lecture Topics

Mason F. Matthews edited this page Jul 19, 2015 · 3 revisions

Human Learning

The most important secondary topics which I work into lectures are those about Human Learning. I phrase them all as "To learn, you should...", and I accumulate them on my list board as the course progresses.

Speaking about these explicitly helps students take charge of their own learning and rely on instructors as crutches much less.

The concepts which I cover are the following:

  • Get related knowledge in advance
  • Expect to exert effort
  • Try before being taught
  • Review when memory is stale
  • Scar in moderation
  • Retrieve rather than re-expose
  • Interleave topics
  • Elaborate rather than repeat
  • Study concept over implementation
  • Use short feedback loops

Agile Practices

Agile practices are also important. We don't just want to give people a knowledge of Rails, but we want to train productive developers for an Agile world.

The practices/principles which I cover are the following:

  • Iterate with rigorous data collection and reflection
  • Estimating is hard
  • Hammer-user vs. shiny-object
  • All code becomes legacy code
  • Debugging is everywhere
  • Data-first vs. behavior-first
  • Start small
  • Style matters early (sadly)
  • Consider technical debt

git and GitHub Practices

Git and GitHub come up throughout the course, but some of the concepts are quite challenging, so I dedicate explicit blocks of time to them on the schedule. I also cover the commands in chunks, and review the challenging parts a few times. Here are the six chunks that I explictly use in class:

  • init, add, commit, push
  • fork, clone, pull, .gitignore
  • pull, branch, merge, stash
  • branch, pull request, merge
  • Common git workflows (e.g. Gitflow)
  • reset, rebase, filter-branch (i.e. How to recover from git messes)

Check out the curriculum spreadsheet to see where they fall. Their placement is largely chosen due to the assignments and the new challenges that they'll need to face on certain evenings.