Managing Lecture Slides Using GIT and Reveal.js

NUS News Highlights: App developed by Dr. Zhao Shengdong is named best iPad app of 2016
January 11, 2017
Associate Professor Shengdong Zhao joined Huawei as a consultant
January 16, 2017

Managing Lecture Slides Using GIT and Reveal.js

by Shengdong Zhao

I use to prepare my lecture using PowerPoint. It works quite well, except it is not version control friendly. This means that whenever I need to re-teach and modify the content of a course, I need to copy and paste all my slides before I can modify them. This results in a lot of redundant content accumulated in my folder over the years.

To solve this problem, I switch to Reveal.js for presentation so that I can version control my lecture slides. It does take a bit of work to convert all my previous slides into Reveal.js initially (BTW, I found a person who can help me to convert my slides with a fee, which saves me a lot of time. If you are interested, let me know). However, once that’s done, I can now use GIT to version control all my slides, which is super nice. Below is a screenshot of my current slides folder for CS3249: user interface development. Each lecture is now an html file which can be nicely version controlled and shared online if I want to.

Screen Shot 2017-01-11 at 2.50.53 PM

To manage my slides from year to year, I create branches for different years. For example, below is a screenshot of how I manage my branches.

Screen Shot 2017-01-11 at 2.54.37 PM

2016_s2 is a branch contains the slides for last year. 2017_s2 is the branch for this semester. I also create a 2017_s2_pre branch to place my pre-lecture slides. These slides contain partial information that allow the students to look at before or during the lecture, without the information I don’t want them to know before the lecture, such as in-class quizzes, etc.

The workflow of lecture modification is now the following:

  1. checkout the branch for final version (e.g., git checkout 2017_s2)
  2. work on the individual file (e.g., cs3249_week1_intro.html)
  3. commit the changes (e.g., git commit -am “bla”)
  4. check out the pre-lecture branch (e.g., git checkout 2017_s2_pre)
  5. merge the changes I made earlier on a particular lecture to the pre lecture branch (e.g., git checkout 2017_s2 Lecture/cs3249_week1_intro.html). (Note: this step is important since I don’t want to redo my changes again in this branch)
  6. remove or hide content I don’t want to share with the class before the lecture
  7. commit the changes for the pre-lecture branch
  8. done!

Read from Shengdong Zhao’s Blog: Managing Lecture Slides Using GIT and Reveal.js

Comments are closed.