CSE 322 Spring 2008, Week 1

This quarter I am teaching CSE 322: Introduction to Formal Models in Computer Science. Good fun. As part of my teaching I am LaTeXing up lecture notes from the class, which follow closely the book we are using, Sipser’s “Introduction to the Theory of Computation.” Here are the first three lectures for those with nothing better to do during their weekend:

  • Lecture 1: Welcome and Introduction
  • Lecture 2: Formal Definition of Deterministic Finite Automata
  • Lecture 3: Regular Operations on Languages

The notes are certainly full of many typos and such, but maybe there is a young teenager who isn’t in college, but who is bright, and wants to learn something cool about theory, and thus might actually click on those links. Comments and criticisms by others are also greatly appreciated.

Embarassment Is…

…realizing that the class you are teaching for the first time this quarter ends on the half hour, not the hour, and therefore the fact that you are rushing through the material must seem extremely amusing to the students who know the class ends at 20 minutes after. Doh. Doh. Doh!

Do We Teach Addition Backwards?

Addition, for me, is intimately connected up with my concept of a number. When I think of numbers in my head, I often think of the number in connection with its constituent parts, and when I divide these parts up into equal pieces I “get” multiplication. However, on top of this bare bones thinking, I also conceptualize numbers strongly by their size, thinking about the number first as the most significant digit in the number and proceeding down to the less significant digits. Which makes me wonder, do we teach addition backwards?
Continue reading “Do We Teach Addition Backwards?”

Teaching Happiness…

…is finding a homework stuck to my door, with duck tape, along with the note “Gone to Mt. Baker” (Mt. Baker is a local ski area.) Actually this reminds me of a policy I’ve always wanted to try: require every student to NOT attend class at least a few times a term. The idea being that it is actually beneficial to at least try to teach yourself the material without guidance from the teacher. Many students probably can learn on their own, but never try, because they equate doing well with attendance. Nudging these students towards that realization, I think, might actually be a good thing.

Rethinking Scientific Talks

I’ve seen many a scientific talk, ranging from the truely inspiring, to the incredibly painful. I’ve also given many a scientific talk, ranging mostly to the incredibly painful end of the spectrum. Stuck in back of my head when I’m giving a not so good talk, there has always been a little devil saying “Come on, Dave, there has got to be a better way to give a talk!” Well usually I just ignore that little devil (“see him again on the forth of July”) but today watching a colloquium by Richard Anderson inspired me to think some crazy thoughts. Not because of the style of Richards talk, but instead because Richard is involved in a host of collaborative technology and its use in education, including the very cool Classroom presenter which I highly recommend for tablet based teaching.
Okay, so let me dream up a new way to give a scientific talk. First of all, I think we should take a lesson from Stephen Hawking. No, not a lesson in general relativity (allthough I’m quite certain that would be a great lesson, or at least a very hard lesson), but I mean I am totally jealous of Hawking’s speaking abilities. Why? Because he gets to write his talk before hand, plug it into his hand dandy speech synthesizer (“This synthesiser is by far the best I have heard, because it varies the intonation, and doesn’t speak like a Dalek. The only trouble is that it gives me an American accent.”), and then lets it rip. He just gets to sit back and enjoy his talk. Now I don’t think this is where I want scientific talks to be going totally. I don’t want prerecorded audio/video to be the only medium available for a talk. I mean sure, it is great to have resources like talks at the KITP, but I think scientific talks serve a broader goal than just the discinimation of a non-interactive lecture. But, let’s face it, giving a talk is hard. I mean live television, for example, is hard. But actors get to do multiple takes. They get to slowly think out the plan of their talk in advance and then don’t suffer from execution problems since they get to correct their mistakes. Certainly good speakers are the ones who can execute on demand, but isn’t there some way that we can use technology in an inovative manner to help bad speakers like me?
Deep breath. Okay so what am I advocating. First of all I want better presentation software. This software should allow me to prerecord parts of my talk. I should be able to then play this back at my own pace, stoping the prerecorded parts when I need to, jumping to parts which I’ve also recorded which explain tangential thoughts, as well as the ability for me to give a normal talk at any point AND I want this normal part of the talk to be recorded for posteriety so that I can use it if need be when I want to. I want giving a scientific talk to be more like being a music producer who can also sing their own song. I want my good explanations to be repeated and my bad ones to be easily thrown away. One inspiration for this is a talk which Manny Knill gives on fault-tolerance. As far as I can tell he has a big pdf file with all of the details of his work and he can easily move hyperlink style through the different relevant bits of information. This allows for a level of customization which the standard linear powerpoint doesn’t make natural (allthough I’m guessing there is a way to get powerpoint to imitate this, I just haven’t tried this or seen many people use it.)
Second I want vast communication to be occuring while I give a talk. One of the beauties of classroom presenter is that students can write on their tablet PCs and then send you up what they are writing. And its been my experience that the best talks are the talks where a great questioner is in the audience (for example any talk with Dorit Aharonov in the audience is destined to be a better talk!) Now the danger with allowing communication between the audience memebers during a talk is that they will be distracting. So first of all I think the in audience communication should not be point to point between audience members, but on a shared medium. Of great importance in this setup is people expressing questions or points they do not understand during a talk. I mean I can’t recall how many times I’ve given a talk and wondered how lost everyone is. With real time feedback it should be possible for talks to be adjusted on the fly to meet the demands of the audience. Further I think it can also help in that with a wide spectrum of viewers, some of the more informed viewers can actually help avert bad questions, which is probably almost as important as having a good questioner in the audience.
Okay, well the technology for carrying out talks like that I describe above is probably workable today. I think we lecture in particular styles because they have worked in the past, but I also think that we could probably use technology to allow us to give talks in an even more coherent and fullfilling manner. Well maybe I’m just dreaming, but someday, someday, I hope to give a heck of a talk that isn’t just me fumbling around with the laser pointer and mumbling something about hidden subgroups.

