Professor Mario Badr's Website

My name is Mario, but some people call me Professor Badr. I completed my bachelor's, master's, and PhD all at the University of Toronto. Now, I am an Assistant Professor, Teaching Stream in the Deparmtent of Computer Science at the University of Toronto. So you could say I've been here a while.


Organizing a Course With Modules

Canvas (or Quercus, if you are at the UofT) provides a very flexible method for organizing course content: modules. Every module has a heading and groups several items (e.g., links to pages, quizzes, assignments, ...) together. You can further organize these items using indentation and subheadings. But how many modules should you create? And what should go in each module?

In this post, I describe my experience trying a few different approaches and discuss the trade-offs between them. I find that, for larger courses having weekly modules with a consistent structure works well. However, for smaller courses it may not be worth the effort. I also touch on material that may not fit within the modules page and my experience with modules and courses with multiple instructors.

Organization schemes

I initially found myself thinking about module organization when teaching Microprocessor Systems for the first time. Quercus was still relatively new and I was an inexperienced novice in the world of teaching. I settled on a rather awkward organization scheme. One module grouped together items related to "Course Information", and another the course project. All other modules grouped together items based on the course topics, like "Managing Devices" and "Computer Architecture". This meant that modules varied greatly in length and content, especially when comparing course topics that lasted two weeks and others that lasted four.

Much later, I enrolled in a professional development course where every module had a consistent structure:

  • Module Name
    • Engage
      • Items...
    • Listen, Watch, & Learn
      • Items...
    • Deepen Thinking
      • Items...
    • Practice & Reflect
      • Items...
    • Close Strong
      • Items...

This consistent structure really appelaed to me as a learner. I knew exactly what to expect in each module, even though the content changed. I knew how far I had progressed through a module. And I knew, more or less, what form the next few items of content would come in. But in this course, every module was independent of the other. In STEM courses, the content is very much cumulative, with one module building on the next.

I eventually settled on my preferred organization scheme: a sequence of weekly modules. Some of this organization scheme is also inspired by how CSC108, an introduction to programming course, works. CSC108 teaches with the "flipped classroom" model, and so students are expected (each week) to prepare for lecture by watching videos asynchronously, then participating in active learning during the lecture, and finally by completing a set of exercises at the end of the week. But this sequencing fits the majority of courses, regardless of the flipped classroom and whether the course assesses the preparation or end-of-week exercises.

In the 2022 offering of Foundations of Computer Science II, I settled on the following consistent structure:

  • Week X (WXX) - Topic(s) Name
    • Prepare
      • Readings
      • Preparation Quiz
      • Preparation Exercise
    • Learn
      • Slides
      • Lecture Worksheet
    • Practice
      • Tutorial Worksheet
      • Additional Exercises
      • Timed Quiz
    • Reflect
      • Feedback on Preparation Exercise
      • Rough Solutions

I find myself following a very similar, but still somewhat different, organization scheme this term in Computer Organization. My subheadings are typically Prepare, Learn, Demonstrate. Demonstrate is used to reflect the lab learning and demonstrations done during the term. Occassionally, I include a subheading called Connect where I link to articles in the "real world" that are related to the topic(s) we are learning that week. I have found that sometimes deviating from the consistent structure is okay, provided you are not consistently inconsistent :).

The items that do not fit

There are certain items you may wish to include in your course, but where a sequence of weekly modules is either not ideal or simply does not work. Some examples include:

  • The "Course Information" module, where you insist on linking to the Syllabus and other relevant documents
  • When your course has a number of reference materials that span multiple weeks
  • When your course has a fairly large course project that encompasses multiple items

In every case, the question you should ask yourself is whether the item belongs in your modules page at all? Don't forget that there is also a navigation pane on the left-hand side, which can include links to pages (including the Syllabus). If you don't want a cluttered navigation pane, consider including items in the weeks where they are first needed by students. But keep in mind this has the unfortunate side effect of needing students to remember which week they first learned a topic. An alternative is to have duplicate items across the weeks where they are in use, but now you may have added clutter (in my opinion) to the structure of your modules.

