7.4 cents per day to be exact. That is what the new student course plan for SageMathCloud costs a student at $9 total for four months of members-only hosting, with network access, 1 GB of RAM and 3 GB of disk storage. As an instructor you get all the advantages of assigning, collecting, marking, and returning assignments with the well-designed course interface.
This is an update of my detailed explanation of how to set up, and use, SageMathCloud to run a course that features computation. If you have not read that, it would be the best place to start. A few things have changed, and I have a few new comments, but the vast majority of that post is still applicable. Skip below to the “Course Plan” section if you are just curious about how the $9 plan works from an instructor’s view.
The course functionality went very smoothly last term. No one lost any work and generally everything came in on time. Grading was very easy procedurally, and there is not much I could think of to make grading much more streamlined. (But then, I have small classes and no TA’s to supervise.)
My upper-division course in abstract algebra continues with regular Sage worksheet assignments from Judson’s open source textbook. Last semester, I pushed out blank Sage worksheets for them to use for their submitted work, which had boilerplate instructions about the
%html magic and exhortations for them to explain their work. Two students decided they liked to submit Jupyter notebooks instead, which was fine with me. They named them things like “GradeMe.ipynb”. The point is, you can have students just make a new worksheet in the folder you push out and have them name it clearly (and with the default sort order by time, it is usually the last thing they have touched so at the top of the file list in their collected folder).
If you grade Jupyter notebooks, you’ll want to know
Esc-B for new cell above or below,
Esc-M for making a new cell into Markdown format, and then put some HTML for color and size of a
div element onto your clipboard manager for quick pasting.
Last semester I strongly advised these students to purchase the $7/month Standard Plan for 3 or 4 months. So they have done their part as early supporters of SMC. I support SMC with a $49/month Premium Plan, which has more firepower than I need, though I am slowly becoming addicted to the upgrades. With 16 members-only project upgrades, and as owner of the student’s course projects, and with a slightly smaller returning group, I was able to give each student a members-only upgrade for the semester (which I will claw back in May).
This is one of the things I really like about the upgrades and quotas – you can distribute them temporarily to collaborators: students, TA’s, research students, and colleagues anywhere.
My linear algebra students are mostly new to me. They will be learning lots of Sage, they will be using a very limited subset of Sage during exams via the Sage Cell Server on their laptops, and they have fourteen proofs to write, and re-write, in LaTeX until they are rock solid.
I have about twenty Sage worksheets I use as demonstrations in class. The first one was about constructing matrices and getting back reduced row-echelon form, which was a tool they could use on their first exam (two days ago), though they had to row-reduce one simple matrix “by-hand.” The second one illustrated the dichotomy of linear systems with nonsingular versus singular coefficient matrices. I put these in a single folder which I push out as an assignment. Better, as suggested by SMC founder William Stein, is to use a separate folder for each worksheet. That’ll minimize the chance that an update will overwrite student work. This has not been a problem yet with my students, as they seem to understand that they need to make copies if they want to experiment.
Feedback from my students years ago suggests they don’t like to see you just step through a canned worksheet. So I manufacture some things carefully in advance (like singular matrices) and create other things randomly (either at the keboard, or with Billy Wonderley’s random matrix commands in Sage). I enter many of the commands I need live in class, so they can see me interacting with the system, and I can respond to their suggestions and questions. So I make an “-inclass” version in advance, do my work there and save it at the end of class. So the students get a virgin version of the worksheet that is incomplete, and a transcript of the class session.
For their proof-writing, the LaTeX editing and compilation is excellent, and I’ve used this as the rationale for required them to sign up for the course plan. I spent about 10 minutes each of the first four class days, building up a demo/scratch LaTeX document with most of the basic features I thought they would need. So I pushed out in their assignment a progression:
DayFour.tex. Be sure to teach them about “commenting out” lines to locate compilation problems.
Before their first proofs were due, I had them make a test document, where the only requirement was that it had some math. Of course, they were very creative with such loose guidelines. I wanted them to get the result out as a PDF, saved locally, and emailed to me. They submit their proofs on paper, since I have an elaborate system for the rewrites which I have failed at organizing electronically once already. I’ve had trouble in the past with students who could not download and print a PDF before the first due date, so I get that out of the way with this mock exercise.
I had thought to hold “LaTeX Office Hours” the evening before their first LaTeX’ed proofs were due. Timing was wrong, but I could conceivably have been at home after dinner, and as owner of their projects I could pop in and edit their LaTeX in SMC over the network, while they watched and let them also edit simultaneously. Turned out fine, all their LaTeX looked quite good and only one student had a real question.
Make a course (see my previous post for details). One update: if you know your student’s email addresses in advance, you can set up all their projects in advance by adding them with a single comma-separated list of addresses. So as I suggested before, require your students to use their canonical school address when they make an account, and strongly suggest they use some variant of their real name, since that is what you will see. If you add a student late by name, you will not see their email address in your list, so you may want to routinely use email as the identifier.
Now in your course “Settings”, find the first box, “Require students to upgrade (students pay)”. Then set a date by which they must pay. Be sure to customize the email invitation (off to the right) – I missed it the first time. Done. It is that easy.
I set the end of the trial period to be our “Last Day to Drop Without Record” day, which is about two weeks in to the semester. 60% have paid already. I believe it is very clear in the student view how much time is left, and I’ll give them one in-class reminder tomorrow.
The setup is really flexible. David Roe asked on the
sage-cloud list: What happens for students who don’t pay the $9? Will they still be able to access their projects with a free “membership”?
William Stein replied: No. However:
- They could of course copy the files out to another project.
- They do get full access again (for free) when the course is over.
- You can set a start time at any point in the future (the default is one week).
- As the instructor, you can change the start time or remove the students-must-pay restriction instantly at any time with a click. This takes effect immediately.
Maybe your school does not allow you to require extra fees of students. There is an option for “Upgrade all student projects (you pay)”, which did not exist when I set up my Abstract Algebra course, so I do not yet have any experience with it, but it should be straightforward.