# Tag Archives: teaching

## (Unexpected) Lessons Learned From a Prescriptive Analytics Course Refresh

I’ve been teaching the core prescriptive analytics course in our MBA program since 2005, and it was once again time for a major refresh/improvement. Therefore, this past December I went for it, and then proceeded to ask myself the following question over and over during the first half of the spring semester: “Why did you do this to yourself?” It was grueling. It was hard. It was overwhelming. However, when I look at the end result, I am really proud of it. It’s far from perfect, but I collected tons of feedback from my students (THANK YOU!) and I’m already polishing it for the next iteration (that one will be close to spotless). The goal of this post is to share a portion of the feedback I received, which turned out to contain some unexpected surprises.

To give you some context, I improved the existing homework problems, Excel files, and lecture notes (everything now is in PDFs created with LaTeX; no Powerpoint anymore!). I also created a lot of new content (including a hands-on Lego exercise and a case study I developed from scratch), especially when it comes to decision-making under uncertainty. All in all, I’d say 50% of the course is new material, and the remaining 50% is a much better version of the previous material.

Here are the lecture themes (unless otherwise noted, each lecture is a 2-hour session; there are 2 sessions per week). An asterisk * indicates a brand new lecture:

• Lecture 1: Introduction to Optimization: hands-on Lego exercise, investment, scheduling.
• Lecture 2: Mixing and Carryovers: blending, cash flow, production and inventory planning.
• Lecture 3: Networks: assignment, transshipment, shortest path.
• Lecture 4: Integer and Binary Variables: budget allocation, logical conditions, covering, fixed costs.
• Lecture 5: Sensitivity Analysis: shadow prices and reduced costs.
• MIDTERM EXAM
• Lecture 6*: Optimization Under Uncertainty: two-stage stochastic linear programming.
• Lecture 7*: Decision Analysis and Decision Trees (incl. EVPI, EVSI, risk profiles, Bayes’ Rule).
• Lecture 8*: Sequential Decision Processes: stochastic dynamic programming.
• Lecture 9* (two sessions): Monte Carlo Simulation.
• Lecture 10*: Case Discussion.
• FINAL EXAM

On my final exam, I had a question asking students to name their favorite and least favorite lecture. I wanted to see where the home run was and where the big fail was. I had a total of 76 students, and here is the final tally:

You’ll notice that the columns don’t add up to 76 as they should. Some people provided two favorites, and some people did not indicate a least favorite lecture. Here’s what I infer from the table above. (Let me know if you see something I didn’t!)

• Networks as the clear “home run” lecture: I would never have guessed that in a million years! This was so surprising to me. Some of the comments mentioned the visual aspect of it as an attractiveness. I can see that, but still…
• Stochastic DP as the clear “big fail” lecture: I can actually see that because I wasn’t very fond of the lecture myself after I taught it. It looks OK on paper, but the classroom feeling I got from it was lukewarm. I’m thinking of replacing it with a second case study to take place after the first four lectures.
• Two-stage stochastic LP as pretty much another big fail: This one I attribute to a fail on my part. The material in there is pretty good. It’s just a matter of my doing a better job motivating and explaining it (the written feedback points to its being hard to follow). I’ll keep it for sure and refine the delivery. (Two people actually loved it! :-)
• Simulation as a bit of a polarizing topic: I honestly thought the simulation class was going to be a big home run. The 11 votes in the right column are likely my fault again (based on feedback). I fully believe in the quality of the content, but I need to do a better job connecting it with the statistics course that precedes mine (I assumed too much of the students).
• Beloved decision trees: I had a lot of fun putting together and delivering the decision tree lecture, but I didn’t expect it would get so many “fave” votes. Being a new lecture, there were some hiccups that I can easily fix (the same being true for lectures 6, 8, and 9), and seeing how successful it already was gives me even more motivation.
• Case study: I had never written a full-length case study before, but got excited about doing so after an instructional session organized for the faculty at our school. Despite liking the case on paper (it combines marketing and optimization aspects), I was a bit anxious before the actual discussion took place. My students did an amazing job and performed way beyond my expectations. After seeing where they went and what issues they brought up, I feel like I can polish the case to make it even better.
• Lego exercise: Another pleasant surprise. I was worried the Lego exercise might be seen as too simple or silly. I was wrong! The feedback indicated it worked well as a motivational tool, a visual aid, and a good ice breaker (it’s the very first thing I do in Lecture 1).