Daydreaming About Storytelling

I have always been a daydreamer. There isn’t a place or distraction in the world which can keep me from somehow drifting off into a daydreaming state of mind. Which, of course, must be rather amusing for others observing my behavior. One second I’m talking about Barry Bonds and the San Francisco Giants, and the next second I’ve got black holes in my eyes and am in full monk mode. Daydreaming is definitely the appropriate expression, since rousing me from this state is a lot like trying to wake me up: not an easy task!
So what do I think about when I’m in daydream mode? Well mostly I tell myself stories, or think about how things fit together. Now these stories definitely aren’t page turning blockbusters, they’re mostly about a problem I’ve been working on. Mentally it feels like I am constructing possible stories of how this or that problem might be resolved. Knowing X what does this imply about trying to make progress on problem P. Does it imply Y? Is Y consistent with a solution to P? Does Y fit into the story I know about problem Q? Etc. Etc.
Which leads me to the following question. How much does storytelling shape “good” thinking? (Okay, so my thinking is mostly less than “good”, but every once in a while I’m not a dufus.) For many years I’ve wondered how it might be possible to teach a class, like say, introductory mechanics (yeah I’m still a physicist at heart, you know), which teaches the physics by tracing the history of the subject. (I told this idea to some faculty well versed in physics education when I was a grad student and you should have seen them recoil in horror 🙂 ) Now, however, I’ve come to think that this desire was a misplaced projection. What I really wanted to figure out how to do was how to teach a course where the students could build up their own consistent story of what was going on. This story, of course, must be routed in all the history of the subject: you too must come to realize the trials and tribulations which led people to believe what they do. But it isn’t necesarily a history centric endeavor, but is more squarely centered on thinking up your own story. And it has got to be a story you are constantly examining and checking, i.e. which is open to repeated examination for consistency. A story which you could come to by daydreaming.
Another piece of anecdotal evidence of the role of storytelling in sharp thinking comes from my undergraduate days. When I think about my years at Caltech, one of the most fascinating events I observed was to watch those super achieving students spin yarns. It was not uncommon to spend hours at a time, taking some departing idea and then spend hours working out the consequences of this idea. Sure, some would call this simple B.S.ing and often the point of departure involved a Simpson’s episode, but in retrospect, I think that this was a great indication that deep down in these students brains, they had built up a strong consistent storytelling mechanism for thinking.
So what role does storytelling play in shaping sharp minds? Of course, I don’t know, but I’d love to hear a story which lets me understand how storytelling fits in with how our brain works. Then I could daydream about it.
[Of course this post is a grand exercise in extralusionary intelligence, for there are certainly loads of educational data on the role of storytelling in education. A quick look this morning, however, didn’t turn up anything concrete. So like any ignoramus, I’ve written this post completely unaware of the story other, more savy, researchers have been able to peice together.]

Classroom Presenter

