I teach several in-person university courses in which my lecture slides are in Mathematica (SlideShow environment), projected for all students to see. These slides are also distributed before class to students. Thus students have these slides on their laptops, computing along with me during class... plotting curves, solving equations, performing integration and differentiation, and so on. During class, I'll give students time to change a problem of their choice, type in their own text notes, and so forth. After class, the students then keep their slides with their own results with personal annotations. I find students learn a great deal this way... actively programming while learning.
Online communication and collaboration tools such as Zoom, Google Hangout, Microsoft Teams, and so on offer online direct polling. Thus the host (here, professor) can post a question with sample answers (e.g., A, B, C, or D), each student clicks on their answer (anonymously) on their own laptop, and a bar-chart tally appears on the host computer.
I'd like to incorporate that functionality into my lectures; however, I don't want to use a collaboration tool such as Zoom. I'm wondering if this functionality can be provided entirely within the Mathematica slide deck itself.
In short, my question is this:
- Is there a way in which every student's Mathematica slide deck can have a simple interface (on a few chosen slides), each interface with buttons for response to a question (A, B, C, or D), and the host's (professor's) Mathematica slides have a simple barchart tallying the students' responses?
Assume all computers have access to the internet (or university intranet), the email addresses are known, Databin is available, and any other support information that will make this functionality possible.
I know you can email directly from a Mathematica notebook, but I could not find any documentation relevant to supporting this kind of polling function.
Added for clarity in offering a bounty (tomorrow):
To collect the bounty, you'll need to provide:
- Mathematica code for the host (professor's) slide deck creating a one-time Databin for a single lecture.
- Code for a sample question that will appear on professor's slide deck and (surely code different from the professor's) that will appear on each student's slide deck. Example: "Question 1: What will happen to the power in the circuit? A. It will go up. B. It will go down. C. It will stay the same. D. I don't know." There should be a simple button interface for each answer.
- A similar template for additional questions. Example: "Question 2: What will happen to the phase? A. It will increase. B. It will decrease. C. It will not change. D. I don't know." Each lecture could have several such questions (I envision ten, at most, but that shouldn't affect the coding problem.)
- Code on the professor's slide deck that displays a histogram of student responses for each individual question in real time (or after each refresh of the interface by the professor). Thus on one page there will be a histogram for responses to Question 1, on a different slide there will be a histogram for responses to Question 2, and so on.
- If possible, there should be only a single Databin created per lecture... so student responses to all questions are posted to that single Databin (but somehow indexed so that only the proper data is tallied in each histogram, of course).
- Assume a list of student email addresses is available. What code is required to give the student class list (and nobody else) permission to post to the Databin?
I'm not wedded to using a Databin. If there is another way to achieve the desired functionality, great!
Again... I think our community would profit greatly from such code.