Canvas is bad and it should feel bad – March 19 – Quizzes are terrible.

View: Canvas LMS is bad and it should feel bad >>

Quizzes aren’t exactly the most fun thing for students to do, but if they’re done well they can offer the student a way to practice and review topics and see what they’re getting wrong. Generally, I like to give my students multiple tries at a quiz, so that they can get certain ideas down.

Here’s the first problem: The user interface.

Here, I’ve made one quiz question. Notice how terrible the user interface is. How is it this bad? This one quiz question takes up such a large part of my screen. Why is vertical space hogged so much by each element? Why is there so much wasted horizontal space?

Next, I want to add a similar question. However, Canvas does not support duplicating questions. I’m going to have to create a new question, set up the question text and the answers all over again. In this case, the question is brief, so not a big deal. There are only three answers, so not a big deal. It is wasted time, however. It aggregates. It’s annoying. It breaks workflow.

So here, let’s create another problem with the same style. I’ll keep the original question open to reference it (even though it takes up SO MUCH DAMN SPACE), while I work on the new question. But the little widget that lets me upload images and files is gone!

It’s actually just stuck to the top of the page, which is stupid as hell when I get more than a few questions in my quiz. It just sits up there. I have to scroll up to even use it.

Scrolling up to use the damn widget.

Everything about Canvas is terrible. WHY IS IT SO BAD?

Here’s a video of me trying to make a set of randomly-selected questions that are similar:

Canvas is bad and it should feel bad – Feb 22nd – Keyboard shortcuts??

View: Canvas LMS is bad and it should feel bad >>

Um, just curious, Canvas, but…

j : Next Student
k : Previous Student
c : Leave Comment
g : Change Grade
r : Use Rubric

… Why is “next” assigned to “J” and “previous” assigned to “K”?

It’s not even vim keys, which I thought it might be at first; that would be

This makes no sense.

Canvas is bad and it should feel bad – Feb 22nd – Grading programming assignments

Every time I use Canvas, I find that it makes me less productive and more frustrated. There’s too much to catalog all at once, so I’m just going to update this blog post as I become annoyed.

View: Canvas LMS is bad and it should feel bad >>


February 22nd: Grading programming assignments

Let’s go to SpeedGradertm and do some speedy grading of some programming assignments.

Yes, it lets me view the source code from the web browser, albeit without any syntax highlighting. This can be good for small programming assignments, I suppose.

However, I certainly do not see a “Download all student’s files in a zip” link.

I guess that I’m supposed to just download each file manually?

OK, well, maybe I’ll just download all the student files at once with the link on the assignment page.

Clicking the link to download all submissions.

And unzip, and…

A screenshot of the unzipped directory, where all files are lose and have been renamed with the student name and some rumbers.

… Oh.

That’s…

… That’s not useful at all!

I can’t open up a .cpp file and build it because all the headers have been renamed. I can’t use the Makefiles that I made them attach with their assignment because all source files have been renamed.

WHO THOUGHT THIS WAS A GOOD IDEA?


From my experiences with Canvas this semester, it is quite clear that:

  • The makers of Canvas don’t eat their own dog food.
  • Canvas doesn’t hire UX people. I’ve worked at startups with better UX than this service.

University and “Non-traditional Students”

My bilinear interpolation isn’t right. I’ve spent hours and hours on the project, sent emails to the teacher, but I still feel confused and like I lack the resources I need to do well.

I’m a non-traditional student, I guess. I would be a traditional grad student if I had started working on my masters right after my bachelors degree, but I was ready to get out of university. I worked in the industry, and then found I enjoy teaching computer science at the college level, and have returned to university at several places at several times pursuing several different types of degrees.

I will be 30 next month, I live 30 miles away from the university I’m currently attending, I’m teaching 17 credit hours this semester (and 20 last semester). I don’t spend time on campus for funsies; I park, attend my class, pay the $1.75 for an hour of parking, and head home. I have more focuses in my life than just my education – my husband, my day job, and my startup. I really only have the weekends to work on homework and studying.

I remember my pain-points while I was an undergrad, and that makes me the teacher that I am. I understand that my students have a life, I understand that students learn in different ways. Sure, access services will provide you a note taker, but I’ve always wondered how you can rely on the quality of a peer note-taker? When you’re new to a topic, how do you know what is important to highlight, and what’s ok to miss? How do you even take notes fast enough to keep up with a teacher lecturing? (That’s always something I’ve had trouble with.)