I’m pretty happy overall and really enjoyed what I learned from this fave/least fave question. It can be pretty informative. Do you have any other creative ways to elicit student feedback that you find particularly helpful? If so, please share them in the comments below.

1 Comment

Filed under Decision Trees, Motivation, Network Flows, Teaching, Tips and Tricks

## Improving a Homework Problem from Ragsdale’s Textbook

UPDATE (1/15/2013): Cliff Ragsdale was kind enough to include the modification I describe below in the 7th edition of his book (it’s now problem 32 in Chapter 6). He even named a character after me! Thanks, Cliff!

When I teach the OR class to MBA students, I adopt Cliff Ragsdale’s textbook entitled “Spreadsheet Modeling and Decision Analysis“, which is now in its sixth edition. I like this book and I’m used to teaching with it. In addition, it has a large and diverse collection of interesting exercises/problems that I use both as homework problems and as inspiration for exam questions.

One of my favorite problems to assign as homework is problem number 30 in the Integer Linear Programming chapter (Chapter 6). (This number refers to the 6th edition of the book; in the 5th edition it’s problem number 29, and in the 4th edition it’s problem number 26.) Here’s the statement:

The emergency services coordinator of Clarke County is interested in locating the county’s two ambulances to maximize the number of residents that can be reached within four minutes in emergency situations. The county is divided into five regions, and the average times required to travel from one region to the next are summarized in the following table:

The population in regions 1, 2, 3, 4, and 5 are estimated as 45,000,  65,000,  28,000,  52,000, and 43,000, respectively. In which two regions should the ambulances be placed?

I love this problem. It exercises important concepts and unearths many misconceptions. It’s challenging, but not impossible, and it forces students to think about connecting distinct—albeit related—sets of variables; a common omission in models created by novice modelers. BUT, in its present form, in my humble opinion, it falls short of the masterpiece it can be. There are two main issues with the current version of this problem (think about it for a while and you’ll see what I mean):

1. It’s easy for students to eyeball an optimal solution. So they come back to my office and say: “I don’t know what the point of this problem is; the answer is obviously equal to …” Many of them don’t even try to create a math model.
2. Even if you model it incorrectly, that is, by choosing the wrong variables which will end up double-counting the number of people covered by the ambulances, the solution that you get is still equal to the correct solution. So when I take points off for the incorrect model, the students come back and say “But I got the right answer!”

After a few years of facing these issues, I decided I had had enough. So I changed the problem data to achieve the following (“evil”) goals:

1. It’s not as easy to eyeball an optimal solution as it was before.
2. If you write a model assuming every region has to be covered (which is not a requirement to begin with), you’ll get an infeasible model. In the original case, this doesn’t happen. I didn’t like that because this isn’t an explicit assumption and many students would add it in.
3. If you pick the wrong set of variables and double-count the number of people covered, you’ll end up with an incorrect (sub-optimal) solution.

These improvements are obtained by adding a sixth region, changing the table of distances, and changing the population numbers as follows:

The new population numbers (in 1000’s) for regions 1 through 6 are, respectively, 21, 35, 15, 60, 20, and 37.

I am now much happier with this problem and my students are getting a lot more out of it (I think). At least I can tell you one thing: they’re spending a lot more time thinking about it and asking me intelligent questions. Isn’t that the whole purpose of homework? Maybe they hate me a bit more now, but I don’t mind practicing some tough love.

Feel free to use my modification if you wish. I’d love to see it included in the 7th edition of Cliff’s book.

Note to instructors: if you want to have the solution to the new version of the problem, including the Excel model, just drop me a line: tallys at miami dot edu.

Note to students: to preserve the usefulness of this problem, I cannot provide you with the solution, but if you become an MBA student at the University of Miami, I’ll give you some hints.

Filed under Books, Integer Programming, Modeling, Teaching

## Big Bang Theory Party Planning

