See a typo? Have a suggestion? Edit this page on Github
Context I originally wrote this content years ago for teaching my children. I happened to stumble across it today when cleaning up some repos, and thought with the current “everyone is home schooling” situation around COVID-19, it would be a good time to publish it.
Everything your body does needs to be powered. In your computer, the power is electricity. In your body, the power comes from food. In plants, the power (usually) comes from the sun. We have three main kinds of energy in food: carbohydrates (carbs), lipids (fats), and proteins. This is about carbs.
Your body is made up of lots of different cells: brain cells, heart cells, muscle cells, skin cells. Every cell in your body can use glucose for energy. Let’s start off by understanding what glucose is made up of.
Structure of glucose
Glucose is a molecule, which is made up of other atoms. In fact, it’s made up of 6 carbons C, 12 hydrogens H, and 6 oxygens O. Hydrogen and oxygen together make water (H2O), which in greek is hydro. That’s where the word carbohydrate comes from: carbon + hydro = carbohydrate.
Here are two different pictures of what the glucose molecule look like:
Energy in glucose
Each time two atoms are connected to each other, it’s called a covalent bond. Each bond has some energy in it. This is called chemical energy. Your body needs to convert that chemical energy to energy it can use to move your muscles, let your brain think, and everything else. It does this by something called cellular respiration.
The next bit is like a math formula. Remember that glucose has 6 carbons, 12 hydrogens, and 6 oxygens. From now on, we’ll write that as C6H12O6. Cellular respiration combines the glucose with oxygen (O2) to make carbon dioxide (CO2) and water (H2O). We’ll play with the exact math later in the first exercise. The cool thing is: when you do this conversion, there are less covalent bonds at the end, so you free up energy.
Plants do the opposite: they take carbon dioxide and water, and combine it with energy from the sun using photosynthesis to make glucose and oxygen. That’s why animals breathe in oxygen and breathe out carbon dioxide, and plants do the opposite.
Glucose is one kind of a sugar. It’s actually a simple sugar, or a monosaccharide. Mono is greek for “one”, and saccharide is Latin for sugar. There are three different kinds of monosaccharides:
They all have the same number of carbons, hydrogens, and oxygens, but they have slightly different shapes. This is important, because it means that glucose can be used by any part of the body. However, fructose and galactose can only be used in the liver for producing energy.
There are also disaccharides. Di is Greek for “two,” and these are combinations of two simple sugars. Some common examples:
- Sucrose is a glucose and a fructose together
- Lactose is a glucose and a galactose together
When you hear of “sugar,” or see a package with sugar in it, it’s usually sucrose. It’s also called “table sugar.”
Lactose is also known as milk sugar, and is made by mother animals (mammals) for their babies. Fructose is sometimes called “fruit sugar,” because fruit has a lot of it.
We can have more than just two sugars together. Poly is the Greek word for “many.” One kind of polysaccharide is starch, which is a long chain of glucose molecules. There are lots of foods that we eat that have a lot of starch in them:
- Grains, like wheat, oats, and rice
- Sweet potatoes
When you eat starch (or, for that matter, disaccharides), your stomach and intenstines will break it down into the individual simple sugars, which then get absorbed into your blood. Because starch takes longer to break down to simple sugars, it gets absorbed more slowly into your blood stream.
Another kind of polysaccharide is something animals make, called glycogen. Glycogen is something your muscles and liver store for energy. It’s easy to turn into glucose, and can be used for quick energy. It’s really useful, for example, if you need to run really fast for a short time, or lift heavy weights. That’s why eating lots of carbs before lifting weights helps so much.
Our bodies are very good at digesting (breaking down and absorbing) starch. But there are other kinds of polysaccharides that our body can’t break down. These are known as cellulose, or fiber. Two different things can happen with these:
- We poop them out. This is why eating lots of fiber makes us go to the bathroom more.
- The bacteria in our intestines (gut microbiome) breaks it down and turns it into fatty acids that we can absorb. This gives us some energy from fat, and gives our microbiome some food so it can grow.
This is why eating fiber is good for you: it helps you go to the bathroom regularly, and have a healthy gut biome.
When we turn raw food, like wheat, into food we can eat, it’s called processing it, or refining it. Highly refined foods are processed a lot, and look less like the original raw food. For example, wheat has lots of fiber in it, and whole wheat bread keeps that fiber. But white bread is more processed, and has had the fiber taken out. Highly processed carbs, like white bread, crackers, and pretzels, are not very good for you: they have most of the fiber stripped out!
Good and bad of fructose
Fruit has lots of fiber, micronutrients (vitamins and minerals), and water. It also has fructose, but mixed in with all of these other things. Fruit is good for you, and you should eat it.
There’s another cool thing about fructose: our tongues think that it tastes sweeter than glucose. Lots of companies will use fructose to make food taste better. And this is the bad side. With a little bit of fructose in your fruit, your body is fine.
However, when you eat lots of fructose, without the water and fiber that comes in the fruit, your liver has to do lots of extra work. The liver works very hard converting the fructose into other energy, like fat, that your body can use. This makes your liver tired, and takes away time from doing other things your body needs it to do.
Also, when you have too much fat stuck in your liver, your body can develop something very dangerous, called fatty liver disease. This can lead to insulin resistance, which can leads to lots of bad diseases, like diabetes, cancer, and heart disease.
Lesson: don’t eat too much extra sugar in your food, the extra fructose can make you very sick over time!
When you have cellular respiration, your body takes one gluclose (C6H12O6) and 6 oxygen molecules (O2) and makes some number of carbon dioxide (CO2) and water (H2O) molecules.
Figure out how many total carbon, hydrogen, and oxygen atoms are in the glucose and 6 oxygen molecules.
How many carbon dioxide molecules can you make out of that?
How much stuff is left? How much water can you make out of that?
Do you have any atoms left over?
What are the three monosaccharides?
Which sugar can be used in your whole body?
Where can the other two sugars be used in your body?
Which sugar do you find a lot of in fruit?
What is starch?
Which gets absorbed faster into your blood, glucose or starch?
- BONUS QUESTION: What are some good and bad things you can think of from getting absorbed faster?
What’s the name for the way animals store glucose in your livers and muscles?
What kind of carbohydrates are we bad at digesting? What kinds of good things do these do for us?
Name one of the bad diseases you can get from having too much fructose.
- New book available: Begin Rust June 8, 2020
- There are no mutable parameters in Rust May 10, 2020
- A Lazy Rust Compiler April Fools', 2020
- Basics of Carbohydrates March 27, 2020
- Making nutrition decisions February 25, 2020
- The Warp Executable January 20, 2020
- Tokio 0.2 - Rust Crash Course lesson 9 December 5, 2019
- Down and dirty with Future - Rust Crash Course lesson 8 December 2, 2019
- Boring Haskell Manifesto November 21, 2019
- Haskell kata: withTryFileLock August 18, 2019
- How to lose weight July 15, 2019
- My new home network setup June 26, 2019
- Gym Etiquette Test April Fools', 2019
- Typing Resistance April Fools', 2019
- Shutting down haskell-lang.org February 18, 2019
- Call for new Stack issue triager February 12, 2019
- Mismatched global packages January 24, 2019
- Kids Coding, Part 4 January 18, 2019
- Kids Coding Interlude: the function game December 16, 2018
- Improving Commercial Haskell December 13, 2018
- FP Complete's opinion December 12, 2018
- New user empathy December 11, 2018
- Async, futures, and tokio - Rust Crash Course lesson 7 December 3, 2018
- Lifetimes and Slices - Rust Crash Course lesson 6 - exercise solutions November 28, 2018
- Lifetimes and Slices - Rust Crash Course lesson 6 November 26, 2018
- Rule of Three - Parameters, Iterators, and Closures - Rust Crash Course lesson 5 - exercise solutions November 21, 2018
- Why (I believe) Stackage succeeded November 20, 2018
- Rule of Three - Parameters, Iterators, and Closures - Rust Crash Course lesson 5 November 19, 2018
- Stack(age): History, philosophy, and future November 18, 2018
- Crates and more iterators - Rust Crash Course lesson 4 - exercise solutions November 14, 2018
- Crates and more iterators - Rust Crash Course lesson 4 November 12, 2018
- Proposal: Stack Code of Conduct November 7, 2018
- Iterators and Errors - Rust Crash Course lesson 3 - exercise solutions November 7, 2018
- Iterators and Errors - Rust Crash Course lesson 3 November 5, 2018
- Basics of Ownership - Rust Crash Course lesson 2 - exercise solutions October 31, 2018
- Basics of Ownership - Rust Crash Course lesson 2 October 29, 2018
- Kick the Tires - Rust Crash Course lesson 1 - exercise solutions October 24, 2018
- Kick the Tires - Rust Crash Course lesson 1 October 22, 2018
- Is it healthy? Depends on context October 19, 2018
- Introducing the Rust crash course October 18, 2018
- RAII is better than the bracket pattern October 8, 2018
- How I research health October 2, 2018
- Kids Coding, Part 3 August 28, 2018
- Kids Coding, Part 2 August 24, 2018
- Kids Coding, Part 1 August 23, 2018
- Post Fast Write-up July 15, 2018
- Thoughts on Fasting July 10, 2018
- Stop supporting older GHCs July 1, 2018
- Deprecating the Haskell markdown library June 15, 2018
- I am not snoyjerk May 28, 2018
- My open source goals May 28, 2018
- Building packages outside snapshots May 23, 2018
- Guide to matrix.org and riot.im May 14, 2018
- Stop breaking compatibility April Fools', 2018
- LambdaConf Haskell Hackathon 2018 March 28, 2018
- Quick guide to the Jewish Holidays March 25, 2018
- Haskell Ecosystem Requests February 18, 2018
- Stack Patching Policy February 14, 2018
- The Conduitpocalypse February 4, 2018
- SLURP January 24, 2018
- Breaking changes, dependency trees January 9, 2018
- Drop Conduit's Finalizers? January 3, 2018
- Review of The Bridge strength program January 1, 2018
- Dropped packages following LTS 10 December 25, 2017
- What Makes Haskell Unique December 17, 2017
- Stack and Nightly breakage December 7, 2017
- Future proofing test suites November 12, 2017
- Effective Ways to Get Help from Maintainers October 23, 2017
- Posture August 16, 2017
- Some Upcoming Crazy Thoughts July 16, 2017
- The Spiderman Principle July 5, 2017
- A Very Naive Overview of Exercise (Part 3) June 15, 2017
- A Very Naive Overview of Nutrition (Part 2) June 14, 2017
- A Very Naive Overview of Nutrition and Exercise (Part 1) June 13, 2017
- How to send me a pull request June 6, 2017
- Why I lift June 1, 2017
- Playing with lens-aeson May 29, 2017
- The Worst Function in Conduit May 7, 2017
- Stackage's no-revisions (experimental) field April 27, 2017
- Haskell Success Stories April 24, 2017
- Generalizing Type Signatures April 20, 2017
- Enough with Backwards Compatibility April Fools', 2017
- Better Exception Messages February 16, 2017
- Hackage Security and Stack February 14, 2017
- Stackage design choices: making Haskell curated package sets January 23, 2017
- Follow up on mapM_ January 19, 2017
- safe-prelude: a thought experiment January 16, 2017
- Foldable.mapM_, Maybe, and recursive functions January 10, 2017
- Conflicting Module Names January 5, 2017
- Functors, Applicatives, and Monads January 3, 2017
- Beware of readFile December 22, 2016
- Call for new Stackage Curator December 19, 2016
- An extra benefit of open sourcing December 13, 2016
- Haskell Documentation, 2016 Update November 28, 2016
- Haskell for Dummies November 23, 2016
- Spreading the Gospel of Haskell November 22, 2016
- Haskell's Missing Concurrency Basics November 16, 2016
- Designing APIs for Extensibility November 3, 2016
- New Conduit Tutorial October 13, 2016
- Proposed conduit reskin September 23, 2016
- Monads are like Lannisters September 12, 2016
- Using AppVeyor for Haskell+Windows CI August 31, 2016
- Restarting this blog August 24, 2016
- XSLT Rant Explained April 9, 2012
- Open Letter to XSLT Fans April 5, 2012
- Dysfunctional Programming: FindMimeFromData March 22, 2012
- First Post January 31, 2012