Honestly, I’m sitting in class right now and I cannot read all of the teacher’s hand-writing. There is glare on the board coming from the cracked windows, his scrawl is sometimes messy and hard to make out.

I’m frustrated, and I’m unengaged, and while a few days ago I was questioning my own intelligence and self-discipline and abilities, I’m now feeling that university just isn’t accessible to a student like me.

Part of it is the schedule – all of these classes, even grad classes, are mid-day. I’m not working a traditional 8-to-5 job, but if I were it would be impossible for me to attend this college.

Part of it is distance – all classes are in-person, and it’s a 40 minute drive each way. I’m not on campus enough to justify a parking permit, and by paying-per-hour, there is a financial penalty if I need to come on campus more often than I need, such as for office hours.

Another thing is the traditional teaching style – teacher lectures, scribbles on the board, and generally doesn’t refer back to the book or any external data. You’d better show up to class, and you’d better be good at taking notes because there sure as hell aren’t any recorded lectures to refer back to, no slides to look at (and if it is, it’s full of pictures and header text but none of the content.)

And it’s so striking how much different I try to make the experience in my classes, and how shitty I feel in other peoples’ classes.

And part of me wonders if this is part of the whole “toughen up” culture around college and tech – stop whining and “get gud”; if I can’t take it, then I’m just not good enough.

Or if the teachers don’t think about the inaccessible nature of their classes? Or think it isn’t their problem; “There’s an access services! Students can get a note taker and extra time on exams, what more is needed?”

Or maybe they’re more interested in their research than their teaching?

I remember the pain-points of when I was an undergrad, and the same pain-points crop up when I’m a grad. In my classes I make sure that anything I go over in class is also accessible outside of class: My slides or notes are very detailed with all the steps needed. I have video lectures for some of my classes (when I’ve had time). I write exercises that focus on building up the students’ understanding of new topics, starting easy and working their way up. In class we work on things together, because I know that something can seem understandable in lecture, but once you begin trying it yourself that’s where the confusion crops up. I want to make sure students recognize what they’re not understanding, so that we can get through it together and build their foundations and understandings.

And while some students have reviewed me as “worst teacher ever” (Maybe 4 in total have given me that distinction), I feel that so many more honestly find my classes engaging, fun, and instructive. And hopefully they feel secure – they know I’m not trying to write tricky reverse-psychology questions, or throw them in the deep end to sink or swim. They’re here to learn, I’m here to give them resources and help them explore and practice and learn.

And then it’s frustrating when I’ve had so many classes that are all the same “lecture-lecture-lecture, now 3 2 1 go do it hope you’re good at taking notes”. And for the most part, that’s how I’ve taught myself to teach myself. But now in gradschool I’m running into scenarios where there is less information out there, and sometimes (often) the teachers use only themselves as the only resource in the class, which leaves me feeling dumb – at first – and then frustrated because I know I could do better if things were just a little different.

Burnout

This semester, I’ve been teaching 20 credit hours – 6 classes. Two sections of Data Structures online, three sections of Discrete Math 1, and one section of Discrete Math 2, which is the first time I’ve taught Discrete Math 2. I’m getting it done.

I’m not putting as much effort into Data Structures as I had wanted this semester, but I am getting it done. Instead of lecture slides and videos, I just write detailed notes in the labs. I know my students aren’t reading the textbook, I really ought to do something to encourage that. They come to me with questions that would be covered by the textbook if they had read it. With a math textbook, it is easy to get them to use it – assign homework. With a textbook on data structures, it doesn’t so much have a repository of homework to do, but is more of a reference item. I need to figure out some homework to get them to go through it.

I’m pretty happy with Discrete Math 2 this semester. I haven’t had much trouble ramping up on each new section as I re-teach myself stuff I took in college maybe eight or so years ago. I’m happy with my LaTeX assignments that I’ve been writing up, and the class has gone smoothly. Discrete Math 1 has also been going alright, though my night class is mostly silent. It’s a Monday night class, my lectures are all up online in video form, and in class we work on the exercises I write. For my day classes, students pair up and discuss the work. For the night class, everyone works solo (even though I’ve tried grouping them up) and is quiet. Their lack of energy saps my energy, and my lack of energy saps their energy – at least, that’s how it feels. In my more “outgoing” classes, I find talking about the topics easier. The night class, nobody works together, nobody asks me questions, and they already have all the resources they need. It’s such a weird dynamic.

 

