Tuesday, January 21, 2020

Thoughts on Dan Goldsmith's Underwhelming Blog Post of January 20

CEO Dan Goldsmith published a post at the Instructure blog on January 20 (online here), but that post fails to address the concerns resulting from his own claims about Instructure AI projects last March (online here). In the post, Goldsmith repeated an announcement made last week that Melissa Loble is now "Chief Customer Experience Officer" who will be the "executive sponsor" for "data usage and privacy." I think we can safely assume that this appointment is in reaction to customer complaints about Instructure's data policies, but you would not know that from reading Goldsmith's post. He refuses to acknowledge our complaints, much less engage in a dialogue about our concerns.

What are we to make of the fact that Goldsmith has stopped talking about DIG publicly after his hyperbolic claims last year? As I see it, Goldsmith's silence (and the ongoing silence of others at Instructure about DIG) is making things worse, not better. I suspect (just guessing) that Goldsmith realized speaking publicly about these plans would make research and development more difficult, as users were objecting to Instructure's unilateral appropriation of our data for their own commercial purposes. He said as much in his letter about the Thoma Bravo acquisition (online here): "Reflecting this year on our goals and path forward revealed that operating in the public spotlight wasn’t fueling innovation and was starting to get in the way of customer success."  I have no idea what it means to claim that sharing information about data usage was getting in the way of "customer success," but then the rhetoric of "customer success" is really just marcomm-speak which is hindering, not helping, an honest dialogue about what Instructure is doing with our data.

When Jared Stein published a blog post about DIG last summer (online here), I replied here at my blog (online here), hoping for a dialogue. We never heard from Jared again with any further information about DIG, which is also disappointing. There is so much that needs to be discussed in order for all parties to have a clear understanding of each other's goals, constraints, concerns, etc. 

Everyone knows I'm prone to long blog posts, and I made sure then to write a post that was no longer than Jared's post; I'm doing the same again here. I've got 295 words left to equal Goldsmith's post, so here's a quick recap of my three biggest concerns:

1. Data Opt-Out. In addition to privacy issues in play, there are serious ethical concerns about the development of AI products and predictive algorithms in education; for a good discussion, see Michael Feldstein on A/B testing and product development (online here). Those of us who do not want our data used for AI research and development need an opt-out.

2. FERPA. I still do not understand how it is not a violation of FERPA for Instructure to use student grade data and enrollment status (i.e. profiling across courses) without the students' express permission. As an instructor, I am not allowed to see my students' grades in other classes, nor their GPA. I suspect (?) such data is crucial to Goldsmith's predictive algorithm for student performance: "We can predict, to a pretty high accuracy, what a likely outcome for a student in a course is, even before they set foot in the classroom" (online here).

If they are predicting performance before students even begin work for a class, grades in other courses must surely (?) be a big part of that predictive algorithm. I suspect many students would object to having their performance predicted in this way based on Instructure's unilateral appropriation of their grade data.
Update. If not the letter of FERPA, then the spirit; see Twitter convo

3. Dialogue. If CEO Goldsmith can't/won't engage in dialogue with users, then I hope we will be hearing soon from others at Instructure who are willing and able to do that.

If you have questions and concerns, I would urge you to add them to the GoogleDoc that Cristina Colquhoun (@call_hoon) has created here: Questions for Instructure. I'm very grateful to Cristina for the excellent job she has done of organizing this latest effort to get Instructure to respond to our concerns. 

Edu-Cat has concerns.
P.S. No, it's not just FUD.

Sunday, January 12, 2020

Advice Randomizer for Spring 2020

