Example MaterialsPortfolio < Teaching < Jerod Weinman < CompSci < Grinnell

Discussion Section Worksheet

PDF Circular Linked List, Data Structures Discussion Section Worksheet

This worksheet is geared for a 50-minute discussion section from an undergraduate data structures course. By this point, students should have already seen some recursive data structures and have been exposed to linked lists in particular.

The purpose of this exercise is to get them thinking about the behavior of linked lists in more detail and explore variant behaviors. We briefly talk about what it means for a list to be circular as a class, and then students work on discussing their solutions in small groups of 3-4. After most have arrived at their ideas for implementation, we discuss them as a whole class.

This framework allows students to teach each other, and for students also to see alternatives other groups may have come up with. It also gives them the chance to find potential issues with one another's work. Feedback from the course indicates that many students greatly appreciate this format.

Sample Lecture Excerpts

PDF Uncertainty and Probability, Artificial Intelligence Lecture Excerpt

A few of the goals I constantly strive for when giving classroom lectures include providing tangible examples, adding a dose of humor, and grounding abstract theory with illustrations. All of these help to keep students engaged with the material and link new concepts to things that should be more familiar, thus making it more likely that they will learn.

The example above contains three slides excerpted from three different places in a lecture introducing probability theory for an undergraduate Artificial Intelligence course. Students will have already seen boolean and first order logic as well as proof mechanisms for both and are here being introduced to reasoning with uncertainty.

In the first slide, I contrast probability with fuzzy logic by saying that probability deals with propositions for which the truth value is unknown. By way of comparison, I say, one might be pregnant, or not, and we may not know for sure, but you can't be "a little bit pregnant." On the other hand, many students have heard of fuzzy logic, which deals with the relative truth of propositions. Here, the El Camino is a good example of something which is "sort of" a truck and "sort of" a car. Such examples serve to make the distinction very clear in students' minds.

The second slide, with popular references that are always in need of refreshing, helps lighten an important point: that different amounts of information, represented by Homer Simpson and Professor Frink, can ultimately give you the same state of knowledge (or probability distribution).

Finally, the third slide here simply gives an illuminating example of why conditioning information might be used for updating probabilities. The use of the NASA Mars Rover (a running example in this lecture), here serves to prime students for introduction to Bayes' Rule

In-Class Learning Activity

One of the learning approaches I take to help students build their analytical skills involves having them "be" the computer or algorithm. These activities help to break up time spent in lecture and have them physically engage with the material, thus involving the psychomotor domain of Bloom's taxonomy. [1] One natural area in which this can be applied is data structures, where the manipulation and rearrangement of items are frequent topics of discussion. I have used the following activity for discussing tree balancing in an undergraduate data structures course.

The typical data structures course covers search trees and the necessity of keeping them balanced. In this activity, every student receives a number. Then students are added to an AVL tree one by one. As they add themselves to the tree, they must not only navigate to the correct spot, but subsequently they must cooperate to calculate the properties of the affected subtrees. After calculating the "load" of each node, they must detect an imbalance and take corrective action by deciding the direction of a necessary rotation and who is to be come the new root of a subtree.

This activity has the added bonus of heightening students' understanding of recursion. Because those within the tree no longer have a "global" view of it, they must rely on the computations of their classmates (child or parent nodes), combine them and pass them along, just as a recursive algorithm would.

The learning objectives include:

  • Reinforcing the basics of binary search trees
  • Internalizing the details of the balancing algorithm in a context that heightens the psychomotor and affective dimensions of learning as well

[1] Bloom B. S. (1956). Taxonomy of Educational Objectives. New York: David McKay Co Inc.