I wrote a program to distribute my lecture slides to my students in real time.
When I was a University Professor, I taught Theory of Computing (among other classes). I did not want to maintain two sets of slides (fill-in-the-blank style), and I didn't want the students to have to write non-stop during the lecture, so I wrote a couple of programs to distribute the slides in real time during the lecture.
Part 1: C++. A program ran on my computer. When I pressed a button, it took a screen shot of my chosen monitor and sent it to my server. Communication via websockets.
Part 2: Browser. Students connected to my server at the start of class. As I lectured, the slides appeared in their browser automatically. Of course, they could click through all previous slides (for that day as well as previous lectures), but if they were not actively browsing the slides, then the newest slide presented itself to them automatically. (Technically, it was always one slide behind, because I would not release a slide until I was done talking about it.) Communication via websockets. It worked in lectures attended by 100+ students.
Part 3: NodeJS. My server received screenshots from me (as well as some metadata), kept a small database of all past lectures/screenshots, and served a browsable interface to the students. It routed all the websocket connections so that everything "just worked"TM.
I thought it was cool. The students complained that the slides were not searchable like a PDF. I directed them to the index of the textbook.
Blanks in the slides are filled during the lecture with the students. With this solution, students don't have to copy the notes while trying to listen.
I used Google Slides, and didn't use annotations. The reason that I didn't wait until after the lecture is that, when covering technical- or notation-dense topics, especially if the information is new, students often need to look back during the lecture to remind themselves "What does this mean again?", either that, or ask the question out loud, which a lot of students are shy about.
In short, the students needed to be able to review the slides during the lecture, so I couldn't wait until the end. My only options were then to distribute slides ahead of time, fill-in-the-blank style, or create a live delivery system. Honestly, the live delivery system was easier and cooler.
It was Theory of Computing class, not Biology or Math, if I'd been his student I would've been mightily impressed. I mean every English teacher can fill out and email PDFs but this was actually real time applied computing.
When I was a University Professor, I taught Theory of Computing (among other classes). I did not want to maintain two sets of slides (fill-in-the-blank style), and I didn't want the students to have to write non-stop during the lecture, so I wrote a couple of programs to distribute the slides in real time during the lecture.
Part 1: C++. A program ran on my computer. When I pressed a button, it took a screen shot of my chosen monitor and sent it to my server. Communication via websockets.
Part 2: Browser. Students connected to my server at the start of class. As I lectured, the slides appeared in their browser automatically. Of course, they could click through all previous slides (for that day as well as previous lectures), but if they were not actively browsing the slides, then the newest slide presented itself to them automatically. (Technically, it was always one slide behind, because I would not release a slide until I was done talking about it.) Communication via websockets. It worked in lectures attended by 100+ students.
Part 3: NodeJS. My server received screenshots from me (as well as some metadata), kept a small database of all past lectures/screenshots, and served a browsable interface to the students. It routed all the websocket connections so that everything "just worked"TM.
I thought it was cool. The students complained that the slides were not searchable like a PDF. I directed them to the index of the textbook.