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.
- 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 0122 Filescape navigator
- Episode 0205 Curator personalis
-
Episode 0219
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 0310
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 0324 The non-accidental programmer
- Episode 0409 Dynamic duo
-
Episode 0428
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 0512
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
- ☢️