Hacker Newsnew | past | comments | ask | show | jobs | submitlogin
Options for giving math talks and lectures online (terrytao.wordpress.com)
143 points by chmaynard on March 10, 2020 | hide | past | favorite | 22 comments


There's a respondent on the page suggesting OBS, the Open Broadcaster Software. I think that's the way to go. If you need to feed it in to Zoom or Skype or something, you should be able to use OBS-VirtualCam (haven't tried it myself, yet) https://obsproject.com/forum/resources/obs-virtualcam.539/

one camera aimed at you, and another one aimed at your desk, with some different scenes set up in OBS for focusing on you, the desk, or some powerpoint slides.

then let students use the textual chat feature. (just plain superior to taking audio from 20+ students simultaneously. that'll never turn out well.)


i wasn't aware these were a thing:

https://www.amazon.com/IPEVO-Definition-Document-Camera-5-88...

might be a nice way to aim a camera at your desk.


Flipped class example https://youtu.be/zec5cq6WiAk the students participate in live chat and sign into some software (Canvas and Gradescope) to answer exercises. Twitch stream/Youtube works fine though MIT has some kind of video software that automatically follows the lecturer with numerous angles for blackboards https://video.odl.mit.edu/collections/99c40d462fcf457e961185...


I know the world is going to change because of COVID-19. I'm just not sure how much, or for how long. If one good thing comes out of this, forcing every college teacher in the US to teach remotely for the rest of the semester might lead to some interesting innovation!


Twitch do streaming really well and you can use Discord to chat.

Half the students will already be on Discord and probably on Twitch too.

For a blackboard, why? With a computer you have infinite space as long as you're using some kind of note taking software. I know that I've abused OneNote's live editing feature to draw on my laptop screen via my tablet + pen. Plus everything electronic can be exported and shared.


I would love to see teachers take a page out of programming twitch streamers book and get proper live streaming setups

I don't know that twitch is the best platform (honestly, it might be! It's used for this every day at a much larger scale than most schools imagine), but regardless, streamers have figured out pretty great and economical setups for streaming.

(Eg https://medium.com/@suzhinton/my-twitch-live-coding-setup-b2... but I'm sure there are many many similar publications, some which might be better for beginners)


And a wacom tablet can be a cheap way to supplement writing, drawing, and diagramming if you don't have a touch screen type device. There are also capture cameras that I've had lecturers use and seen artists use that could be put to good use here if the person providing instruction wants the actual "paper feel" while still providing those hand drawn results.


What are the advantages of Twitch over something more business-y like Zoom?


I've had better experience with the consumer/gaming tools than I have with "Business" tools. It's probably because they stay more focussed whilst the business tools morph into hydras as part of their data lock-in strategies (here's looking at you, Slack).


discord voice chat is miles beyond nicer than slack or zoom.


I just went out and bought a drawing tablet peripheral for about $60. I share the screen with slides on one side and onenote on the other, and write on onenote with the tablet like a whiteboard. I've already done a couple lectures and in some ways it's better than the real thing since you just continually scroll the notes you are producing and all is in one field of view.

On the other hand I've been trying to use google forms with little quizzes for periodic feedback and that's been terrible. No matter how basic a question you ask, some students will take 100x too long trying to research the answer on google or just hiding or who knows what. And you just have to cut half the class off with no responses if you want to move on in a reasonable time. Putting students on the spot by walking over to them in person is the only way to get some students to participate.


Last week, I tried teaching half of the university class in person, and the other half watched online. I sat at the desk in the classroom and streamed with Microsoft Teams

1) a video of me (using the selfie-camera on the iPhone) and

2) the screen content of my iPad, where I used the Pencil to write on PowerPoint slides.

What was my experience? I missed a live feedback, both during lecturing, and while answering questions. I sort of talked into the void. Luckily there were still students in the same room, so I got a visual response here. However I think the feedback could be improved very much if each of the remote students would also stream their video (all at once, without audio). I hope this allows to have a more 'class-roomy' experience, also among the students themselves. Is there anyone with a similar setup and experience?


I teach my regular class as you did: sitting at the desk, facing the students in the room, writing on a tablet whose screen is projected behind me.

1) I get a lot more eye contacts with the students this way versus using the blackboard, because I always face the students and never face the blackboard.

