Student Activities from Lecture 03

October 2, 2006

Overview

The goal of this lecture is to discuss run time analysis and models of computation. The lecture will discuss big-Oh notation. My assumption is that students are familiar with big-Oh notation - so the lecture is just to remind the students of terminology and mention a few key facts. This is the first classroom presenter lecture for the students.

Activity 1: Draw a picture of Seattle

Before class notes:

This is a standard activitiy used to introduce classroom presenter. The plan is to have it available at the start of class to have students use the system before the lecture starts. About half the students in the UW section have used presenter. I will plan on showing all submissions received.

After class notes:

This worked as expected for pre-class entertainment. This succeeded both in introducing everyone to Presenter, and in establishing an interactive atmosphere.

Student submission examples

Activity 2: Algorithm Efficiency

Before class notes:

This is a collective brain storming activity, asking for definitions of algorithmic efficiency. My plan is to classify these into "theoretical" vs. "practical" aspects of algorithmic efficiency.

After class notes:

There were a large number of responses, and students discussed responses before submitting them. There was not as clear a split between theoretical and practical. Some responses indicated students had read the text (or the slides). I was able to make a number of different points from the slides. This was an okay brainstorming activity early in the lecture.

Student submission examples

Activity 3: Factorial Complexity

Before class notes:

The activity is to estimate how long the factorial takes - in rough terms. The answer I am hoping for is: 1 sec., 2 minutes, 6 hours, etc. My challenge is conveying what I am asking for (since I don't want people using calculators. I think I will write down the first answer (2 minutes) for them. The purpose of this is that expressing the results in easily understood times conveys just how fast the function is growing.

After class notes:

This went better than I had expected - students did not have any trouble understanding what I was asking for, nor were people using calculators. Students did have some trouble with the math - getting off by an order of magnitude (however, I was also off by an order of magnitude in my instructor notes!). My discussion highlighted an incorrect result. Here is a computed result:
101214161820
1 second2.2 minutes6.67 hours 2.2 months56 years21000 years

Student submission examples

Activity 4: Big-Oh Proof

Before class notes:

The activity is to have students pick the constants to use for a Big-Oh proof. I will continue the proof using one group of constants. Having students choose the constants is a way of getting them to understand how the proof is done.

After class notes:

This was a fairly good way of handling this proof - students seemed to generally understand what to do - and took the task seriously of choosing constants. Several students worked out the answer, which I had not anticipated.

Student submission examples

Activity 5: Big Oh assessment

Before class notes:

This is a standard exercise for big-Oh: given a group of functions, show how they are ordered. There is nothing tricky about this example. The main purpose of this is assessment - students should know how to do it. The answers will be used to make the point that logs come first, followed by polynomials, and then followed by exponentials.

After class notes: I didn't reach this one - which didn't surprise me. I could have hurried to include it - but I was running low on time.