Well the term is over and a new term has begun. No teaching this term for me, so its time to hit the research hard! Last term I taught CSE 326: Data Structures, which covers a lot of fun and core material. Hopefully the students will have forgiven my tendancy to assign more difficult theorish problems 🙂
The class I taught was for majors here in CSE at UW and we had two lecture sections of thirty plus students. Ruth Anderson, a recently minted Ph.D. here at UW, taught one of the sections and I taught the other, although we stuck to basically the same schedule. Ruth is a member of the Education and Technology Group in our department which led to us using a very interesting tool in teaching: Tablet PCs! And not just me using a tablet for presentation, but the students using tablets as well! The software which we used for this is being developed here at UW and is called Classroom Presenter (most recent version is 3.0).
Here’s how it works. Say you have a bunch of powerpoint slides which you will be using for your lecture. Well you can use Classroom Presenter to display these slides and write on them just like in Powerpoint. But the cool thing is the added flexibility for interaction. Before the class we (errr I mean the people who are running the Classroom Presenter project!) set up a wireless access point along with tablets for every student (or for student groups working in teams.) The student then get access to your slides as you are displaying them Not only that, but the students can write on your slides and beam up the answers to you. You then get a beautiful list of the student submissions and can choose to display these at the front of the class. (You can lock the students so that they only have access to the slide you are working on, or you can unlock the slides so they can browse ahead or behind.) So, for example, you can choose to do an inclass problem with the students, have the students beam their answers up to you, and display common errors that were made or correct answers, etc. Getting feedback when you’re teaching is always a real hard thing to achieve. In large classes it’s not uncommon to see these little clicker things for voting on multiple choice questions which allows a teacher to see if the students are comprehending the material. The tablets take this to the next level (and are perhaps best not for large classes but for medium or small classes) since you get to see worked out problems, in real time. It’s also quite fun because the students get to see what they wrote displayed up front along with all the funny things they like to draw with their submissions.
(As an interesting side note, I often wish that during research talks I could have access to the speakers slides. Too often the speaker runs through a slide too fast and you don’t have time to either read or digest or write down what they display. If I had the slides on my laptop I could parse through the slides myself. I could even parse ahead if I understand what is being said and in the worse case determine that I really don’t need to listen to the talk and so daydream about my research. 🙂 Come on Powerpoint team, wouldn’t this be an awesome feature?)
Teaching with tablets is, I think, an interesting way to mix in a less harsh version of Socratic teaching (less harsh in that you are not at the mercy of your peers and teacher when you have to do a problem in front of the class.) I’d also love to see an even more Socratic version of the software which would not anonymize the submissions. For small classes or even when working in groups this would be an interesting way to teach and perform collaborative research.
Oh, and another cool feature of Classroom Presenter is that there is a way to take a slide, and squash it down to the upper-right corner of the screen revealing an area where you can write free of blocking the slides. This is great when you overpopulate your powerpoint slides and need scratch room to write (Powerpoint allows you to pull up a blank sheet to write on, but this isn’t as effective as having a small version of what you are talking about available.) Oh and it also allows you to keep teacher notes: notes that are displayed on your screen but not on the projected screen (you add these directly onto the slide and the can be anything, not just text.)
All in all, I think I rather enjoyed using the Tablets with Classroom Presenter. Like all new things it took a little getting used to (especially judging the time.) On the other hand I certainly think that there were a few exercises that really helped me understand the where the students were having trouble and where they were doing fine. Classroom of the future? Who knows! But maybe a glimpse of a more interactive teaching tomorrow.

Debug First?

After Scott confessed to still programming in BASIC, I had a good time recalling how I first learned to program. My first interaction with a computer and “programming” was through LOGO, that cute little program for programming a little turtle to draw graphics. Drawing cool and crazy pictures was fun! But I don’t really remember learning that as “programming” so much as it was learning geometry (I was in the second grade at the time) and I certainly recall sharing the computer (probably not very sharefully.) But the real way I learned to program was not through LOGO but through debuging!
In the (g)olden days of my halycon youth you could buy computer magazines which had in the back of the magazine lines of BASIC to enter into your computer in order to play a game. Now I was all about playing games, and when we obtained at TRS-80 Color Computer, my parents only bought one game cartridge, so in order to play more games we had to type them into the computer. A group of neighborhood kids would get together and do this. One person would read and the other would type and others which check to make sure what was being typed was correct. Even with these precautions, however, we would, invariably make a mistake. So when you made a mistake you had to go looking through the program to find out where we made an error. Eventually, at first, we’d just go through the whole program line by line. But as we got more sophisticated we began to understand how, when the game died while doing X it meant that the program was probably at Y when this happened and so we began to understand what all that funny stuff we were typing in was. Eventually we got very good at debugging the code we typed into the computer. Indeed, in a very real sense, I learned to debug before I learned to code! (Years later I can still recall the astonishment of a high school teacher who watched me debug a program in a fairly rapid time 🙂 )
So here is a question. Sure we could teach students to program using your favorite language FAVLANG, but what if it was possible for us to teach debuging before we taught programming. What if the structure of the introduction to programming was centered around finding and fixing bugs. I mean, after reading Dreaming in Code, where the book ends with thousands of bugs left unfixed, I can only imagine that good debugging skills are important. Maybe even as important as coding skills? Just a thought. But even if this is not the way to go, how could you teach debugging before you taught programming? Now that’s fun to think about.