[MUSIC] Welcome to Part 2 of the Principles of Computing. We're glad to have you back, and we're excited for this next installment in this course. All right. Now, you don't have to take these courses in order but this is meant to be a continuation of Part 1 of Principles of Computing. So we do expect you to have an understanding of the material from the first part, the policies of the class, and, and, more generally the flow of the class. An understanding, you know, what you need to do when and how things work, okay? We're not going to repeat these things so if you did not take part 1, I ask that you go back and you take a look at some of the material in part 1 just to, you know, from the beginning and read the policies and procedures so that you do have this understanding. Okay? We are going to leave the most recent session of Part 1 for the Principles of Computing open for the duration of this class. So that if you took it, you will have access, so that you can go back and review the material as necessary. And if you didn't, then you can go back and you can figure out, you know, how the class operates, if it's not immediately obvious to you. Okay? All right. Now. Hopefully by now, you recognize that the idea of this class is really to get you to think. Okay? And we're going to continue that here in part 2 where I really want you to step back and take a principled approach to solving these problems. Okay? We really want to challenge you to think about mathematics, computation and thought and how they integrate well to allow you to solve complex problems using a computer, all right? And when we finish, you hope you will feel like you can use a computer to do interesting and exciting things that go beyond what you thought were possible. All right. And so that you can apply this principled approach to, you know, designing your software, to testing your software, to using mathematics and so on, to enable you to write good, solid, code that allows you to solve interesting problems that are of value to you. Okay, maybe you don't care so much about the programs that we've been solving here, but they're really just illustrations in how you can apply concepts and apply these principles to allow you to solve, you know, interesting and challenging things, okay? Now, probably you realize that this course sits in the middle of a specialization that we are running here where we have a sequence of courses, okay? And so I want to encourage you if you're enjoying this and if you enjoy this class after you've taken it, that you go back and look at the entire specialization of courses and you, you think about taking them all so that you can get the additional benefits that we provide by, you know, teaching you different kinds of computer science throughout this specialization. Okay? And on that note, if you do sign up for signature track here, rest assured that you can sign up in any order. You can take these classes in any order to complete the specialization. All right, we do encourage you to think about taking them in the order that we designed them, because obviously we had a reason for that. Okay, but don't let it deter you if you have not, that you can take signature track here, you can come back and take part 1 signature track later. You can take the other courses it, as well and we hope to see you throughout the see, the, the specialization here because we do enjoy teaching these classes and we hope you'll enjoy taking them just as much, all right? Well once again, welcome to Part 2 of the Principles of Computing, and I hope you're going to enjoy it.