tags:

views:

177

answers:

4

This semester, I will be a TA for an introductory computer science course at my university. As part of TA training, I'll be doing something called Microteaching, which is where I teach for 5-7 minutes in front of a small audience (4-5 people) and I am reviewed on my teaching style. Among being critiqued on my personal things like confidence and eye contact, I will be critiqued on how well I know the subject material, as well as how interesting it is to the audience.

So my question is: Can you offer me any suggestions of computer science related topics that:

  • I can begin and finish teaching in a span of 5-7 minutes
  • Are fun to learn about
  • Are accessible to a general engineering (but not necessarily computer science) audience

Some topics I have considered:

  • Teaching how to write Hello World in some simple language
  • Introducing a synchronization problem like dining philosophers
+1  A: 

I am a TA, but in a different subject. I think Hello World is too boring, many students may already have some experience (the hacker type), and those are fun students. Maybe you could create some quick examples in Python, that will grab the attention, maybe something like simple graphics (fractals), simple networking (maybe send SMS to phone?). I think those can be done in a few minutes if you supply instructions.

aaa
Hey, thanks for the answer. I think your ideas are more aligned towards a C.S. audience. My audience will be engineers who are most likely not familiar with programming, so I don't think writing/executing code would work too well. I'm looking more for a simple concept to talk about.
Roman Stolper
hi, what about a crash course in Matlab or octave (or some symbolic algebra in Mathematica?). If they are engineers, they will use Matlab most likely.
aaa
Hey, that's a good idea re: Matlab. What's ironic is that I didn't even think of that, and the course I'm TAing is "Intro to Matlab"
Roman Stolper
+2  A: 

5-7 minutes isn't a long time at all. A quick intro or overview of something interesting might be a good choice. You could:

  • introduce a programming language paradigm like functional or logical with a demo of Prolog, Lisp, OCaml or Haskell.
  • give an overview of how HTTP requests and responses work
  • describe the basics of object-relational mapping

It would be good to have some resources to give them afterwards, so they can learn a lot more if they're interested.

Kaleb Brasee
@Kaleb thanks for the suggestions. I don't know any of the languages you listed in the first point, nor do I really know ORM as you mention in last point. However, I really like the second point, and it sparked my thoughts that I should teach about something that they encounter in their day to day lives (maybe internet related like your HTTP idea).
Roman Stolper
+1  A: 

How about a simple graph algorithm like shortest paths? People will be interested because this is more or less how MapQuest, Google Maps, Garmin, and TomTom work. And if you draw a small map of your University campus you can do a quick example and there's your 5 minutes.

Norman Ramsey
Thanks for the suggestion. I like this idea because it connects with commonly used tools like Google Maps. I'd have to brush up on my Djikstra for this one..
Roman Stolper
So, I ended up teaching Binary Search. All of the answers on this page helped me brainstorm, but I am accepting your answer because it came closest I chose to teach.
Roman Stolper
A: 

I'm trying to merge engineering types and basic computer science subject matter. To me this sounds like the sort of audience you want to present a simple application to not just theory.

Five minutes goes fast. My best advice is to practice the presentation a couple of times as a dry run and don't talk too far down to the audience.

How about: Introducing conditionals along with functions in some sort of regulation function. A quick example is a smart battery charger that needs to look at voltage to figure out how to charge Li-ion cells properly or declare them bad (think exploding laptop batteries)

How to log and watch current trends in something (gather data) and analyze it. Say a quick weather prediction example using data available from the United States National Weather Service or something along those lines.

Walk through implementing an algorithm to do some basic calculation functions useful to engineers. Perhaps a volume of water a tank can hold sort of thing.

CoryZ