Beyond classes this semester, I find it really hard to operate outside of work-mode. I’m so over-worked that it can be hard to wind down or relax or focus on any other tasks I want to do. It’s hard to go to sleep at night after working all day, because I still want to do something fun. But with any spare time I find, I cannot think of what is fun to do; I haven’t spent much time on fun all semester so my brain isn’t configured to receive fun. Sometimes I can get lost in an evening of Overwatch, but otherwise I just feel tired and lethargic.

As the semester end slowly comes, I keep thinking about what Moosader thing to work on next. And my mind is fuzzy. It’s so hard to focus on anything outside of my day job. The big picture, the small picture, anything. It stresses me out.

And I know next semester I will be teaching 4 classes (two Discrete Math 2s, two Data Structures) and taking one grad class. I know I’ll continue being exhausted for the foreseeable future, and that to get anything done with my startup I’ll just have to adapt.

I’m hoping that I will go back to part-time Summer 2018, adjuncting at my school and maybe another, and hopefully that will free up my brain for working towards something that is really my career goal – my startup – and not just working towards my backup goal – teaching. I love teaching, and I’m fine doing it, but I’m not ready for this to be the “endgame” in the MMO of life and career. I figure, after my Master’s, I can work as a teacher anywhere as needed. To add in some extra income, to work on when I’m closer to a retirement age, do pursue if we move to India, etc.

I’ve always dreamt of running my own company, I’ve always loved making work for myself, but these things have always been shoved on the back burner due to school or work. I don’t have the luxury to just quit a job and focus on a startup full-time; I have bills to pay. I have student loans to pay off. But when I think of where I want to be in the future career-wise, what I’m doing now isn’t exactly what I envision.

It’s my birthday!

Me: “I should keep up with grading by grading one assignment every night!”

My day –

Teacher work: Wake up, eat, begin working on class prep for the day. Fund an old lecture on stacks and queues, write a lab, adjust an old project to be a new project.

Business work: Create a set of wireframes for contract app, send out emails to client and to interns.

Homework: Spend last half hour before class begins working on homework. Fix queue problem.

Teach class: Give lecture, read through documentation of my homework while my students work on their lab, answer questions as-needed.

Get home: Eat fast food, be lazy for a while.

Work on homework: Figure out WTF is going on with this programming assignment since the project spec doesn’t really give us much to go on.

Look at clock: 1:30 am…

Tomorrow’s plans: Wake up early, work on class prep before my first class, teach Discrete Math at 12:30, work meeting, then meet with intern after class to help them set up their tools, eat, teach my 6 – 9 pm class, do homework until late again.

Friday…: 9 am meeting at work, meeting with intern, then I guess homework all weekend. Also need to write a letter of recommendation and do my taxes and finish up the fiancé visa paperwork.

Maybe I’ll fit in grading somewhere around there.

Just because I’m a student doesn’t mean that you shouldn’t respect my time: Study guides

OK, I was going to write this blog post after I was done studying for the midterm, but I’m just too steamed right now so I’m going to vent and then get back to it. My plan right now is to spend this entire weekend re-reading all the chapters of the book and making notes on everything. (I keep these notes on my GitHub.)

I’m salty because I emailed the instructor a month ago and asked for the best way to study for the midterm. The response I got was:

Hi Rachel

Lecture notes and the book are probably the best way to prepare for the exam. 

So I guess that I’m just supposed to memorize every fucking thing out of the textbook, because there is no clear way to tell what this teacher things is important and what we will be assessed over.


A textbook I teach out of with only a few sentences highlighted

I clearly have not highlighted every paragraph of the Data Structures textbook that I teach from.

“Oh well you should be learning everything anyway.”

Sure, read all the content, absorb it all, but what we need to know of and what we need to have burned into our brains are very different. I sift through the textbooks that I teach out of and I sure as hell don’t highlight every damn line with what I think is important.

