Teaching Information Tools on the Command Line: UNC’s INLS 161
The course and associated materials were iteratively developed, shared and improved on GitHub by the authors over several semesters, representing true open source collaborative course design.
In lieu of the usual quagmire of emailed Word document syllabus versions, the version-controlled and freely available source of GitHub Pages offers unparalleled re-teaching capabilities.
Exposure to tools like Bash, git, Pandoc, LaTeX, Reveal.js, and MySQL provides students with powerful abilities to create, transform, and produce common output formats such as HTML, ODT, DOCX and PDF from shared plaintext markup source files. This approach encourages students to consider source and finished products as separate but related object.
By using in-browser virtual Linux machines, we avoid the problems of software installation and configuration. Students use cloud-based, version-controlled repositories like GitHub and BitBucket to manage their work. Platforms like CodeAnywhere, Cloud9, and Digital Ocean are relatively interchangeable, which allows us to swap them out as needed.
Student work includes writing Bash shell scripts to automate workflows for document conversion, text manipulation, data cleaning, and database operations. The capstone assignment for the course is an interactive online presentation including audio.
Examples of previously taught versions of the course:
John D. Martin III:
Elliott Hauser:
Larry Jones: