December 16, 2003

Bulk view

More stuff from visiting professor

How do you pronounce your name, Dr. Nievergelt? (Neevergelt)

– Let me see if I understand your teaching approach. You develop

passive systems that students can explore in order to learn
important computer science concepts like finite state automata and
synchronization. Your role as a teacher, then, is to create and
update these tools, come up with exercises that draw out ideas,
guide students’ discussion of solutions, and help them synthesize
general principles. Did I miss anything?

Lecture also an animation device.

– How did you get started with this approach? It seems very different

from the way most teachers teach computer science – that is, a
lecture on general principles and then assigned problems from the
book to practice application.

Very positive feedback. Examples have a clear connection to
applications. For finite state machines, control of traffic lights,
how would you synchronize the traffic lights… automatically, if you
do it systematically, you start by specifying the total state space.
What are the states of these many lights that can occur. Make the map
of the state space, and this is a state that you don’t want to get
into, so that state has to be outside, and you begin to relate the
states to each other. So a static specification of all the possible
states that a system can be in is the first stem, and only later the

Not faithful reflection. Simplify, simplify, and then hope that the
simplified version still shows some aspects.

– I collect exercises for my students, but sometimes I have a hard

time thinking up ideas and examples. When I talk to other students,
it seems that most teachers use passive lectures. What do you do to
think of these things?

Dream up examples for exams. Sometimes run into them in books or if
you hear them. Collection of transparencies. Systematically collect
them. Just collect them on transparencies. Select them as appropriate.
Lots of work.

– What other alternative approaches are used by teachers at schools

you’ve been to?

Not noticed much because is personal style. (Also, doesn’t seem to
have swapped exercises with others…)

– How long have you been teaching? Any advice for someone starting out?

Suggests getting MS first.

Thank you very much for your time. I’ve learned about another way to
approach computer science education research – developing systems to
support student learning by making an environment they can explore. I
firmly believe tat concrete examples help students learn, and I hope
to collect many examples and exercises for the introductory courses –
to help students learn principles and to challenge them to do well. I
agree that too much emphasis has been placed on applications, and I’d
like to help train college and high school teachers to teach computing
concepts, not just how to use applications. I don’t know much about
computational science, but I know that Dr. Rodrigo and Dr. Dayrit are
working on that. Again, thank you very much for your time. =)

educational technology


Intimidation factor is well known. No general recommendation, every
teacher has to deal with that. Darwinistic approach. No entrance exam.
They have an attrition rate of 40% at ETH. Can take an elitist

Concrete, specific examples. UNderstand the intuitive examples first
and then find the general principles. Algorithms and data structures
but with examples. Like things that are intellectually challenging.

Two-finger typist! <impish grin>

Perl training


– Day 1 morning: What is Perl? Lay of the land
– Day 1 afternoon: Basic syntax, Perl for extracting data
– Day 2 morning: Regular expressions, perl as glue – using Perl to connect two programs
– Day 2 afternoon: Perl as glue – using Perl to connect two programs
– Day 3 afternoon: CPAN

Why use Perl?

– quickly extract information from a lot of data
– write programs that connect two existing programs together
– take advantage of very rich libraries

Script ideas

– extracting top phone callers
– summarizing surveys

Moving computing into the basics

Mathematics users – elementary mathematics, technicians have more
mathematics. So the mathematics teachers could say all we have to
teach our students is how to look up a formula and apply it. But from
high school on, all of you learned some form of proof, even though not
all of you will go on to be a mathematician. Some concept of what a
proof is. We don’t trust anyone to apply mathematics if he doesn’t
have the concept of a proof. What it means for a mathematical
statement to be something meaningful. We are all physics users when we
turn on switches and schools have taught the second law of
thermodynamics, even though few of us will actually use it. Basic
ideas. Tremendous disparity between traditional foundations of
technological society – principles of science to everyone – and
computing, which is just hitting the right keys at the right moment.
Example of the overreaction to the Y2K problem.

Once a society depends as much on the technology as we do today on
the computer and information technology, it’s not enough to have a
bunch of specialists. principles should be a matter of general

When computers first popped up in universities some 40 or 50 years
ago, everyone who wanted to use a computer had to learn how to program
and the only question was what language to use. Justification was very
simple. If someone wanted to use a computer for anything, he had to
write his own program. In the 70s and 80s, something very drastic came
up. Visicalc was the first spreadsheet. Fantastic innovation. That was
simply the first of these fantastic app packages that we all use
nowadays. Computer users today simply work with prepackaged
applications done by specialists. If they use tools that other people
make, then there’s no need to teach programming.

If you want to understand the basic ideas that support this
technology… How can I tell a politician or someone about what
computers can or cannot do?

What would be the simplest possible setting where we can teach
programming to high school students – not so that they will all be
programmers, but so that they understand what it means to specify
concretely what they want to do?

Traditional to take the language of the day. Understandable. But if
you take a professional programming language, then you spend the first
months or two studying the manual and the libraries. Too much
information. What is the simplest setting in which I can try these?

Multikara is so cute! synchronization and stuff…

Main idea: finite state machines are easiest way to learn how to program

Backlog: Fish – 2003.12.15

– Find small sections of fish. I haven’t gotten around to eating fish bellies yet, although many people swear by them. I prefer the part
that browns and gets all salty when you cook it.

– Put fish into frying pan with a bit of oil.

– Wait.

This CookOrDie episode was hard because I couldn’t see what I was
cooking! It was early morning, so I hadn’t put my contacts on yet, and
I used chopsticks (yes, while cooking fish – darn difficult to hang on
to the pieces sometimes) to test if the fish felt crunchy. I also
peeked every so often to see if it was browning properly. The
sputtering oil from the fish made me loath to look closer, though.

Still, I think it was worth it. I’m particularly fond of daing na
bangus (milkfish that’s marinated and then fried), and my dad and I
usually fight over who gets to eat the brown parts. Actually, no, we
just try to be first at the fish. I haven’t actually tasted the
results yet due to a bit of a mix-up yesterday. I was supposed to
bring it for lunch but the car couldn’t take me to school. They sent
the containers along later, but now that it’s been out a few hours at
room temperature, I’m a bit wary. All that rice will also be wasted
unless I think of something to do later – and I’ll have to eat it for
lunch, as I’ll be going home today!

Hmmm. Which means I’m in a bit of a spot, as I have a couple of
potatoes earmarked for potato soup (or a reasonable facsimile
thereof). I am a little hesitant about rice and fish as they’d been
out for a while. I think I will have cream of mushroom + potato soup
later… The rice is such a waste, but I guess I can treat it as an