# Q.E.D. Code

## By Michael L Perry

To listen to an audio podcast, mouse over the title and click Play. Open iTunes to download and subscribe to podcasts.

#### Description

Explore the intersection between software and mathematics. Michael L Perry takes you on a journey through the history of computing, information theory, cryptography, distributed systems, and everywhere else that math has influenced technology. Not only will you dive into math papers, but you'll also learn valuable programming techniques that you can apply in any language. Code Erat Demonstrandum

Name | Description | Released | Price | ||
---|---|---|---|---|---|

1 |
CleanQED 19: Dependency Tracking | The number of degrees of freedom in a system is equal to its number of unknowns minus its number of equations. That is also equal to the number of independent variables in the system. Dependent variables do not contribute degrees of freedom. However,... | 10/23/2016 | Free | View in iTunes |

2 |
CleanQ.E.D. 18: Paxos | Leslie Lamport wrote a paper describing the Paxos algorithm in plain English. This is an algorithm that guarantees that a distributed system reaches consensus on the value of an attribute. Lamport claims that the algorithm can be derived from the... | 9/18/2016 | Free | View in iTunes |

3 |
CleanQED 17: Pythagoras | The Pythagoreans were a cult of Greek mathematicians that believed that all things were composed of large enough integers. Their leader, Pythagoras, is best known for the proof that the square of the hypotenuse of a right triangle is equal to the sum... | 8/27/2016 | Free | View in iTunes |

4 |
CleanQED 16: Elements | Euclid's Elements takes a disciplined, formal approach to proving assertions based only on simple axiomatic statements. While most of these axioms are elegant, one of them is more complex and wordy. It seems as if it should be provable from the... | 8/14/2016 | Free | View in iTunes |

5 |
CleanQED 15: The Y Combinator | The Lambda Calculus uses simple replacement to compute expressions. However, it does not define a way to replace a parameter of a function with the function itself. That would seem to make it impossible to write recursive functions. However, with a... | 7/16/2016 | Free | View in iTunes |

6 |
CleanQED 14: Equivocation | Claude Shannon followed up one incredibly important paper with a second of even greater significance. In Communication Theory of Secrecy Systems, he analyzes cryptosystems based on the probabilities of certain plaintext messages given an intercepted... | 7/2/2016 | Free | View in iTunes |

7 |
CleanQED 13: The First Program | in a translation of a paper on the Analytical Engine, Ada Lovelace improved upon L. F. Menambrea's work by applying rigor to the calculations that he performed. But then she took things one iteration further. In fact, she took things n iterations... | 6/17/2016 | Free | View in iTunes |

8 |
CleanQED 12: Difference Engine | The Difference Engine was a mechanical computer that could calculate tables of numbers based on polynomials. The amazing thing is, though, that it could only add. How then could it accomplish this feat? By the method of differences! Charles... | 7/19/2015 | Free | View in iTunes |

9 |
CleanQED 11: The Lambda Calculus | Alonzo Church invented The Lambda Calculus as a simple set of rules that, when applied correctly, could compute anything that you could do with a pencil and paper. But all it is is simple replacement. Learn the basics of lambda expressions so that we... | 3/25/2015 | Free | View in iTunes |

10 |
CleanQED 10: The Two Generals Problem | Listener Richard Allen writes to ask about proving enough of a program correct to constrain the number of tests that must be written. I respond that you need both tests and proof. Otherwise, how could you know that the specification is what... | 3/8/2015 | Free | View in iTunes |

11 |
CleanQED 9: The CAP Theorem | In 2000, Eric Brewer presented the CAP Conjecture to the Symposium on Principles of Distributed Computing. This states that a distributed system cannot simultaneously guarantee consistency, availability, and partition tolerance. It can, however,... | 1/11/2015 | Free | View in iTunes |

12 |
CleanQ.E.D. 8: Constructability | Knowing that a directed graph is acyclic is useful. If you construct directed graphs in a certain way, then you can prove that they have no cycles. Design systems to produce constructable graphs, and you can take advantage of all of the theorems known.. | 12/28/2014 | Free | View in iTunes |

13 |
CleanQED 7: Topological Ordering | In a directed acyclic graph, we can use reachability to determine a partial order. But sometimes we want a total ordering of the nodes to accomplish some result. There are usually many possible total orderings that satisfy the partial ordering.... | 12/14/2014 | Free | View in iTunes |

14 |
CleanPartial Order | A fully ordered set is one in which we can tell for any two members which one comes before the other. Think integers. A partially ordered set, however, only gives us an answer for some pairs of nodes. A directed acyclic graph defines a partial... | 12/2/2014 | Free | View in iTunes |

15 |
CleanQ.E.D. 5: Fields and Properties | The number of degrees of freedom in a solution should match the number in the problem. If you have extra degrees of freedom, then you have to write extra code to keep them in sync. This opens the door for bugs. To count the degrees of freedom... | 10/26/2014 | Free | View in iTunes |

16 |
CleanQ. E. D. 4: Factories | In the .NET Socket API, if you call methods in the wrong order, the Socket class will throw an exception. Wouldn't it be better if it guided you into the pit of success at compile time? One pattern from the Gang of Four book holds the key to... | 9/28/2014 | Free | View in iTunes |

17 |
CleanQED 3: First or Default | FirstOrDefault is an extension method used in Linq. It is often used incorrectly, leading to exceptions or ignored data. Learn techniques for accessing members of a Linq expression without the possibility of errors. "Theorem" and "theory" sound... | 9/15/2014 | Free | View in iTunes |

18 |
CleanQED 2: Code Contracts | Code Contracts let you express predicates in C# code. This Visual Studio plug in and associated library checks your assertions. It can perform tests at run time, and even prove the predicates at compile time. Leonhard Euler solved the Seven... | 9/7/2014 | Free | View in iTunes |

19 |
CleanQED 1: Predicates | Apply the principles of predicate calculus to creating reliable software. Use a technique inspired by algebra to confidently change the structure of code without breaking it. And learn how the father of game theory paved the way to the digital... | 8/31/2014 | Free | View in iTunes |

19 Items |

## Listeners also subscribed to

- LambdaCast
- LambdaCast
- View in iTunes

- no dogma podcast
- Bryan Hogan
- View in iTunes

- Turing-Incomplete
- Turing-Incomplete
- View in iTunes

- The Type Theory Podcast
- The Type Theory Podcast
- View in iTunes

Discover and share

new apps.

Follow us on @AppStore.

Discover and share new music, movies, TV, books, and more.

Follow us @iTunes and discover

new iTunes Radio Stations

and the music we love.