And it depends between teachers!

What I highlight and think is important is based on my own experience in the professional world with things that have come in handy, what I’ve needed to know, and so on. What somebody in academia thinks is important, someone whose research focus is operating systems, might be completely different than what someone thinks from a practical standpoint.

Textbooks are full of words. These words might be good in creating a flow for the textbook, but they are not reference material, and they do not only contain the important bits – they contain information on context, examples, and explanations. At some level, when studying, I’d prefer a reference book than a textbook, because there’s so much to sift through and pull out.

Something I probably don’t need to memorize, but is still mentioned in the textbook, taking up valuable space: “Two common techniques for loading executable files are double-clicking an icon representing the executable file and entering the name of the executable file on the command line (as in prog.exe or a.out).” – Operating Systems Concepts, 9th Edition, Silberschatz


It's part of a study guide that I've prepared.

It’s part of a study guide that I’ve prepared.

The study guides I prepare contain all of the information that I expect my students to know, and that they may potentially be tested over during an exam. It may still be a lot to read and learn, but it doesn’t compare to the amount of time they would have to spend in their textbook, guesstimating what may be important and what may not be.

Because how is a student supposed to properly figure what is and is not important? They’re students. They haven’t had the same background as the instructor, and cannot properly judge what the instructor is going to deem worthy to know.

Functions? Yes, you better damn well know the vocabulary relating to functions so that you can know what I’m talking about when I tell you specifically, “you’re not passing in enough arguments into your function call.”, because if you don’t know the definitions you’re lost.

You need to know how to use pointers, and the operator names and in what contexts what * does. But do you need to know how many bytes an integer, float, and double need? I don’t have that information memorized, and it has never affected me. So I don’t tell them to memorize that. That information is good for some background knowledge and context, but they don’t need to know how many bytes they’re allocating, at least in C++, to write a basic program.


So, in summary, it pisses me off when teachers don’t provide study guides. It already seems like a lot of teachers (especially at university level) have disdain for undergrad students, thinking that they’re so frivolous and immature. What could those kids possibly be doing with their time? Obviously all they should be doing is studying! It comes off as disrespectful. Many of us work, many have families – even at the community college level! – We have shit to do, we’re here to learn, but we’re not here to memorize textbooks. Exams really aren’t the best way to assess students, but when we have so many students there’s not really a chance to do things more personally.

I teach full time, and when you teach full time, that’s way more than a full time job. I’m working on visa paperwork and travel plans. I’m studying for classes. I’m trying to get an advisor and learn about gradschool. And I’m the only one at home to take care of things. And, sometimes, I want to play video games.


Next rant: “Why my powerpoints > your powerpoints”? the next chapter on “Why I’m a better teacher than you are”, the ego-driven blog series on why school sucks and why I make it sssooooo much better. ;P

See also: “Why I make my study notes public – so that other students don’t have to suffer as I have. My teaching philosophy in a nutshell.”

More exams are better

Schedule for the Operating Systems class that I’m taking

I am stressed out. The class I’m taking has only two exams – Midterm and Final. The exams together are worth 45% of the grade. This is unfortunate for me, considering that I’m not too great at exams!

In yet another example of “things that frustrate me as a student, so I try to do better at as a teacher”, I don’t like exams that cover too many topics. Sure, make the final cumulative; that’s fine. But, during our “learning period” of the semester, I prefer a tighter cycle – Teach, practice, assess. Teach, practice, assess. You can spend more time doing in-depth study of fewer topics in order to prepare for that topic’s exam, rather than panicking and trying to cover every topic for the first 8 weeks and praying to your exam-god that your teacher’s exams aren’t unintuitive, and that what you think is important to study happens to be the same thing that your teacher thinks is important to study. (For reference, I also hate the lack of study guides!)

Schedule for the CS 200 class that I’m teaching

In my classes, I tend to have about 4 exams, including the final. I like to schedule my courses in chunks, with exams being the clear delimiter between topics. For exam 2, students will be studying up on arrays, pointers, memory management, and dynamic variables/arrays; all related and tie together. Exam 3 is everything OOPey. Structs, classes, inheritance.

For Data Structures, the first exam is over introductory content, wrapping static and dynamic arrays, and building a linked list. The second will be over stacks, queues, and dictionaries. The third will be over trees, heaps, and balanced search trees.

