Teaching
Old Dominion University
- Cryptography (CSE/CYSE 463/563), 2 semesters and counting
I’m especially proud of my course development and teaching for Cryptography for Cybersecurity at ODU. Firstly, I have overhauled the final project, which now allows students their choice of 3 activities: a survey paper of a subfield of cryptography, a programming project implementing functionality beyond what is learned in class (e.g., from research papers), or a paper with novel research (intended for PhD students). The project requires the student to propose a topic, which I then offer guidance on before approval (e.g., suggesting scholarly sources, programming advice); in subsequent semesters this will also be accompanied by peer reviews. I was very impressed with both the project proposals and final results, which show that my students are rising to the challenge with independent investigation in an area of their choice. In many cases, students selected topics close to my research areas, which has allowed me to give well-tailored advice to them. I believe this to be a great improvement over the previous final project, which gave students a very specific prompt to write about, or a programming project only related to material directly covered in class.
Secondly, I have retypeset in LaTeX the homework and exams that I inherited from the existing course materials, and I require students to use this template. I created a new LaTex template with features such as allowing students to simply fill in their answers, automatically printing points near questions, and others. Notably, this template allows instructors to compile an answer key by conditionally including a separate solutions file, allowing the assignment source files to be given to the students without revealing the answers. The template is also very well-organized and consistent, allowing my TA to grade more efficiently: previously, students would turn in handwritten-and-scanned or MS Word files, which can be much harder to read, and did not have any consistency enforced. Requiring the use of LaTeX for homework also teaches students how to use LaTeX, which is an extremely valuable skill for careers in scientific research or graduate education. I have shared this template with other instructors at ODU to help bring these benefits to their courses.
Finally, I have made significant changes to most assignments, which previously were nearly all fairly simple rote calculations. These changes challenge students to show a much more thorough understanding of cryptography than assignments only testing arithmetic. Questions I have added include:
- Societal questions (e.g., “What are some risks from government-mandated key escrow?”)
- Proof-like questions to help students more deeply understand cryptographic protocols (e.g.. “Show that both parties must derive the same key in Diffie-Hellman key exchange”)
- Comparative questions (e.g., “What is an advantage of elliptic-curve cryptography, compared to other cryptosystems we have studied?” or “What is an actual or potential weakness of elliptic-curve cryptography?”)
- Experimental questions (e.g., an extra-credit question asking students to implement and compare the runtime of the regular/binary Euclidean algorithms)
I also now have the last question of every assignment require students to develop their own problem and solution that could have appeared on the assignment. This allows students a chance to show how they have deeply learned the material (as the prompt requires more than just swapping values in existing problems). It also gives myself and other instructors for CS 463/563 some inspiration for new problems in the future. I am happy to report that a significant number of student responses to this part of the assignment are not just computational, but show deep critical thinking about the topics, both on mathematical and social levels.
University of Notre Dame
- Cryptography (CSE 40113), 2 semesters
- Earned the CSE Outstanding TA Award for my work in this course!
- Design and Analysis of Algorithms (CSE 40622), 1 semester
University of Michigan
- Data Structures and Algorithms (EECS 281), 1 summer semester
- EECS 281 is a famously challenging course, and is a prerequisite for most upper-level CS electives. The summer version is even more daunting, as students have less time to complete projects – Michigan EECS students will understand how much more difficulty this adds. Personally, I had a lot of fun teaching this 🙂
- Programming for Scientists and Engineers (EECS 402), 2 semesters
Albion College
- Calculus 1, 2, 3 (MATH 141, 143, 245), 2 semesters
- Differential Equations and Linear Algebra (MATH 247), 2 semesters
- Introduction to Computer Science (CS 171), 1 semeter
- Music Theory 1, 2, 3, 4 (MUS 101, 102, 201, 202), 2 semesters
- Also transcribed course texts for visually-impaired students
- Keyboard Skills (Piano labs for Music Theory), 2 semesters
- Analytical Physics (PHYS 116), 1 semester