Jeannette M. Wing – Computational Thinking and Thinking About Computing



or inviting me to be here and it's a real delight it's my first time in Pensacola so it says it's a real pleasure to be here and I've enjoyed my stay so far so I want to talk about computational thinking and a little bit about thinking about computing and I'm going to store it right away so I'm going to start with my grand vision that computational thinking will be a fundamental skill used by everyone in the world by the middle of the 21st century just like reading writing and arithmetic that's how fundamental I imagine computational thinking will be or should be and the score of course it's an incestuous vision in that computing and computers will enable the spread of computational thinking now this vision has grave implications with respect to the research in any discipline that we conduct as well as educational implications which I will talk about a little bit especially with respect to K through 12 and so if you are interested in this talk that I'm giving today I wrote a very short article it's only three pages long that appeared in C ACM a few years ago and it really captures a lot of what I'm going to say today so computing let's first talk about computing computing is what I like to call the automation of abstractions this is quite abstract and I will try to explain what I mean by this but I like to think about computing in terms of these two A's automation and abstractions and it really is this feedback loop that one has when you're abstracting from some physical world phenomenon creating in a mathematical model of the physical world phenomenon and then analyzing the abstraction doing sorts of manipulations of thus abstraction and in fact automating the abstraction that then tells us more about the physical world phenomenon that were actually modeling when I talk about automation and this is a whole other talk I could give so I'm just going to get this as a side note when I talk about automation I'm very careful to include that the automaton can be a human or it could be a machine after all humans compute we may not be as fast as machines but in fact there are some ways that humans are much much better computers than machines in other words there's still some tasks that humans can solve better than machines vision is one example a speech natural language processing a lot of the challenges of artificial intelligence are put forth for us as scientists because machines still can't do them as well as humans but that's if you will just the base case I also like to talk about humans and machines together in fact networks of humans and machines together as an otamatone so think now that you can bring together the intelligence of a human with the intelligence of a machine networks of them that itself is collective intelligence that could be an automaton in my world of automation so that's a quite a powerful notion very unusual and I'm going to say that thought because I'm going to come back to it at the end of my talk as I said that's just part of the picture with respect to computing or computer science but that's really not what I'm going to talk about for the most of my talk I'm really going to focus on the abstraction part of computing computational thinking is really um all about the process of abstraction let me just explain what I mean by that first of all it is choosing the right abstraction not every abstraction is going to be appropriate for the problem that you're trying to solve so first you choose an abstraction and then the by definition and of abstraction is ignoring irrelevant detail and encapsulating in this abstract model the details of importance that means I'm immediately talking about at least two levels of interest the level on ignoring the detail from and a level of interest so the abstraction process immediately means you're talking about at least two levels of abstraction and in fact the way in which computer scientists deal with scale and complexity in the kind of artifacts that we build and design is through layers of abstraction that allows us to focus at each layer only on the properties or the behaviors of interest and then we build these complex systems by layering or other means of composition so when we talk about abstraction it's not just the abstraction or the particular model it's the layers and also the relationships between the layers and in because we usually define these abstract models in very precise terms mathematical terms we are able to define the relationships between these layers also precisely math in mathematics in fact all of what I said is as we do in mathematics after all it's not that computer scientists invented abstractions mathematicians and scientists use abstractions all the time what's different is that in computing we're always operating it at at least two layers of abstraction at the same time and we're very formal about the relationship between the two layers so this isn't anything new in some sense from what mathematicians do but in computing we don't just invent abstractions for the beauty and elegance of the abstraction as petitions tend to strive for we have other concerns that constrain the abstractions we choose so in particular I'd like to talk about the measures of a good abstraction and computational thinking the first and foremost typical question a computer scientist would ask is how efficient is this is this the most efficient way to solve the problem and what I when I talk about efficiency I talk about in terms of space and time it's just the fastest way to get from here to there is this the a procedure which is going to require the least amount of space so that's space and time and I think what's most interesting right now is there's a lot of interest in what I would call the third dimension of analyzing the complexity of the kinds of abstractions we invent and that has to do with energy there's so much interest now you know societally from the administration on energy and I think on computing as a discipline needs to revisit a lot of the abstractions we've invented already in terms of this third dimension so for those of you who are researchers in computer science I advocate that we're going to have to throw out all our algorithms textbooks and rewrite them all in terms of these three dimensions now the other measure of goodness for the abstractions that computer scientists like to invent is correctness after all when you're writing a program or you're building a system you want it to do the right thing and so we always ask not only how fast does this say algorithm perform but does it do the right thing and what does does it do the right thing mean we usually ask for instance does a program compute the right answer and that alone that question answering that question alone opens up a lot of research questions but we also want it to do something useful so it's not enough that it does the right thing we actually want the answer to be spit out eventually and that's the question of does the program eventually produce an answer and there are complexity results that show that this isn't always an easy question to answer and then of course there's the other illa T's if you will when when we look at a particular abstraction and and judge whether it's good or not simplicity and elegance as we have for mathematics usability modify ability maintainability cost and so on now if you look at this list you'll say well that's no different from good engineering and so in fact computational thinking or computing in very much draws on mathematical thinking and draws and engineering thinking and and comes together in terms of the automation of the kinds of abstractions we build and what I'd like to just I promise I'll just say a few more high-level remarks and then I'll get into some concrete examples but I'd like to think that computational thinking really does draw on mathematical engineering thinking it draws on mathematics certainly as its foundations but we in computing are unconstrained by the physics of the underlying we are constrained by the physics of the underlying machine so in the end there's going to be some machine or there's going to be some human brain and we are in terms of what we can execute or automate are going to be constrained so it's a typical computer like this it's got a finite memory it can only go so fast and so it's constrained by the physics of this device and and you know the brain scientists are actually trying to understand the physical and intellectual limitations of our brain as an automaton computational thinking certainly draws in engineering since our systems interact with the real world however we in computing can build virtual worlds worlds that are unconstrained trained by physical reality and so when you interact in a virtual world so how many people have heard of Second Life okay second life is a virtual world which you can enter and it this virtual world defies the laws of physics you have avatars who fly around you of course have beings that die and come alive again that's not like in the real world and so what is it that in computing enables this kind of defying the laws of nature building worlds that are virtual it's the software software enables these physical devices to be beyond the real world when I talk about computational thinking I really mean the concepts and not the artifacts that computer scientists produce this is a little abstract I promise to get a little more concrete and finally I talk about computational thinking as being something for everyone everywhere and it will be a reality when it is so integral to our endeavors that it disappears as an explicit philosophy so being more specific here is unfortunately a laundry list of what I would say computational thinking concepts and those of you who are computer scientists or engineers or mathematicians will recognize many of these these classes of abstractions i what i mean by putting this list down is not for all of you to understand all of this but just to say that i distinguish between computational thinking and computer literacy that is how to use word or excel or powerpoint computational thinking is not that and i distinguish between computational thinking and computer programming because computing is a lot more than computer programming and ideally I I could come up with a better lid if you will rather than this potpourri of concepts I'm actually working on that as I speak so now what I wanted to do is convince you that computational thinking has already influenced other disciplines so let's start with one discipline influenced by many different computational methods or concepts so who can guess what that discipline might be don't be shy scream out the answerer scream out any answer yes sir that is a interesting answer I'll come back to that one medicine is close to my answer biology biology that is my answer it's just an answer computational thinking has greatly influenced biology to the point now we have biologists and computer scientists working together hand-in-hand but more than that we have now a start we are now starting to produce a new generation of computational biologists okay and hold hold on you're answering my next question which is my next question is what was the tipping point at which point did the biologists say look over their shoulders they hey you computer scientists have something to bring to the table you computer scientists are making me think differently making me approach my problem in a new way answer is right it wizzy it was the shotgun algorithm that expedited the sequencing is a huge human genome that all of a sudden Oh caused a lot of interest by the biologist by the whole biomedical and biology community say hey there is something to computer science to algorithms more than just processing power so that's the point I'm trying to make that computing is more than just about devices and horsepower and supercomputers and this particular algorithm was what I think the tipping point for when biology and computer science came to started to come together and since then there have been many many examples of different kinds of computational methods different kinds of computational models different kinds of computational languages different kinds of computational approaches for understanding biology I've just listed a few of the a lot of this is a buzz words and if you will um one of my well I want to be a slightly a little more technical in this part of my talk so I'm going to go through one example that's not the shotgun algorithm to show a different kind of computational model and thinking that has influenced biology and this is very recent work so to do that you have to bear with me for a few slides because I'm going to now go into a slightly more technical part of my talk and I'm going to do a little primer on this particular computational method and it's called model checking so just I always in my talk at this point ask the audience how many people have heard of model checking okay oh well I'm surprised okay good so I've after this slide you will all know what model checking is at least in the abstract okay so let me go through it there's a black box it's called the model checker and it has two inputs one is a finite state machine what that means is that their states those are the circles and their transitions between the states those are state transitions the lines the arrows and what makes this a finite state machine is there are finite number circles finite number States okay so that's one input and it actually is critical for this technique that it be finite the second input is a property that we would normally write in English but because computers can't quite understand English well enough yet we write it in a more formal language and I picked this particular logic it's called temporal logic it doesn't matter it's a formal language a mathematical language in a logic that can reason about the ordering of events so basically you have these two inputs okay and what happens is you describe the system of interest using this input and you describe a desirable property using this input so you might want to say something like when you go to the ATM machine eventually I get my money out so you would say describe the ATM machine in terms of this finite state machine and all the kinds of things you can do with it like put your card in punch buttons deposit money withdrawal money and you would describe the property eventually get my money out in terms of here okay and ideally for any ATM machine you would like to know that this property holds okay ideally okay that's how we like to design our systems of course we know in reality there are all these bugs okay so those are the two inputs the output is either yes every single ATM machine that's been designed will always give you money back you know but more we at Maria more realistically you'll say no here is a bug in this ATM machine and it says not only here's a bug but here's an example of a sequence of steps that you would take in terms of that machine where you're not going to get your money back okay and that's called a counter example so that's my primer on model checking basically it has two inputs you press the button and out will say yes every single time you interact with this ATM machine this property will hold or no you will get into trouble if you do the sequence of events okay that's a particular computational model computational concept computational approach and it has been used in fact very successfully for hardware design companies like Intel and HP Fujitsu all the IBM they all use this kind of technique for verifying and debugging Hardware processor designs so this is a almost a bread-and-butter kind of a technique in computing and let me I'm going to skip that now this is for those of you are interested in the formal definition that's what it looks like but okay and there are many efficient algorithms and many efficient data structures that allow us to push a button and get that blackbox answer what does it have to do by out with biology well for the face of it absolutely nothing it certainly wasn't invented because there was a biological problem to solve but it turns out then when you put computer scientists and biologists together or when you have a by a person trained in both biology and computer science sparks will fly and that's exactly what happened with this particular person who worked who worked in this intersection of computer science and biology in particular model checking and protein folding on and he represents a protein that has three residues in this particular case in terms of this very simplistic finite state machine where you can imagine but with this day without three zeros represents the the folded state and this state with the three ones who represents the unfolded state and the quash and these these numbers and parentheses represent how much energy does it take to go from this state to this state where your unfolding one of the residues okay and so the question is um what are all the paths what are all the ways in which this protein can unfold itself and what is the what are the paths that where the protein can unfold itself in the using the least amount of energy okay so now this is a very simple example you could probably figure this out on your head right but suppose you had 76 residues you could even write that out a piece of paper right there's where actually the scale of computers come in handy because they can do that sort of calculation no problem so in fact they show that that you can use this model checking technique to explore state spaces as large as 2 to the 76 using this kind of particular model checking algorithm model checking approach and this technique is pretty recent result you see it's 2007 um with 14 orders of magnitude greater than comparable techniques so this is already new stuff that we're talking about protein folding and so on but here's where you can see sparks fly when you bring computational methods to these kinds of biological problems ok so I promise it's the most technical part of my presentation so that's one discipline many messes I only showed you one method but the gentleman here already talked about algorithms a shotgun algorithm so let's flip it how about one method that has influenced many disciplines so I actually have to call on any computer scientist in the audience to help me answer this one because I doubt the general public would know the answer but I know there's some computer scientists in the audience so I challenge you what one method do you think has influenced so many disciplines today conceptual modeling of course I have the answer I want you to say ok Peter to have an answer make it a focus question the answer is the answer is machine learning how many people have heard of machine learning Oh see more people have heard about machine learning than model checking so that's good right so machine learning has completely transformed the whole field of statistics in fact there are there's a whole department of machine learning at Carnegie Mellon if you can believe that within the school of computer science and it's made up of faculty from computer science and statistics and what they really do is statistical machine learning ok another example is that there are departments of Statistics now at universities for instance Purdue which has an excellent statistics department who are hiring computer scientists because they see their future as in this combination of Statistics and computing in terms in particularly particularly statistic machine learning so we're seeing this in the the next generation if you will so let me give you some examples of where machine learning has influenced many many fields so in the sciences it's a technique that has been used to discover new brown dwarfs and fossil galaxies this is really new scientific discoveries because of this particular technique in medicine it's been used for discovering and inventing these kinds of drugs and and uses in these applications in meteorology for tornado formation in the neurosciences understanding the brain so for instance so so I should I shall at least give you a one sentence definition of machine learning given that many people may not know it what it is is it's a technique that allows you to analyze huge datasets large amounts of data and find patterns and clusters in larger large amounts of data and so in particular in this particular case what you feed this algorithm is lots and lots of fMRI scans scans of your brain ok and what you what they are able to do through using machine learning is to find out what part of your brain lights up when a subject sees a noun versus a verb or this kind of adjective versus that kind of adjective and it's looking at lots and lots of fMRI scans that allow you to see those clusters those patterns in it's beyond machine learning has been used beyond science and engineering so for instance in its it's used in detecting a credit card fraud it's used on Wall Street so there's the the answer from the back of the room it's used oh when you go to the supermarket and you hand them the hand the clerk your your Safeway card you have Safeway down here okay well Publix what right okay do they have cards affinity cards they're tracking your purchases and and the coupon that you get out after after your receipt is it's it's using that kind of analysis of large large amounts of data recommendation systems and reputation systems like Netflix when you go to Travelocity to find out customer reviews and so on it's even machine learning even used in sports so um I don't know which basketball player this is but maybe you do but what the what they did was a videotape lots of professional basketball players and then the coaches would use machine learning to find out what are the skills of these professionals so they can teach those skills to their own students and this is Lance Armstrong who a used machine learning to analyze the kind of data that he kept of himself as you know he's he's a machine alright and he was quite mathematical analytical in his training so that he could you know really hone his skills so that's one discipline many methods one method many disciplines let me just give you a few more examples computational thinking in the sciences and beyond in chemistry on computational methods computational concepts have been used to actually just to invent new molecular structures that would have desired chemical properties in physics this is one of my favorite examples I'm going to belabor this in a little bit in quantum computing so there's a a very young professor at MIT who works in quantum computing he's actually in the computer science department but he works with physicists and in computer science he he basically there's a kind of quote there's a kind of quantum computer where you can represent the problem in terms of a let's call it a graph but you can solve it if you you can solve the problem if you morph this graph into some other representations of other graph you can solve them more easily in this this second representation and so the idea is then how can you how can you get this graph to be morphed into this graph and there's a way a procedure that you can use that would allow you to make manipulations of each graph until finally you you come in the middle and you have that intermediate and that the question and so physicists know about this kind of quantum computer but the question this computer scientist asked is how fast can you do this this is something computer scientist that's all the time how fast can you do it right I already said that that's one of the questions we always ask about efficiency in terms of space and time the physicists never asked that question of themselves they just know that there exists some path such that you can do that but they didn't ask how fast can you do it now again for the computer scientist in the audience the reason this was such a tantalizing question to answer is if it turns out that the convergence is polynomial it means that you might have an answer to the P equals NP question so you can see why this young you're scientists at MIT would very much like to know the answer to that convergence question and it turns out that it goes really really really really fast until this very small window where it's exponential so but even so it was a very interesting question to pose and now he tells me that the physicists are going around asking how fast is all their little convergence questions so this is a what this to me is a deep way of computational thinking influencing other people's thinking because you ask these these basic questions that we would ask and have the answer been in you know polynomial then wow what a breakthrough in computer science okay so in we see it in mathematics we see it in engineering uh and I think we're going to see more of it in all other fields in society like economics right now in fact tomorrow and Friday there's a workshop at Cornell on computer science and economics that NSF is is helping to sponsor and we're seeing a lot of the theories of economics and models of economics in fact not well we already know that some of them are not applying to our real world but we're certainly not necessarily applicable to say the internet and internet economics and so there's all of a sudden this new interest or a completely new interest in revisiting economic models and theories in terms of computing models and vice-versa so for instance we are very much using game theoretic models in looking at lots of problems in computer science game theory from economics but many of the direct relationships between economics and computer science has to do with things like ad placement and keyword auctions and so on so for instance when you type into Google and you do a search maybe you realize that to the right of your the results of your search you have all these ads well what companies actually bid on where they want their company to be listed in that that list of that you pay a lot to be listed number one but maybe it doesn't matter if you're listed number one or two you pay a little less you're listed number two you're still number two you're up there right and so that's the kind of game theoretic thinking that people are doing in computer science in law we're seeing computational thinking on and in the humanities again in the sense of digging into the data challenge is analyzing lots and lots of data so well I wanted to make mention of so that's the that's that to me I just threw lots of examples I'm trying to convince you that computational thinking has already influenced a lot of disciplines and there's a lot more to come but what about this vision of mine with respect to education and this is where it gets pretty grandiose so first of all I actually think that it's not just for it if you will undergraduates it's certainly not just for undergraduates in computer science and I think the real challenge is K through 12 if I really wanted to push my vision to the to the limit and so I now pose this question and challenge for the computing community which is what is an effective way of learning computational thinking by K through 12 students or teaching it to K through 12 students by teachers and I divide this question into two parts first of all what are the concepts that would make sense to teach to K through 12 students and more importantly what is the progression of concepts that we can teach so that we can old from year to year from grade to grade on the concepts they've learned already my analogy is mathematics we know in kindergarten we can teach numbers by seventh grade we can teach algebra by 12th grade we can teach calculus in mathematics we've somehow figured this out the math math profession but more than the math profession the people who understand childhood development and how children's brains learn over time what abstractions can they learn when they're five years old versus what abstractions can they learn when they're 18 years old and we've somehow figured this all out but we don't have that kind of analogy in computer science and so this is my challenge of the community first we have to figure out what those concepts are and then we have to stack them or sequence them in a way that reflects the maturity of how our brains develop so that's part 1 part 2 is of course in computing we have the computer at the tool and we'd like to enhance the learning of computational thinking using the tool but we also don't want to fool ourselves into thinking just because we know how to use a tool we understand computing we have an understanding of computational concepts so we need to be care that the analogy there is you know just because we know how to use a calculator doesn't actually know we doesn't actually mean we know how to add and multiply and so on and that's in fact a scary thing when I go to the stores these days and I you know write so you know the scary stories I have lots of them for you it's it alarms me what our what our kids don't know in terms of mathematics ok ok so I actually have been engaging the computer science community along with the National Academies to do some workshops and working with educator and cognitive scientists on this question because computer scientists have no clue about how children learn you know they have no clue about how to teach K through 12 students so they are the last people to ask you know to help but they're the ones who have to understand what the concepts are so my suggestion more broadly for the nation with respect to STEM education is really right now stem stands for science technology engineering and mathematics add computer science to stem this is this is this isn't yet another ambitious goal of mine but uh and as you know to change anything in the United States public school systems means changing 10,000 school districts or however many there are one by one okay well there are other ways of doing it I think the time is right I think society needs more stem capable students and teachers the administration the new administration really understands the importance of stem um and this professional organization of computer science ACM is actually leading the promotion of this vision they held an event on the hill recently and they've been very engaged with congressional legislation and so on so we can only cross our fingers and hope this event on the hill was actually sponsored by various organizations all computer professional organizations Microsoft and so on okay so let me just give you an example of computational thinking in daily life here is me at NSF getting my coffee in the morning okay so this is this is a true story so first I get my cup and then I put milk in it now I didn't used to do this but the NSF stations were set up that I would put my milk in first instead of last and then I got the coffee and then I get the sugar and cream then I get my lid and then my napkin and then I leave okay so here's my path now what's wrong with this picture it's not efficient egg problem okay so the first thing you know I look at this as a computer science and I think well I think one word actually yeah so as anyone in the computer science community and the audience want to say how it what what would you say when you look at that it's an efficient and in computer science a way we would oh by the way it's even worse with two people right and this is physically real frustration because you know I'm standing there and you know you want your caffeine in the morning and there's someone in the way like getting caught a coffee or soda I can't get out of my way but you have to be patient anyway but so what do I think I think pipelining that this is a standard computational concept I and basically I it it allows you to stage things so that you don't have to go back and forth okay now not only do I look at this and think pipelining but I look at this and they say well actually the coffee station is fixed that's bolted into the counter so is the sodam a machine but all these other stations if you will are movable so I think oh what are the minute what's the minimum number of stations I need to move such that I can create a pipeline now this is like noodle overdoing it oh and then I think oh but the answer is one because I think ah but is that actually the most efficient pipeline because it doesn't take a lot to get a cup but it takes a lot of time but it takes more time to like pour the coffee that's all I think I'm going overboard here so yes the answer is you only have to move the lids and then you have this nice pipeline it is not the most it's not the most efficient in terms of time but it works and by the way yes I did tell the NSF cafeteria people I said you only have to move the Liz and they ignored me completely in fact they did rearrange the stations and they made it worse so much for computational thinking M NSF cafeteria so this is this is video change okay okay however I do I do want to say that we do think computationally an NSF and I just want to brag a little bit about this one program that we put out in fiscal year Oh No oh eight and it's called cyber navel discovery and innovation CDI and then in that shell it is computational thinking for science and engineering what it really recognizes is a whole paradigm shift in the way science and engineering is conducted and certainly will be conducted in the future and that is it's not just our metal tools transistors networks supercomputers and so on it's our mental tools the concepts be they algorithms or models or or abstractions and methods and this particular program requires above and beyond the normal kind of proposal innovation in computational thinking and to advance more than one science or engineering discipline the first year we were able to invest almost 50 million dollars it's a foundation wide program every single director in offices participated and here's a list of disciplines that were represented by the awards we made in the first year and this is incredibly gratifying to see because they were all all these projects are using computational thinking to advance not just computing but all these others all these other fields and some of these actually did address societal challenges like cancer climate change energy environment the persons with disabilities and water so and in terms of Education we also have been working with the community on promoting computational thinking especially at K through 12 I'm not going to elaborate on this I talked about our efforts at the K through 12 level in particular with the National Academies but there are other organizations that are all collectively trying to get behind maybe not so much specifically computational thinking but the point that computer signs is a lot more than computer programming and that what we are teaching right now to the high school students is is really does not do justice to the field of computer science so the high school students and high school teachers are not really getting a good glimpse of what the field is all about my little three-page article has been translated to Chinese and French and I was really glad to see that the recent research assessment on computer science in the UK actually said quite explicitly the computational thinking is influencing all disciplines so now this is just a mirror you know flag waving spread the word appeal to the audience and all your friends and colleagues to help spread the word and I'm happy to answer questions on it but I'm not done yet because remember – the title of my talk was computational thinking and thinking about computing so I'm going to talk about this is penultimate word now thinking about computer computing and I am just going to preface this quite quick quite briefly in computer science it's very easy in computing it's very easy to get swept away by all the technical logical advances that we make faster and faster processors faster and faster networks bigger and bigger memory and cool devices that we can wear and put our pockets and embed in us and so that's what I call the technical technology drivers of our field and as long as technology advances we in computing well continue to have research challenges ahead of us no problem at the same time societal expectations of computing and computer scientists have grown also so now there's an expectation of you know 24 by 7 reliability connectivity a hundred percent of the time hundred percent availability nothing I should ever go down I want instantaneous response I want to be able to store everything oh wow we can't do all that yet you know although society expects of that that of us so we have these societal drivers to our field as well so I talked about technology drivers societal drivers but often what people miss is that we also have what I would call science drivers to our field fundamental questions that underlie the kinds of problems and challenges that face us so I started this very short list of what I call five deep questions in computing just to start a conversation on what are the science drivers in computer science and the first one is probably the most fundamental which is a question of what is computable and answer this you actually have to answer it with respect to the automaton underneath the machine if you will be automata underneath by which you're determining a computability and the reason this is such an interesting interesting question now is that people are now thinking that when I talk about a computer and ask what is computable with respect to this computer that this computer could actually have humans as part of the intelligence so now ask the question when you think about my network of humans and computers working together now ask the question what is computable you know we can answer for a specific class of machines we can very precisely answer that question but for machines that are kind of beyond what we typically study in computer science and in theory it's really an interesting question and if there's no Institute better than IH and feed to tackle this it's it's you know it's really this is your question okay within this question it's a question of the P equals NP problem this is a very technical question a technical problem that has been a long-standing in our field since the inception of our field we have no answer to this question moreover we know that there are certain mathematical techniques or proof techniques that will not answer that question so that the implications of whether the answer is yes P equals NP or no P does not equal NP have very serious implications practical implications in one direction and theoretical implications in the other what is intelligence this is a question that has long also been long-standing in our field it started it really spun the whole area of artificial intelligence or machine intelligence and now we are revisiting this question because because of these new kinds of machines that we are talking about what is information this again you know we thought that we had this nailed down with Shannon's information theory but Shannon's information theory was defined and designed and developed to answer specific question about communicating bits over a noisy Channel and we sort of fall into this complacency thinking oh we've got Shannon's informations here to answer this question but we don't when we have people for instance my fellow assistant director in biology Jim Collins who gave a talk here before who goes around and talks about biology as an information science and that's very intriguing to me because computer sciences think about information in terms of just zeros and ones in the end it's just zeros and ones but that's in biology you don't think that you think that there are these natural organisms that take it in input massage it eat and then produce some effect on the environment and somehow there's information processing there okay but what is that information then and it's not merely digitizing nature if you will that's the superficial answer so I think this is all very interesting and finally there's this question of complexity how can we build complex systems simply we right now know how to build complex systems that are quite complicated and it's been a huge challenge especially to the software engineering part of computer science to try to really tackle that question so those are my five deep questions I'm happy to elaborate on any of them let me just close now here my three drivers of computing and let me just close now with saying that the future for computing is quite bright I like to talk about the 7 A's anytime anywhere affordable access to anything by anyone authorized this is a bit mouthy but the real difference between this and what people might call pervasive computing or ubiquitous computing as we know it from the late 90s even is the words affordable and authorized because now we are truly talking about computing for the young and the old for the abled and disabled for the literate and illiterate and and really the best is yet to come so thank you very much that's time for a couple questions questions Tracy this one back hurts in the matter of the red shirt had his finger up first real simply that last point on the five points yes Stephen whooping created that new kind of science kind of thing with the his rules and his cellular automata uh-huh how does that play into what you're talking about that is a kind of computational model that allows you to to model a a certain communication pattern between entity between cells so that you can solve certain kinds of problems that's a very vague way of saying it but it is a computational model a particular technique it's particularly good for what I would call emergent behavior of complex systems and so it's very much fits in with the last question and it's it's really a research area right now to understand what I would call more generally emergent behavior of complex systems professor thank you ever so much for coming down to visit with us you're welcome and your your talks been wonderful really wonderful five hundred and twenty seven million dollars in funding that you I don't is that is that what you've asked for but here's the full question what have you asked for and how much could you comfortably spend if you got what you asked for and how much of any have you given down to us here in Pensacola are those all serious questions okay so obviously I cannot answer the first question in terms of how much I have asked for all the information that's public is public so you can you'll you you can know what our presidential request is for FY 10 and there's a whole way in which the budget is decided for the National Science Foundation there's a budget cycle that we follow and it will probably not be for a while that we will actually know how much we get and let's see that was the first question how much we asked for how much could we spend were we to get whatever we get I can tell you I can spend it all not only that but more importantly I can spend it wisely that's what you really want to know I think and the third question is how much has Pensacola benefited from say the National Science Foundation I actually do not know the answer to that question sorry next question easier please so Peter you're going to get plenty of chances maybe yeah Alec yes Zach from University of South Alabama I like to talk about machine learning and you can expect a proposal from us on machine learning in the near future that's something you're very interested in what you and you talked about disciplines that are multidisciplinary areas that would fit with computational thinking give us your intuition on what you think the target-rich environment that hasn't been yet emerged as a area for computational thinking research and innovation an area that hasn't been affected well that's what I can say is this that every time I think of a discipline I can certainly see how computational thinking might influence it I think it's just emerging now in the humanities the arts literature history and so on and the way it's happening right now is if you will the obvious machine learning applied to lots of data but I think that that is a good foot in the door because what I hope is once people realize that oh my god we can discover new historical patterns or we can create new kinds of art that with the techniques that they are taught or learn in computing that they ask us in computer science what more do you have what more can we do with your techniques so that we can make more discoveries so I would say it's coming and I you know again let me put my other hat on which is the Carnegie Mellon hat it's certainly compute computing has certainly pervaded Carnegie Mellon we're kind of the big gorilla on campus if you will and I can I can list for you easily twenty different either degrees or majors or minors or courses that have the word computational X in it so there's like there's computation photography you know computational astrophysics you actually have the list on my laptop it's pretty amazing of course Carmela is a little odd you know but I just see that that's it's it's it's it's only limited by your imagination that's how big I think it is yawn just one quick question with computational thinking do you see that affecting some of the basic approaches to research methodology in any way yes absolutely so we talked about at the National Science Foundation we talked about the third pillar in science Theory experimentation and computation that is how fundamental we see science and engineering in the future and so if that's true then scientists and engineers today the graduate students the students undergraduates need to be trained in terms of not you know how to prove a funeral or how to run an experiment in the lab but also the computational methods that will allow you to model simulate predict and so on using computation so I think I think it's quite fundamental transformative if you if you will let's thank our speaker

3 Comments

  1. Tony McDonald said:

    I really enjoyed this. Thank you. 🙂

    June 29, 2019
    Reply
  2. CAS TV said:

    Added to our conference keynotes playlist.

    June 29, 2019
    Reply
  3. ramgilead said:

    I would have thought that economic viability would have been listed as a big driver of computing and thus included within computation thinking—-evolution of the fittest in the market place.

    June 29, 2019
    Reply

Leave a Reply

Your email address will not be published. Required fields are marked *