Student Activities from Lecture 06

October 9, 2006

Overview

This lecture was the first on greedy algorithms. The goal of the lecture was to introduce the topic by example, including showing different methods for arguing the correctness of algorithms. The domain for all of the problems being discussed is scheduling. The selected activities all look very similar - just a collection of horizontal lines! The activities are weighted towards gaining familiarity with examples. I was not able to come up with activities to explore proof techniques or details of correctness proofs. It is hard to come up with such activities - especially when the techniques are being introduced for the first time.

16 tablets were deployed in class, with two students at most tablets (there were a few groups of three, and a few singletons). There were no technological problems - everything went smoothly. In general, participation was very high. There was also significant collaboration on the problems. The weakness that I felt on this lesson is that I did not take advantage of their solutions - the activites all had a generally correct answer - so displaying them did not have much value.

Activity 1: Interval Scheduling

Before class notes:

This is the activity that was used in the five problems lectures delivered at Beihang. The goal of the activity is to verify that students have understood the definition of the problem. I hope that almost all students succeed in the activity.

After class notes:

Students uniformly got this one correct - it was easy, and this established that students understood the problem.

Student submission examples

Activity 2: Simulate Heuristics

Before class notes:

The problem is to simulate greedy algorithms with different heuristics. This activity is to show that a collection of different heuristics do not work for finding an optimal solution.

After class notes:

I set up this activity by first generating a small example by hand to show the process of simulating an algorithm, then I continued talking about the activity after I put the slide up. This activity was more challenging than the previous one, although all students got the correct solution. Algorithmic simulation actually works quite well as an activity. More direction could have been given to have students indicate when the different tasks were removed.

Student submission examples

Activity 3: Multiprocessor scheduling

Before class notes:

This activity is to demonstrate understanding of the problem, and possibly to get insight into the eventual algorithm. The problem is big enough, that students may start using an algorithm to compute the labelling. I am not sure if I will tell the students verbally what the answer is in advance.

After class notes:

This student was phrased as "can you find a solution of size five". The example was complicated enough that it was hard to get the answer right without using the proper algorithm. A number of students seemed to use the proper algorithm - this could have been either discovery, or from the text book. It was difficult to evaluate the submissions. The use of colors (and especially the highlighter) was key.

Student submission examples

Activity 4: Scheduling lower bound

Before class notes:

Although this is a proof problem, it is pretty easy. The expected solution is just to observe that three overlapping jobs cannot be scheduled with two processors.

After class notes:

This gets the record for the fastest student submission exercise. Work and display time were estimated to be about one minute by Valentin. I thought this was quite effective in getting many students to express the lower bound idea. The proof idea was just to identify an obstruction that would require at least three processors.

Student submission examples

Activity 5: Scheduling with lateness

Before class notes:

I do not anticipate reaching this one - just in case I go much faster than anticipated, I have an example ready for students to explore the current problem.

After class notes: As expected, this was not reached. Timing worked well so I could just introduce the overall problem, without getting to the technical details.

There were a few additional submissions before and after class, as well as a few creative submissions during activities: Student submission examples