There is a little experiment for this semester that I am really excited about: an advice randomizer for the sidebar of my announcements blog. You can see it in action here, and this is a screenshot (that's a random cat above the random advice):

The contents of the randomizer come from an advice Padlet that students fill out at the end of the semester (see the Padlet; there's a link to the Padlet there in the sidebar too), and the randomizer is a way I can re-use that advice, presenting it to students in tiny snippets every time they look at the announcements blog. Since that blog is our Canvas homepage, they will see it often! (see screenshot below of blog in Canvas)

This is yet another example of why I find randomizers really helpful. When you have a TON of content you want to share with students, randomization lets you present that content in small pieces, iteratively, in a way that is much more effective than a giant document to scroll through. If I were to give my students a 10,000 word document which contains the text of all the advice in the randomizer, that would not really be very useful. The Padlet is a great way to collect the information, but a poor way to present it as soon as scrolling is involved. I was really excited when I realized how easy it would be to turn the Padlet text into a randomizer, and I've written out the instructions below for anyone else who wants to try something like this or a similar text-based randomizer.

How to Make Your Own

NOTE: I wasn't sure at what level to write these instructions, and it also varies based on which specific tool you want to use. For the actual creation of the javascript I use, a free web-based tool that one of my students created long ago (over 15 years ago!) and which is still going strong. The basic idea is that you upload an HTML table in a file, and the tool then randomizes the content of the table, row by row. To create the table, I use a spreadsheet which I paste into an HTML file afterwards, but you can also do the work in the HTML file directly (RotateContent will even generate the file for you!). I just find working in spreadsheets congenial, and I created a spreadsheet you can copy if you want.

After you make your own randomizing javascript, you need some webspace where you can host your widget. I use webspace from Reclaim Hosting (they are AWESOME; plans start at $30/year). You might also have some webspace available through your school. If you are stuck without any space you can find, let me know, and I can host your javascript for you.

Anyway, if there is anything in these instructions (written admittedly in haste; everybody's busy at this time of the year!), let me know and I'll fill in more details, add screenshots, adapt to your specific circumstances, etc. Easiest way to contact me is at Twitter: @OnlineCrsLady, or you can email me:


Here's how to make your widget:

1. Copy the Advice spreadsheet. You can change the title of the spreadsheet to whatever you want.

2. Paste in your advice snippets row by row in Column B. Make as many new rows as you need, and copy the contents for Column A and C. If you have your text all in a plain text file, with a line break between each snippet, you can paste that in all at once; Sheets will put each new line of text in a new row of the spreadsheet; that's the main reason I use spreadsheets to create my widgets. So powerful!

3. Now you are going to make an HTML file. You need a plain text editor; if you don't have a plain text editor you use, you can use online. In your spreadsheet, use Select-A to highlight all the columns and rows, Control-C to copy, and then Control-V to paste into the plain text editor. (What I actually do is to create the HTML file in my Reclaim space and use their editor.)

4. Save the file as advice.html (or whatever name you want to use). Make sure you use .html as the suffix.

5. Go to (you are skipping to Step 4) and choose "javascript" as the option, and then choose your HTML file, and convert template. Then right-mouse click when the file is ready, and save-link-as to your computer (the default file name will be advice.js if you uploaded a file name advice.html). If you're curious what the file looks like, just click on that link; you will see the actual javascript file displayed in your browser (it's kind of cool-looking... and hey, you have a javascript now, without having had to write a line of code!).

6. Now you need to upload that javscript file to wherever you will be hosting it. Just how that works depends on where you are hosting your files. I keep all my scripts in a subdomain at my Reclaim site which I call "widgets," so that means my file address is:

You need to know your file address for the next step. And the address should be https if possible (many web environments now require https for embedded content).

7. And here is how you put the javascript into a webpage; you just put your file name in the blank:

<script type="text/javascript"> var display = " " </script><script type="text/javascript" src="___"></script>

So that means I use this HTML snippet to display my randomizer:

<script type="text/javascript"> var display = " " </script><script type="text/javascript" src=""></script>

You can paste that in wherever HTML and javascripts are accepted. I use them in blog posts, in blog sidebars, and in the pages of our class wiki. Here it is below, for example:

Javascript in Canvas... that's harder. Canvas does not allow javascripts directly like this (unless you are a system administrator, and I'm not...), so the way to get around that is to create another HTML page which you upload as a Canvas File and then you iframe that in a Canvas Page. If I should provide step by step instructions for that, let me know.

[Of course if Canvas really were a "learning management system" there would be a way to host real files and use real scripts... but Canvas only lets you do what it lets you do, and it doesn't let you do much. That's a separate topic.]

Since I love to use blogs, the way I get around the Canvas problem is by using my blog inside Canvas: the javascript is fine here in my blog, and then I just iframe my blog itself into Canvas to make it the home page. You can see how that works in the mythology class: (course is open). I have lots of randomizers in my blog sidebar, and they all work fine in Canvas since they are not really "in" Canvas, but instead just in my blog... and Canvas, thank goodness, does not try to control what I put in my blog. :-)

Lots more information here: You can use any/all HTML in that spreadsheet. So, for example, to make the different colored backgrounds in mind, I just picked some colors to use as background-color style for each row at random (I was inspired to do that because the Padlet uses colors like that).

Friday, December 13, 2019

Gettin’ Air - The Open Pedagogy Podcast

It was fun listening to podcast with Terry Greene live on VoicEdCanada: Gettin’ Air - The Open Pedagogy Podcast. Here's the link to this episode:

(And also at Soundcloud.)

During our discussion I talked about different resources and sites and stuff, so I tweeted them during the live broadcast. Getting to listen like that was perfect way to remind myself of the stuff I needed to tweet. :-)