CMSI 1998

Special Studies: Software Carpentry*

Spring 2025


Note
This page is maintained as an archival record of the course shown above, and as such, some links on this page may no longer be valid nor accessible. They are kept here as a record of the resources that were available at the time of the course offering.
* The phrase “software carpentry” was coined by Greg Wilson and Brent Gorda in 1998: https://software-carpentry.org/
  • Brightspace: Where you can access private content and check your grades
  • We will use GitHub Classroom to manage and submit assignments
  • Every now and then we may use Socrative to ask or answer questions as a class—my Socrative room is DONDILMU

Episodes (a.k.a. Assignments)

Course Content

Use class time to learn these concepts and commands, practice them, then walk through realistic software development scenarios where they come in handy, in infinitely diverse combinations.

Use online resources to learn more about them in detail and go into greater depth.

  • Getting your bearings and getting around
    • cd
    • pwd
    • ., .., /, and ~
    • ls [-a, -l, -F]
    • “Hidden” files (. again, with a twist)
    • more/less
  • Making changes
    • mkdir [-p]
    • rmdir
    • mv
    • rm
    • cat
    • touch
    • vi and nano/pico
    • Lore: vi vs. emacs
  • Command line QoL
    • History (and searching it)
    • Autocomplete
    • Environment variables (especially PATH)
    • Command editing
    • echo
    • alias
  • Markdown (especially GitHub’s flavor)
  • git started
    • init
    • clone
    • add
    • remove
    • commit
    • push
    • pull
  • git moving
    • log
    • diff
  • git in control
    • restore
    • commit --amend
    • stash
    • reset
    • checkout
  • git your own adventure
    • branch
    • switch
    • merge
  • git fixed
    • restore
    • revert
    • cherry-pick
  • ⚠️ git dangerous (but sometimes necessary)
    • ☢️ reset
    • ☢️ rebase [--interactive]
    • ☣️ push --force