 So let's talk about formal languages. Oops hold on a second. When you read instructions in a human language you can generally understand what's written even if there are small errors. But for a computer the instructions are so precise that even one small error can prevent it from working. It's not that they're stupid, they are a bit stupid. Anyway even in day-to-day use we have situations where something absolutely has to be formatted correctly. You're not going to get what you want if you don't follow the rules when entering email addresses, typing in numbers or entering formulas into spreadsheets. What we need is a way to write down rules for what is acceptable and what isn't. This is what formal languages can do for us. Let's get back to the back end. Formal languages are even involved in delivering this video to you. They use to specify the format of the address of the page that this video is in, the structure of the page itself, the file format that this video is stored in, the software that is running this video and even the hardware on your computer that is running the software to render this video. Computer scientists use formal languages to explore all sorts of issues even including the limits of what can ever be done with computers. Here's a fun fact, we can describe any computer or digital device using a formal language. In fact formal languages even show us the very limits of what can be computed and we can prove that there really are mathematical problems that can never be solved by a computer. Well, mind blowing. But I'm getting ahead of myself. Formal languages are basically a bunch of reasonably simple ideas that have unreasonably strange names. Regular expressions, finite state automata, context free grammars. These techniques are used all the time in computer science and are worth getting to know.