One module that I find myself including is the "Week 0" module. This module has a slightly different structure from other modules where course content is covered. But it allows for creative ways of including an "orientation" to your course. For example, from my Computer Organization course:

  • Week 0 (W00) - Introduction
    • Prepare
      • Read the Syllabus (Quiz)
      • Read 1.1 to 1.3 (Quiz)
      • Install and understand the software (Page)
    • Communicate
      • Tell us about yourself (Survey)
      • Find a lab partner (Discussion)
      • Join us on Piazza (Link)
    • Connect
      • Read about the history of computing (Link)
      • Browse WikiChip (Link)

Other organization schemes

It may sound like I always use a sequence of weekly modules, but this is not the case. In fact, it is quite a bit of work to create! And, while I find the organization useful for "large" courses (~300 or more students; I know, Jacqueline, 300 is not that large anymore :P), it may not be worth the effort.

In CSC385, a course with less than 30 students, I organized the course by delivery/assessment type. This resulted in modules for Reference Material, Labs, Tutorials, Project, and Lectures. When applicable, the items inside a module were added in sequential order. But sometimes it made sense to have some structure at the sub-heading level.

  • Labs
    • ...
    • Lab 1
      • Lab 1 Preparation (Quiz)
      • Lab 1 Handout (File)
      • Lab 1 Starter Files (File)
      • Lab 1 Report (Quiz)
    • ...

When it all comes crumbling down

Perhaps the above sounds fantastic to you. And if it does, great! But what do you do when a course is taught and delivered by multiple instructors? Unless each instructor has their section in a separate Quercus course (which has its own disadvantages), modules can become quite unruly!

Assuming that instructors are sharing slightly different materials, which is to be expected when we allow for some creativity, how do you differentiate between sections? You could do it with sub-headings and indentation, but once things get beyond one indentation I find it difficult to navigate. Another option is to use a different page for each instructor's material. But if each instructor creates a page for every week, that is a lot of pages (12 weeks * X instructors = 12X pages)!

So does that mean, when working with multiple instructors, you should not use modules? I don't think so. You could make the decision that the modules page is not the central page to access all course material. Instead, you can create modules for key components of your course, like: the final exam, assignments, term tests, guides, orientation (similar to the Week 0 module), etc. The lecture material, which may be individualized per instructor, can now go in a separate page (or pages) linked to via the navigation.

Concluding thoughts

There are a few things about the weekly module approach that I really like, but haven't been able to talk about in this post. For me, I like to setup all my modules as soon as I can, well before the course begins. Having every module laid out in front of me tells me exactly how much work I need to do before the term begins (e.g., "I want to change these X items"). I also like to create all assessments (and their due dates), adding them to the relevant modules. Now I have a sense of what kind of load my students will endure when I teach the course, and lets me fix problematic weeks (i.e., too many deliverables) early.

Once I have all my modules setup, I "lock" them to students by setting an unlock date and time (typically one week before the module is delivered). Setting an unlock schedule means that Quercus will prevent access to all materials (including assessments) within a module until it is unlocked, regardless of whether it is published. Now I have hard deadlines for when I need to review (or cough finish) the contents of a module during the term.

Making everything published, but locked, is also very convenient to students. While students cannot access the content, they can still see the locked modules in gray (the items are un-clickable). The advantage for the student is now the same as for myself: when the course becomes available, they can see every module, which tells them exactly how much material is covered (e.g., preparatory readings) and work they need to do during the term. I have exactly one data point confirming this from my course evaluations, which means it must be true.

Website Launch

Welcome to the launch of my "new" website. After tinkering way too much with the internals of a very old template I created for Pelican, I think everything is in order. I'm hoping that, now, I will spend more time keeping this website up-to-date rather than collecting dust.

I will be teaching CSC258H1F, CSC369H1S, and CSC111H1S this academic year. If you are enrolled in one of those courses and I have never met you, well... I'm excited to meet you! If you have had me as instructor before, I look forward to teaching you again! Maybe I will even see some faces in person this time. Can't wait!