 Hi, welcome everybody to Analyzing Software Using Deep Learning. This is the last part of this course and what we look at here is approaches for modeling code and reasoning about source code using neural models that look at graph representations of code. And in particular we will see two examples of this, one that looks at ASTs, Abstract Syntax Trays of code and another one that looks at more complex graphs that go beyond ASTs and also encode data dependencies, control dependencies and some other relationships between different elements of code. In past iterations of this course we sometimes had guest speakers who would present their research in the context of this course. Now given the global pandemic it's a little bit difficult to actually get people to come to the university and anyway there are no students at the university but well if life gives you lemons you should make lemonade so what I'm doing here instead of having physically visiting guest speakers is to have virtual guest talks which essentially means I'm using the fact that there are existing talks recorded and available in the web that talk exactly about what I would like to present here in this course. So specifically we'll have two virtual guest talks here in this last part of the course. The first one is Iran Yahrath from Tehrnion in Israel who's going to talk about Code2Vec which is an AST path-based way of modeling and reasoning about code using attention-based neural networks. So it's a pretty nice idea that basically looks at ASTs and different paths through these ASTs in order to learn a lot about a piece of source code which can then be used for different tasks like for example predicting the name of the method that this code represents. The second guest talk that I'll invite you to watch here is by Miltus Alemanis from Microsoft Research in Cambridge UK who's going to talk about graph neural networks and how we can use them to model code. Where the nice idea here is that you can look at code not just based on the AST but on a graph that contains the AST plus additional edges that represent things like data flows and other kinds of relationships between the different program elements. So if you want to know even more than these two talks are providing then I'll invite you to have a look at these two papers that I listed here on the slide because they give additional details and also a nice summary of what is presented in the talks. So after this brief introduction I'll invite you to follow the links on the course page or also in the playlist of this course which will lead you to the two virtual guest talks that we're having here and yeah I hope you enjoy watching these talks and learn something more about these interesting models of code. Thank you very much for listening and I'm hoping you're enjoying this course.