And for Discrete Math, each chapter of the book gets its own exam as well. A nice, clean, split between topics in the course.

I also either prepare study guides, or provide exams from a previous semester. Why? I don’t protect my old exams like a dragon hordes treasure because at some point, somebody is going to have that information. And they’ll distribute that information among their friends, so then only a small pool of people will have it. That’s not fair to everybody, and that’s also not really something I can stop. So start them all on even footing. I hope that it also discourages cheating if students know what I expect of them, and what I intend to assess of them.

So I’m nervous about this upcoming midterm. I have actually taken this class before, as an undergrad, at another university…

… and while I scored really well in my programming assignments, I just don’t do well on these kinds of exams. Math, gimme, I’ll ace that. Exams with coding on paper – ok, I can do that. Exams where you memorize a bunch of random information aimlessly? That is not my strong suit.

The first time I took the course, it was taught by Dr. Cotter, who is one of my favorite teachers. Even having an interesting teacher didn’t make it easy for me to do well!

Of course, I’m older now, I’m more experienced, I’m better at knowing how to learn. I have been using more resources as I study these concepts so that I have a better understanding than I would if I only studied from the textbook. But still, I resent not knowing what is expected of me. I resent the lack of respect for my time, by making the exam an amorphous mystery – good luck.

How I prepare for weekly lessons

Lecture prep with textbook open and video editor open.

Here’s a preview into how I create the content for my courses. I always hated slides straight from the textbook publishers, so I always make my own. I also frequently have to re-teach or re-view content that I’ve learned previously, so the best way to learn is to consume all the information and then be able to regurgitate it in my own words.

For discrete math, I first go through the book and highlight the important bits – definitions, laws, notes about how things work. So much content in textbooks is just fluff… while it can help you gain context for what you’re learning, I wish it were separated a little more… give me the pure information in one section, and the pure exposition in another. Examples after that. Make it easy to parse.

So I come up with what I want to cover – then I usually look line for additional resources. I frequently quote Wikipedia pages on math because it’s easier to cite; I don’t want to get in trouble for quoting the textbook (because proprietary, ugh.) There are also Wikibooks (a, b) on Discrete Math, and other class resources from other universities.

Next, I build my lectures. Yep, it’s a slideshow (built with the open source LibreOffice Impress), however:

  • I try to write out all the information that I want to cover for the chapter in these slides. I hate when class slides are useless on their own.
  • I use the slides to give information, show examples, and give practice problems.
  • I turn it into a video, for students to watch on their own time.

As I turn it into a video, I alleviate some of the shitty parts of slideshows further:

  • I don’t just record myself talking as I run through the slideshow “live”. Nope. I throw the slides in my video editor (kdenlive, also open source), then record my talk for each slide separately (with Audacity, also open source). I put them all together in the video editor. This means I cut out all the “ums”, pauses, and stumbles.
  • I insert in working math by-hand by recording myself working problems in a paint program (GIMP, open source) with my drawing tablet (a cheapo Wacom), recording the screen with OBS (also open source).

 

I’m currently writing the lesson plan for a chapter on logic circuits, which means I pull out another handy open source tool: dia.

Using dia to diagram circuits

It’s dia!!

I’ve found that I’m too busy this semester to actually grade paper homework. With my own homework and studying to do as a grad student, it just isn’t practical. Therefore, I’m also leveraging our LMS (learning management software) to build custom homework questions that are self-grading, and give students immediate feedback.

Creating a quiz in D2L

 

Millennials rock

“demographers and researchers typically use the early 1980s as starting birth years and the mid-1990s to early 2000s as ending birth years.”

I think that teachers of the my generation and future generations will end up being more effective because of our experience with various types of technology. Many of us have grown up editing videos, using YouTube, or even making animations (*cough*Newgrounds*cough*…) and when we leverage our experience into our professional lives, we become that much better at creating tools and content. As kids and teens, we learn to be content creators, whether we’re making videos about video games, or programming tutorials, or drawing, or whatever our interests are.

We aren’t afraid of technology, and we pick up the tools we need and teach ourselves. I have a toolbelt full of software for video editing, audio editing, music writing and sheet music creation, diagramming, art, animating, software development, and more. I taught myself to animate as a tween, which is a skill that has served me throughout the years. I began making YouTube programming tutorials when I was about 18, which is another skill that I still build and use today.

