CMSI 1998
Special Studies: Software Carpentry*
Fall 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.
- 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)
- Episode 0905 Filescape navigator extended to 0909
- Episode 0919 Curator personalis
-
Episode 1003
Edits, envs, and execution
-
Here’s a
step-by-step tutorial
on
vito supplement what we do in class -
And this is a
quick and convenient crib sheet
for
vi: note, in typical non-programming command-line use, the first six bullets see the heaviest use - Finally, here is XKCD’s humorous and informative take on all of this
-
Here’s a
step-by-step tutorial
on
-
Episode 1017
To [Git]hub and to hold
- If you haven’t yet, we will set up SSH authentication on your GitHub account during class
- We will add Markdown to your documentation repertoire: here is GitHub’s official Markdown guide
- Episode 1031 The non-accidental programmer
- Episode 1114 Dynamic duo
-
Episode 1202
Welcome to the multiverse
Setup practice
Setup final
-
Learn Git Branching
provides a gamified, visual approach to learning
git—it can get pretty advanced so pace yourself according to what has been covered in class so far
-
Learn Git Branching
provides a gamified, visual approach to learning
-
Episode 1212
Use the force you should not
-
Dangit, Git!?!
is a curated (one might say “cherry-picked” 😉) collection of
git“vignettes” for specific stickygitsituations. The commands include some that we covered in class, some that are variants of what we have covered, and some that are completely new. Consider this a parting gift as you proceed to apply your newfound software carpentry skills to future work. Enjoy! (h/t Frank Manno)
-
Dangit, Git!?!
is a curated (one might say “cherry-picked” 😉) collection of
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
cdpwd-
.,..,/, and~ -
ls[-a,-l,-F] - “Hidden” files (
.again, with a twist) more/less
-
Making changes
mkdir[-p]rmdirmvrmcattouchviandnano/pico- Lore:
vivs.emacs
-
Command line QoL
- History (and searching it)
- Autocomplete
- Environment variables (especially
PATH) - Command editing
echoalias
- Markdown (especially GitHub’s flavor)
-
gitstartedinitcloneaddremovecommitpushpull
-
gitmovinglogdiff
-
gitin controlrestorecommit --amendstashresetcheckout
-
gityour own adventurebranchswitchmerge
-
gitfixedrestorerevertcherry-pick
-
⚠️
gitdangerous (but sometimes necessary)- ☢️
reset - ☢️
rebase[--interactive] - ☣️
push --force
- ☢️