Series
Archive
2015
January
February
March
April
May
June
July
August
September
October
2014
March
April
May
June
July
August
September
October
November
December

### How Math is Like Baking: You Just Need a Recipe

#### by Eugenia Cheng

Click to enlarge images
The following is an excerpt from How to Bake Pi: An Edible Exploration of the Mathematics of Mathematics, by Eugenia Cheng. Listen to SciFri on May 8, 2015, to hear Cheng talk more about practical math applications.

Pie: Abstractions as Blueprints

Cottage pie, shepherd’s pie, and fisherman’s pie are all more or less the same—the only difference is the filling that is sitting underneath the mashed potato topping. Fruit crisp is also very similar—you don’t really need a different recipe for different types of crisp, you just need to know how to make the topping. Then you put the fruit of your choice in a dish, add the topping, and bake it.

Another favorite of mine is upside-down cake. You put the fruit in the bottom of the cake pan, pour the cake batter on top, and after baking it you turn it out upside-down so that the fruit is on top. For extra effect you can put melted butter and brown sugar on the bottom of the cake tin first, to caramelize the fruit a bit. Of course, this works better with some fruit than others: bananas, apples, pears, and plums work well, grapes less well. Watermelon would be terrible. The same is true for crisp. Watermelon crisp? Probably not.

Savory tarts and quiches also follow a general pattern. You bake an empty pastry shell, put in some filling of your choice, and then top it up with a mixture of egg and milk or cream before baking it again. The filling could be bacon and cheese, or fish, or vegetables—whatever you feel like.

In all these cases the “recipe” is not a full recipe but a blueprint. You can insert your own choice of fruit, meat, or other fillings to make your own variations, within reason.

This is also how math works. The idea of math is to look for similarities between things so that you only need one “recipe” for many different situations. The key is that when you ignore some details, the situations become easier to understand, and you can fill in the variables later. This is the process of abstraction.

As with the watermelon crisp, once you’ve made the abstract “recipe” you will find that you won’t be able to apply it to everything. But you are at least in a position to try, and sometimes surprising things turn out to work in the same recipe.

Excerpted with permission from How to Bake Pi: An Edible Exploration of the Mathematics of Mathematics by Eugenia Cheng. Available from Basic Books, a member of The Perseus Books Group. Copyright © 2015.

More from Eugenia Cheng: Kitchen Math: How to Eat π Pies

Dr. Eugenia Cheng is Scientist in Residence at the School of the Art Institute of Chicago. Follow her @DrEugeniaCheng

The views expressed are those of the author and are not necessarily those of Science Friday.
```EVAL ERROR: Entity: line 1: parser error : Space required after the Public Identifier

^
Entity: line 1: parser error : SystemLiteral " or ' expected

^
Entity: line 1: parser error : SYSTEM or PUBLIC, the URI is missing

^

Code:
line 1: package tmpevalpackage;
line 2: sub doEval {
line 3: 	my(\$parent);
line 4:
line 5: 	if(\$LayoutManager::url_resolved_values{'SEGMENT.nickname'}) {
line 6: 		\$parent = \$LayoutManager::url_resolved_values{'SEGMENT.nickname'};
line 7: 	}
line 8: 	elsif(\$LayoutManager::url_resolved_values{'VIDEO.nickname'}) {
line 9: 		\$parent = \$LayoutManager::url_resolved_values{'VIDEO.nickname'};
line 10: 	}
line 11: 	elsif(\$LayoutManager::url_resolved_values{'DOCUMENT.nickname'}) {
line 12: 		\$parent = \$LayoutManager::url_resolved_values{'DOCUMENT.nickname'}
line 13: 	}
line 14:
line 15: 	if(\$parent) {
line 16: 		my(@books) = &Database::SelectClause('BOOK',"parent = \$parent");
line 17: 		if(!@books) {
line 18: 			\$parent = '';
line 19: 		}
line 20: 	}
line 21:
line 22: 	if(!\$parent) {
line 23: 		my(@sel) = &Database::SelectClause('GLOBAL','record all ""');
line 24: 		if(@sel) {
line 25: 			\$parent = 'GLOBAL.' . \$sel[0];
line 26: 		}
line 28: 	}
line 29:
line 30: 	 = '';
line 31:
line 32: 	if(\$parent) {
line 33: 		my(@books) = &Database::SelectClause('BOOK',"parent = \$parent");
line 34: 		0 = 0;
line 35: 		my \$dots;
line 36: 		foreach(@books) {
line 37: 			my(%data);
line 38: 			&Database::GetRow(\$_,'BOOK',\%data);
line 39: 			my(\$status,\$title,\$author,\$url,\$image,\$width,\$height) = &SciFri::Schema::getAmazonItem(\$data{'isbn'});
line 40: 			if(\$data{'title'}) {
line 41: 				\$title = \$data{'title'};
line 42: 			}
line 43: 			if(\$data{'author'}) {
line 44: 				\$author = \$data{'author'};
line 45: 			}
line 46: 			if(\$status eq 'ok') {
line 47: 				 .= "<div class=\"box-2x1-item box-slide\" data-href=\"\$url\">";
line 48: 				 .= "	<div class=\"box-2x1-item-photo\">";
line 49: 				 .= "		<div class=\"image-wrapper\" data-jsclass=\"imageWrapper\" data-align=\"right\">";
line 50: 				 .= "			<img src=\"\$image\" data-width=\"\$width\" data-height=\"\$height\">";
line 51: 				 .= "		</div>";
line 52: 				 .= "	</div>";
line 53: 				 .= "	<h4>\$title</h4>";
line 54: 				if(\$author) {
line 55: 					 .= "	<p>by \$author</p>";
line 56: 				}
line 57: 				 .= "	<div class=\"box-2x1-more-button\"><a href=\"\$url\"><img src=\"/images/v1/icon_text_more_white.png\" width=47 height=15 border=0></a></div>";
line 58: 				 .= "</div>";
line 59: 				++0;
line 60: 			}
line 61: 		}
line 62: 	}
line 65:  };
line 66: &doEval();
line 67: 1;
```