[MUSIC] Hello again. Formal methods are not used much and when they are, they provide a high level of assurance that a program will work is expected. These methods are complex and require specialized skills and tools, but we can draw lessons from the techniques used and they will improve the security and robustness of the code we developed. This module picks up where the last one left off. Instead of examining problem code, we will look at informal, formal and ad hoc programming methodologies. Will consider how each is used to construct, evaluate and troubleshoot your programs. We will then look at two critical types of programs which must be secure logins and authenticating users. At the end of this lesson, you'll be able to describe how to use techniques that mimic formal methods to improve the robustness and security of programs. You'll also be able to compare and contrast formal, informal and ad hoc programming methodologies. Let's get started.