I’m still alive – I didn’t fry myself to death with my iontophoresis gadget. I just took a break from it while I wait for materials.
Maybe you’re like me, and you get excited about all the course offerings at MOOCs like Coursera and EdX that you enroll in a dozen courses at once. You assume there’s going to be a calendar with all your assignment and quiz due dates, like there is with every other professional online course you’ve ever taken via another platform.
But there isn’t, and if you’re a stickler for user experience and good design like I am, you lose all interest in taking the courses when you realize how long it’s going to take to manually add all these due dates to your calendar. Ok, so I’m kind of an absolutist when it comes to efficient and elegant solutions, hopefully you’re not like me. This is still a frustrating problem with a frustratingly easy solution on Coursera’s part.
Someone requested a calendar feature for Coursera 5 years ago. It’s been 5 years, and Coursera still doesn’t have a calendar feature. The only other option for a calendar no longer works, and if Coursera has an API, I can’t find it.
The calendar data is there, it just needs to be accessed and organized. That’s where the Google Chrome extension Data Miner and Google Sheets (or any spreadsheet) comes in.
After installing the extension, go to the welcome page for the Coursera class you want to get due dates out of. Start up Data Miner.
1. Choose type of page: List Page
2. Find the row you want.
Click the Find button, hover your pointer over the data row (entry) you want to capture and then tap shift to capture it. This will capture all rows with the same kind of data.
At the time of this post, you can also just type
.rc-AssignmentRow in the text box.
3. Find the columns you want.
My recipe captures 4 columns of data – The activity, the name of the activity, the estimated time to complete it, and the due date. Capture the column you want, as we did with the row, or type in the Selector as shown.
Some texts are a bit harder to differentiate from similar texts in the row (because they use the same or similar HTML elements), so once you select the text you want, you might have to narrow it down by the Element’s Classes, the HTML Element Type, and/or choosing A Sibling Element. Scroll down the page to make sure all the data entries you want for that column are selected, and not any others.
4. Save your recipe.
After all that, skip to the last tab, 7 Save, name your recipe and save it.
Then, Run Recipe! A new window will pop up with the data neatly organized and ready to download. You’ll want to download it to clipboard.
5. Open up your spreadsheet
Paste into your spreadsheet of choice, and – this is very important if you’re doing this for multiple courses – go back to Data Miner and click the Clear button next to the Download button. Otherwise, you’ll copy and paste duplicates! For the next class’s due dates, just click Re-Run after you Clear it.
Here is what my finished Google Sheet looks like:
I manually added three separate columns for Organization (University of Michigan, for example), Specialization, and Class. I tried to get the class name through Data Miner, but it didn’t work out. That’s why this is version 3 of my Data Miner recipe.
6. Format time duration and dates.
To get a sortable Due Date, I just changed the
Format of that column to
Number > Date.
To get sortable Estimated Time, it was a bit more complicated.
For the time in hours, I just
Find and replace... (Ctrl+H) ‘h’ with ‘:00:00’ in that specific column range.
For the time in minutes, I had to use regular expressions. To get from the single digit 9 min to 00:09:00, I used these expressions:
…will find the times with a single digit (8 min, for example) and replace it with the correct duration format:
$1 is a placeholder for the stuff in parentheses.
For times with 2 digits (12 min, for example), I would use:
…and replace it with:
Format the column by
Number > Duration. Tada! Now everything is sortable.
There is a way to format this spreadsheet and export it as a .csv file, such that you can import it into Google Calendar, but for now, this stylesheet meets my needs. I hope it meets your needs too!