2) Beyond streaming the screen, there exist software that records and share what was displayed in previous slides. Students watching the video can then very easily (alt+tab) access another window where they can scroll to check previous slides. OneNote lets you do this for instance by sharing a notebook; the students can either access the notebook on a webpage (sluggish) or on their own OneNote app on a tablet. I typically have 1 notebook for each course and the notes taken during class are updated almost instantly (few seconds). Sadly OneNote has drawbacks: importing a PDF rasterizes it and the result is blurry/pixelated, and the latency for updating the notebook online is few seconds, so not good enough for online streaming.

3) Webex or similar conference software lets each participant send a video stream or a screen sharing stream. I intend to try this setup in the next few weeks: (a) me sharing a selfie video stream (b) me sharing my iPad screen where I write or annotate slides in OneNote, (c) the OneNote online notebook that students have access to in another window with all previously annotated slides, (d) hopefully the students streaming a selfie video of themselves to get visual feedback in the Webex meeting.


> I missed a live feedback, both during lecturing, and while answering questions.

Perhaps you could integrate some sort of chat for this?


There is a live chat functionality, yes, thank you for the idea. In terms of feedback, I miss fine detail, just in the moment: For example, if the students appear overwhelmed by an explanation, or if they like a joke.


Chat could be too information dense. Perhaps something like Facebook live reactions—maybe just a simple "slow down" or "I'm confused" button would work.


"However I think the feedback could be improved very much if each of the remote students would also stream their video (all at once, without audio)."

Raw streaming video isn't going to do you much good for even just a class of 20ish. But you do make me think of a crazy idea where each student has their camera on, and the client does facial analysis to do what would basically be sentiment analysis. Then just the sentiments get sent up to the streaming server (saving tons of bandwidth, which the clients may not much care about but the central server still cares about even in 2020), and the server composites the sentiments together and displays 3 or 4 synthesized faces representing the general sentiment. So you look at your 3 or 4 synthesized faces as you teach, and if suddenly 2 of them get a quizzical look on their face, you know that there's a non-trivial amount of the class you just lost. Or, alas, if 3 of the 4 of them are staring off into space, you know you've lost the class.

It would be a bit weird, but might be an interesting way to hack our human systems for facial reading into being able to read a virtual crowd.

Two possibilities come to mind; one is where the system reads sentiments, and then if it decides one of the faces is going to be confused, plays a pre-canned "confused" animation. Functional, easy, unless someone very skilled works at it it's gonna have a very 1990s animation feel to it, I suspect. The other is more complicated, but potentially more rewarding, where the system uses some more advanced AI and things like eigenfaces to synthesize a more continuous representation of what the crowd is expressing, which may do a better job of looking more human and may be a much more information-rich way of expressing the crowd's sentiments. In this case I imagine the system trying to maximize the number of real faces represented by the synthesized faces; I'd want to set it up so that a crowd of 90 neutral people, 10 bored people, and 5 confused people get the bored and confused a bit overrepresented, rather than just having 3 or 4 equally neutral faces.

You'll also see I'm pretty stuck on having more than one face, despite the fact I kinda expect any system that tried to do this would end up with just one, but I suspect that trying to represent an entire diverse crowd with just one face will wipe away too much information, both resulting in less information for the user, and also eventually the brain of the lecturer categorizing this as something other than a crowd of people. I think you need multiple faces for this to work, and you'd need to do something like what language analysts do to seek out the real information in a sentence and not be afraid to amplify some of the signals only a small minority are putting out.

Anyhow, the foundational tech for all this all basically exists now; this is definitely something a startup-class effort could do.


Cool ideas here! I can just encourage you to test what is possible :-)


Since a lot of people are or will be administering exams, I want to put in a plug for the wonderful Gradescope (with which I have no association other than as a former user, and they sent me a t-shirt). I used it in my classes a couple years ago when I was a graduate student. It massively streamlines the process of grading. Relevant to the current outbreak is the ability to easily return graded items to the students through the service. You can even handle regrade requests, should you choose to enable them. They also now seem to have some test-administration capabilities, but I've never used that.

The process for using it goes like this:

1. Upload a blank exam and mark where names and answers are (so, e.g., they'll know where on each exam to expect the student's answer to 2(b)).

2. Scan and upload the finished exams. Most copying machines can handle this pretty easily.

3. Use an OCR-assisted process to match exams to names or student ID numbers. Without ID numbers, this took me under 2 minutes for 40-50 students.

