CMSI 1024
Software Carpentry*
Fall 2026
- Brightspace: Where you can access private content and check your grades
- We will use PostCommit to manage and submit some 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 0916 Filescape navigator
- Episode 0928 Curator personalis
-
Episode 1014
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 1026
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 1109 The non-accidental programmer
- Episode 1123 Dynamic duo
-
Episode 1207
Welcome to the multiverse
-
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 1214
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
- ☢️