In the lefthand pane is an in-class puzzle: a concept-first activity that provides a stealthy warm-up to the concept of a deterministic finite automaton in the first lecture of Computer Science Theory.


DFAs can feel a bit alien, but flow charts are familiar. Flow charts that transition on 0's and 1's aren't much worse, and they do more or less exactly what DFAs can do.

Given the components to the left, can you build a flowchart that accepts the language described?



I've been surprised by the popularity of in-class puzzles.

    "My favorite part of the class is
    how we are given 10 minutes to
    try things on our own during class
    time... I love how we do active
    learning in our class."



Students' flow chart designs may vary (and may make assumptions different from a DFA model.) For example, if a student's flowchart requires the user to remember certain information, this leads naturally to the questions, "what sort of memory can we assume our computer has?", and, "how might more complex memory models give our flowcharts more decisive power?" These questions lead eventually to more complex automata.













When approaching Homework 1, students may be learning a variety of new skills at the same time. Links in the header, along with TA-compiled resources and discussion posts on the class forum, help to ease the transition.






















I design my problem sets to include what I think of as my "three R's": rationale, references, and rubric.












Rationale: Each problem is footnoted with the reason why I think it's worth the students' time. I think this is owed to the students in my class, and including it forces me to think critically about the work I ask my students to do.












References: I don't want my students to waste time stuck on a problem. The resources linked won't give them the answer, but they will go over critical concepts and equip students with the concepts needed to explore and engage with the material.












Rubric: I use this word for alliteration, although actual rubrics are key for equitable grading. Here, "rubric" refers to provided solutions that demonstrate how to solve and think about the problem. (A real rubric does exist, but it's used by the TAs within the grading software.)















On a 6-point Likert scale, 71% of students indicated strong agreement with the statement `Resources and Rationale footnotes on homeworks were a useful course feature that helped me learn'. 90% of students indicated agreement overall.















At the end of a problem set, I sometimes include a check-in question or a reflection activity. This serves as a moment for students to consider where they're at in the moment and provides me with a quick diagnostic.