 Welcome to lecture 22, and this is now the summary of the second part of this course. We'll go through what we did in the lecture content, and I'll try whenever we get there to discuss a bit what is technology-related content that we have been discussing, and what is more a theoretical principle behind it. Now let's have a look at the learning outcomes first. We have this huge list from the introduction lecture, and then you find on the web as well. And in the learning, in the knowledge and comprehension outcomes, we have covered everything. So you should know what client-side and server-side execution is. You should know what an HTTP request and a response contains, lists the different methods, explain what they are for, only for the ones that we have actually covered in the lecture, not the others. You should, for these methods, explain the features, for example, that they are even portents, save, and so on. Then we covered all of HTML, CSS, JavaScript, so whatever we did there, you should be able to define, explain the important things. We covered accessibility, so that's an important thing, primarily on an HTML level, like giving alternatives to pictures and so on. Given all the work that you have done now for the assignments and the lectures, you should be able, when you look at code, to have an idea of what it does, predict the behavior of how it's going to behave. Specifically for asynchronous JavaScript code, so that's a bit more the harder part when you have callbacks and so on. And then we went into testing. So discuss web application testing, discuss a bit the different methods that exist. That's primarily lecture 9. And then comes the server-side content, so you should know about rest, what the rest constraints are, and how this relates to actually implementing a restful API. If I give you any kind of code, you should be able to discuss the correctness of a response code or so on. And finally, we did web security, so there you should be able to discuss the all-wasp top 10, at least the ones that have been in the lecture. Now, in terms of practical things, application analysis, you should definitely, after assignment 2, be able to develop basic line-side applications with the whole range of HTML, CSS, JavaScript. You should be able to use Ajax, make in HTTP requests in the background. Not so much debug and testing client-side applications, since that was only in the lectures, not part of the assignments. Then you should be able to analyze source code for errors that might exist, choose the right method for rest and points. And according to assignment 3, be able to actually build a restful backend application. Database, we have only used in the lectures, so I've shown you how to do that. You haven't practically done that. And similarly, now in assignment 4, you are using an application that uses a database, but you're not implementing that yourself. So I don't expect much there. You should be able to analyze existing APIs and then point out problems there. And that's really based on, again, assignment 3 in lecture 15, 16 and 17. Deployment, you have done in assignment 3, so you should be able to do that on a basic level. And now, assignment 4, you should be able to do server-side application testing. The last part, develop tests for common web security threats is something we have not really discussed. And similarly, you might be able to look at web application code and find security threats, but that we have only done on a very, very basic level. So those are the application analysis. And then finally, we have to send this an evaluation learning outcomes. So a lot of that is beyond regular writing code and so on. But you should be able to sort of look ahead and propose improvements for code, actually improve existing applications, look at code and check whether there are error security vulnerabilities and so on. I don't expect much in terms of comparing different testing techniques because we haven't used that much. But then on the API level, you should be able to design a RESTful API, at least when it's not very complicated. You should be able to take an existing back end that is not RESTful and change it so that it is. And then on the broader level, you have done a bit of testing and debugging, so you should be able to sort of debate how important this is and what shortcomings there might be if you don't do it. And then finally, we have gone a lot into accessibility and to security problems. So in things that are more on the societal level of doing web applications. So that's something you should at least have a say about. So that's it in terms of the learning outcomes we've covered and I'll now go through the different lectures.