Teaching Statement Aaron Williams Education has been an interest and passion of mine since I was born into a teaching family. This document discusses my previous teaching experiences and competencies, along with my teaching style, and how my approach to research has also been guided by education. Evaluations from my last three courses are included at the end of the document. Experience I have taught courses at four different universities: 1. Comp 252 Honours Algorithms and Data Structures at McGill University, Winter 2012. 2. Math 4805 / Math 5605 / Comp 4805 Finite Automata at Carleton University, Fall 2010. 3. CSc 322 Logic and Programming at the University of Victoria, Fall 2007. 4. Math 135 Algebra for Honours Mathematics at the University of Waterloo, Fall 2003. I have served as a substitute teacher for a number of classes including: • Math 340 Discrete Structures II, Math 417/487/699 Mathematical Programming, and Comp 362 Honours Algorithm Design at McGill; • CSc 225 Algorithms and Data Structures I, CSc 320 Foundations of Computer Science, and CSc 528 Combinatorial Algorithms at the University of Victoria; • C&O 350 Linear Programming and C&O 351 Network Flows at the University of Waterloo. I also received an Outstanding Teaching Assistant Award while at the University of Waterloo. Competencies My background includes separate undergraduate, graduate, and postdoctoral positions in both computer science and mathematics, and as a result I am prepared to teach many lower-year courses in these disciplines. For upper-year and graduate courses, my core competencies are in theoretical computer science and discrete mathematics, including algorithms, theory of computing, graph theory, combinatorics, and discrete optimization. I also have experience in applied computer science. My co-op degree at the University of Waterloo included two years of experience at Corel and Discrete Logic, where I worked as a programmer for graphics applications including Corel Photo-Paint and CorelDraw, and the Flint/Fire/Flame/Inferno line for Hollywood special effects. As a result, I am familiar with software development and engineering in general, and the theory and practice of graphics in particular. More recently, I have become interested in the development of mobile apps using web technologies including Html5, Css3, and JavaScript. Figure 1 gives screenshots of a prototype app I have written based on the NP-Hard problem of pancake sorting. (a) (b) (c) (d) (e) (f) (g) (h) (i) Figure 1. Screenshots from a pancake game prototype written in HTML5 with CSS3 animations. The level is passed by sorting the initial unsorted pancake stack in (a) into the ordered stack in (i) by using the fewest number of ’flips’ possible. The flipping animation is illustrated for the top two pancakes in (a)–(c). The sequence above uses seven flips. Can you use fewer? Style In today’s classroom, instructors compete with cell phones, laptops, and tablets for the attention of their students, and I keep students engaged by relating course material to their everyday lives. For example, Carleton University passwords have constraints placed on consecutive characters, unique characters, similarity to postal codes, and so on, and I had my Math 4805 students prove that valid passwords can be identified by finite automaton (see Figure 2 (b)). When teaching notational precision, I discuss the erroneous practice of adding decimals to prices displayed using cents instead of dollars (see Figure 2 (c)). While teaching a course in computational logic at the University of Victoria, I searched for complicated tiebreaker rules from sporting events to use in class. During the search, I discovered a subtle flaw in the rules used by the FIFA World Cup, and used it as an assignment problem for the students. The resulting news story was featured in the Victoria Times Colonist (see Figure 2 (a)), and a short television segment by Jordan Cunningham on the A-Channel won the 2010 Edward R. Murrow award for sports reporting in a small market. (a) (b) (c) Figure 2. Real-world in the classroom, including (a) a flaw in the FIFA world cup tiebreaking rules, (b) password constraints used at Carleton University, and (c) a misprinted price for pizza. Engagement can also be increased using technology and visual aids. While teaching Comp 252 at McGill university, I used an iPad to highlight graph algorithms, visualize combinatorial patterns, and program small examples in real-time (see Figure 3). When teaching the difference between the empty string and the empty set ∅ in Math 4805, I show the class a rectangular card, and use the analogy that a blank card is the empty string, and the absence of a card is the empty set. (a) (b) (c) Figure 3. Technology in the classroom (a) highlighting matchings in a graph, (b) visualizing Gray code patterns, and (c) Python programming. Research for Education Although research has been my primary focus since completing my PhD, it is important to note that my field and approach have been chosen with education in mind. The majority of my articles are in an area of discrete mathematics known as Gray codes, which has numerous applications for computer scientists. Unfortunately, the area is often overlooked by undergraduate curriculums in computer science due to its association with “brute force programming”. One of my primary research goals has been to improve the area’s basic results and techniques in order to increase its teaching viability. For more information, see the Research Statement. My interest in research education also extends to the general population. Figure 4 illustrates two pieces of art that I have used to help explain my research to those outside of academics. The first was published in The Feast Isbn 0-978066-30-8, and the second was exhibited and sold at The Make in Victoria BC. 1111100000 1110001100 1101001010 0100110110 0111001001 0001110101 1100001011 1111100000 1011001100 1101001010 1100010110 1010101001 1010001101 0101001011 1111010000 1101001100 1011001010 0010110110 1100101001 1100001101 1010001011 0111110000 1101001100 0110101010 0110001110 0101101001 0101001101 0011001011 1110110000 1011001100 0111001010 0001110110 1010101001 1010001101 0110001011 1011110000 0110101100 1010101010 1010001110 0011101001 0011001101 1001001011 1101110000 0111001100 1100101010 1100001110 0110101001 0110001101 1001001011 1101110000 1010101100 0101101010 0101001110 1001101001 1001001101 0100101011 1011110000 1100101100 1010101010 1010001110 1001101001 1001001101 0101001011 1110110000 0101101100 0011101010 0011001110 1100101001 0100101101 0010101011 0111110000 1010101100 0110101010 0110001110 0101101001 0101001101 0011001011 1111010000 0011101100 1001101010 1001001110 0110011001 0010101101 0001101011 1111001000 0110101100 1001101010 1001001110 0011101001 0011001101 1000101011 0111101000 1001101100 1100101010 0100101110 1010011001 0001101101 1000101011 1110101000 1001101100 0101101010 0101001110 1100011001 1000101101 0100101011 1011101000 1100101100 0110011010 0010101110 0101011001 1000101101 0100011011 1101101000 0101101100 0011101010 0011001110 1010011001 0100101101 0010101011 1101101000 0110011100 1010011010 0001101110 0011011001 0100011101 0010011011 1011101000 0011101100 1100011010 1000101110 0110011001 0010101101 0001101011 1110101000 1010011100 0101011010 1000101110 1001011001 0010011101 0001011011 0111101000 1100011100 1010011010 0100101110 1001011001 0001101101 1000011011 0111011000 0101011100 0011011010 0100011110 0100111001 0001011101 0000111011 1110011000 1010011100 0110011010 0010101110 0101011001 1000011101 0100011011 1011011000 0011011100 1001011010 0010011110 0010111001 0000111101 1000011011 1101011000 0110011100 1001011010 0001101110 0011011001 0100011101 0010011011 1101011000 1001011100 0100111010 0001011110 0001111001 1000011101 1100001011 1011011000 1001011100 0101011010 1000011110 1000111001 0010011101 0001011011 0110111000 0100111100 0010111010 0000111110 1000111001 1100001101 0110000111 0111011000 0101011100 0011011010 0100011110 0100111001 0001011101 0000111011 1010111000 0010111100 0001111010 1000011110 1100011001 1110000101 1010000111 1100111000 0011011100 1000111010 0010011110 0010111001 0000111101 1100000111 0101111000 0001111100 1000111010 1100001110 1110001001 0111000011 0101000111 1010111000 1000111100 0100111010 0001011110 0001111001 1110000011 1010000111 0011111000 1000111100 1100011010 1110000110 0111000101 1011000011 0011000111 0110111000 0100111100 0010111010 0000111110 1110000101 1101000011 0110000111 1001111000 1100011100 1110001010 1111000010 1011000101 1101000011 1001000111 1001111000 0010111100 0001111010 1111000001 1101000101 1011000011 1001000111 1100111000 1110001100 0111000110 0111100001 1101000101 0110100011 0100100111 0101111000 0001111100 1110000110 1110100001 1011000101 0111000011 0101000111 1110011000 1111000100 1011000110 1011100001 0110100101 1010100011 0010100111 0011111000 1111000010 1101000110 1101100001 0111000101 1100100011 0011000111 1111001000 0111100010 1101000110 1101100001 1010100101 0101100011 0001100111 1111000100 1110100010 1011000110 1011100001 1100100101 1010100011 1000100111 0111100100 1011100010 0110100110 1110100001 0101100101 0011100011 1000100111 1110100100 1101100010 0111000110 0111100001 1010100101 0110100011 0100100111 1011100100 1101100010 1010100110 0111010001 0011100101 1001100011 0100010111 1101100100 1011100010 1100100110 1110010001 0110100101 1001100011 0010100111 1101100100 1110100010 0101100110 1011010001 1001100101 1100100011 0010010111 1011100100 0111100010 1010100110 1101010001 1001100101 0101100011 0001100111 1110100100 0111010010 0011100110 1101010001 1100100101 0110010011 0001010111 0111100100 1110010010 0110100110 1011010001 0101100101 0011100011 1000010111 0111010100 1011010010 1001100110 0110110001 0110010101 1010010011 0000110111 1110010100 1101010010 1001100110 0111010001 0011100101 1100010011 0100010111 1011010100 1101010010 1100100110 1010110001 1010010101 0101010011 1000010111 1101010100 1011010010 0101100110 1100110001 1100010101 1010010011 0010010111 1101010100 0110110010 0110010110 0101110001 0101010101 0011010011 0100001111 1011010100 0111010010 0011100110 1010110001 1010010101 0110010011 0001010111 0110110100 1010110010 1010010110 0011110001 0011010101 1001010011 0010001111 0111010100 1100110010 1100010110 0110110001 0110010101 1001010011 0000110111 1010110100 0101110010 0101010110 1001110001 1001010101 0100110011 0001001111 1100110100 1010110010 1010010110 1001110001 1001010101 0101010011 1000001111 0101110100 0011110010 0011010110 1100110001 0100110101 0010110011 0000101111 1010110100 0110110010 0110010110 0101110001 0101010101 0011010011 0100001111 0011110100 1001110010 1001010110 1110010001 0010110101 0001110011 0000011111 0110110100 1001110010 1001010110 0011110001 0011010101 1000110011 0010001111 1001110100 1100110010 0100110110 0111001001 0001110101 1000110011 1000001111 1001110100 0101110010 0101010110 1110001001 1000110101 0100110011 0001001111 1100110100 1110010010 0010110110 1011001001 1000110101 1100010011 1100000111 0101110100 0011110010 0011010110 1101001001 0100110101 0010110011 0000101111 1110010100 0111001010 0001110110 1101001001 1100010101 0110001011 1110000011 0011110100 1110001010 1000110110 1011001001 0010110101 0001110011 0000011111 0111001100 1011001010 1000110110 0110101001 0110001101 1010001011 1111000001 (a) (b) Figure 4. Visualizations of Gray codes involving (a) the similarity between co-lexicographic order and cool-lex order for the 10 binary strings with five 0s and five 1s, and (b) cool-lex 5 order for permutations. Evaluations This document concludes with teaching evaluations from my past three courses. The evaluations from different universities are often difficult to read, so the scores are summarized in tabular form on page 4. The first two evaluations are based on a 5-point scale, and the third is based on a scale from -2 to +2. In the first and third evaluations, the stated average is with respect to the department’s average for all courses. Although the reviews are almost entirely positive, it should be mentioned that each of these courses was taught with little advance notification. Category Score Average Difference Overall, this is an excellent course. 4.3 4.0 +0.3 Overall, I learned a great deal from this course. 4.4 4.2 +0.2 Overall, this instructor is an excellent teacher. 4.6 4.1 +0.5 Overall, I learned a great deal from this instructor. 4.6 4.0 +0.6 The instructor explained concepts clearly and understandably. 4.7 4.0 +0.7 The instructor stimulated my interest in the course. 4.5 3.9 +0.6 The instructor was available to students outside of class. 4.8 4.1 +0.7 The course content matched the course objectives. 3.9 4.2 -0.3 [...] I have a greater appreciation for this field of study. 4.5 4.1 +0.4 The course materials [...] contributed to my learning. 4.6 4.2 +0.4 Feedback on course assignments contributed to my learning. 4.2 3.6 +0.6 [...] How often have you attended the classes in this course. 4.9 4.5 +0.4 Comp 252 — Honours Algorithms and Data Structures — McGill University, Winter 2012 Category Score Making clear the objectives of the course. 5.00 Organizing the course so as to meet the objectives. 5.00 Preparing for class. 5.00 Imparting the course material to the students. 5.00 Answering questions and/or solving problems related to the course material. 5.00 Making assignments which are relevant to the course. 5.00 Assigning a workload related to the course objectives. 5.00 Being available for out-of-class consultation. 4.83 Speaking audibly and clearly. 5.00 Beginning and ending classes promptly. 4.71 Meeting classes regularly as scheduled [...]. 5.00 Marking and commenting on assignments and tests fairly. 5.00 Returning tests and assignments promptly. 5.00 Math 4805 / Comp 4805 — Theory of Automata — Carleton University, Fall 2010 Category Score Average Difference Expresses ideas with clarity. 1.56 1.06 +0.50 Has a positive attitude about course material. 1.94 1.51 +0.43 Stimulates interest in thinking in the subject. 1.44 1.05 +0.39 Is well organized and prepared. 1.44 1.12 +0.32 Uses visual aids effectively. 1.75 1.20 +0.55 Provides effective feedback on performance. 1.25 0.83 +0.42 Is concerned that students understand material. 1.56 1.22 +0.34 Creates a climate open to asking questions. 1.62 1.40 +0.22 Fairly considers students suggestions. 1.60 1.34 +0.26 Displays a good understanding of the material. 1.56 1.42 +0.14 Makes sufficient office hours available. 1.53 1.16 +0.37 Is punctual and makes up for cancelled classes. 1.53 1.34 +0.19 Overall teaching ability is excellent. 1.62 1.04 +0.58 CSc 322 — Logic in Programming — University of Victoria, Fall 2007