Welcome back. Have you ever had a program such as a text processor or spreadsheet crash on you? That's an example of fragile code. Unfortunately, most of the software written today is fragile. A software makes up much of our infrastructure, and plays such a large part in our lives. We want it to work and work right, to be secure and robust. In Module 3, we're going to learn about this type of programming by looking at both fragile and robust coding styles. We will focus mostly on implementation issues. But we will discuss how design issues drive the implementation. Using code samples, we will explore topics like air handling, interfaces, token generation, and interpretation. We use an example a library implementing queues; creating and deleting them, adding and removing elements of them. During this module, we will see examples of incorporating paranoia, stupidity, dangerous implements, and magical thinking, and what happens when you don't use them. It should be fun. At the end of this lesson, you'll be able to explain the issues that can arise from fragile programming. You'll also be able to discuss how design issues drive implementation and distinguish between robust and fragile code. Finally, you'll be able to explain what can go wrong in fragile code and write a robust version of fragile code. Let's dive in.