NYU Teaching Innovation Award Proposal (10 February 2023)
Amos Bloomberg
.
This proposal for the NYU Teaching Innovation Award was submitted on 10 February 2023. On 17 February 2023, the award was conferred by the Dean of the Faculty of Arts & Sciences.
The Agile Software Development & DevOps course (CSCI-UA480-69) teaches a practical and industry-standard approach to software development in an especially authentic manner, where the industry-standard process and tools used to manage the course itself follow many of the same principles and practices required of students for their own software projects. This allows students to acquire valuable skills by simply participating in the course.
The course relies heavily on tools provided by GitHub, a platform for managing software development projects that is widely used in industry. The instructor uses GitHub to generate and automatically publish course materials (syllabus, schedule, slides, notes, assignments, etc). These course materials are used to instruct students on how to use the same automation tools to create and publish their own software projects. Thus, the operations of the course itself follow the same patterns and use the same tools that are taught to students.
Generating course materials
The course website, including syllabi, daily schedules, and all slides and notes, are written entirely in Markdown - a deadly-simple markup language used widely for formatting of simple text documents. These documents can be written using any text editor. In this course we prefer the popular Visual Studio Code editor as it integrates seamlessly with GitHub and other industry-standard tools.
The course website — including all slides, notes, syllabus, and schedule — is automatically generated from these Markdown documents by GitHub Pages - a service to automatically publish websites. Every time the text is modified, GitHub Pages regenerates and republishes the materials - a process termed “continuous deployment” in the tech industry and considered the gold standard for how to publish applications and web sites today.
Publishing student assessments
Like the course materials, assignments are created by the instructor as standard GitHub repositories consisting of instructions and any other files students need to start the assignment. Using GitHub Classroom, these repositories are automatically copied for each students and the instructor can see the status of each student’s work at any point in time as well as an archive of all changes made by each student by using GitHub Classroom. There is no need for students to submit assignments, as all changes are already visible to the instructor.
Rationale
The use of standard text documents eliminates the common problem of spending hours perfecting the design and layout of a document or slides in Microsoft Word or PowerPoint only to find that the design and layout become corrupted when importing into another program, like Google Docs or Apple Keynote. And documents are automatically published as regular web pages that students can easily interact with, rather than as static formats intended for printing on paper, like PDF.
With this workflow, there is no need to use a very different set of tools to generate the course materials and manage the course than to complete the coursework. The instructor and the students follow the same workflows in their respective workloads, creating a holistic and authentic learning experience.