how's it going my friends I am so excited to be back here is this on am I good ok they're giving me thumbs up I'm excited to be here how you doing my friend I'm doing great how are you why don't you introduce yourself my name is Eric Boyd I lead the AI platform team of Microsoft so the first question obviously in the most important that everyone has for you is are the robots taking over and how can we become their friends the robots are totally taking ok ok no I mean that question is such a great one to get I've gotten variants of that and I hear some of these variants by the way please get your questions in because I'm sure I've gotten some really weird questions about AI you know I was at an onyx conference and onyx is the open neural network exchange it's something we work together with Facebook on and Amazon and NVIDIA and invited the whole ecosystem in as a way to exchange you know models from one format to another but in a space it's a file format yeah and after sort of talking about onyx I got a question that was well have you ever had an onyx model you know like become self-aware and I'm just like it's a phone format that's really not how this stuff works so it was yeah there's a lot of misunderstandings around what AI is how it works and you know what people can do with it and so that's a lot of what we need to work through is hey I can do some really incredible things particularly in the areas of vision and speech and those types of areas but you know it's not sentient it's not self learning like if you have an AI model that plays chess really well it's not gonna clean your floors no I've tried and it made a mess and my wife got mad yeah that it made a mess I bet it didn't do it did do anything so here's here's a question for those that are out there they're like because there's a lot of AI they say/i that all over the place for businesses out there that are like ok I I think I need to take advantage of this where are some good opportunities to start yeah that's a great question I spend a lot of time talking to companies about what are their opportunities and what are the things they can do you know the the great thing about AI is it really is touching and transforming each and every part of every business and so even like the feature that we showed today some of the key notes the Intel Akkad if you think about that that's such a small feature in Visual Studio right just reordering the way that the intellisense or options come back but they were able to make that better and and you know by using AI and having a predictive model that knows what am i likely to be using it for they really made Visual Studio better how much better a half percent better but if you can do a half percent across all the different capabilities you can make so much better and so you know I was talking to one company it was a you know a beer manufacturer and I said well how are you using AI and beer manufacturing and his answer was we don't use it at all in the beer manufacturing we use it in everything else in logistics in the supply chain and predicting the inventory that we're gonna need and pre and forecasting the prices we're gonna pay all the other capabilities that they had they were using AI models and those areas of their business and so really it's it's that's what's so interesting to me is just finding each business and how its gonna transform each of their businesses and really challenging companies you need to have the creativity to figure out how are you going to actually make your business better where can a I really work for you and really learning those different areas so what is it good smell humor code smells I don't know where that term came out it was such a weirdo know that term it all his code smells like you're looking at code and you're like this smells like something we could fix it or make it better where are the AI smells so to speak in a business that you're like hey you know maybe you should consider using this program because I consider AI a programming technique that's right you know what our good clinic cases for it if you have something where you know you are you're applying some rules like the sorting algorithm and Intelli code right someone came up with a rule that said let's sort it alphabetically you can almost always find an AI algorithm that's going to predict or do that better fraud detection is a classic place where people have rules if we're get too many requests from this IP address is probably fraud AI is going to do fraud production prediction way better if there are you know financial forecasts I'm gonna look at these three things about you know the the industry or the trends and sort of project what our finances are gonna look like a is gonna do that better insurance industry is getting completely redone if you think about how insurance works today they look at five different factors about your driving history or your car you have or maybe your neighborhood and a I can consider ten thousand factors effectively okay and so those are things where a is gonna do a much better job of predicting and so yeah those are all things that smell like a I would do well in it so tell me about the requirement the data requirement for a I like cuz a lot look I've had people come up to me be like hey just do some AI and I'm just like well can you give me some data why is data such an important element of AI yeah one of the first things I talked to companies about when I meet with them is if you don't have differentiated data you don't have differentiated AI so what is the thing that you have that's special and unique about your business that's gonna make your business and your product better and so you know if a company is not collecting that today and a lot of companies I've talked to companies and they're like oh we throw all that data away and you're like that's gonna be the foundation that you're gonna build your models and make things successful from but you've got to understand what is that differentiation what is the thing that you've got that's unique about your business that you can build a great date asset on and then build models on top of that so before you even start thinking about AI you should probably think about saving your data just making sure that and saving collecting and really looking for places where you have data where you can tell this was a good outcome or this is a bad outcome right if you take insurance this person default on a loan this person didn't default on a loan so I can I use that to predict forecasting financials I knew why I predicted very accurately based on this information I predicted poorly here the more you have those those are the labels that's the stuff that's gonna feed into your model and it's really gonna you know be the way that your AI algorithm is gonna learn and so if you have that then you've got the foundation to do something interesting awesome so you're using the term a lot model yeah and for those that are maybe don't know what a model is how would you describe what is a model yeah a model is it's really just a system of predicting what's gonna happen based on some inputs and so I mean you can think of a really simple model you can think of Scott today Scott Guthrie was talking about I want to predict the price of a car and so a model could be as simple as you know I take the year that the car was and I take the condition of the car and I multiply it by three and that's the price of the car that would be a particularly bad model an AI model is now going to take those same inputs and come up with a price based on you know how a I sort of learned and so there are a lot of different ways you can represent models and think about them but at base that's what a model is it's something that predicts something awesome so we want all of your questions so make sure you get them in and I want to ask them for those that maybe don't have a lot of data and they want to do AI how can Microsoft help so there are a lot of ways that companies can get started there are a lot of use case that depends on what people are trying to do if you look at their speech you know if I want to add speech recognition to any application that I've got how could I do it well I could go and collect a whole bunch of speech people talking and transcribe that and then build a model that predicts that or I could use a card in my service which is gonna do it way better than what they're already doing so we have a wide suite of cognitive services that'll just really help accelerate people you don't need anything to go and use a cognitive service and you can do speech you can do vision you can do language you can do search all of these you know right off the bat you can go and get started with them yeah and it's really easy I have it here on my screen you go to a sure calm front slash cognitive I think it'll go right to it and like an easy one to look at is his vision basically I'm clicking it right here and if you go to for example seen an activity recognition and images you basically just upload your picture yeah it's really simple if you have you know you want to be able to identify the objects in a particular scene just upload it and it'll sort of show you the different things on it then you can go further with that the custom vision service and you can say everyone's favorite example if you watch the TV show Silicon Valley not yet but I will hot dog or no hot dog hot dog no hot dog this is a classic app really funny part of the the movie or the TV show you can build that in about I built it in two hours but that's because I'm not a great programmer anymore I usually happened I got old yeah I stopped programming as the main you know two hours though to build a hot dog non Hunter and it was really very good I did you use cognitive services what I did is I use the custom vision model okay and so I went to Bing and I searched for pictures of hot dogs and I found about 20 of them and I put them in there and I four pictures of things that weren't hot dogs nice and there's your classifier and it really was very straightforward to go and build awesome so here's some questions coming in does Microsoft AI support self training classifiers so I think we do with Auto machine learning so automatic machine learning will do that automatic machine learning is yeah so I guess it depends a little bit what they mean by self training classifier automatic machine learning is gonna do a lot of that what automatic machine learning does is you basically would specify here's the data set that I have and I don't know do I need a support vector machine do I need a neural network to a needle gistic regression I'm not an AI expert please just figure out the right model for me and so automatic machine learning is gonna do that for you and so that's available today you can get that as part of Azure machine learning in the SDK it's one line of code and it'll go and build you a model just based off a data set I have the line of code actually right I'm scrolling it here it is it's it's literally oh no that's the deployment sorry that's this here it is it's the auto machine learning yeah it's actually two lines but because one you define the problem and to run it it's actually one line right actually really nice it's really straightforward really simple to use and we're finding a ton of customers who are using this and it really broadens the scope they're really two ways I see people using it one is you know if you're a data scientist there's a lot of tedium that you go through in trying let's try the support vector machine let's try a learning rate of 0.1 and trying to change all these parameters now you can just sort of say just give me a model that's pretty good you know an automatic machine learning will just go and do that the other class of users are people who don't even know what they would need to do and they can you know if I'm a developer but I don't know how to do machine learning I can use automatic machine learning and get a model just from two lines of code so let's see if I understand so basically you have a bunch yeah III obviously usually I think of Excel because it's the canonical I say Excel and everyone's like oh I just pictured a row like a bunch of square of data and you say here are the columns I want to use to learn and then here's the column I want to learn you feed it in and then it does it and it's funny you say excel because in power bi in and we announce this as in preview that it'll be integrated as a wizard where you can walk through the experience doing exactly that and so create a model just from saying this is the column I want to predict and here's the rest of the data that I've got and that's pretty amazing I mean if you look at the code right here hopefully you can go to the screen you can see that there is this data script that's basically says get data and in there you define and you can see my get data script right over let me go here real quick get data script right here it's basically saying here's the X and here's the Y you want to learn you give it that and then it says I'm gonna run a bunch of model that's right it goes through it tries all the different models it's really great it's a it's a little meta it is a machine learn model that predicts which machine learned model is gonna work best on this set of data and the more you use it the more you use it on your sets of data it actually learns right from the history of how it's gone and predicted and it gets better because it has a great answer of like well how well did it predict against the test set and so the more you use automatic machine learning the better it's gonna work for your data the better is gonna work for you which is really pretty neat and the cool thing about this and this and this is the meta bit like it's using a recommendation algorithm so basically like your shopping cart when you go shopping online and it recommends other products we have that AI when you run a model and it says oh it did okay it starts to recommend others and it runs them it's pretty cool it's exactly it's the same idea so the exact same implementation was the same ideas that yeah really cool really simple to use and I think honestly going forward I think more and more stuff is gonna start fitting into that automatic machine learning paradigm I think you're gonna start seeing image classifiers work that way you know I all the types of things that you're doing today more and more of it's gonna fit into automatic machine learning and that's that's really our goal is how do we simplify this stuff because there's so many people now who the demand to have a machine learn model the number of people who wanted the demand freya is really high but there aren't enough people who can go and develop it and so how do we make it simple so that any developer can go and build and have an AI model you have developers today if you think about I use the analogy of a hash table developers use hash tables without even thinking about right they probably learned about it in college and they studied what's a good hash function and things like that no one's ever actually implemented that they just use a map and they just call it right how do we get that you know machine learning from the days where it is today we kind of need to be an expert in linear algebra and calculus and you know back propagation to know this is a space here's my data push a button and go do it it's coming and we're gonna get there but you know what it's still okay to learn linear algebra or calculus because it is dear to my heart because I'm a nerd I'm not wearing my glasses but if I was you would see love calculator oh and and this is what you're seeing a lot of people doing everyone who's a developer out there today is learning more and more about how to be a data scientist and it much like the hash table understanding the fundamentals is really going to be important to doing it effectively awesome so it looks like Tony from Brazil is watching we want to say hello to you my friend I have an idea in mind to build a face recognition for my business customer comes profile loads for receptionist can azure help me with this that's a great question so we have the Congress service the face recognition API and so you can absolutely go and do that and have it recognize your customers and and suggest a profile of it I think it's you know it's really great idea right a customer walks in and you say oh they typically order you know this particular type of cup of coffee or something you can start getting it ready as soon as they walk in and so for your regulars what a great experience right I'm coming back to that restaurant every time because they're gonna be ready that much faster they see me coming and that's amazing like just with computer vision it will tell you the box around the face right and then you can use in China together with with custom vision with faces of your customers and so you get the face box you take the box out and you give it to custom vision and now it'll tell you that's right you can build up the profile in the history over time and so I think it's a really interesting use for how face recognition they're actually already are coffee shops and China that do this really so absolutely you you walk in and they they recognize you and they get your drink already so I think this is gonna be coming more and more awesome so follow-on question but do you have an auto classifier where the data does not have predefined data so the auto classifier would group similar things I mean that's a really good question I'd like look I'm an engineer and most people don't know this but I'm like an AI person yes so like right away when you say group things I'm thinking like k-means or hierarchical clustering or Gaussian mixture models so there's already ways to do that yeah but we have the compute to do any type of machine learning I'll tell us a little bit about Auto a machine Azure machine learning service and what that is sure so you know you talk about you need access to the compute to go and train your different models that's one of the you know why is AI really taken off it's been three factors first is the amount of data that's available the advent of big data and product you know products like spark and an azure data bricks and now you can use those to really manage your large data sets the second you alluded to is compute and it comes in in two different ways one is it comes through GPUs which have really accelerated the amount of parallel computation you can do and things particularly matrix multiplication as well as the cloud where these GPUs are really expensive and if I need twenty or a hundred of them I don't wanna have to go buy them because I probably only need them for a few hours and so the cloud ability to go and use all that compute you know for the time that I need and only pay for what I use has really transformed it and then the third thing is the new algorithms coming up with you know deep learning and convolutional nets and things like that has opened up a whole host of applications and so with Azure machine learning what we're trying to do is bring that together and make it really easy for you to consume and so you know we do it through a Python SDK so you can be in an azure notebook or a jupiter notebook or in vs code or in pycharm or whatever you like to use you're right there in your notebook and you can get access to start training locally change one line of code you know now i'm accessing a whole host of resources on the cloud and you know managing the data that's stored in anyway you can store it on Azure data at everything from Azure data Lake to you know cloud DB everything is all out there cosmos DB awesome so yeah it's all really simple and integrated so we started with if you want to just get started quickly you should use cognitive services yeah if you want to customize a little bit we have some custom versions of cognitive services we mentioned custom vision there's also others you can I think you can upload your own acoustic and language models for speeds that's right you can use Lewis to start to tag your own data and get so there's ways easy ways to enter but let's talk now to those that maybe are more advanced that are starting to use like scikit-learn or pi torch or tensorflow can you tell us what the current development process is like and how Azure machine learning trimmers can help sure you it's interesting the progression you walked with we think about it as cognitive services are you know Microsoft's model Microsoft's data the custom services are Microsoft's model with the customers data and then when I want to get to a custom model well then it's the customers model and the customers data and so you know how do you do that if I'm building a model you know frequently what I'll do is I will come up with the set of data that I have that I think has the best features in it and I'll come up with the algorithm that I think I'm going to use and I'm gonna Rigaud and train it and then we call that an experiment and I go and run and I compare that experiment against the the history that I've got the test data that I've got and I see how well I performed and what you find people doing is this iterative loop over and over where they keep changing maybe I need some more features or made this feature is gonna make it predict you know in my car example maybe the year is not very interesting but the location the zip code is or something like that what features can I add in and so as your machine learning will keep track of all the experiments that you've run so that you can see which one actually perform the best without and you know basically keeps the history of what did you do different each time that you had it and then when I have a model and I'm ready to sort of deploy it then the you know Azure machine learning will put it in the model registry and so now I can keep track of all the models that I've got and as I deploy them I can understand where each model is and its life cycle is it deployed in which different systems and so it can manage that deployment and management of them much much simpler there a couple of other capabilities that I think are pretty interesting I talked about sort of the the the lifecycle of I'm going through all these different experiments a lot of times what I want to do is what's called hyper parameter tuning right each of these models there are probably a dozen different parameters the learning rate the number of nodes in each level all sorts of different things and so hyper parameter tuning is a way of helping you select the best ones without having to sort of painstakingly iterate through them all yourself and so you put all that together and it dramatically simplifies the machine learning developer the data scientists in getting their models develop they're become much more productive we talked to people who you know have spent weeks training a model and rather like we can get this done in a day I can do this much much faster and the important thing to note is that like look generally when I'm running these things I usually run it on my machine and then my machine is tied up and then I try to get someone else and I'm using PI torch 0.4 0.1 9 7 & 8 you know and Sally's using PI torch 1 preview because she's all way more advanced than I am and it's hard to get all these things to match up how does a skirmish e-learning help people that work in teams and data science teams what is it about Azure machine learning that will help people work together yeah I mean there are a couple things you can look at you know one is you mentioned like my machines all tied up that's the beauty of the cloud right is I can now use extra computation on the cloud I can put it in a data science VM I can put it on the training modules a whole host of GPUs and have sort of complete access to my machine the other is really the reproducibility I can take sort of each model and I can sort of run it the exact same way that you ran it and so yeah you mentioned the different versions and all the different things that I'd need to do you know makes it much easier to sort of say hey we're all sort of working on the same thing and share the code and and really stay aligned with it and that's something that we've learned internally you know we have on our internal services thousands of developers working on the same model and Bing and how do you do that effectively how do you have a thousand people try and make improvements to the single model you have to have all this infrastructure and so as we've learned from Bing all that infrastructure that we built is through our machine learning and that's what we're deploying in as machine learning all the things we've learned in making that product much better awesome well keep your questions coming obviously any AI questions that you might have we want to get those in so there was announcements regarding AI today can you tell us about those sure it's a couple announcements that we made first and foremost our machine learning is generally available I'm really excited about this we've had a whole bunch of customers try it and preview and their feedback has been really really great they think the direction that we're going with it has been fantastic we feel like the quality of the service the quality of our documentation understanding is all great and so we're happy to announce that it's generally available product and you know with that all the things that come with that automated automatic machine learning which we've talked about is generally available the hyper parameter tuning the experimentation capabilities the model management the ability to deploy all of that service generally available and something that people can go and take and use which is really exciting another thing that we announced today is the onyx runtime so I talked a little bit about onyx at the start onyx is this file format for exchanging models and you know for really making it simpler for hardware manufacturers to to optimize them one of the challenges that hardware manufacturers talk us or talk to us about is they say look I've got tensorflow I've got PI torch I've got chain ER I've got paddle paddle I've got cafe I've got all these different frameworks and people expect me to optimize each and every one of them how do I do that simply and onyx says hey you can just sort of make this in onyx model they can all convert into onyx and now you can optimize one of them what the onyx runtime is is this is the same runtime we've been using in Windows and Windows machine learning it's now available open source it runs on Linux it will run on Windows and it runs dramatically faster than sort of the native implementations and so we've seen internally you know virtually every model has run faster some have the average is probably around 2% two times faster but some have been as many as like seven or eight times faster and so this is available it's open sourced and people can go and get it I'm really excited about that as well another thing that we announce that there's sort of major areas around cognitive services we are the only company that does containerize Congress surprises people want to be able to run AI models and they don't want to just consume it in the cloud sometimes they have latency requirements or they have intermittent connectivity for some machine that they're trying to run it in and so they want to be able to take the model and run it on Prem or on the edge right and so we announced containerized models and today we announced that the language understanding model is also available in a container amazing Lewis Lewis Lewis is now available in containers so that's amazing I was recently like I was recently in in New Zealand and one of the hospitals there they wanted to use cognitive services to do OCR yeah but they couldn't do it because they could not but the records could not be upload to the cloud this really enables them to start to do that work that's exactly one of the use cases we see is you know regulations prevent them from moving the data and so being able to bring me the cognitive service directly to where they actually have the data opens up all kinds of doors that previously they couldn't do before and so we have had a ton of positive feedback from customers on it people are really excited about this so I'm excited to see that going out it's basically the first ever lift and shift down that I've ever seen yeah it's interesting all the you know everyone is trying to lift and shift up to the cloud and and look that's an important trend because the cloud offers a lot of advantages but as a company we've been very committed to the hybrid and making sure we work with people where they need to be and often that means hey some of the things we've done in the cloud need to happen on the edge there are real legitimate requirements a little why that needs to be done and so we want to make sure that that's support like just basically and here's a really silly use case that I thought of if you run a parking lot and you want to have an unattended parking lot and still charged people you can have a local model taking picture as cars drive in with OCR getting license plates that's right all sorts of examples like that where you know we hear of manufacture of companies that have manufacturing plants that you know their connectivity comes and goes right they have vehicles that they want to drive out into the field that they might not have any connectivity at all and so to be able to still run models locally these did a lot of great examples with drones they want to fly drones along power lines and sort of see hey are there defects and the power lines and things like that things they need to go repair you could have someone drive for thousands of miles you could fly a drone and have it take pictures say this is where you need to go to that's awesome and so yeah it works great so here's a couple questions well ml dotnet expand to training framework so I don't have to learn Python numpy tensorflow PI torch and I can rather stay in c-sharp or I feel at home so I'm all that nut has a whole host of algorithms where you can it you can train models directly in c-sharp in ml dotnet and well that net again grew out of internal technology that we had were a bunch of internal developers use C sharp and wanted to have a good framework for developing their models in c-sharp and so we've wrapped it up and made it ml dot and that is something that now you can go in and train models in c-sharp you know we have a ton of developers in c-sharp that are really not well served by the ml community because the ml community says everything has to be in Python and so being able to have ml net as a way that you can now stay in c-sharp is really pretty interesting for people and you know there's still a ton of activity happening on Python so I wouldn't necessarily discourage you from learning Python because that's where there's a lot of value being created but absolutely I'm Ella and that's gonna let you stay in c-sharp awesome next question ai is more than just image recognition what about searching for text and dynamic images kernels your engine is not accurate and cost per transaction forces us to use on-premise solution interesting so I'm not really sure what they mean about not dangerous or dynamic images yeah I mean maybe in videos or something I mean so the the OCR solution that we have I get benchmarks on all of our under services on a weekly basis we're beating everybody else with OCR so I believe we have the best OCR solution that's out there it really performs quite well and you know we have I talked to our researchers they are very proud of the techniques that they've used some of those some of the tricks that they've done in their models to make it really perform so well you know additionally with images you need to sort of talk about finding different things within the image I mean I love the example today that you had the NBA example showing really the face detection working on all sorts of small areas there's also logo detection right and being able to find the logos and all sorts of different places in it and one of the places where we really pull all this together is a knowledge mining right so you take exactly what you were doing and now you've got your extracting all this information from across an image and some of it is OCR some of it is looking for text in an image some of it is face recognition on the image some of it is sentiment analysis on the image or on the text or whatever it is I'm building an index that's now searchable and brings all the you know the named entities you can sort of think of whether they're people or places and what's the relationships between them you can bring all that together and so knowledge mining makes that really powerful now and I will say for for you that that submitted this question like if it's not working for you can you email me and I'll look at it because I've seen our OCR engine get like words behind chain-link fences that say stop that are crooked and give you the right bounding box it's ridiculous I've even seen it there's you love the blacked-out text where they used a magic marker and you can still kind of see the text interact of it and our OCR is telling you what the text is underneath of it which is really very cool it's amazing okay so tell us a little bit about some of the exciting things that you see some of the customers doing because one of the problems with this technology is people have a hard time like saying they once they get it they're like oh okay I can see how this works yeah but they have a hard time seeing where it might fit in there in their business what are some exciting things you're seeing customers you know there's been a lot of interesting examples you know one of the things I may be more fun ones is you know we've talked to shell and so shell has gas stations of course all around the world and so they put cameras in there gas stations and what they really want to detect is fire which is a big problem at a gas station but what they also are detecting are is the person who's filling up with gas is he's smoking and if they are they want to alert the attendant say hey go yell at that person it's really dangerous to smoke at a gas station and so lots of applications like that we see a ton of image classification applications companies you know Jabil is looking they manufacture chip boards and so the last step they wanted to sort of take an image of it and see did we miss any of the solder is in it is there anything any defects we can see with this and so just improving the quality that they have there we see a ton of Bott solutions people are looking for BOTS you know often in customer support can I deflect you know twenty percent of my customer support costs and save myself twenty million dollars while giving my customers a better experience we see virtual assistants where people want you know their branded experience their voice you know sort of interacting with a customer in a virtual assistant way so we see a lot of solutions there so yeah just a ton of applications across the board awesome so we have a question coming in how could I use AI to help with accounting such as invoice coding so I'm not an accountant and I'm not entirely sure what invoice coding is but I'll guess um you know presumably it sounds like a classification problem right I have an invoice come in and I need to decide which budget do I charge it to or which type of invoice it should be or anything like that there are a number of different ways you can do it depending on sort of higher invoice comes and one is you can do image classification if you have an invoice that sort of looks like image one or an image and something else that looks different you can do it that way the other is to build sort of text classification and sort of understand what type of system this is but that's the standard classification problem and that's the exact example of what I'm talking about of each business and each industry needs to find the ways that things are changing for them and how they can really use it to make their business better where you know if you can speed up your your classification on your accounting invoices and have better accuracy with that you just get so much acceleration from that as a business and so really finding those ways that haven't really getting the industry to have the creativity to understand one of the places they should be using this technology that's gonna be one of the most exciting things over the next few years I found earlier Mike early in my career as a programmer anytime someone wanted me to optimize something I would look for tasks that someone repeated exactly the same way off that's right now I feel like when I'm doing AI my particular smell is if someone is like altering code like point seven to 0.5 or adding extra if statements and then deploying yeah like for me when you're doing those kinds of tweaks where you feel like you need to take a shower afterwards as a coder that's a good place to start thinking about using a on they're using rules to make a prediction that's what you're sort of describing should it be 0.5 is the threshold should it be point 3 isn't threshold and you know this is where I say you saw this in fraud a lot and I get a thousand requests from the same IP is probably fraudulent and you know I remember the early days when I was working on fraud you know AOL dial-up modems were a huge problem that tells me how old long I've been working on fraud because they all came from the same ip address and so you shut down all of AOL from their one IP address and they and I are models gonna be much better to learn that hey they're different patterns that I should be looking for and so instead of having these broad course rules I'll have these you know I can really pull in a thousand different features in and build a model around that let's talk a little bit about sort of the elephant in the room and this is important because people are looking at this and they're like hey how much is this gonna cost if I want to use if I want to build my own machine learning model and Azure machine learning service is this gonna cost me a lot so the beauty of using the cloud is that you use only what you consume right and so the cost for GPUs if you were to go out and buy a whole host of them they're tremendously expensive and so the rates that you can use when you're using the training service you know is measured in you know the tens of cents per hour and things like that so dramatically cheaper you know building models yeah there's cost associated with it but it's it's not exorbitant this is something and the benefits that you get from it on the other side I don't think I've seen anyone come back and say hey we're not gonna build this model because the the training costs are too high and here's the thing like I I've laid down an azure machine learning service workspace and we basically lay down for things we lay down a pin sites which is nothing yeah we lay down storage which is empty yeah right we lay down a CR which there's a free version yeah right and then we lay down so app insides Azure storage ACR and there's there's one more thing that I'm forgetting happens science as your storage ACR and there's one more that'll come to me and compute back oh yeah the computer yeah the compute stuff and like you and even the compute isn't laid until you specifically specifically asked for it and so you can also create a compute environment that has zero to n nodes yeah and it won't even run yeah I mean that's you know I honestly I don't know how everyone doesn't develop on the cloud these days the the economies of scale that you get from being in a cloud are just they just give you such a better efficiency from that it's pretty amazing okay so we've got about three or four minutes left where can people go to find out a little bit more about this AI stuff and how can they like get start like if you're a programmer and and because you already know all about all this AI stuff what would you suggest someone go do right now I mean the things that the easiest way to really get started is to go and look at the azure notebooks and start with they're the azure notebooks will walk you through how to use Azure machine learning service notebooks are such a great environment for learning in because there's a description of what you're trying to do right in line with the cell that executes the code you can change the code and continue to execute it and make it just go right there in line that's the thing that I would recommend everyone go and do it'll both you know depending on sort of what you need to learn if you need to learn how the services work they're great document they're great notebooks sort of walking you through how to use the service if you need to learn how to build AI models there are notebooks that'll show you hey here's some of the simple iya models do I want to do like you know the classic amnesty I can type draw number and sort of have it recognize you can those are really straightforward ways to go and do that I just remembered it's key vault is the last one so there's four things we lay down storage app insights key bald and Azure as er a CR right which is as a container registry okay so I figured I'd show just a little bit of its what this looks like because a lot of you are probably wondering what this looks like and like it's really simple and the cool thing is that the part that maybe we haven't seen in Francesca's showed that a little bit during Scott's demo is we actually have these amazing integrations individuals to your code where I can go in and submit experiments by right-clicking right or viewer experiments or attaching right and and that's that the coolest part right and the other thing that I really liked about this that I've used so far there's a team of like four or five of us that work on these models and all of us can see what all of us are doing yeah like here's an example that you talked about hyper parameter tuning yeah it ran 20 experiments and notice that here there's like this green line it actually stopped running it because it's like yeah this one didn't work what a type of rider is not working and that's cool because initially like usually I'm running a for loop and spanning over hyper parameters like the learning rate or momentum or whatever here it's a smarter for loop because if it's within and I use the bandit method if it's got 20 percent it's gonna kill it now and that's a great example of you know usually you'd have to sort of be sitting there and watching and tracking having it basically printf hey this is what's the learning rate how it's converging you know high parameter tuning is just gonna do that for you and so it's it's really saves a ton of time for you and the other thing is and this is the part that's really cool here's all the computer environment you see on my computer we have like some batch AI we have some kubernetes services in our compute and it's basically we just submit and forget and then we can see all the output it shows us all the output in notebooks it's amazing now here's the the part that we were talking about models to me are like the executable part of a on yeah that's right it's like it's like when you compile your code to get this assembly I feel like that's what a model is - it was a great analogy you put something in and something comes out and as a programmer it's something that we want a version yeah and in here you can see we are versioning all of the models that's right and then we can marry models with scoring files to create images and then we can do deployments and so for example you can see the simple m nest service right here I wrote it like a cheesy little app here where I submit like I can draw a number this is the cheesiest version the cheesiest thing but you can see it returns things from me directly from the service and I'm gonna make like weird numbers and you can see that oh it really thinks it's a 4 but if I start to do crazy things like this you can see that it's gonna start to be sure about other things right and it's it's pretty cool that you're able to go from idea to submit a job to save a model to create an image deployment all within the same environment yeah I think it's really important that the software development lifecycle for models is different than for software so it is and so understanding what are the tools that I need and how do I really use that more effectively those are the things that are gonna make you productive and successful in building your models and deploying them if you if you try and do it you know sort of the standard software way you're gonna have a hard time figuring out how it all fits together awesome well anything else to finish up with my friend I'm really excited that Azure machine learning is GA I think there's gonna be a ton of amazing uses for it and I'm excited to see what people will do with it well thank you so much for being with us Eric all right well the show is not over we have my amazing colleague Brian Benz just over there with Beth to talk all things java let's go to that
Monday, 21 October 2024
Architecting NET Microservices in a Docker Ecosystem
all right everybody how's it going down Netcom 2019 we got Hamidah here to taco talk to us about micro service that net micro services and docker take it away Hamidah hello hello everybody hello my name is hameed are very I am Microsoft MVP in developer technologies and today I will present a session about architecting mile marker services in dotnet car and using the Kuroko system so I will share my screen to start not shown up yet up there it is so during this session we learned how to work with the microservice architecture pattern and docker containers using the.net car 3 platform to build the distributed system we will start by talking about the transition from monolithic architecture to an architecture that consists out of small and independent services that you can scale and dependently on your difference software cycle from development tests to production environments and before talking about micro services we need to understand the difference between traditional application approach and micro services application approach any application is built as a collection of services and can be the development tested version and deployed and skillitz for monolithic application scales is done by cloning the app on multiple server here which pieces server we means VM several machines but for micro services scale is done by deploying each server and dependently with multiple instance across servers or VN we will start by presented monolithic up a predication approach based it on a live application here we have the presentation value that presents for us do all user interface it can be web mobile or desktop application the service flier is responsible for handling HTTP requests and they're responding with in either HTML or John or XML for with api's for example the business logic is here with the treatment though we can say the processor of our application the database access layer is the data access object responsible for access to the database despite having illogical modular architecture the application inspect packages and deployed as a monolith monolithic application arm all of single complete package having all the related needed components and service encapsulated on one package but for micro services the idea it's really some it can't set to sleep to split your application into a set of smaller enter connected services instead of building a single monolithic application and each maker servicer is a small application that has that has its own eggs egg on architecture consisting of business logic along with various adapter so microservices can expose or Esper for example for the case of api air pc or massage basic api and most services consume and he is provided by other services and micro servers are deployed and dependently with their own database their service saw the underline here as you can see we have many technologies and many patterns but if you won't use micro service we have mam more and more patterns like bounded context that we know before I use it like domain driven design secure ace and domain even the main events mediator we have many many patterns that we still can use a few micro services and we have many technologies today we will present docker containers for example and we talked a little bit about Orchestrator developer consider micro service as architecture style that promotes the development of complex applications as a suite of small services based on business capability and multiple and diffident subsystem in the form of anonymous services and the following pictures show the micro services architectural style here we can find the various components that we can find in a micro service architecture for example we start from the clients that communicate with API get way that is sure that serve as a client and ponds or we've talked about that after and we have the identity provider that managed the identity information it's related about authentication within a distributed network and the API gateway is communicated our services here we have poor for example services and we we find service discovery management's that static continent it's like page and CDN here I will talk about the importance of API gateway in micro services it's sit between the client and services it act as a reverse proxy routing requests from the client to the services it may also perform various cross-cutting tasks such as authentication we find SSL offloading SSL termination rate limiting etc if you don't deploy gateway the client must send request directly to the front end services it creates two coupling between the client and the back ends and the client needs to know how do individual services are decomposed that makes it harder to maintain the client and also harder to refactor the services now we need to deploy our services we consider that we created a each service so we build our our micro service architecture and to do that we will use for example docker container so what's local doaker its technology that allow the creation and use of container and local developer and this is admin to so easy deploy that application is sandbox to run on the host operating system to start our demo we need to have a Windows 10 professional and enterprise because we can't understand the docker desktop for windows in Windows 10 home we need Visual Studio 2019 but 2017 it support docker and docker for a desktop for Windows and docker tools now we will try to start creating a speed net car 3 solution but before we will try to architecture I will go now to the demo here I have an old solution created from four years ago this old solution I base it on on Web API create by with API the old the old way of with API as you can see here we have the service line it includes many controllers I had many controls to manage my application here and we have the business part here it's divided by application and domain we have the oppressed actually this is the database it's a layered application and I live the web parts it's it's a web angularjs inside in dc4 it's all the application as I said and I would like to react at a to do micro service architecture here and to start here I created a blank project here it's a blank project and ready created some Web API for my AP is but we will do that again now so here in Visual Studio 2013 I have a blank solution and I will add a project here and we'll choose is P dot net web application for example for me I choose here I have configuration service user accounts I go back to the old one I will choose for example here contacts API I would like that this the control will be separate services as API sorry say here contacts service for example and here create and here we have any speed net car 3 but already launched it from today's we will use this and here as you can see in advance its parts we we are requested to to say enabled docker support here requires dhoka dhoka the desktop here i have the application the docker application desktop as you can see here it's docker is already running and here we can choose between Windows and Linux for me I will keep windows because I am in I'm in Windows container here but if we change near pullings we need to switch to a Linux container in docker desktop here I will choose API API and we click on create here and here as you can see our docker file is already created and if you want to check yeah absolutely so we have on what we need to lunch token and here we can launch docker here you click on docker to be able to see to to deploy my web api on docker might will be in my machine locally in doha desktop so here the rate around okay but because it's not there we need to do to say that so do set up projects to be primarily one so first it was on the web but here we can launch docker and again so we were waiting just to see so when you try to check out the image in docker waiting to hear we can comment line we say docker images and here we have our complexes the our image this is the image on docker and we can create more than one image for the same web api basis it's really important than one of advantage of docker containers and micro-services and we can do the same thing for whip-it for for the presentation layer for example if you want to create if you want to create for example here I want to create empty see your project and we can do the same thing here and you can say for example here this is webparts microservice for example create and we can choose NV severe and we check naval check naval doctor support but you can't create and you can have the same thing here the for docker file will be created we set it as start projects and we can mash it on docker it will be a web application but we know T if we check again token image we will find this project yes this one and we try to check here so we go back to our presentation here so in previous movie movie are we started from an old application that include many many layers many services to in a service layer and we created a new solution blank solution and we added four we are able to add more and then API and the web application and this is one to start my our micro services and we deploy this in a local but in a we need to deploy this in within the clouds and in Asia we talked about cloud we talked about eager containers in angel here we have the alpha services that we know to deploy many many application the service fabric is it's an important container and Orchestrator to kubernetes - it's another Orchestrator and container and we have a container instance and back in our case we will try to use the registry container registry in asia to deploy it's easy from from the vision so we go back to our application just to show you how we can do that so start from here we can choose web or any web api application here we choose publish and as you can see here we find all all publish target but that we can use it we have the opt services the container registry the containers s3 is dedicated to deploy our images to push them into Asia and we can create a new one here from from visual studio it will be created in our reporter or we can select from exist think a jerk on the container if we already have the containing created in Asia portal we can add it and we can use the docker in the curve it's dedicated it's an open source litigated to docker or we can use a custom server that configure it in in the hostel so here we click create we create our profile and we give Venice prefix because here you it creates a name and our subscription we define research group and we click and on three days for here so it's deploying step it takes few times because it's deploying into Asia to create our container container resistant include or company that you need it can be grouped using your research group here and it's here when we leave to publish it will be published in our portal importer of leisure and we can after go through see ICD pipeline or create up services if it's it's a web application to show it or if we include throughout the program for IP I to display our API what you have so you go back to our our invitation here sorry we talked when we talk about contains docker we need to talk about Orchestrator in Asia or here for example here we have two known Orchestrator in Asia but the youth is different so if we use the kubernetes with the with docker or service public you need to know to choose it depend from your micro service it's really based on container only or it's based on plain process state of services and you find the mullennix and the windows it's the same it's not a problem and as now here are Cuba natives it's open source for automation deployment scaling and operating of application and we can we can pay in a jeweler for VMs in cluster and you key to create to have this place pay-as-you-go here and it's is container after structure and the same for syllabus fabrics so this session was an overview about micro services with docker micro services allow to in to evolve deploy and scale part of application and dependently but we can't use this architecture for small application because it's dedicated to distributed the software challenge and a challenge and the for scalable and long-term evolving application thank you if you have any questions please and you can send your questions to my Twitter and you can found more detailed at the source code in my kit about this this example and other example hey I mean thank you so much we've been looking on the chat and we don't see any questions so well thank you for sharing your Twitter so again if anybody has any questions go ahead and use Twitter to ask Amita those questions the github repo is right there so we can share that thank you so much that's great and thank you so much for taking the time to share your knowledge and your experience with us we really appreciate that it's you know people like you is what makes our community strong and it makes us better all right so or yet awesome so all right everybody we are going to be going into our next speaker and let me check that here we have Santosh talking about cosmos DB for asp.net so we'll get that going here we'll be right back
Alice Steinglass Code.org expanding access to computer science
>> It was an 8086. At the time, 8086 was already out of date, but I had one. It wasn't until about senior year in high school when I realized what I could do with it. I have a little brother, and so I made it so that when he tried to log into the computer, it would just beep really loudly. And then it would put up this huge ASCII warning error that was like "Intruder, intruder." >> "Intruder alert. Intruder alert." >> "This intrusion has been logged." It wasn't actually logged, but it looks scary. >> Hi, everyone. Welcome to Behind The Tech. I'm your host, Kevin Scott, Chief Technology Officer for Microsoft. In this podcast, we're going to get behind the tech. We'll talk with some of the people who made our modern tech world possible and understand what motivated them to create what they did. So, join me to maybe learn a little bit about the history of computing and get a few behind-the-scenes insights into what's happening today. Stick around. Today, I'm joined by my colleague, Christina Warren. Christina is Senior Cloud Developer Advocate at Microsoft. Welcome, Christina. >> Thank you so much. I'm happy to be here and I'm excited to learn more about today's guest. >> Yes. So, we're having Alice Steinglass on the show today. Alice is the President of Code.org, which is an organization doing stuff that's super near and dear to my heart. So they are trying to teach every child how to program, and they partner with teachers in K through 12 across the country and increasingly across the globe to try to help make computer science a part of the K through 12 curriculum. >> You have a lot of similarities with Alice because you also have an organization that has a similar mission? >> Yeah, I do. So, one of the things that I've been trying to do, and like this podcast is a little bit of a reflection of that, is to show the truly diverse set of faces and tell the diverse set of stories that lead people into computing and what their careers look like. Because when I look around me and like I see all of the amazing people who are helping to build the technology that we all depend on, it's not this monolithic thing. There are just so many different folks, genders, and ethnicities, and folks who came from like their parents were college professors to folks like me who no one in their family went to college, and it was an interesting quirk that they ever found their way into computing. One of the things that we know both from my work, the Behind The Tech, and my family foundation is that the earlier that you set the spark of interest in a child and the more of the barriers you get out of their way to pursuing that is an interest and maybe ultimately as a career, like the happier, more successful they'll be. >> Definitely. I think a lot of people have an orthodox path into getting to tech. I got into it because I had that sheer force of will. >> Yeah. >> But I think about kids that I went to school with and if they'd had those opportunities that were accessible to them like the way that code.org is making things accessible now, how different things might be. >> Yeah. Sometimes your journey can be sensitive, so to speak. So, like one thing can completely change your path. Like with me, I was lucky enough to get into a science and technology high school when I was a senior. If I hadn't had that experience, I don't know what my career would have looked like, whether or not I would have chosen computer science as a major when I went to college or maybe even whether I went to college at all. So I think what that tells me is let's do everything humanly possible to expose kids to as many of these opportunities as possible. It's not that I think everybody should be a computer scientist, but you should at least have the opportunity. >> Definitely. >> Thanks for chatting, Christina. We'll reconnect later at the end of the show. Coming up next, Alice Steinglass. Alice is the president of Code.org. Her teams build curriculum tools and software to support introductory computer science classes for students from kindergarten through high school. They also partner with education and software companies across the industry to run the Hour of Code, a global movement reaching tens of millions of students in over 180 countries. Alice, welcome to the show. >> Thank you. >> So, one of the things that I would love to start with is your journey. So, how did you get into computing? >> I'm so lucky to be here, but my journey was not the journey that a lot of people had. I didn't play with computers from the time I was little. I didn't take them apart for fun. I actually got into computer science because my school taught it and- >> This is your high school? >> Yeah, my high school. I didn't really know what I was signing up for. I was into math, I was into other things. I said, "Okay, I'll try this. I hear you can make things with it." I took a class and I loved it. I had a final project, where I built a game called Snake, which similar to Tron what everybody built it back then. But I finished it, it was fun. I tested it, I tested it, and then my teacher ended up staying up like all night testing it and found out that the high score could go even higher. It broke if you had more than like five digits in the high score and I said, "How did you find that?" He said, "We were playing it all night." What other class do you get to make something where your teacher plays it all night? >> Yeah. So, was it the whole thing, was it the technical challenge of writing the code, was it the fact that you made something that someone was a little bit addicted to? >> I think it's all of that. I think for me it's like the best of Math and Art and English, and all of that put together. I always liked Math, but Math, most of the problems have an answer. There's no creativity. Here's a challenge, can you figure out how to find the tip-top of this curve or something? In computer science, it had that same logical backbone, but the problems were open-ended. You're never done with a project, and even in real world. When we're building software, we're never done with it. So, we're always making it better, you can always improve it, and there's this blank slate aspect where you can create something. I loved art, I love creating, and I think computer science is like creating both logic, and then it gets to move at the end, which is cool. >> Yeah. It's super cool. So, when did you get your first computer? >> When did I get my first computer? I had a computer when I was younger. I was lucky. My father's office was selling off cheap computers, older computers. So they sold them to the employees for I think it was like $50. He got me an old computer. >> Wow. >> It was an 8086. At the time, 8086 was already out of date, but I had one and it just sat in my room. I didn't code it. I didn't program it. I used it. I've wrote papers on it. It wasn't until about senior year in high school when I realized what I could do with it. Once I figured out computer science, I did go back and code it, but I'll have to tell you. So, one of the first programs I wrote for it, I had a little brother and I made it so that when he tried to log into the computer, it would just beep really loudly. And it would put up this huge ASCII warning error that was like, "Intruder, intruder." Then, of course, it named him because there's no other possible intruder in my house other than my brother. So it would say, "Seth, you were trying to break into this computer. This intrusion has been logged." It wasn't actually logged, but it looked scary. >> Yeah. This is the thing that really amazes and interests me about computing. There's this notion I think in the minds of a lot of people that there is one stereotypical path that you're like a nerdy teenage white boy and you get your machine when you're 13 years old, and you start writing your first code. This notion that you have to be a prodigy to get in to compute. But when I actually talk to people, everybody's story is so different. Anders Hejlsberg, who we interviewed in a previous episode, he didn't start coding until he was in college. So, some people early, some people late, and the motivations are all over the map. Some people just love the creative aspect, some people love the fact that they can make the machine do something. My kids love that. It's like, "Okay, I can tell the machine what to do. I can't tell mom and dad what to do, but the machine will listen to me." >> Yeah, absolutely. I think it was a little intimidating for a while because there's this language that goes around computers, and there's this barrier where you feel like if you don't speak the language then you probably can't learn computer science. But the truth is you absolutely can learn it, and the language is just a false barrier. I went to college. I heard all these guys talking about things like bulletin board systems in the '90s, and it was like a thing then. They were all on it, and I have never been on a BBS in my entire life. You think, "Okay, BBS is some technical world, and I can't possibly code if I don't know what a BBS is." It turns out that a BBS is just like Reddit, but in the '90s. >> Yeah. >> You absolutely don't need to use Reddit to do computer science. I mean, I love computer science. I love the logic. I love the challenges. I love building. But to this day, I still have not done BBSs, and it's okay. >> It's super okay. >> Right, and it's this language thing. It's this language barrier that just, it makes you feel like you can't but you absolutely can. >> Yeah. So, from your senior year where you took your first computer science course, what was next? >> So, I went to college and at that point, I was already into it. Actually, that's not just me, that's really common. What you see is that women who take AP Computer Science in high school are 10 times more likely to take it in college. That's one of the reasons we're fighting so hard to get computer science offered in high school is because it helps dispel these notions. It helps make you feel like you can do it. So, I went to college and I knew I wanted to take Computer Science. I majored in Computer Science in college. I did the typical startup on the side. >> What was your startup? >> It was dynamicfeedback.com. Yeah. We partnered with a professor who is doing management consulting and worked on how do you help people take 360-degree surveys to learn how to be better in the workplace. It was interesting, it was fun. Like everybody's first startup, we totally underestimated the amount of code that we need to get written to do what we thought we would need it to do, we worked all night. Part of it for me was the experience of learning that a company is more than just code. We had to figure out things like customer support and lawyers, and I had to find a space. >> Really unsexy stuff. >> Yeah. Where we actually go to sit. So, that was interesting. I ended up coming out to Microsoft after that and I worked on. >> How did you decide on Microsoft? What year was this? >> This was 2001. >> Okay. >> I was working on the first version of Xbox. >> So, super exciting. >> It was super exciting, and then I got to work on the first version of Xbox Live. What's weird is I'm not a hardcore gamer, but it was still a really interesting set of problems. I think, sometimes not being a hardcore gamer actually helped. I was working on the high score system for Xbox. I kept talking to people and everybody had a way we should do high scores. They have to work like this because they work like this is my favorite racing game. They have to work like this because they work this way in my favorite shooting game. Coming in as a neutral person I said, "No, I'm going to look at all the games and understand how high scores work across everything." I went and played 50 games and learned about how high scores worked in every game and talked to a lot of people, and then, designed a system to allow any game on Xbox to use the Xbox high-score system. So, it was interesting. >> Yeah. >> Interesting work. >> Did you have a course charted as you were going one thing to next? The reason I ask is, I think, everybody has such a different path through their career in computing, and they're all good and interesting. >> I think in retrospect, I could probably tell you a story. But the reality of it is that I think a lot of it is happenstance, a lot of it is you don't know. >> Yeah. >> You try something and you find out you like it or you don't. The one thing that I would recommend to young people who are starting their career is to try some different things. I think you can get stuck in one thing pretty easily and not even have a plan that that's what you're going to do you just end up doing it. The easiest time to switch and try some new things is in your 20s, when you're not an expert yet in one particular field. So, one of the things I did do was I tried different technologies. So, I worked in Xbox, I worked on Live, I worked on Services. I was in charge of all of the APIs for Xbox Live across the board, which is really interesting. I went from that to looking at the Toolchain that developers use and working on XNA before it was XNA. Then I went from there, I said, "What's the opposite of everything I've ever done?" Right. I've been working on more the APIs, I haven't touched enterprise software and enterprise services and I just want to know what the other side looks like. >> Yeah. >> So, I went to Office, I went over to Microsoft Project partially because it was just a very different space. I figured this was a good time to learn about a different space. I had a lot of people who thought it was the most insane thing they'd ever heard. Right. Why would anybody leave Xbox on purpose to go work on Project? But I actually found it really fascinating and interesting. Understanding about how do companies make purchases, and what does it mean to sell and to enterprise sales, and how do we make workplaces more efficient, and what is business software look like. I thought it was a really fascinating space. >> It sounds like one of the things that has driven a lot of your journey is just curiosity. You've explored a bunch different things, startups. >> Yeah. >> Ton of different things at Microsoft. Were you the kid that was taking all your mom's stuff apart, or asking five million questions? >> I mean, yes, but I think we all are. >> Yeah, you think so? >> Yeah, I think kids are naturally curious. I think we all want to learn. I think we all want to do that. I think there are barriers that hold us back, and some of those barriers can feel more real than they are, especially in tech. It's a booming space. There's a million jobs right now. Everybody's looking to hire. When I'm mentoring people I feel like talking to young people in tech. Sometimes they're afraid to make the choice, to try something new or to change. But, it's a false barrier they've put on themselves. >> One of the things that really strikes me about the industry over the past, let's just say, 10 or 15 years is, I think, in some ways we've gotten more complex. The number of programming languages, the number of frameworks, the whole ecosystem is just bigger. But, in a very real sense it's easier than it ever has been to go make something with code or with technology. When I was in college, folks had this notion like, "Oh, my God. Coding is so hard, you have to go get this degree, you have to practice." To get really great at anything, all that's true, but my kids can go make interesting things right now without a Computer Science degree because the tools that they have are so powerful. Is that something that you're seeing helping students get into computing? >> Absolutely. There's a level of relevance, right? >> Yeah. >> When I was a kid, I made a game from my calculator that was [inaudible] . I made a game and I also made it formula solver cheat sheet kind of thing. >> Right. >> But helped you with your physics formulas. This wasn't going to be the thing that took over America. >> Right. >> But it was popular, among all the students in my class. Right? I think there's the same thing today. We see kids making games. There are some of those things are just not that complicated, right? >> Yeah. >> So, students have the potential to make things that are definitely cool. They're not as complex as an Xbox game, but they're cool. But, you also see that there's a lot of space for things that are locally relevant. Some of these kids' apps, there's one with their teacher's face, you could feed the teacher ice cream, but the teacher got a kick out of it, and it's fun, and it's cute, and it's relevant in that classroom. It's relevant in that school, your friends are all going to try it out. I think it gives you a taste of something without having to be an amazing artist, just like anything else, there will be steps. >> Also, talk a little bit about what you do right now. So, you're the President of Code.org. So, tell us a little bit about what Code.org does. >> So, we build curriculum, we do professional development for teachers, we do advocacy work, but our goal is that every child should have the opportunity to take a computer science class in K12. I was shocked, especially from the tech industry. I was shocked to hear that most schools today don't teach computer science, and it's not even that most kids don't take it, it's their school doesn't teach it at all. So, even if they want to take it, they can't. This disproportionately affects students in high need schools. It disproportionately affects underrepresented minorities and women who are discouraged from taking these classes. And the result is that because they never get this introduction in K12, it's really hard to start after that. It's really hard to start in college. So they may never go into the field. And even if they go into another field, they don't have that background in computer science. So, our goal is that every school should offer this course, so that every child has an opportunity to take it. At this point, we're the most popular computer science platform curriculum in K12 in the country. About 25 percent of students actually have an account on Code.org. So, we're reaching a lot of students but there's a long way to go. >> Yeah. So, how early should we be teaching kids computer science? >> So, this is totally different from how I started, but our recommendation is actually to start in elementary school, and there's some good reasons for doing this. Let me start by talking about how we teach about biology today, because I think it's a really good analogy for how I think about computer science education. So, every child when they go to elementary school gets to learn that they have bones, they have a digestive system, just the basics of how does my body work. We don't do that because they're all going to be doctors or nurses or EMTs. We do that because they're going to live with that body for the rest of their lives and they should know how it works. When they go to middle school maybe they learn more about it. In high school, a kid can take Biology or AP Biology. Even after they take all of those courses, all the way through K12, they're still not qualified. I don't trust a high school student who's taken AP Bio to do anything to me. So, there's still more work if they want to be a professional in the field, whether it's a nurse or a technician or anything. Computer science is the same way. Every kid is going to be surrounded by technology their whole lives. We have our phones in our pockets, who knows where they're going to be when they grow up. The same way we get to know that we have a digestive system, they should understand, what is the Internet? What is the Cloud? What is data? How does this phone work? It's not a magic box that does magic magic. It's a computer, and what is a computer, right? These are just basics that should be part of our education system. >> Right. >> So, I think of it in a very analogous way. In K5, we get to teach the students, what are these things? What is technology? Then, when they get to middle school, maybe they take more. If they're interested, they can take an AP Computer Science class in high school, and at the end of that, they're still not a programmer. They're going to go on and take a two-year degree. They could take a four-year degree. They can become a lifelong computer scientist. But, no matter what they do in life, it's useful to know how computers work. >> Yeah. >> So, the same way we teach our kids how the body works, that's how we think about teaching it in elementary school. There's another reason to start so young, and that has to do with supporting diversity in computer science. What we see is that women tend to become less interested in the STEM fields around the middle school, early high school. In computer science, it's between about 12 and 14 when they lose interest. So, what we want to do is reach them before that year, so that while they're still interested in learning these things, we can show them what it is, so that if they're interested, they can keep going. So, there's a bunch of pieces here, part of it is encouraging them, thinking that they'll be good at it, getting that encouragement. If they're very confident in their ability to do it, they're four times more likely to go into computer science or take computer science classes than if they aren't. Girls, right now, oftentimes, they don't get this opportunity in elementary school, and so what happens is, when they're thinking about taking it in high school or middle school, they do it just based on the zeitgeist of what people tell them that they're going to be good at. >> Right. >> Right? Unfortunately, what we see is that they're often told they won't be good at computer science. Teachers are two and a half times more likely to tell a boy that he'll be good at computer science than a girl. And it's not because they're against it. These teachers are supportive, they care, it's just these cultural norms are embedded in our society. >> Well, and kids are also pretty good pattern matchers. One of the things that I've noticed disturbingly with my own kids, I've got a eight-year old and a 10-year old right now, and very, very early when they were three, four years old, they would look around at the world and start making these classification decisions. It's okay, this is a boy thing and this is a girl thing, and this is without anything in their household telling them that thing A and thing B has a gender association with it. It's just them sorting things out. One of the things I love about what you all are doing is there's this bootstrapping problem that I think you have to solve where we just need more three and four-year-old seeing seven and eight-year-olds being successful in a computer science curriculum, so it helps them decide to do that when they're just a few years older and up the entire stack. >> That's absolutely true, and you see it when you go into the classroom. So, you take a bunch of second graders. They don't have a stereotype yet that computer science is a boy thing. >> Yeah. >> Right? They're too young to think computer science is a boy thing. >> Yeah. They probably don't even know what computer science is, right? >> Right. They see like, "Hey we're going to make some stuff today," and they're so excited about it. Our classes, when you look at those elementary school classes, they're half female, the kids are all excited, they're super into it. We have a little tool at the end, what we call our funnel meter. They can give it a thumbs up, thumbs down at the end of every activity, and the girls actually give it higher funnel meter ratings than the boys do. The girls are into this and they're into it young, and so when we can get them before they've got those stereotypes, they can make a huge difference in terms of giving them the momentum to keep going afterward. I see the same thing you see with my own daughter. But, she's also excited about computer science because she doesn't see it as a boy thing. >> Yeah. >> Even if you look back in history, computer science used to be a female thing. >> Yes. >> It's just flipped, right? >> It's about from the very beginning, the first programmer was a woman. >> The first programmer was a woman, Ada Lovelace about 100 years ago, and then you look in the '50s, in the '40s, computers were women and computer science was a female, the stereotype would have been women. >> Yeah. >> Then, it's men, and we can get back to a place where it's both. We can get back to a place where we look at it and we say, "No, no, computer science, it's something that everybody does. There's no reason it's one or the other." But, it's not just teachers, it's also parents, it's social, it's friends. Let's say there's an after-school program, you can just see this. Mom says, "Oh, look, some after-school classes. Bobby, looks like there's a coding class after school on Thursdays. Do you want me to sign you up?" Right? "Emily, it looks like there's a dance class on Tuesdays, do you want me to sign you up?" It's so easy. They're not thinking about it. They're just trying to find activities for their kids. So, when we do it after school, what we see is that same skew where boys are more likely to get signed up after school for computer science. If we do it in school, we don't see that. So, that's why we want to start in elementary school. >> Yeah, which I think is awesome because sometimes when you're focusing later, it's just really, really hard. I had this friend call me up. He was like, "I'm trying to get my daughter to stay enrolled in her AP Computer Science class." She was a senior in high school then. She just didn't want to be in this class because she was the only girl in there. >> That's so hard. >> And this isn't Silicon Valley. >> Yeah. >> What wound up working was connecting her with a bunch of really successful women computer scientists, software engineers, who were having a really great time in their career. And she stayed in AP Computer Science class. She went off to university. She majored in Computer Science, dean's list student, is now in a professional, so she's a software engineer at a tech company. And that whole thing is hard to scale. What you would want to do is do that for everyone. But, it's so hard when you're starting later, whereas starting earlier you can maybe get to the point where just naturally you're not having a class full of boys in 12th grade in this AP Computer Science. >> Absolutely. We just hired a woman for our engineering team a couple of months ago who's studying computer science in college, was one of the only woman in her class, dropped out because she felt she didn't belong, but liked computer science. She liked it. She just didn't feel she should be in it because there weren't any other women in it, and finished college still regretted it. Still wanted to do computer science. Ended up doing night classes and side classes and learning it after work, eventually did a boot camp, learned computer science, moved into the career, worked as a computer scientist, and just recently joined our engineering team. >> That's awesome. >> But, you know that's the hard way. >> Yeah. That's the hard way. >> It would have been easier if she had just been able to stay in those classes in the first place. >> Yeah. >> Yeah. >> Tell us a little bit about Hour of Code. >> So, Hour of Code has just become a phenomenon. It's exceeded our expectations. If you're not in school right now, you may not have heard of it. If you're in school, you probably have. It's like Earth Day, but for computer science. >> Yeah. >> It's a national holiday. I don't have the exact numbers or the number of which schools participate. But, as far as I can tell, everybody I talked to, their school seems to be doing it. >> I realized there was a bigger thing than I thought when Steph Curry was posting on LinkedIn about him doing his Hour of Code. >> Oh, yeah. Oh, hey, if you're into sports, then Steph Curry did it. If you're into other things, Barack Obama's done it, Justin Trudeau's done it, Dave Cameron, that we've had about eight world leaders who've participated. We've had musicians. We've had actors, actresses. But, I think the most important thing is the schools and the teachers are doing it. >> So, tell folks what the Hour of Code actually is. >> So, the idea is that I can tell you, until I'm blue in the face, that computer science is going to be fun, that you can do it. There's nothing like actually trying it. So, what we do is we get students and teachers to spend one hour trying computer science. We've built scaffolded activities that make it easy for beginners. In one hour, they can actually build something. You could actually build a little, mini game, something you can share and be able to say, "Hey, I did that," and you actually learned some computer science. I mean, you don't learn all of computer science, it's one hour, but you learn a concept or two. You might learn about if statements, you might learn about loops and how they work. So, the students get to try it, they get to try one hour. It's a great introduction. We did a survey last year looking at thousands of students before and after they tried the Hour of Code, and what we found was that it does increase the amount that they say, "Hey, I like computer science or I'm interested in computer science." But, was especially cool for me was that the group that was the most impacted by doing this was high school girls. High school girls were probably coming into it thinking, "Hey, this is not something that I'm into." They try it and then they're into it. At this point, we've had 500 million hours of code around the world and it's been in 180 countries, it's in 50 languages. It's a huge event every December. We do it for CS Education Week, and basically it's just a way to introduce students around the world to computer science- >> That's incredible. >> -by actually building something. >> Yeah. It's really incredible. >> Yeah. it's not just us, this is one of those things that we do in partnership with about 200 different companies and organizations that run it and do activities. Microsoft has partnered with us on the Minecraft Hour of Code for the last few years which is our most popular Hour of Code activity, and students and teachers love it. It's an opportunity to use these characters they're familiar with from Minecraft, but to learn computer science with them. >> So, what's the dream for Code.org? If you had a magic wand to wave over the world, and you can achieve whatever success you wanted to achieve, what does that look like? >> I think it looks like every child has the opportunity to learn computer science and that the students who are learning it look like the world. That the diversity matches, so that when we look at the workforce 20 years from now, whether somebody is in education or marketing or retail, they're going to be using computers. It's going to be a part of their lives and everybody gets to understand things like how the Internet works and how computers work. And that when we look at the tech workforce, that the students who are prepared to join this, that they look the population, and I get to look around and half my team is female. I want to state that we're working on one part of the problem, which is the K12 education. That won't solve the tech workforce by itself. There are definitely issues around hiring, retention, workforce bias, all of those other pieces which also need to be solved. But, I think if they we're working on one really important part of the problem. >> Yeah. >> We do need to bring more diversity into the tech workforce and I think education is critical. >> Yeah, I think it really is. The thing that keeps me up at night about our future is I just look at every year technology has a bigger and bigger impact on the world and the trajectory tells us that that's going to continue for the foreseeable future. And in a whole bunch of different ways you want as many people and as representative a set of people as possible participating in the creation of this technology. You want all perspectives, all backgrounds, all ethnicities, you want it to look like the world, which I think was beautiful way that you said it. But, you also want society at large to be well informed because a lot of the funky stuff that's going on today we're going to have to make an increasingly large number of decisions, policy for instance, in ethics and the laws that we pass and the regulations that are put into place to govern the intersection of society and technology. You want people super well informed when we're making those decisions, and you want them represented--it's like everybody. >> Absolutely. I mean, it's just critical that in this world, everybody has this opportunity. >> Yeah. >> At Code.org, what we do is we make it as easy as possible for schools to teach this. We offer free curriculum, we offer free professional development for these teachers, we help teachers who don't have a computer science background. >> Yeah. >> Because the teachers don't. I mean our schools don't teach it. They didn't learn it when they went to school. >> Yeah. >> So, giving the teachers the opportunity to learn to teach computer science. They're History teachers, English teachers, Math teachers. >> Learning to teach computer science, as you pointed out earlier, is different than even knowing computer science. >> Right. It is different. That's funny. We actually find that it's not the computer scientists make the best teachers of computer science. It's teachers teach computer science the best because they're good teachers. What we've found is that experienced teachers with no background in computer science make excellent computer science teachers because they know how to teach. >> Yeah. >> If we give them the tools and the resources and the curriculum, they're fantastic in the classroom, and their students do really well. So, that's what we're working on doing. I mean, these schools teach computer science. >> What are some ahas that you've seen over the past several years trying to teach computer science kids? >> Oh, there are so many. I'll give you a personal one to start out with. So, I came into this thinking I was a good computer science teacher, and it turned out surprise, surprise, I was not. I love teaching. I think a lot of people like me, they enjoy it. It's fun. I taught in college, I started a program to bring students into local schools to teach computer science. I was TA, I was a teacher, and I always got good reviews. I always got high scores on the which TAs are the best, which teachers are the best. So, I had this misimpression that I was good at teaching. It's been fascinating getting to work with a bunch of pedagogy experts on how do you actually teach because what it turned out was that I was entertaining in front of a room, which is different from being a good teacher. >> Yeah. >> So, when we teach networking, we have a thing called ABC CBV, which is you do the activity before the concept. >> Yeah. >> You do the concept before the vocabulary. It's not about a teacher standing in front of a room lecturing. It's about letting kids discover it on their own. The art of teaching is stepping back. It's doing less. It's not being entertaining. It's not being this person who's like super energetic, exciting person to watch. It's about crafting experiences where the student is going to get to figure it out without you being involved. Because if they figure it out themselves, they're going to remember it. So, let's say, we're teaching TCPIP. We pair them up and we say, "Hey, you guys got to figure out how to send some messages back and forth." We have this little software that lets them send these little packets of messages back and forth. But, our software is going to drop some of those packets on the ground. We're just going to lose them. We're also going to send some of them out of order because that's how the Internet works, and they've got to figure out, "Okay, I'm sending you messages, some of them come on out of order and some of them get dropped. How am I going to deal with this?" I don't care how they deal with it. Some of them will send five copies of the packet because there is going to be like, "Okay let's just keep sending them because they're going to keep dropping them." Some of them will number them, some of them will send back [inaudible] to say, "Yeah, I received or didn't receive your packet." It doesn't matter what method they come up with. The important part was that they really understood the problem because they tried to solve it. Then, after they've done that we say, "Okay, that thing that you just did, that's called a protocol." >> Yeah. >> The protocol the Internet uses is called TCPIP. Now, what did the teacher do in that whole lesson? They facilitated the communication with the students. They got the students paired up, they helped a student who was blocked get to that next step. But nowhere in that lesson that the teacher stand up in front of the room and draw a picture of TCPIP. >> Yeah. I've had similar sorts of problems with my kids and it was the same thing for me at my goal in life was to be a computer science professor from age 16 to 31 when I left academia. I taught undergrads for years, I taught grad students, and now I'm trying to teach a couple of really young children about these computer science concepts. And so I'm sitting down at a restaurant and teaching them about binary search, and that will give a total win. I think they got it right away because I made it into a guessing game. I'm going to teach you a trick for how you can get someone to play this guessing game with you where you can find the number that they guess between zero and 128 in seven steps or less. You know they're like, "This is great." But, then I wanted to teach them how to do search, and there are like these little things about teaching search that sort of hard. One of the things is, if you just take a bunch of numbers and write them down and say, "How would you sort these?" One of the things that's interesting is human beings can see all of the numbers at one time. So, they're cheating in a sense when they're imagining how they're sorting. And so I devised this thing where I could give them a bunch of blocks where the numbers on the blocks were covered up and, so they could go examine the number on the block one at a time, which is how the computer goes and does things. I just really realize that I was all kinds of wrong about how good I was going to be at teaching little children these computing concepts. >> Actually, the way you ended up doing it is very similar to how we do it in our class. So, what we do is we give the kids decks of cards. They're only allowed to lift two at a time to compare them because that's how a computer would do it. >> Yeah. >> They can't look at the cards when they flip on. They show him to the other student and the student says which one's bigger. >> Yeah. >> So, they get to pick two at a time and see, and then actually, one of the things that's cool about that and a lot of our lessons is they're not on a computer. They're actually using physical cards in the classroom. >> Yeah, which I think it's actually great. >> It's great. Yeah. Because you know when you say computer science, I think, sometimes people think, "Oh, it's all on a computer," and really about half of our lessons are off the computer, and it's about interacting with other students. It's about internalizing the concepts by working with the actual concepts and the logic outside of the context of the computer. >> Thank you so much for doing this work. I couldn't be a bigger fan and I think you guys are having an enormous and amazing impact on the world. Thank you for taking time to be on the show today. >> Oh, no, thank you, and thank you for Microsoft's support. >> Well, thanks for joining us on Behind the Tech. I'm back with my colleague, Christina Warren. Some of Alice's insights were pretty awesome. What stood out for you? >> So, one of the interesting things I thought about your conversation with Alice, and we talked about this a little bit before, was hearing her story and hearing about the atypical journey and how she got involved with technology. >> Yeah, I think there's an incredibly diverse set of folks in tech, just sort of based on the path that they took to get into the industry. I've had the great pleasure of being a computer science teacher and being an engineer and engineering leader for a really long time now, and have just come into contact with tons and tons and tons of engineers. Each one of their stories is a little bit different and some are sort of stereotypical image. But there are all sorts of other folks like Alice, who discovered computer science in their senior year of high school. There are some folks who discover it in college. There are some folks who actually go off and have a career in some completely different thing and decide that they want to get into computing later in their life or later in their career. The thing that I'm seeing now is that, it's increasingly easier to make those transitions because the tools and capabilities and sort of richness of our programming environments and the way that we build software just sort of allows more and more people to get bootstrapped more and more quickly. Part of that's a byproduct of the open source wave of software that we've been witnessing over the past three decades. >> Yeah, definitely. One of the things I love about code.org is that, even if the kids who are going through this programs, even if, say, they don't choose to study computer science in college, they still have that foundation. >> I think it's a really important thing that everyone in society understands a little bit about computing because computing and technology is having a bigger and bigger impact on all of our lives all of the time. So, being informed about some of that stuff and having an idea in your head about how things work is going to help you be a better citizen. >> I feel like that's the only way that our products get better is by having more diverse viewpoints and different types of people coming into doing things, because you never know what someone's perspective is going to bring. I love what code.org is doing in bringing more and more people into the fold and letting them know, "Hey, you can do this and it's fun." >> Yeah, tons of fun actually. But I have a biased opinion there. I think that whole pedagogical framework for teaching computer science to kids is really great. I think it's actually going to prove to be great not just for kids but for adults. When I was a lecturer at the University of Göttingen in Germany, I was teaching a class on programming languages and the theory of computation, and some of that is difficult material to teach. That certainly challenged my ability as a teacher especially because I was lecturing in English to a class full of non-native speaker. >> Yeah, I was going to say, so you're doing this in Germany, teaching English and then there are non-native speakers, although I guarantee that they understand English far better than I understand German, but still. >> That was always embarrassingly true for me. Their English was way better than my German. In some ways, it's a different challenge to really bring someone up from the ground to how do you get over this beginning set of conceptual hurdles so that you can then get into the computer science curriculum? By the time I got them, they knew sorting algorithms, they knew if-then-else statements and while loops and all of the basic things of how you construct a program. I think at least until I had kids of my own, I took for granted how difficult it is to teach the "quote unquote" simpler stuff. I think the lesson for me is appreciate my teachers even more than I already did. We should all appreciate those teachers who are out there loading knowledge into the heads of our future fellow citizens. >> Absolutely. >> Well, thank you so much, Christina. This has been a great conversation, and I look forward to being back with you again in the next episode. >> Me, too. Thanks so much. >> Next time on Behind the Tech, we'll talk with Andrew Ng, the co-founder of the Google Brain project, Coursera, and most recently, deeplearning.ai and Landing.ai. Andrew is one of the most influential leaders in AI and Deep Learning. Be sure to tell your friends about our new podcast, Behind the Tech, and to subscribe. See you next time.
Building Bots Part 1
it's about time we did a toolbox episode on BOTS hi welcome to visual studio toolbox I'm your host Robert green and jo...
-
hey everyone welcome to Microsoft Connect my name is Nina Zakharchenko I'm a senior cloud developer advocate at Microsoft ...
-
It's lunchtime, and this is Brad Anderson's lunch break. Here in Redmond we're visited by some of the smartest peo...
-
[MUSIC]