Penny is organizing a party at her apartment, but she is on a tight budget. Having a working knowledge of all of the important things in the universe, Sheldon knows everything about linear programming and offered to help her. He postulates that it’s ideal to have two kinds of mixed nuts: a plain party mix, and a luxury mix (for those with a distinct taste like himself). Based on the expected number of guests, Howard quickly calculates that they’ll need a total of at least 10 pounds of snacks, but no more than 6 pounds of each kind of mix. On his white board, Sheldon has already come up with the following table:

Raj wants to dip the hazelnuts into liquor, but that’s not in the budget, so he gives up. Leonard reminds everyone that, because of their allergies, it’s important to keep the average allergenicity level per pound in both mixes to no more than 3. Write an optimization model to help Penny prepare the two kinds of snacks at minimum cost. But be careful: Sheldon will check it later for correctness!

This post is part of my series “Having Fun with Exam Questions”. Previous questions dealt with Farmville, vampires, and (potentially) Valentine’s day.

1 Comment

Filed under Big Bang Theory, Exam Fun, Linear Programming, Modeling, Teaching

## Find Out What Happens to Mr. Lovr

I’ve had a number of people tell me that they like my Valentine’s Day post, but many of them did not solve the Excel Spreadsheet. That’s the most important part of the post! You have to see what happens to Mr. Lovr! There’s no set-up necessary; just open Excel Solver (it’s an add-in you have to enable in Windows and a separate program in the Mac), and click on the “Solve” button. You’ll be glad you did.

Filed under INFORMS Monthly Blog Challenge, Love, Valentine's Day

## Transporting Flowers with Love

Mr. Lovr, a lonely gentleman, does not want to spend Valentine’s day alone in 2011. As one of his New Year’s resolutions, he intends to send roses to nine of his lady friends. Being an avid procrastinator, however, he waits until the last minute and finds out that only eight flower shops in his city still have roses available. For lack of better names, let’s call those flower shops F1, F2, F3, …, F8. The number of bouquets of roses available at each shop are, respectively, 4, 4, 3, 2, 2, 2, 2, and 1. Based on how well he knows each of his potential valentines, whom we’re going to call V1, V2, V3, …, V9, he calculates how many bouquets he needs to send to each of them to increase his chances of going on at least one date. The numbers are, respectively, 3, 2, 2, 2, 2, 2, 2, 2, and 3. At this point, a light bulb goes off in Mr. Lovr’s head, and he remembers from his Operations Research class that this is a transportation problem. But there’s something missing…Ah! The costs! He calls each of the eight flower shops and asks how much it would cost to ship one bouquet of roses to the addresses of each of his nine lady friends. He then compiles the following table of costs (in dollars):

He also remembers that because the total supply is equal to the total demand, he can write all of the constraints in this problem as equalities. Essentially, he has to say that, for each flower shop, the number of bouquets that it ships has to be equal to the number of bouquets that it has. Similarly, he needs one constraint for each valentine saying that the number of bouquets that they receive has to be equal to the number that they want (according to his estimates above). To avoid suspicion, he also decides that it’s better for each flower shop to send no more than one bouquet to the same person. So far, so good, but he needs a specific shipment plan because he’s running out of time.

He opens up an Excel spreadsheet and creates the following layout of cells (he chose pink to make it more romantic):

Somewhere else in his spreadsheet he also typed the table of costs shown above. To his surprise, he even remembered to use the SUMPRODUCT function to calculate the total cost expression. He clicks “Solve” and finds out that the cheapest way to send all 20 bouquets will cost him \$38. Not bad…but wait a second…something amazing happened! He cannot believe his eyes! The optimal solution exhibits a very curious pattern! Could it be a Valentine’s Day miracle? Could it be the power of love? If you want to see for yourself, download Mr. Lovr’s spreadsheet, open Excel Solver, and solve the model (no setup necessary, just click the “Solve” button). (NOTE: this spreadsheet has been tested with Excel 2007 under Windows XP, and with Excel 2008 under Mac OS X Snow Leopard. I’m not sure the “trick” will work in earlier Excel versions. For a free download of Excel Solver for Mac OS X, go here.)

Thanks to my love for giving me the idea for this blog post.