Using QR Codes in Your Syllabus

David W. Agler
6 min readDec 16, 2022

First-World Syllabus Problems

First, my syllabi are too large. Over time, they have grown into long, legal documents littered with university and course policies, university statements, detailed descriptions of assignments, and other informational whatnots that are relevant to one in every one hundred students. Second, I believe in the power of paper and so I think that having a paper copy of the syllabus is important for a student’s success in a college course. But, I realize it is an environmental waste. Third, I can’t stand QR codes. I don’t like them in restaurants to view the menu and I don’t like to pay with them. But, my students seem savvy with their phones so maybe I can capitalize on that proclivity.

What I would like to do is the following: (1) make my syllabus shorter but not sacrifice any of the information (or run afoul of university mandates), (2) learn to overcome my hatred of QR codes, and (3) have my students direct their phones at my syllabus.

How to Create a QR Code

To get things started, we will need a few things. First, we need Python. Second, we will need to install segno. To install, we will use pip in the command line:

pip install sengo

The documentation on segno is excellent: Segno Documentation. Finally, I will be using a code editor (VSCode) to implement some code snippets. Let’s begin the work of replacing parts of our syllabus.

Note. First, if this is your first time installing Python, it may be helpful to watch a tutorial: How to Install Python — The Right Way by Python Programmer. Second, if all of this is confusing, then an alternative route is to use a cloud-based QR code generator, e.g. QR Tiger.

Replacing the Text of University Policies

My university requires several policy statements to be included in the syllabus. These policies are sometimes updated and it is hard to keep track of these updates. In addition, since I still provide a print copy of the syllabus on the first day, these statements take up physical space. We can substitute the written text of these policies in two ways using QR codes. First, if there is a link to the policy statement, we can provide the QR code instead. When scanned, the QR code will produce a link to the policy.

import segno  

university_statement = segno.make('')'university_statement.png', scale=7)
QR Code containing link to University Policy

Now if you use you scan your camera over the QR code, a button for a link should appear to the university’s policies. (Note: I’ve saved the QR as an PNG file here, but, if you can, use SVG as it is vectorized). Second, although this is probably less than ideal, the QR code can provide the text of the policy when scanned. This is less than ideal since scanning the QR code with a phone’s camera will use the text as search terms, but opening up a dedicate QR scanner will allow you to view the text.

import segno  

university_statement = segno.make('Here is a university statement. Please follow!')'university_statement2.png', scale=7)
QR Code containing text of University Policy

Now, instead of the text statements of these policies, I can simply import PNG images of the QR code into the syllabus (adding alt text for accessibility).

Replacing Links to Course Materials

I provide my students with supplemental resources, e.g., practice exams, video tutorials on YouTube, sample handouts. There are links to these resources on the printed syllabus they receive, on my website, and in my university’s learning management software (LMS). But, it is a pain for a student to type in a URL, I don’t expect them to remember my personal website’s URL, and the LMS requires 2-factor authentication. Adding a QR code to the syllabus is more efficient. We can include a link to these resources in the same way we used the QR code to add a link to various university policies.

import segno  

university_statement = segno.make('')'logic_website.png', scale=7)
Link to logic webpage

Replacing Email Tutorials

Now for the most important use of QR codes: emails. I sometimes teach a first-year seminar. This is a course for new students at the university. A small part of the course focuses on acclimating them to life at the university. Part of that acclimation involves a workshop on professional writing over email. However, not everyone takes my first-year seminar and so some emails I receive are, to put it euphemistically, less than clear. My syllabus contains a statement of how to communicate effectively over email and gives students a template they can use to help them write a clear and conceive email. Let’s try to remove this statement and the template with a QR code.

When a student scans the QR code, it will open their email and create an email that is addressed to my email address, has a subject line containing the course they are taking (e.g., Metaphysics), and the body of the email will look like the following:

Dear David.

My name is YOUR_NAME. I am in your Phil423W — Metaphysics class.

I am writing you because ADD_CONCERN_HERE.

Looking forward to hearing from you.

Best wishes,

For this to work, we will need to import and use the helper module and use the make_email function. The make_email function can take several parameters, but the ones I care most about are to, subject, and the body of the email (again, see make_email_documentation for more parameters).

import segno
from segno import helpers

qrcode = helpers.make_email(to= "", subject = "Phil423W - Metaphysics Question", body = "Dear David.\n\n My name is YOUR_NAME. I am in your Phil423W - Metaphysics class. I am writing you because ADD_CONCERN_HERE. \n\n Looking forward to hearing from you. \n\n Best wishes, \n YOUR_NAME.")'metaphysics_email.png', scale=4)

Now when the student scans the QR code, their email will look as follows:

Email produced by QR Code


Is my syllabus shorter? Yes, by two pages. Do I love QR codes now? No, but I don’t hate them as much. Would I recommend teachers worldwide to include them in their syllabi? I will let you know with an update to this article after I get feedback from my students. I will say that if my students begin using the QR code to email me, I’ll be smitten.

Other Uses

Some other potential academic uses for QR codes:

  1. I work at a large university and sometimes have my first-year seminar students do a scavenger hunt (e.g., find the student health center). QR codes could be used to have them find the next location on the scavenger hunt.
  2. Place QR codes on assignments that contain text tips for how to solve proofs, links to a video solutions, or further resources.
  3. Use QR code to provide students a stripped-down version of my contact information (email address, office number, office hours). This can be done using the helper module and the make_vcard function.
  4. At the end of the semester, students have the opportunity to review the quality of the course and the quality of the instructor. A QR code can link to these reviews.
  5. Use QR codes to take attendance. Have QR code link to a Google Forms where students submit their name.
  6. Use QR code to provide the approximate location of the building that contains the classroom. The helper module and the make_geo function, which takes latitude and longitude as parameters can be used to create a QR code that, when scanned, gives the location on Google Maps.

Further Resources

  1. Guide for different uses of QR codes and how to beautify your QR codes: Fison, Pete. 2022. Make beautiful QR Codes in Python. Towards Dev.
  2. Read the Docs: Segno — Python QR Code and Micro QR Code Encoder
  3. Github for Segno — Python QR Code and Micro QR Code Encoder
  4. Github for pyqrcode. Another interesting QR code creator in Python.



David W. Agler

Assistant Teaching Professor - Philosophy. I make logic and philosophy videos at