We don’t rely on expensive proprietary software to come along and let us teachers achieve what we need – there are tons of tools for all sorts of things, and many are free and open source. And if those tools don’t exist, there are more and more tools popping up for building your own.

We are the generation that creates!

(And is also sleep deprived from too much work. Looks like I’ll get less than 5 hours of sleep tonight…)

Lecture sucks

Scribbles on a slide that is incomprehensible if you're viewing independent of the class.

Scribbles on a slide that is incomprehensible if you’re viewing independent of the class.

One of my classes (that I’m a student in) is split into a lecture and a lab. The lecture is three days a week for one hour, and it is only lecture – slides without a theme (black text, white background), instructor talking, stuff from the textbook, occasional review questions.

They’re so boring. They suck. I can’t focus on them.

As a teacher, a lot of my teaching philosophy has been shaped by the frustrations I had as an undergrad — quizzes worded specifically to trick you, tests where the teacher doesn’t give you any clue as to what they think is important and what they will cover on the exam, boring-ass lectures…

Admittedly, since I teach at a community college, all of my classes are held in computer labs. It is wonderful. I have the ability to flip my classroom, record video lectures to watch as homework, and do programming during class. At university, there are too many students to have all computer science courses in labs – this is true at KU and at UMKC. Still, even though we are constrained to classrooms with desks instead of school computers, it would be nice to try to shake up the class in other ways.

My math classes aren’t just me lecturing the entire session. I give a short lecture, the video lectures that I recorded last semester are available online, and each week I write up an “in-class exercise“, which contains introduction text and examples, and then a series of questions. The students work in groups, and submit only one copy per team. They’re free to ask me questions as well. We spend time learning and practicing in the classroom, instead of putting all the onus on them figuring it out totally alone from the homework questions.

I resent pure lectures. They feel like a waste of my time. If the lectures are just going to reiterate content from the book, why not just let me read the textbook instead? Another big issue I have with lectures are that (1) I never go back and reference my notes. I just don’t. Over my 7 – 8 years as a college student, I just never go back, and (2) When I have taken notes in the past, any time I’m trying to recall something really specific, I can never find it. Probably because I cannot write as fast as teachers can talk.

This is why I record video lectures.

Students can watch again, pause, and watch when it is best for them.

Some teachers in previous classes would just record their in-class lecture – all 1+ hours of it – and post it as-is. You can’t find shit by sifting through such a long video, and it’s still boring as hell. It isn’t concise at all.

This is why I edit my video lectures.

I pre-script them. Usually, this means my slides are pretty detailed and it’s my main script. I export my slides to image files, put them in the video editor, then record my audio in Audacity. That way, I cut out all that is extra. Those go in the video lecture, too.

Then, if it’s a programming class, I use OBS to screen capture while I do some example coding – this is less scripted, but gives the same kind of example coding you’d get from a lecture. If it’s math, I open up GIMP and plug in my Wacom tablet and work some example problems. I further edit these down to get rid of long pauses and excess “ums” and speed up sections where I’m only writing stuff out or coding stuff after I have explained what I am doing.

I comb several books to figure out what points I need to make on the topic, and I put my slides together. Everything I would test over, I mention. I want my students to get everything they need, and be able to access that information at any time.

But it sucks for me.

I’m already the type of person who likes to control things, and gets annoyed when Redbox’s user interface isn’t as streamlined as I would like. (Brightspace has inconsistencies in user interface that drive me up a freaking wall!!!)

This means that when I’m a student rather than a teacher, I get really frustrated by the classes I take. I’m frustrated by the boredom, the inefficiency, the unknown, the schedule.

Best I can do? Basically go through the course content the way I would as a teacher – and write my own notes. Basically come up with the same sort of resources that I would as a teacher (because sometimes we have to teach ourselves the content while teaching, too – do you think I really remembered discrete math from when I took it 10+ years ago??)

So, just like I make repositories for my courses and throw all the content I make, available for anyone at any time (https://github.com/Rachels-Courses), I do the same with my classes. My notes, the code I write to try to learn the content, and so on. (https://github.com/Rachels-studies).