4. As you grade each problem, you make notes and deductions as you go. e.g. "You forgot the +C, -1 point". If you see the same error again, you can use a hotkey to affix the same note and deduction to subsequent exams. You can also grade additively, if you prefer. And you don't have to deal with stacks of paper exams.

5. If you decide to alter a note, or that you were to harsh or lenient on a particular error, the changes are applied to all exams with that mark. This takes a lot of pressure off of your initial grading decisions ("Oh, shit, it looks like getting that was harder than I thought. Should I go through all the exams and lower their deductions?"). The notes support LaTeX math symbols.

6. Once you're finished grading, you don't have to tally and enter the grades. No more worrying about final-grade-altering addition errors. You can export the results as a spreadsheet. You get granular, question-level data on how everyone did. You can publish the results to students. If you choose to accept regrade requests, you can do so without worrying about post-return alterations of answers.

This is all without their upgraded AI-assisted service. It slashed about 75% off of the time I spent on grading and 90% off the stress of grading fairly and consistently. And it gets even better if you have multiple graders with their team service; no more coordinating the passing around of exams! Everyone can work at the same time.

It's an absolute godsend if you have a lot of grading to do. I can't recommend it highly enough.


One option: screencast development of a Jupyter notebook.

Jupyter Notebook supports LaTeX (MathTeX) and inline charts. You can create graded notebooks with nbgrader and/or with CoCalc (which records all (optionally multi-user) input such that you can replay it with a time slider).

Jupyter notebooks can be saved to HTML slides with reveal.js, but if you want to execute code cells within a slide, you'll need to install RISE: https://rise.readthedocs.io/en/stable/

Here are the docs for CoCalc Course Management; Handouts, Assignments, nbgrader: https://doc.cocalc.com/teaching-course-management.html

Here are the docs for nbgrader: https://nbgrader.readthedocs.io/en/stable/

You can also grade Jupyter notebooks in Open edX:

> Auto-grade a student assignment created as a Jupyter notebook, using the nbgrader Jupyter extension, and write the score in the Open edX gradebook

https://github.com/ibleducation/jupyter-edx-grader-xblock

Or just show the Jupyter notebook within an edX course: https://github.com/ibleducation/jupyter-edx-viewer-xblock

There are also ways to integrate Jupyter notebooks with various LMS / LRS systems (like Canvas, Blackboard, etc) "nbgrader and LMS / LRS; LTI, xAPI" on the "Teaching with Jupyter Notebooks" mailing list: https://groups.google.com/forum/#!topic/jupyter-education/_U...

"Teaching and Learning with Jupyter" ("An open book about Jupyter and its use in teaching and learning.") https://jupyter4edu.github.io/jupyter-edu-book/


> TLJH: "The Littlest JupyterHub" describes how to setup multi-user JupyterHub with e.g. Docker spawners that isolate workloads running with shared resources like GPUs and TPUs: http://tljh.jupyter.org/en/latest/

> "Zero to BinderHub" describes how to setup BinderHub on a k8s cluster: https://binderhub.readthedocs.io/en/latest/zero-to-binderhub...

If you create a git repository with REES-compatible dependency specification file(s), students can generate a container with all of the same software at home with repo2docker or with BinderHub.

> REES is one solution to reproducibility of the computational environment.

>> BinderHub ( https://mybinder.org/ ) creates docker containers from {git repos, Zenodo, FigShare,} and launches them in free cloud instances also running JupyterLab by building containers with repo2docker (with REES (Reproducible Execution Environment Specification)). This means that all I have to do is add an environment.yml to my git repo in order to get Binder support so that people can just click on the badge in the README to launch JupyterLab with all of the dependencies installed.

>> REES supports a number of dependency specifications: requirements.txt, Pipfile.lock, environment.yml, aptSources, postBuild. With an environment.yml, I can install the necessary CPython/PyPy version and everything else.

> REES: https://repo2docker.readthedocs.io/en/latest/specification.h...

> REES configuration files: https://repo2docker.readthedocs.io/en/latest/config_files.ht...

> Storing a container built with repo2docker in a container registry is one way to increase the likelihood that it'll be possible to run the same analysis pipeline with the same data and get the same results years later.


If I were faced with switching to this mode quickly, and not futzing with a lot of technology, I'd think about rigging up a web cam to look down on a pad of paper.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: