Bill Gates, "Software Breakthroughs: Solving the Toughest Problems in Computer Science"
[MUSIC PLAYING]
PRESENTER: Welcome to the Kresge Auditorium. If you will please take your seats, we'll be starting momentarily. We request that you make sure all cell phones and pagers are turned off. And also, please note that all audio and video recording is prohibited. Please limit any flash photography to just the first one minute of the presentation. Ladies and gentlemen, please welcome MIT President Charles Vest.
VEST: Thank you. We want to welcome everyone to today's discussion and presentation by Microsoft's Bill Gates. I think one of the first things you observe that is in the old days, the academic used to come out in a sweater to introduce the corporate leader in the pinstripe suit.
Today, we're going to reverse that role. And I don't think that will surprise anyone. And then again, Bill is not your typical CEO. In fact, he is not a CEO. As you may know, he is the chief software architect of Microsoft. And he is indeed here today to discuss with you some of the grand challenges facing computer science as we move into the future.
Bill's been a good friend of MIT in many different ways for many years. Starting next September, many of you are going to be studying, and meeting, and eating in the Gates Building in the new Ray and Maria Stata Center. Many of you already are the recipients of the work that has been done here at MIT under our iCampus program done and carried out in collaboration with Microsoft Research.
That has really reinvigorated and reinvented much of teaching and learning on the MIT campus. But I also want to say in particular that Bill Gates has been a great enthusiast for MIT's OpenCourseWare initiative, something many of us believe very deeply in.
Because it is a way of taking the knowledge and the pedagogy that is generated here at MIT and making it accessible to people in other institutions all around the nation and throughout the world. Bill is here today to talk, as I said, about the great challenges facing the future of computer science. But before he comes out, I want to say something quite personally.
In addition to the work that we're all here to hear about today in computer science and information technology, Bill and Melinda Gates have done something extraordinarily wonderful for our planet in the work that they are sponsoring, to improve health and to eradicate disease throughout the developing world and improve the lives of people who live under conditions that none of us in this room can even imagine. So please join me in welcoming Bill Gates.
GATES: Thank you. Well, it's great to be here at MIT. MIT has invented so many things and played such a key role in the advance of computer science. I won't have time to name them all. But Microsoft has been very privileged to be associated with MIT and in helping collaborate on a number of projects here.
Microsoft is also-- has some great employees who came from MIT. Most notably, people like Gordon Bell, who's doing some-- still very creative after making so many contributions. And also, Butler Lampson, who's actually back here teaching courses as well as continuing to help Microsoft.
The main thing I want to present today is how I see the next 10 years of computer science as doing some really amazing things, solving some problems that have been out there for many decades and transforming most things of interest, transforming the way people work in businesses, the way they deal with information and meet and communicate, transforming the way that people at home find information, the way that they create things and connect up with other people and transform even the sciences, bringing the methodologies-- machine learning, and modeling, and rich data mining into all of the hard sciences and allowing those scientists to move to the next level.
It's a paradox to me that computer science today is poised to do all these amazing things and yet, in some ways, people's expectation and even the excitement level about computer science is not as high today as it was, say, five years ago, when we were in the midst of what we can now look back and say was the internet bubble.
Many of the challenges, the problems, the things that were hard to live on during that period are exactly the kind of things that a combination of great academic work and great commercial work coming together has solved. And we'll make sure that the productivity advances that we see in the economy will be dramatically higher, more than double what we received in the 1990s.
And that's very profound for innovation, employment, many things on a global basis. The computer industry started by making very big, expensive machines. And in fact, when I was young, people thought of computers as kind of these daunting things in the back room that would often print out bills that would be wrong and you could never get corrected.
People talked about taking the punch card in your billing envelope and putting staples in it or mutilating it to somehow defeat the big machine. And I was lucky enough to be young at a time when that changed. My friend Paul Allen saw the very first microprocessor, the 8008-- not very capable, but better than a PDP-8 was.
And he challenged me. He said, hey, Bill, could you write software for this? Could you do a basic? And that really got us going, saying that we wanted to be on the ground floor, building the kind of software that computing would need as it moved from that back room onto the desktop, as it became a tool of empowerment, a tool for creativity and communications.
Now, it started in a very humble way. The kit computer that Paul saw on the cover of Popular Electronics magazine-- a freezing cold day in Harvard Square and brought back to me and said, you got to drop out. It's happening without us. That machine was laughable.
It at most had 8K of memory-- had no peripherals to the software we wrote-- would flash lights and do funny things. It was a major discovery that because of the noisiness of the electronics in it, that we could actually put a radio nearby. And if we did certain construction patterns, cause predictable music to come out of that radio.
And it was kind of limited what we could do, but that was the beginning. And the kind of excitement around that, thinking where could this go? That got our industry off to a great start. There was a generation of machines that came after that, the so-called [INAUDIBLE] machines-- TRS-80, Commodore 64, Apple II, all of which included Microsoft BASIC in as their fundamental software.
It was the equivalent of not only the language, but the operating system. Everything. And you could type in basic statements to do graphics, and games, and business software. And we even gotten disks connected up to these things. We moved away from cassette tapes and paper tapes to these ridiculous 8-inch disks that hardly held any information at all, but constant improvement.
A big milestone in 1981 was the entry of IBM with the PC into this business. And that had been a joint project with Microsoft, where we'd convinced them to use the 8086, created the DOS operating system. Very limited system, but very appropriate for that machine.
And we kicked off an era that was fairly different. Because starting with that machine, we had a vision that we wanted all the machines to be compatible. That is to use a software layer to make it so that whenever you wrote an application, it would run on machines from IBM, or HP, or Digital Equipment, or any of the other computers at the time.
And that hadn't been the case. And in fact, that prevented the virtuous cycle that we wanted to have happen. It prevented it from getting going. And that cycle was that as more people saw applications that were meaningful to them, they would buy machines.
The more machines that were bought, the more volume of components would happen, the lower the cost those components would be, and the more people would invest in buying applications. So it would make sense to really build a software industry.
There essentially was no software industry before the PC. There were about 20 different companies. And the highest award in the industry was one that you got for selling a thousand copies of a piece of software. It was called the ICP Award. And I filled out the application after we'd sold two million copies of BASIC. I sent it in.
And they said, well, we'd love to give you this award, but there must be some scientific notation error here. You've got too many zeros. And I said, no, I'm not kidding. We sold two million copies. And they said, well, geez, how come we haven't heard of you?
And we said, well, I don't know where you've been, but we do have this very high volume, low-price model. So we're not like on the New York Stock Exchange or anything, but we have sold two million copies. And so personal computing gained the momentum. It gained in excitement.
One of the great issues was the move from character mode interface to graphics interface. It may seem strange today. Everyone takes that for granted. But the cycles required, the difficulty of writing these programs made a lot of people say, hey, we don't need this.
That's just frilly. Too many icons, too many fonts. Let's stick to the serious stuff. We'd love these monospaced characters up there on the screen. And there were about six or seven years, where taking some of the pioneering work from Xerox, Apple, and Microsoft really pushed forward with this idea of graphics interface.
And that became-- Microsoft Windows was integrated in the operating system. And then we got to the next frontier. That frontier was connecting all the machines together. And year after year, we'd always say, email is coming. Connectivity is coming. Online services are coming. And in fact, it didn't happen and didn't happen.
And then all of a sudden, coming out of the university environment, the standards of the internet exploded, along with the decrease in the cost of optic fiber and the increase of the speed of the network. And a critical mass was achieved. And that was the period where things definitely went a little crazy.
But the gold rush atmosphere actually accelerated the investment people were making and raised the awareness that people had of what a revolution this was. Now, some of the things that are hard about e-commerce, or workflow, or modeling, or making sure these systems are ultra-reliable, ultra-secure-- some of those were revealed as shortcomings that needed software breakthroughs, needed software advances.
And so as we look forward, it's kind of a bias I have. But the thing that's really going to make a difference is software. It is new generations of software that let us interact in natural ways, that connect these devices up in new ways. And problems that I see being solved in the near future.
Now, the hardware guys-- I have to give them credit. They've always provided a more powerful platform for us to exercise our software creativity against. And that's why Paul Allen and I could say back in 1975, personal computers will be mainstream. The slogan we had was a computer on every desk and in every home.
And in some small part in some countries, we've come a long ways towards that. It's not yet the machine that we envisage in terms of the ease of use or breadth of things that can be done. But it's certainly a good rough draft that's on its way. The hardware people have given us Moore's law that predicts doubling in chip performance every 18 to 24 months.
That's held true these last 25 years. And something like the next 10 to 15 years it's very likely to continue to hold true. Now, that increase in transistors-- there are some very interesting software techniques related to parallelization that are needed to take transistor count and map it into performance.
It's not automatic that just because you have twice as many transistors that you get that performance. And so finally, some of these issues of automatic parallelization and understanding the algorithms that let you do that-- we're making progress on those. The storage people do an even better job than the chip people.
Their doubling rate is something like 12 to 18 months. And this is very important. Because when storage was expensive, the idea that you could deal with photos, and videos, and audio annotation, and replicate information around, so it'd be immediately available even if the system's not connected up to the network.
That just wasn't possible. People didn't think in those terms. And in fact, storage is so available now. We have to be creative in thinking about what we're going to do with it. We're getting lots and lots of that. In fact, a good example of how cheap storage is, is that we have this device that comes out this fall called the Portable Media Center.
It's a 4-gig disk, beautiful LCD display. And you can just connect this to a PC that's recording TV shows, or has your movies, or whatever is there. And it automatically downloads the movies, videos, photos onto this device that you can, of course, carry around and use any way, anywhere you want.
And these devices will come out fairly inexpensive in the $400 range. And the price will just come down, and down, and down, because this is the magic of that hardware innovation. Eventually, we'll just take it for granted that kids who want to watch movies, or people who want to watch shows have this available.
And so it won't just be portable music players, but devices that deal with the video as well. The screen is another place where innovation is critical for us. If we think about how we can move reading from paper to the screen so that we get the rich searching, updating, annotating, sharing that the digital world allows, that requires screens with very high resolution.
It requires screens that we're comfortable holding in our lap and just sitting there paging through the information. It requires a thin-like device, long battery life. Big challenges. But certainly what's gone on with LCDs and other screen technologies says that in the future, we can assume a 30-inch LCD on a knowledge worker's desktop or three 22-inch displays, which is the configuration I'm using right now and lets me work with information in a much better way.
In the same way that a newspaper gives you a big, wide field of vision, this does that. And there are certainly some advances in Windows management and use of the screen area, that it has to take place as we get to extremely high DPI in big screen areas that come with this.
And we believe that reading will move onto the digital platform, that the superiority of the cost structure, all these things argue for that as we get devices that are based on this new screen technology. A nice milestone in that is the arrival of the tablet PC. That got kicked off about a year ago.
It's based on the miniaturization hardware, the ink software. Ink recognition technology that we've been working on for over 10 years is now bootstrapping in terms of the quality of the hardware, learning from that software, doing that better and better and making that mainstream.
And so all the portable devices will become tablet devices. And they really will be like tablets, which they're a little bit heavier than a tablet today. The graphics processors-- there the improvements are you can get higher transistor counts there because the number of duplicated components.
And actually, if we look to the future of CPU architecture, we can see that more predicted by what's happening on the GPU level. Because they've thought about parallelization. Now, they do it in a domain specific way that we need to open up. But it's really the blending of those that is the next stage there.
A big element, of course, is wireless. As we get things like ultra-wideband wireless, which is hundreds of megabits, the idea that you connect a computer to the screen will become obsolete. The computer will find the screen that's nearby and take advantage of it.
The idea that the computer and the storage have to be associated with each other-- there's no reason for that. You can carry your storage with you. And whatever PC is around in a very secure way, your storage can be made available to it. And you can be given guarantees that that information isn't left on that machine after you log out from that machine.
So we'll see the desegregation of the PC that way. We'll see the arrival of rich new peripherals. Digital cameras are now the most popular way to take photos. And that's happening in the motion video space. Well, those devices will have ultra-wideband.
So they'll mark not only the time, but the location of that information and deliver that to your storage system. Your storage system would be a combination of data stored in the cloud in sort of a far-sight, ocean stored-type way, where you don't have to worry about whether you've backed it up.
Because there's many copies, but that are stored in encrypted ways that mean only you have control of that information. Or you'll have the storage that you carry with you physically that'll give you total control over it. And making those two things work well together is very important.
Now, in the area of wireless, one of the top challenges has been the cost of broadband. When we think about what's expensive, getting a PC, say, into rural India. And the hardware is 3 or $400. The software is less than $50. It's that broadband cost, the monthly cost of paying again and again and getting that infrastructure out there that's really the prohibited factor.
And we believe through some software techniques around mesh networks and some advances in the wireless hardware, particularly the WiMAX-type approaches bringing in not just omnidirectional approaches, but directional antenna as well, that we will get the kind of connectivity that can make sure that connecting everyone on the planet becomes very feasible.
So you'll have a range of devices-- wall-sized screen devices, desktop, tablet, pocket size. We even believe in a wrist-sized device. In fact, I'm wearing my SPOT watch, which just came out in the last month. And this-- I don't know if you've seen it. It lets you see sports activities, stock prices, your schedule. You get messages on it.
A lot of different things that are being transmitted to this watch. It was actually when I was at MIT over 10 years ago that I first saw a demonstration of FM sideband data networking. And this watch is based on that approach. Of course, the modulation techniques are several generations later.
There's a microprocessor in here that we paid National Semiconductor to create that's based on the ARM architecture. This microprocessor just on my wrist has 10 times the power of the original IBM PC. It's got 10 times the memory of the original IBM PC. Now, this thing is powerful.
And of course, the battery life is on the order of many, many days, because these things are low power. We can download arbitrary programs to this device. So as we get new ideas about sports presentation, information presentation, as people have neat things they want to do, it can come down in an automatic way.
Today the watch is in receive-only mode. But we actually have the capability to send data as well in a local area. And so you can find people with common interest. A lot of applications that the glancible information platform will be particularly appropriate for, working with the other devices.
Now, we have to think in terms of scenarios-- the photo scenario that you use all the different devices, the scheduling scenario using all those devices. And it's way too far today to get those things to work together. One of the big places that software advances will change things is the way business is done.
The information visibility that a typical information worker has is extremely low. They're used to it in a way, so they don't know to complain. But their ability-- say somebody gives them a sales printout. They look at these numbers. And they must think, wow, that one's really big. Wow, what did we do?
Now, that one is kind of small. Geez, are we in trouble? Well, their ability to just dive into that data and see it by time period, product, cost structure-- they don't have it. It's not there. The schematization and model approach to bring that down to every employee to just naturally expect that they can see those things and understand those things-- that's not there.
The world of business intelligence hasn't delivered on that. The XMLFoundation that's advanced so fantastically over these last six years is the foundation to make that happen, to build XML into the spreadsheet, to build a knowledge of business processes, so you can visually see, what's the state of this activity?
Businesses today do all these custom modifications to the applications programs they run-- the enterprise applications. And it's very strange. Because the differences between those businesses-- you ought to be able to express it in some other way than code. Code is complex.
When people update the applications, you don't know how to combine that new code with the other code, because it's not orthogonal. There shouldn't be code in that process. There should just be visual business processes that you're connecting up to and explaining how this business is different than this business.
How does the order process work? How does the collection process work? How does the analysis process work? And that's kind of the thing we're really on the verge of. Because XML gets our semantic level up and lets us finally address making this information really available.
If we looked at meetings, meetings are a source of a lot of inefficiency. Any information worker will tell you things that they didn't need to be there for, things they-- meetings they had to fly into that they would have preferred to be able to do at a distance. Things that didn't get followed up on. Things that somebody who wasn't there. You wanted to explain to them that you couldn't just link in and see the transcript or see the video of what went on there.
Well, storage is almost free. And cameras and software to scan and understand this stuff will be almost free. And so we can take the meeting and have that be something that we bring a lot of efficiency to. If you make meetings in general 10% more efficient, that's tens of billions of dollars of X for productivity every year.
And that can be used just as cost savings. It can be used to make better decisions, to drive quality into processes. And it will do every one of those things. Even the basic process of buying and selling hasn't been made as efficient as it should be. Can you find all the sellers of a particular type of product?
Can you check their reputation? If you engage in a transaction, see the state of that transaction in a very rich way? If your computer is talking to their computer and their computer is somehow malicious, are you protected from that kind of behavior? If the software is talking to the other software, what about the workers?
Say that there's a delivery that's defective. How do you coordinate the negotiation on email in an ad hoc way with these back end systems, so they can understand things and check the state of things? These things are incredibly inefficient today. So basic workflow is not built in.
E-commerce has not happened. E-commerce only really happens where every seller can find every buyer. Every buyer can find every seller independent of location or previous knowledge of each other. And that rich transaction is done in a pure digital way. In communications, what we've got today is kind of a hodgepodge of different things.
The latest thing is blogging. That comes after instant messaging, which comes after email. You've got your wireless phone, your wired phone. Lots of times you're interrupted. The phone rings when you don't want it. Things come into your inbox you don't want. And your time is a scarce resource.
And so these activities are wasting your time, causing a lack of productivity. Even in some cases, you have enough spam that you filter out or don't have time to read mail that would have been of value. Now, for me, spam-- it's this awful thing. But sometimes when I look at these spams I get, I have to just step back and laugh about them. I've got a few examples here. This is one of my first ones.
And it's clear once I get out of debt, I'm going to be meeting a lot of nice people who are going to be friendly to me. The next one looked like it might be more targeted. And this is not one that any of you need worry about, since I hope you won't drop out.
And finally, there was one that really related to a serious cost problem I've got. The shareholders really want me to dig into this one, understand what's going on there. So it's a serious problem. But it's amazing the things that are out there. Letting people send billions of pieces of mail very, very cheaply devalues the time of the person on the other end.
And this is a very solvable problem. We need mail that comes from people we communicate with regularly to be authenticatable. And we announce on Tuesday a way of doing that, leveraging off the DNS that we think can be applied and used as a standard, literally within months.
Mail that comes in from a stranger-- some type of proof is necessary. If the filter thinks that looks like spam, then you need some type of proof to distinguish it from the other email. And there's several forms of proof that will be used, and they all work in parallel.
Any one of them is kind of an "or" condition. Proof that's computational, where you solve one of these problems that's asymmetric in the opposite way that cryptographic functions are. That is it's asymmetric in the sense that checking the answer is easy, but actually doing the computation is hard.
And so for somebody sending a modest amount of mail, it'll just happen in background. They won't notice it. But if you were sending millions of emails, it would be a significant computation cost to do that. So you screen out. Human interactive proof where you bounce back and make somebody solve-- it's something that software alone can't do-- is another approach.
Or if there's a connection into a payment system making somebody put a little bit of money at risk, not that gets charged to them-- and this is only email from strangers, but that is at risk. So that if it really is junk, the person who receives it and spends time reading it-- at least they get the benefit that whatever the threshold they set for their time, their inbox rate-- that gets credited to them.
But if it's their long lost brother or somebody saying their house is on fire, hopefully they won't debit that. They'll say, okay, that was just at risk. And I'm glad that person can't connect it up to me. In the home environment when we think about media and memories, there's so much that can be done.
And yet, we're going to have to deal with a lot of volume-- all the music you like, all the movies that you're interested in, all those photos that you take. It's kind of amazing. We have a researcher at Microsoft Research who wears this-- as they go around in the day-- something that's just a camera.
And it notices when there's a big scene change, or when there's people laughing, or anything loud or something. And it takes photos. So at the end of the day, that researcher has over 100 photos that might be interesting to put in her journal and save and even annotate with some voice or something.
But software has got to help select which one of those things are interesting and to navigate amongst those things. And so there-- a lot that has to be done on that. We want to put users in control in the home. This idea of watching TV shows only on a schedule-- slowly but surely that's going away.
People use that. Whether it's built into what we call the Media Center PC, or a TiVo, or the satellite receiver-- get very addicted to it. It's kind of like email where it's not perfect, but you don't want to give it up. You just want it to get better. And so as we think about that, we think about what kind of interfaces would deliver on that.
And in fact, I've got just real quickly a couple prototypes from Microsoft Research. I wanted to give just a sense of this. In fact, these were both done by an MIT graduate. The first one here is pretty straightforward. Let's say you're looking at movies. You're looking at Blade Runner here.
And what it shows is-- okay, the director is Ridley Scott. Well, then I can go over here and see other movies directed by Ridley Scott. And I can just select one of those-- Alien. That's brought to the center. And of course, then all the things related to that come out. And I can see-- okay, these actors and see the different things they were in and see if one of those might be interesting.
And just pivot through these sets of movies in a simple, visual way. Of course, this will be annotated with the reviews that you trust, comments from friends. If you've seen the movie, what you thought about it. And so very navigable to get around the movies of interest.
The other one I wanted to show has to do with photos. And photos-- we're dealing with lots and lots of photos. Literally, if you take your lifetime, tens of thousands of photos that you and your friends are sharing, and you'd like to be able to get back to in a rich way.
And so here we see them as miniatures. I can just hover over these things. Lots of photos. We've even mixed in video clips as well. Here's Gordon Bell at the Computer Museum. Because we don't think the boundary between stills and motion will hold up. In fact, these audio comments that we call photo stories bring a lot more emotional connection to that experience.
And so it's just like this. It's hard to find exactly what you want. And so people will take these things with keywords. Here is things that relate to Thanksgiving. We can do software analysis. And so if we want the photos with faces, we just select those. If we want the photos that are indoors, the software can select those.
If we want the outdoor photos, we can select those. If we want to see photos that are similar, let's select this bridge photo and say, okay, I can relax the constraint and say, what's similar to that? Okay, that's a lot like it. That's a little bit more like it. And I can select groups of things to be used.
This software automatically-- when it brought the photos in, helped orient the photo by being able to recognize the cases where things were kind of-- at least of the software looked like they might be misoriented. We can also start to use a 3D way of looking at these things to group these things.
And what that means-- now, this is by timeline. So I can select a set and take these. I can change the timeline, get to finer groups in terms of when they were taken or where they were taken. And this makes it very easy to just step through these, but also deal with groups that I want to organize and take in different ways.
So in a general sense, we can say, well, that's just a database. But we need much better ways of interacting with a database than just the common query processor. People won't be writing SQL statements to navigate through their photos. Now, this optimism I have about computer science and its impact-- a little bit the proof of how serious we are about that is the R&D spending that has been increasing at Microsoft.
Today it's $6.8 billion a year. It's kind of an intimidating number, at least to me, since 10 years from now people will say to me whether that was wise or not. But I'm quite confident that it is. That's the largest technology R&D budget that there is. IBM is about 20% less than that.
But of course, not all folks own software. And then other commercial entities-- you'd have a big drop down, particularly if you take the long-term component-- the equivalent of Microsoft Research. We actually do our research work in three different locations-- in Cambridge, and in our headquarters, and in Beijing.
We have smaller groups in some other areas, but those are the primary areas. We've had, as I mentioned earlier, a strong collaboration on a number of things with MIT. For example, the iCampus project. We're a key partner in that. And I'm thrilled-- the things that are coming out of that.
Some involve learning at a distance. Some involve the tablet PC. And the idea that we can make learning better-- there's no doubt. And I think that's a great planning project. Natural interfaces-- I'll throw in. And that's this magic paper idea. That's a fantastic thing.
And we've gotten involved in things that think. We've got a lot of people on the faculty here that are helping drive our agenda. For example, Victor Zue, who's on the technical advisory board for our group over in Beijing. So it's been a good, strong relationship. And the progress being made in the combination of academia and commercial research labs is really fascinating.
It's phenomenal and it's not getting that much visibility. And yet, these advances are extremely relevant to problems that we have-- the problems that are of critical importance. Take for example, security. Of course, MIT has strong programming on that.
Of course, you've got Professor Rivest, who just got the Turing Award, which is a fantastic thing. Security is something that if we're going to achieve the potential, these systems-- has to get a lot better. And that's a tough thing, because code reliability gets into that, how you configure up these systems. How you watch behavior is part of that.
So it's going to take some breakthroughs. Over 25 years ago when I was leaving Harvard, this idea of proving program correctness was sort of in vogue. And unfortunately for many years, although there was some progress, the scale of the program that could be played against didn't get very large-- hundreds of lines of code.
And now, working with universities, people in Microsoft Research are taking literally things that are a million lines of code and being able to go in and prove very important things about those programs. Or if they can't prove them, they're able to show the counterexample that says, yes, this can touch memory that it shouldn't touch, or it can acquire the lock and never release the lock.
And so you see exactly what the pattern is and how to fix that. Now, all this proving technology is having a wonderful effect on innovation in programming languages. Because we want to take everything that the programmer knows about the data types and the constraints and express those in as high a level, as strong in fashion as we can through contracts.
And this idea of expressing the contracts very easily, having languages that are very explicit about those things-- that takes all the theory of language innovation and brings it into the mainstream and says, we really need those capabilities. Keeping systems up to date, being able to look at a system and say, is its behavior normal?
We need this both at the single computer level and looking at the network. Is there a type of traffic that's exploded in terms of usage, at a time where the overall traffic is starting to be too heavy for the network to do it? There should be automatic tools out there that are doing that. And in fact, machine learning techniques that build the model of typical behavior.
And then see these things that are unusual will be used at every level of the system-- at the memory management level, at the API level, at the network sending level, and the wide network monitoring level. And we call that behavior blocking. And that'll be a critical component in solving those security issues. Another set of areas that I think are making wonderful progress are getting a more natural interface between users and the computer.
Victor Zue here has been a big advocate of that, building some wonderful systems that take speech all the way up into particular domains and let people interact with those and making it so that it's not a huge technical exercise to build one of those systems. That you just have a general runtime for that, I think, is something that will be solved in the years ahead.
The prowess in speech recognition is very good. If you take a isolated, simplistic case where there's no context and no noise and a perfect microphone-- three great simplifications-- the difference between a human and a computer is not very drastic. It's as we relax those constraints and bring in context-- crummy microphones and noise-- that then the divergence between the computer and the human is quite substantial.
And of course, human users of these things are very demanding. Because speech doesn't operate at a conscious level, as it makes mistakes, you just get irritated and talk louder. And of course, it's been trained. It's learned you're speaking in normal tones. So it just gets worse and worse. And so it just generates while you're yelling at the system.
Now, ink is not quite the same. It's a little easier because you process ink at a conscious level. And so although it's irritating when it doesn't work, you can look and say, well, how could I have recognized that? Is that E looped so closely that it looks like a C? And in fact, as we monitor people using our handwriting system, the plasticity is partly in our subsystem.
But a lot of it's in the user, that the user consciously or subconsciously is actually writing more explicitly the features that have caused the problem in the past. So that's one where-- that's partly why ink is coming into the mainstream, say, a few years in terms of general input, the equivalent of dictation a little bit faster.
The place we're seeing our speech work really catch on is a combination of people where the keyboard is unattractive for them for any reason, including repetitive stress injury or people in China, Japan, or Korea, where the keyboard is relatively less effective as an input technique.
We can already beat the fastest typist of Chinese with a Chinese speech recognition system. And so now, that's a milestone along the way that is pretty exciting. General artificial intelligence-- this is the holy grail. And when I was talking to faculty today, I was impressed that MIT has kept its commitment to this area and throughout all the years.
And it is one where some very interesting approaches-- statistical approaches, Bayesian approaches are now starting to be used in different fashions. The actual product on the market that apparently is a spin-off related to a professor-- here's the thing that goes around and vacuums the rug. And that's pretty low level, better than nothing. But we want to move up in terms of the things that go on.
For gaming, one place we're using our machine learning technology a lot is we, on Xbox Live, can watch player behavior and different strategies. And the machine can learn. And so if you want to pick an opponent-- typically if you play the computer historically, it's a road algorithm that isn't that much fun to play, because eventually you see that as being very predictable.
We can take all the play styles that we're seeing across this network and create any sort of level of difficulty or different fashion of play and make it as interesting and as varied as playing with human opponents, including letting you win every once in a while, which on video games for me, that is pretty tough.
You pick these things up. And they are geared to-- well, to you and not to people who haven't used them nearly as much. And so we'll make these things appeal. And even if you start to beat the system, boy, we'll crank it up to a level that will keep it challenging.
So AI is going to be applied in a lot of different ways-- modeling things in the other sciences happening with dynamic behavior and systems-- very, very important. All the natural interface techniques-- vision, speech-- we'll come to take those for granted in a very strong way.
Now, the boundary between computer science and the other sciences historically was a fairly hard boundary. And that is breaking down. One great example of that is the research. We have Jim Gray who looked at astronomy and said, boy, there's a lot of data there. And a lot of the advances come in proposing something that you can either validate by looking at that data or invalidate.
And so we really need to get all these databases connected together. And the semantics and our very high level-- it's, again, not just a relational problem. But collaborating with a lot of astronomers who know the domain, he's been hooking up those databases and now navigating through this logically connected database-- is a very important tool in astronomy.
And many of the sciences are going to where those rich data collections are necessary for everyone to have access to in a high-level way. Biology, of course, is perhaps one of the most challenging, because of the breadth and the differences in the data. But even there, this is starting to happen.
And I had a great discussion with some of the faculty who are pushing off in that direction and really seen that the boundary of computer science and biology are very much coming together. And we need people who understand both of those things to make advances in solving diseases.
And I'm very optimistic about how fast that will move forward. Now, this tool that we've got-- the PC connected to the internet and all this great empowerment-- it's such an important thing that we do have to worry that there are people who are benefiting from this and people are not.
And people talk about that as the digital divide. It's something that I think people in computer science should care a lot about and in various ways contribute to trying to minimize that difference. One of the projects that Microsoft got involved with together with my foundation was saying, well, what about libraries?
Would it be appropriate to have computers there? And we were a little worried about this, because would the librarian like it? Would it be at the expense of the books? Would kids come in and just hack up the machines? Would they be doing enrichening things as they were using those computers?
It was unclear. But six years ago, we kicked it off. We did pilot projects. And over six years in all 50 states in 18,000 libraries in a rural-- everywhere in the country, we put in over 50,000 computers. And the response of librarians was just phenomenal of wanting to be trained, wanting to reinforce the role of that library.
And traffic to the library increased, not just to come use the computer, but also the number of books that were being lent out. And we were able to monitor and support all these things in a very efficient way that made it work very well. Throughout the project, we learned things.
We came up with a version of the software. You can just hit a button to switch from Spanish to English for a lot of these libraries. We had a button you can just hit to switch to big print. So if you don't like reading the fonts that we typically use-- boom. All of a sudden, it's a lot better.
We came up with things to help people with the common scenarios. And so it's great to see if you give people those tools, they'll use them. And it really makes a big difference for them. Getting these tools out to schools, getting them out to all different countries-- a lot of challenges remain there that need to be addressed. We think about computer science.
One thing computer science has done through the internet, through software-- it's made the world a smaller place. In fact, people now worry that this is going to create a new level of global competition. And the answer is it is. People's opportunity to have great jobs in the future will be far more determined by their level of education than by what country they happen to be in.
Historically, your education level didn't matter that much. If you were in a rich country, you made a lot of money. And if you were in a poor country, you made very little money. Now, the opportunity for educated people worldwide to help out, to contribute to products-- not just software products, but anything you can imagine-- architecture, law, answering the phone-- it will be done where people have those skills.
And as people look at that, they go, wow, what does that mean? Well, it means the US has to keep its edge in terms of doing the best work. And that means research. It means intellectual property. It means improving the education system, rededication. It's very similar to what happened in the 1980s when there was a lot of angst about Japan.
Japan at the time appeared to have a model where they would just pick an industry-- the car industry, the computer industry, the consumer electronics industry. And boom, they would do it better. And the great thing that happened in the '80s was there was a lot of humility, a lot of thinking, well, do we just match what they do exactly that way?
Or do we just push forward on our strengths, our approach to things? During the '80s, they did this AI project. And it really-- because of the way it was done, it wasn't done in the diverse academic approach that we use here. It really ended up not generating much. So we dedicate ourselves.
And it's actually the work done during that period that led to that productivity increase that benefited all countries, but the US in particular during the 1990s. And I see that same thing repeating itself as we question our unique role and reinforce what needs to be done.
One challenge that we have in the field-- in all science fields, but particularly in computer science is the issue of diversity. To do the best work, we want to draw on everybody's talent and give everybody a deep involvement. The variety of jobs, the need for great people is pretty phenomenal. And the diversity numbers in some professions like law and medicine have been going pretty strongly in the favorable direction.
One thing I've personally gotten involved with to try and help push this forward is a scholarship program that's called the Gates Millennium Scholarship. And here at MIT-- out of actually a thousand people who get those scholarships, 60 people are here at MIT. So it's a great thing and a real endorsement of MIT, that there are more Gates Scholars at this school than at any other school.
Now, these science problems are tough, but they're fun to work on. The jobs that are involved with them are-- you can have an impact. You can work with other people. It's not just somebody isolated, off coding all night, although if you want to do that, that's fine. We still have lots of jobs that are like that.
And so the sense of reward, being involved in changing business, changing entertainment, changing education, giving tools to those new science sciences, including to help the disease-- I think that's a phenomenal opportunity. And so that's why I'm more excited about computer science than ever. And I'm very excited to see what some of you here can do, taking that to the next level. Thank you.
MODERATOR: Thank you very much-- interesting and fun. Now, maybe we come to something-- will also be fun. You'll all get a chance to ask him questions. I'd like to get as many questions in as possible. There are microphones in each aisle. So if you want to ask a question, go to a microphone. And two up, please. And do me a favor. Have your question end with a question mark. So it should actually be a question and try and keep it as short as you can. And then when you're done, go take your seat and give Bill a chance to answer it. You're up.
AUDIENCE: Could you explain to me .NET? I've seen a lot of things about .NET-- Never really understood what it does, what it actually accomplishes.
GATES: Well, there's a revolution in how information is represented around XML. And that's something that we and a few small companies got behind, now seven or eight years ago. And in the year 2000, we said we were really betting our company on taking those XML representations and having some protocols around them that are now called the web services protocols, making those standards.
Standards that would exist on any operating system, any language and letting those be the basis for deep interoperability for applications like e-commerce that I talked about. And so .NET is us embracing XML, embracing web services, and building that into the Windows platform.
And it means building web services and XML into Excel, building it into the SQL Server database, having Windows use that to be the way that you set it up and manage it, so that management isn't a set of protocols, or approaches, or APIs that are separate or off to the side.
So bringing .NET to all of our products and connecting it up this way is something that's a very broad project that we're about 60% of the way done with. And when we made that bet, it looked like a very risky bet. But I have to say at this point with the cooperation on the web services standards, the excitement around XML-- it's not a bet that's risky at all at this point.
AUDIENCE: Thanks.
MODERATOR: Thank you
AUDIENCE: Thank you for coming. If you were 19 years old again and let's say this time around, today you're at MIT, and Microsoft was already founded. Would you continue your education and/or create a new company? And what type of company and why?
GATES: Well, I loved going to school.
MODERATOR: He didn't go to MIT.
GATES: But it was very similar. There were very smart people around to talk to every day. They fed you every day. You didn't have to go to classes. If you worked a little bit, they'd give you this positive reinforcement, these grades every once in a while to encourage you.
And so what had happened was my friend, Paul Allen, who saw this microprocessor and really egged me on, had come out to Boston and taken a job out here at Honeywell to say to me every day, it's time to start our company, it's time to start a company. Well, he didn't succeed until he had that cover of Popular Electronics and said, it's going to start without us. Let's be the first. And so then officially, I didn't leave school. I went on leave. And I'm still on leave.
In fact, when Harvard has my name in their publications, they always put '77 after it as though I graduated, which of course, I didn't. And so I'd say that if I was a student today, I'd certainly be looking for some paradigm shift that could make a dramatic change. I don't know if I'd work in AI, computational biology. Those are two that I really love.
And I'm glad to hear those are-- there's a strong increase in emphasis in those things here at MIT. But I'd say that anyone who has in mind a deep paradigm shift for an industry, go ahead. Take the risk. Go away for a couple years. And MIT will probably let you come back if it wasn't the paradigm shifting thing that you'd hoped it would be.
AUDIENCE: Thank you.
MODERATOR: Thank you.
AUDIENCE: Many people consider you an inspiration. Who is your personal hero?
GATES: I have many heroes-- people that I've been lucky enough to work with, from my parents to a lot of people at Microsoft. One that I'd really highlight is Warren Buffett. His way of looking at the world, looking at how business should be done, showing that you can have fun while doing a very important, tough job.
He's had an incredible influence on me. And it's part of the reason I say, hey, I have the best job in the world, because I can-- I have had a chance to meet somebody like Warren and get his advice and his humor, which is really, really unique.
MODERATOR: Please.
AUDIENCE: Hi, how do you feel about software patents and their role in either promoting or stifling innovation? And are you concerned about them long term? I know that Microsoft got sued a little while ago for that. [INAUDIBLE]
MODERATOR: Really?
GATES: Oh, we got sued. It's interesting because we're on really both sides of this patent thing. We, because of our success, are a target for patents, some of them not as good as they should be. And we're also a company that files lots and lots of patents.
We file more software patents than any other company. The patent system is not perfect. And I think any freshman could look at the patent system and suggest improvements to the patent system. But it's a system that has worked amazingly well, despite its mistakes and its problems.
Over several hundred years, starting with Benjamin Franklin, the kind of incentives for invention, the creation of the biotechnology field-- is that a good thing? The pharmaceutical industry-- is that a good thing? These are industries that the US leads in and have created immense improvement in human welfare and all based on just taking the patent system as it was and using it, so that as they would do innovative work, there would be some incentive there.
And so I think we absolutely can improve the patent system, but it's something that is important. And particularly if we look at global competition, the things that generate jobs here or help the US be a strong leader-- a lot of that is that if we're super innovative, there's a reward that goes with it.
AUDIENCE: All right, thanks.
AUDIENCE: So there's a really interesting trend that I think you started to touch on, but you didn't dive very fully into, which is the commoditization of software and software innovation. And what I was wondering was, how do you see Microsoft kind of fitting into a world where software is cheap and produced at very low cost? And what do you have to say to your current and prospective fleet of software engineers?
GATES: Current?
AUDIENCE: Current and prospective fleet of software engineers.
GATES: Oh, great. Well, yes. Software has this interesting property that unfortunately it never wears out. And so when we sell somebody a copy of Windows and Office, they can just use it forever. And they don't owe us a dime. It's theirs. They get to use it.
And so all we get paid ever-- it's not like Coke where they get thirsty again. That's a good business. But it's not as fun to be in a business like that. All we get paid for is our breakthroughs. We have to come up with a version of Office that's worth licensing, worth installing, worth learning, worth dealing with some effect it might have, or it might change things.
And that's our economic proposition versus all the free software that's out there, all the installed base of our best work of the years past that's out there. And people don't have to pay us a thing for. We have to innovate enough that it's worthwhile to license. Now, there's another way to look at it, though, which is if you take a knowledge worker most anywhere, even in Bangalore and Hyderabad, they're making $40,000 a year.
They've got an office. They've got phone bills. They've even got paper clips. What we're saying to people is, hey, pay us less than $100 a year for the right of that person to have the very best software to communicate, create, collaborate, organize their thing.
So it's a percentage of what it costs you to have that information worker, to have the very up to date, the very best software. Is it worth something less than $100 a year to do that? And when we hire people, we say, hey, if you don't think we can do that, you shouldn't join, because that's the standard we're held to every year.
And so far, we've done okay. And certainly, the customers-- when I mean the customers, I've never been in a meeting where they say, you're done. You're done. They say, hey, your stuff isn't easy enough to administer. It's not secure enough. It doesn't do this feature. It doesn't let us do this customization that we need. So the need for better software and the impact of better software is super, super high.
And the fact that we've created this high-volume, low-cost model works very well. The fact that once we solve workflow, there's hundreds of millions of people who will benefit from that. Once we get the spreadsheet up to this modeling level, hundreds of millions of people will benefit from that. It's a model that has worked and that I believe in.
AUDIENCE: You gave us a broad overview of many different aspects of where you see things going in the future. I wanted to focus on the digital divide. How did you-- there are a lot of people with money that don't do nearly as much as you do. I'm wondering why you found that very important-- if there was a specific experience. And what's your concrete vision for Microsoft and for your foundation, for bridging that divide between the US and other countries around the world-- developing countries?
GATES: Well, Microsoft-- its philanthropy focuses really in two areas. One is that whatever causes our employees believe in, we match their donations. So if they want to give to MIT, they want to give to some local church. Whatever non-profit, we match that, including they can take company software and provide that at extremely low cost.
The other thing is-- the other focus is digital divide. And this means going to every country and thinking about, how can we get computers to be available? It means the Boys & Girls Club-- the thing we've done in the US. The library thing we've done in the US. There's a group called Empower that provides software to non-profits and lets them do those things.
So for Microsoft, it's very much digital divide. My foundation is a little bit different. And for Microsoft, why do we do it? Well, our employees love it. It speaks to our mission of empowerment, that it's not just empowerment for people who are wealthy. It's empowerment for everyone.
So it's a great morale thing. They get deeply involved, and it builds relationships with governments and other people we want to work with. For me personally, the focus is a little broader. Because I didn't want my philanthropy to be just related to that one thing.
And I thought I wouldn't do philanthropy until I was old. I thought, okay, I'm going to work and make money. And then I'll stop doing that, and then I'll give money away. And I knew I was going to give it away. Because I don't believe that passing substantial sums of money to your children is necessarily good for them.
They may not agree. In fact, there's one story about that where I was in bed this weekend at 7:00 in the morning. And my daughter comes in and wakes me up and says, dad, dad. I was using the computer. You got to come. I said, no, just keep using the computer. It's okay.
No, you got to come. I won some money. And so we went. And of course, it was one of those contests that you really hadn't won any money. They wanted her to visit the website. And it made me think, geez, we got to get rid of that stuff. So I had chosen that my resources are going to go back to society and in the best way that I can come up with.
And that's turned out to really be two things. One is world health. That's the biggest thing. That's in my view the most urgent problem in the world at large-- very unaddressed. I could speak for days about that. And then second is the biggest problem in this country, which is education. And that's where the library program-- and the Gates Millennium Scholarship Program comes out of that.
And because of the urgency of those two problems, I've ended up doing something I didn't expect to do, which is I have some days where part of the day I'm trying to make money. And then part of the day, I'm giving it away. And so far it hasn't made me schizophrenic to try and bridge those two [INAUDIBLE].
MODERATOR: Yeah?
AUDIENCE: I had a question relating to security. I guess it's a great responsibility and a big challenge, too. My question is more centered on, I guess, a recent paper by Dr. [INAUDIBLE] about the monoculture of Windows. You guys are so popular that basically, if there's a security problem and a lot of people have it, first, do you think that that is a problem? And second, what kind of solutions do you guys think should be applied to that?
GATES: Well, it is not-- and if you say, okay, you're-- there's two types of security things that go on. There's people who want fame. And they like to attack the most popular system. And as we get down the learning curve of making it so they don't succeed, that actually deals with the most serious security threat.
The serious security threat is not somebody who just wants fame. It's somebody who really wants to steal information. And so as we beat the fame-oriented IQ and drive that regularity down, we actually create-- we'll create the first system that's truly secure that is tested by lots and lots of IQ and come up with much richer methodologies that allow that to work.
And so there's breakthrough ideas that come out of research in universities that are allowing us to get to that extremely secure point. It's a process of a number of years looking toward. The approach where you say, hey, let's have-- how many operating systems do you want? 50? 100?
That just says to a company, hey, your salary data is on a hundred different operating systems. And applications-- people have to try and write software for a hundred different operating systems. Oops. Now, you can't buy the same applications. That would be monoculture. You've got to buy a hundred different word processors.
And everybody else learned those, but they don't change data. But what's the security statement? All you need is one bug in one of the hundred operating systems or one of the hundred word processors, and your salary data is out to the world. Variety-- just say V equals variety. V increases the threat area.
It may slow down the idea of these spreading functions that are done for fame, but it doesn't make information any more secure. So what does the world need? The world needs a small number of operating systems that have firewalling techniques, and isolation techniques, and verification techniques that makes them secure.
And in a sense, we're on the fastest learning curve moving to that. It's the most urgent thing we're doing and it's of our R&D. That's several billion a year, just focused on that challenge. And so variety is not the answer. Technology and the investments we're making are what drive towards that answer.
MODERATOR: I'm sorry to say we have time for one more question, so please make it one that Bill Gates has never heard before.
AUDIENCE: Wow, that's pretty tough. I guess this is a finance question. Microsoft currently has around $50 billion in cash equivalents or short-term securities, a number that's going to reach about $100 billion in a few years. What do you see Microsoft doing with that money? Or how do you justify holding that much cash?
GATES: I sleep well at night.
No, your question is actually a very serious question and one that we have. The interesting thing about software is it's not really based on building a lot of factories or buying a lot of materials. And going back to the early days of Microsoft, Microsoft has been profitable.
And we never had an internet business model. It's ironic that we actually took the company public at all, because we never-- that money is still sitting in our bank account. We never spent a dime of that money. It was really just to get the incentive system for the employees, which as net has been more generous than any incentive system that any company has ever done.
And so that was a good thing in that dimension. But it wasn't to raise capital. And so we've accumulated capital. We've done buybacks over the years. I think we've spent what? $30 billion on buybacks over the years. We've instituted a dividend that was modest at first, then we doubled it.
It's still fairly modest. And as we're moving forward, we do need to continually evaluate this. We've tried to manage the investments and the money very well. But there'll come a point where we-- either through buyback, or dividend, or whatever other approach might exist, we probably will change the balance sheet of the company and make it more pure.
Because what we're all about is one thing-- developing software. And we want-- when people buy our stock or think about our company, that should be it. It shouldn't be about how we invest our treasury thing or anything else. Just about are we-- is there that opportunity in software? And are we the company seizing it?
MODERATOR: Thank you and thank you for your questions.
VEST: Well, Bill, thank you very much. And of course, you can't leave MIT without your very on MIT sweatshirt.
GATES: It's great.
VEST: And we know that probably every university gives you a sweatshirt, but we're the only one that's also going to give you a hard hat. And on the front is a picture of the William H. Gates Building taken a few minutes ago.
GATES: Great.
VEST: Good health.
GATES: Thank you. [INAUDIBLE]. Thanks.

Power Turns off Without Warning
If a computer turns off without any warning there are a few things that may be causing this. The problem may be from the system overheating, an issue or error in the hardware, a virus, or problems with the operating system.
Overheating – A computer will either automatically reboot or completely shutdown if it gets too hot. It does this to protect the CPU (computer chip) from damage. If any sort of irregular noises are coming from the computer, such as a high pitch sound, then this could mean the fan on the computer has failed. To fix this issue, examine the computer to see if the fan is moving and providing adequate air flow. Also, check the BIOS settings to confirm Fan speed and CPU temperatures. You can access the computer BIOS by hitting a special function key (for example F1, F2, or F10, etc.) when the computer is first turned on. The message that appears would be "Press F1 To Enter Setup" or something similar . Once there, review information regarding CPU temperature and fan speeds. Not all BIOSes will show this information, but most new computers will. CPU temperature varies depending on the processor, but usually (not always), if the computer is reporting CPU temperature above 82 degrees while idle, there may be an overheating problem. Review your computer documentation for the type of processor you have and the heat ranges it's allowed to operate in. Detecting overheating problems can be tough because if you have a poor fan or poor ventilation in the computer, the CPU while idle may not overheat until it does something taxing (such as running a processor-intensive game). The more a CPU crunches data, the hotter it gets, so that's why cooling is an important factor in maintaining a properly functioning machine. Faulty Power Supply - If your computer turns off randomly (while sitting idle) and/or if it takes several presses of the power button to power on, you may have a faulty or dying power supply. Power supplies do fail often and are not that expensive to buy and replace. Issues or Errors with Hardware – If a hardware issue or error has occurred (or been detected), it may cause your system to shut down automatically. This occasionally occurs when a new hardware has recently been installed into the computer. There are many ways to determine if this is the culprit depending on the specific piece of hardware you've installed. If you installed a PCI/PCIe card, and you turn on your computer only to find it now freezes, reboots, or completely shuts down, most likely that card is the issue. If the new hardware simply doesn't work properly, view the Device Manager Page. Once you check your Device Manager Page and it appears to have an issue, the hardware will need to be removed. Virus – If the computer has been infected with a virus it can also cause your computer to reboot or shut down or behave erratic. Always, always, always run an updated anti-virus program on your computer. Operating System Issue – If the computer continues to reboot itself without any warning then it may be caused from an operating system (OS) issue. One way to figure out if this is the cause, start by rebooting the computer and enter in a CMOS/BIOS Setup as the computer reboots. After the computer loads, sit and wait to see if the system shuts down. If it does not turn off, try rebooting your computer into Safe Mode. Leave it alone for the period of time it would normally reboot. If it's fine then there is most likely some sort of device driver conflict or other software conflict causing the issue during normal operating mode.
When Windows restarts without giving a warning it may be caused from a software issue or error, a hardware issue or error, heat-related issues, or a computer virus with the operating system.
Software Issue or Error – To find out if the issue is caused from a problem within the computer's software the computer should be rebooted in Safe Mode . Rebooting in Safe Mode depends on what operating system is in use. For Windows, once the computer has been restarted, tap the F8 key. While in safe mode you can check drivers located in Control Panel under Device Manager. Device Manager will indicate whether you have a hardware issue or not. If you recently installed a program which is incompatible with your system you may need to uninstall it. If the computer continues to reboot in Safe Mode then you may need to restore your computer to an earlier state by using Control Panel under the Recovery icon. This will solve most any problem you may be having with incompatible software. Hardware Issue or Error – If hardware has failed then it may cause Windows to automatically shut down or reboot. This occasionally occurs when new hardware has recently been installed on the computer. To determine if this is the root cause, view the Device Manager Page. Once you check your Device Manager Page and it appears to have an issue, the hardware will need to be removed. Interested in learning more? Why not take an online Intro to PC Troubleshooting and Repair course ? Overheating – A computer will automatically reboot (or shutdown) if it gets too hot. If any sort of irregular noises are coming from the computer such as a high pitch sound then this could mean the fan on the computer has failed. Examine the computer to see if the fan is running properly. Operating System Issue – If the computer continues to reboot itself without any warning then it may be caused from an operating system (OS) issue. One way to figure out if this is the cause, start by rebooting the computer and enter in a CMOS/BIOS Setup as the computer reboots. After the computer loads, sit and wait to see if the system shuts down. If it does not turn off, try rebooting your computer into Safe Mode. Leave it alone for the period of time it would normally reboot. If it's fine then there is most likely some sort of device driver conflict or other software conflict causing the issue during normal operating mode. Virus – If the computer has been infected with a virus it can Windows to automatically shut down. Viruses can be created to reboot the system every 5, 10, 15, 30, etc. minutes. Make sure the virus protection program on the system is up-to-date. To resolve this issue, a scan/clean/recovery will need to take place. There are many antivirus tools made available that can help protect a computer.
CMOS/BIOS Setup : To get to CMOS/BIOS Setup, during the rebooting phase try entering one of the five following keys on the keyboard: F1, F2, DEL, ESC, F10. The monitor should display the exact key to hit during reboot to enter Setup . Be quick, the message will only appear for a few seconds at power-on. Device Manager Page: Depending upon the computer system, the Device Manager Page can be accessed in different ways. For the Windows version, click the "Windows Key" and "Pause Key" at the same time. Download – This means to transfer any sort of content from a remote computer down onto your own computer. For example, you may download a video, a game, a document, etc. When you download an item you are copying files from somewhere else to your computer. You can download something from the internet, from a disk, another computer on your network, etc. Upload - This is the opposite of download. This is when you transfer file(s) from your computer up onto a remote computer. Hardware - This refers to any objects associated with the computer that can be actually touched, such as disks, keyboards, printers, chips, disk drives and more. Install/Uninstall/Reinstall – When you install something on your computer, you are adding it to your system to be used in the future and it will remain within your computer until it is removed. The removal of a program is called "Uninstall" while a reinstall means you took the program off your system and then put (installed) it back on. Some examples of things that can be installed are a, operating system such as Windows, a game, an antivirus program, etc. Operating System - This is a program that is used to run other programs on the computer. It is the most important program a computer will have and is considered the "backbone" because it manages the resources of both hardware and software. Reboot – To reboot a computer means to turn it off and then back on again so that it reloads everything from scratch. It is also called "Restart" or "Reset." Safe Mode - Allows you to diagnose operating system problems. It can be used to fix many issues found within the operating system. Most particularly, if your computer works fine in Safe Mode but has problems during Normal Mode, you can then determine that the core functions of the computer work correctly and you should move your focus onto the more advanced drivers controlling computer peripherals that load during Normal Mode. Software - Different from hardware, software refers to computer programs and data that are stored on a computer. Software is not 'touchable' while hardware is. An example of software includes video games, language programs, office productivity tools, photo-editing programs, etc. Virus - A computer virus does all sorts of "evil" things that depend on whatever the programmer of the virus wanted it to do. Most likely, they delete files, corrupt data, hide themselves so they can be replicated quickly to other machines, compromise your computer security, etc. It can come from emails, instant messages or spread from certain websites. They are hidden software programs that may have been accidentally downloaded or they can be "worms" that specifically shopped the Internet for computers that have software vulnerabilities. Scary, right? That's why it is paramount that you have an updated virus program at all times. Windows - This is a type of operating system from Microsoft and is very common in many computers, particularly in the business world. Windows includes all different versions such as Windows 7, Windows Vista, Windows XP, 2000, 98, 95 and more.

- Course Catalog
- Group Discounts
- CEU Verification
- Gift Certificates
- Medical Terminology
- Accounting Course
- Writing Basics
- QuickBooks Training
- Proofreading Class
- Sensitivity Training
- Excel Certificate
- Teach Online
- Terms of Service
- Privacy Policy


Simple Programming Problems
Whenever I’m TA for a introductory CS class where students learn some programming language, I have trouble coming up with good exercises. Problems from Project Euler and the like are usually much too difficult for beginners, especially if they don’t have a strong background in mathematics.
This page is a collection of progressively more difficult exercises that are suitable for people who just started learning. It will be extended as I come up with new exercises. Except for the GUI questions, exercises are generally algorithmic and should be solvable without learning any libraries. The difficulty of the exercises of course somewhat depends on the programming language you use. The List exercises for example are more complicated in languages like C that don’t have build-in support for lists.
I suppose they are also useful, although much easier, whenever an experienced person wants to learn a new language.
This guide has been translated to Chinese by yifeitao Simple Programming Problems in Chinese
Before you begin
Learning to program means learning how to solve problems using code. Conceptually it is not very difficult to write a program that solves a problem that you can solve yourself. The skill you need to acquire is thinking very precisely about how you solve the problem and breaking it down into steps that are so simple that a computer can execute them. I encourage you to first solve a few instances of a problem by hand and think about what you did to find the solution. For example if the task is sorting lists, sort some short lists yourself. A reasonable method would be to find the smallest element, write it down and cross it out of the original list and repeat this process until you have sorted the whole list. Then you have to teach the computer 1) how to find the smallest element, 2) how to write it down, 3) how to cross it out, and wrap this in a loop. Then continue this task breakdown process until you’re confident you know how to write the necessary program.
To make good progress in your programming task, you need to test your work as early and as thoroughly as possible. Everybody makes mistakes while programming and finding mistakes in programs consumes a very large part of a programmer’s work-day. Finding a problem in a small and easy piece of code is much simpler than trying to spot it in a large program. This is why you should try to test each sub task you identified during your task-breakdown by itself. Only after you’re confident that each part works as you expect you can attempt to plug them together. Make sure you test the complete program as well, errors can creep in in the way the different parts interact. You should try to automate your tests. The easier it is to test your program, the freer you are in experimenting with changes.
The last important point is how you express your thoughts as code. In the same way that you can express the same argument in different ways in a normal English essay, you can express the same problem-solving method in different ways in code. Try for brevity. The lines that you don’t write are the lines where you can be sure that the don’t have bugs. Don’t be afraid to Google for idiomatic ways of doing the things you’d like to do (after you tried doing them yourself!). Remember that you don’t write the program for the computer, you write it for other humans (maybe a future you!). Choose names that explain things, add comments where these names don’t suffice. Never comment on what the code is doing, only write comments that explain why .
This is a bad example:
The exact same idea is much easier to understand if you write it like this:
Better naming and a better task breakdown make the comments obsolete. Revise your code just as you would revise an essay. Sketch, write, delete, reformulate, ask others what they think. Repeat until only the crispest possible expression of your idea remains. Revisit code you’ve written a while ago to see whether you can improve it with things you’ve learned since.
- Write a program that prints ‘Hello World’ to the screen.
- Write a program that asks the user for their name and greets them with their name.
- Modify the previous program such that only the users Alice and Bob are greeted with their names.
- Write a program that asks the user for a number n and prints the sum of the numbers 1 to n
- Modify the previous program such that only multiples of three or five are considered in the sum, e.g. 3, 5, 6, 9, 10, 12, 15 for n =17
- Write a program that asks the user for a number n and gives them the possibility to choose between computing the sum and computing the product of 1,…, n .
- Write a program that prints a multiplication table for numbers up to 12.
- Write a program that prints all prime numbers. (Note: if your programming language does not support arbitrary size numbers, printing all primes up to the largest number you can easily represent is fine too.)
- Write a guessing game where the user has to guess a secret number. After every guess the program tells the user whether their number was too large or too small. At the end the number of tries needed should be printed. It counts only as one try if they input the same number multiple times consecutively.
- Write a program that prints the next 20 leap years.
- Write a program that computes the sum of an alternating series where each element of the series is an expression of the form ( ( − 1 ) k + 1 ) / ( 2 * k − 1 ) ((-1)^{k+1})/(2 * k-1) for each value of k k from 1 to a million, multiplied by 4. Or, in more mathematical notation
4 ⋅ ∑ k = 1 10 6 ( − 1 ) k + 1 2 k − 1 = 4 ⋅ ( 1 − 1 / 3 + 1 / 5 − 1 / 7 + 1 / 9 − 1 / 11 … ) . 4\cdot \sum_{k=1}^{10^6} \frac{(-1)^{k+1}}{2k-1} = 4\cdot(1-1/3+1/5-1/7+1/9-1/11\ldots).
Lists, Strings
If your language of choice doesn’t have a build in list and/or string type (e.g. you use C), these exercises should also be solvable for arrays. However, some solutions are very different between an array-based list (like C++’s vector ) and a pointer based list (like C++’s list ), at least if you care about the efficiency of your code. So you might want to either find a library, or investigate how to implement your own linked list if your language doesn’t have it.
- Write a function that returns the largest element in a list.
- Write function that reverses a list, preferably in place.
- Write a function that checks whether an element occurs in a list.
- Write a function that returns the elements on odd positions in a list.
- Write a function that computes the running total of a list.
- Write a function that tests whether a string is a palindrome.
- Write three functions that compute the sum of the numbers in a list: using a for -loop, a while -loop and recursion. (Subject to availability of these constructs in your language of choice.)
- Write a function on_all that applies a function to every element of a list. Use it to print the first twenty perfect squares. The perfect squares can be found by multiplying each natural number with itself. The first few perfect squares are 1*1= 1 , 2*2=4 , 3*3=9 , 4*4=16 . Twelve for example is not a perfect square because there is no natural number m so that m*m=12 . (This question is tricky if your programming language makes it difficult to pass functions as arguments.)
- Write a function that concatenates two lists. [a,b,c] , [1,2,3] → [a,b,c,1,2,3]
- Write a function that combines two lists by alternatingly taking elements, e.g. [a,b,c] , [1,2,3] → [a,1,b,2,c,3] .
- Write a function that merges two sorted lists into a new sorted list. [1,4,6] , [2,3,5] → [1,2,3,4,5,6] . You can do this quicker than concatenating them followed by a sort.
- Write a function that rotates a list by k elements. For example [1,2,3,4,5,6] rotated by two becomes [3,4,5,6,1,2] . Try solving this without creating a copy of the list. How many swap or move operations do you need?
- Write a function that computes the list of the first 100 Fibonacci numbers. The first two Fibonacci numbers are 1 and 1. The n+1 -st Fibonacci number can be computed by adding the n -th and the n-1 -th Fibonacci number. The first few are therefore 1, 1, 1+1=2, 1+2=3, 2+3=5, 3+5=8.
- Write a function that takes a number and returns a list of its digits. So for 2342 it should return [2,3,4,2] .
- Write functions that add, subtract, and multiply two numbers in their digit-list representation (and return a new digit list). If you’re ambitious you can implement Karatsuba multiplication . Try different bases . What is the best base if you care about speed? If you couldn’t completely solve the prime number exercise above due to the lack of large numbers in your language, you can now use your own library for this task.
- Write a function that takes a list of numbers, a starting base b1 and a target base b2 and interprets the list as a number in base b1 and converts it into a number in base b2 (in the form of a list-of-digits). So for example [2,1,0] in base 3 gets converted to base 10 as [2,1] .
- Implement the following sorting algorithms: Selection sort, Insertion sort, Merge sort, Quick sort, Stooge Sort. Check Wikipedia for descriptions.
- Implement binary search.
Write a function that takes a list of strings an prints them, one per line, in a rectangular frame. For example the list ["Hello", "World", "in", "a", "frame"] gets printed as:
Write function that translates a text to Pig Latin and back. English is translated to Pig Latin by taking the first letter of every word, moving it to the end of the word and adding ‘ay’. “The quick brown fox” becomes “Hetay uickqay rownbay oxfay”.
Intermediate
- Write a program that outputs all possibilities to put + or - or nothing between the numbers 1,2,…,9 (in this order) such that the result is 100. For example 1 + 2 + 3 - 4 + 5 + 6 + 78 + 9 = 100.
- Write a program that takes the duration of a year (in fractional days) for an imaginary planet as an input and produces a leap-year rule that minimizes the difference to the planet’s solar year.
- Implement a data structure for graphs that allows modification (insertion, deletion). It should be possible to store values at edges and nodes. It might be easiest to use a dictionary of (node, edgelist) to do this.
- Write a function that generates a DOT representation of a graph.
- Using a sample text, create a directed (multi-)graph where the words of a text are nodes and there is a directed edge between u and v if u is followed by v in your sample text. Multiple occurrences lead to multiple edges.
- Do a random walk on this graph: Starting from an arbitrary node choose a random successor. If no successor exists, choose another random node.
- Write a program that automatically converts English text to Morse code and vice versa.
- Write a program that finds the longest palindromic substring of a given string. Try to be as efficient as possible!
- Think of a good interface for a list. What operations do you typically need? You might want to investigate the list interface in your language and in some other popular languages for inspiration.
- Implement your list interface using a fixed chunk of memory, say an array of size 100. If the user wants to add more stuff to your list than fits in your memory you should produce some kind of error, for example you can throw an exception if your language supports that.
- Improve your previous implementation such that an arbitrary number of elements can be stored in your list. You can for example allocate bigger and bigger chunks of memory as your list grows, copy the old elements over and release the old storage. You should probably also release this memory eventually if your list shrinks enough not to need it anymore. Think about how much bigger the new chunk of memory should be so that your performance won’t be killed by allocations. Increasing the size by 1 element for example is a bad idea.
- If you chose your growth right in the previous problem, you typically won’t allocate very often. However, adding to a big list sometimes consumes considerable time. That might be problematic in some applications. Instead try allocating new chunks of memory for new items. So when your list is full and the user wants to add something, allocate a new chunk of 100 elements instead of copying all elements over to a new large chunk. Think about where to do the book-keeping about which chunks you have. Different book keeping strategies can quite dramatically change the performance characteristics of your list.
- Implement a binary heap. Once using a list as the base data structure and once by implementing a pointer-linked binary tree. Use it for implementing heap-sort.
- Implement an unbalanced binary search tree.
- Implement a balanced binary search tree of your choice. I like (a,b)-trees best.
- Compare the performance of insertion, deletion and search on your unbalanced search tree with your balanced search tree and a sorted list. Think about good input sequences. If you implemented an (a,b)-tree, think about good values of a and b.
- Given two strings, write a program that efficiently finds the longest common subsequence.
- Given an array with numbers, write a program that efficiently answers queries of the form: “Which is the nearest larger value for the number at position i ?”, where distance is the difference in array indices. For example in the array [1,4,3,2,5,7] , the nearest larger value for 4 is 5. After linear time preprocessing you should be able to answer queries in constant time.
- Given two strings, write a program that outputs the shortest sequence of character insertions and deletions that turn one string into the other.
- Write a function that multiplies two matrices together. Make it as efficient as you can and compare the performance to a polished linear algebra library for your language. You might want to read about Strassen’s algorithm and the effects CPU caches have. Try out different matrix layouts and see what happens.
- Implement a van Emde Boas tree. Compare it with your previous search tree implementations.
- Given a set of d-dimensional rectangular boxes, write a program that computes the volume of their union. Start with 2D and work your way up.
- Write a program that displays a bouncing ball.
- Write a Memory game.
- Write a Tetris clone
- Write a program that plays Hangman as good as possible. For example you can use a large dictionary like this and select the letter that excludes most words that are still possible solutions. Try to make the program as efficient as possible, i.e. don’t scan the whole dictionary in every turn.
- Write a program that plays Rock, Paper, Scissors better than random against a human. Try to exploit that humans are very bad at generating random numbers.
- Write a program that plays Battle Ship against human opponents. It takes coordinates as input and outputs whether that was a hit or not and its own shot’s coordinates.
Other Collections
Of course I’m not the first person to come up with the idea of having a list like this.
- Several small problems Programming Practice
- CPE 101 Projects
- 99 Lisp Problems , 99 Haskell Problems . Most of these can also be done in other languages.
- Rosetta Code Programming Tasks . These come with solutions in many languages!
- Code Golf Challenges . The goal here is to solve the problem with as few characters as possible.
- SPOJ Problems . This is a list of more than 13000 Problems!
- Code Abbey According to Github user RodionGork, this is less mathy than Project Euler.
CC-BY-SA Adrian Neumann (PGP Key A0A8BC98 )
adriann.github.io
- Contract Management (CLM)
- Help center

The Four Ways to Solve a Problem with Management Software
Often in the company we find situations where management software could help: a slow process, a disorganized team, lack of control in a peak of work or simply difficulty to know what is happening in each moment with precision.

Then, when polling the market we are a little overwhelmed by all the possibilities it offers and its different costs and implications. Many clients come to us at this point and are usually quite disoriented by the options that exist.
Let’s summarize the four ways that exist to solve a problem with management software with its pros, cons and main features:
It’s the Swiss army knife of management software. Ok for everything. There are very few problems that can not be solved more or less provisionally with a work methodology supported by Excel spreadsheets, Word documents, the Outlook calendar, emails and shared folders on a server.
- It is cheap
- You can do it yourself
- It adapts to the way of working of the organization
- It is very quick to implement
- There is a true Excel genius in every company …
- Solving a problem exclusively with Office software leads to very manual processes, which require human intervention for all steps and are very susceptible to errors.
- The data entered is not validated, it is difficult to totalize, analyse and summarize
- In general, the computer performs few or no important actions for us automatically.
- The almighty copy paste often turns against the user and errors are generated on a daily basis that are difficult to detect.
Indicated for: Provisional solutions for new problems, non-critical processes in the organization, very limited budgets.

2. CLOSED or STANDARD PACKAGES
It is the first great qualitative leap in management software. In this category enter commercial programs, “ready to use” that solve specific problems common to all companies and organizations: billing packages, document management, accounting, warehouse, human resources, customer relations (CRM), etc. Unlike Office-based solutions, closed packages automate the most repetitive actions of each process as much as possible.
- Closed packages offer the best quality / price ratio of management software,
- Unlike Office, they allow you to save a lot of time in repetitive tasks,
- They control human errors
- They allow to obtain global reports of the processes at any time and quickly.
- They require specific training to learn how to use them
- They are strictly limited to one management area in the company
- They are “rigid” (they do what they do and can not be changed). The user must adapt to the functionality of the program.
- There are only closed packages for the “typical” and most common problems of the companies.
- They may not cover 100% of the peculiarities of our business.
Indicated for: The basic processes of the company: billing, accounting, document management, payroll, etc.
Tip: Look for closed packages that have good capacity to import and export information to office automation and other tools (computer scientists call it “integration” with other programs), thus it is possible to configure an “ecosystem” of applications that collaborate with each other in an efficient way.
As a sample, Docuo is a closed Enterprise Content Management (ECM) Software package suited to solve any Workflow, File sharing, Document Management or Cloud storage scenario.

3. SECTORAL SOLUTIONS
The sectoral solutions are computer management applications designed to meet the specific needs of a specific activity sector. They include the basic functionalities of a closed package, but they also add specific functionalities of the sector. It is thus possible to find sectoral solutions for translation agencies, language academies, marketing companies, mechanical workshops, administrative agencies or law firms.
For example, in a sectoral solution for a translation agency, in addition to finding the basic functionalities of billing or control of payments and collections of a standard billing package, a database of translators with specific fields is available. In an administrative agency, the program will contemplate the steps and deadlines for the various procedures, etc.
- If we have sectoral software for your activity, this type of solution usually covers the needs of the business in a very specific way,
- We can benefit from the fact that the program is not as generic as a closed package and the terms and functionalities that it offers will be more familiar and useful since they are designed specifically for our business.
- Sectoral solutions usually cover several areas of management (billing, projects, treasury, human resources, etc.) in a single program.
- The price of sector solutions is usually higher than that of closed packages.
- Sectoral solutions remain “rigid” (they do what they do and can not be changed). Although software manufacturers offer to “parametrize” sectoral tools (that is, adjust some parameters) to adapt them as much as possible to each client, the reality is that an adaptation exercise is always required.
- In many cases there is no sectoral software for our sector of activity.
- They require specific training to learn how to use them, usually more complex than that of closed packages
- There is a risk of using the same software package as the competition (which can be an advantage or an inconvenience)
Indicated for: Medium-sized companies for whose sector there are solutions of this type that fit reasonably with their way of working.
Tip: Evaluate the sectoral solutions that are most used in your sector, ask the company to provide you with the software references of clients for your activity. In some sectors there are packages that are considered almost a standard because of their great diffusion.

4. CUSTOMIZED SOFTWARE
Tailor-made tools are the highest ranking in management computing. Although it is usually based on elements or “pieces” predesigned, each application is made to measure after a face-to-face consultancy with the client, in which their needs are studied one by one.
Unlike other types of solutions, customized management software requires a development project that begins with taking requirements and studying the way the organization works. Next, the programmers assemble the solution and make it available to the client within a period that can vary between a few weeks or several months.
When the project is successful you get a unique tool fully adapted to the needs of the company.
- Tailored solutions are the only tool that adapts 100% to the way of working of the company and does not force the organization to adjust to the program.
- The resulting software can be modified and improved over time, to adapt it to the new needs of the organization.
- You can prepare to export and import data from other solutions as closed packages, greatly reducing their size.
- If the project is correctly carried out, the overall benefit obtained in the management is very high and can not be equated in quality to any other family of solutions.
- Custom software is the most expensive solution for software tools.
- Tailored solutions are unique and therefore generate a strong dependence on the software manufacturer (in practice, only the company that made the software could maintain it).
- Development deadlines may be delayed due to poorly sized functionalities in the consulting
- Being a unique product for each client, it is normal that there are bugs in the solution that will be resolved in the first months of use
- Although they require specific training to learn how to use them, it is usually simple since the screens and functionalities were designed with the client.
Indicated for: Medium or large companies for whose sector there are no sectoral solutions or who want to prevail their way of working in the computerization of their processes.
Tip: Make sure that the consultant team that will take the requirements have experience in your sector or in similar sectors. If this is not possible, make sure that the methodology they use to document the requirements is sound and you are provided with a complete project documentation and reasonable closed deadlines before starting it.
Hope this tips help you making the right decission when solving your company problems with management software.
See you in the cloud!
Request a 20 minutes demo and try it for free
Our team will listen your business needs and answer all your questions.
We earn a commission for products purchased through some links in this article.

Be your own tech troubleshooter
Don't rely on others to solve problems with your smartphone or laptop, here's how you can do it yourself
Do you often find yourself asking your kids, partner or a tech-savvy friend how to fix your gadgets?
And 15% have even admitted to bribing younger family and friends to solves their gadget conundrums. We’ve round-up solutions to the 7 most-common tech problems so you no longer need to rely on younger family members to solve your IT problems. Instead, you can be your own tech genius!
The golden rule
The first thing you should always try is switching your device off, then on again. It sounds a little basic, but it really does work.
From smartphones that are getting hot (because an app has crashed in the background) to a printer that says it’s offline and even slow broadband , switching the item off then on again gives it a chance to completely reboot so anything in the software that may have crashed will be re-started again.
Find a lost phone
Losing your phone (or tablet ) can be a nightmare, especially if it’s on silent as getting someone else to ring it won’t help. However, it’s easily solved.
For iPhones or iPads use another iOS device or a computer to go to icloud.com . You’ll be able to see all your devices and their last known location and even make them play a sound (even if they’re on silent) making them easier to find. It’s worth noting this only works if Find my iPhone (or iPad) is switched on. Turn it on in Settings, tap your name and then tap Find my iPhone (or iPad) to switch it on.
For a lost Android device , use a web browser to visit Android.com/find and sign in with the Google account you use on your phone. Underneath the devices you have assigned to you, you’ll have the option to make it play a sound.
Improve internet speed
If you’ve tried rebooting your router and the internet is still slow, you may need to change the channel your router is using, too many routers on one channel can create a sluggish connection. Check the best channel by downloading the free apps WiFi Analyzer for Android smartphones and Airport Utility for iPhones. Make sure your device is connected to your home Wi-Fi network.
Check your broadband provider’s website for specific instructions on how to change the channel your router uses, you’ll need to open your router’s settings page. This can be accessed using an internal web address, usually printed on the bottom of the router. It’s a series of numbers and dots, like http://192.168.92.3. Enter this address into a web browser on a device connected to the home network and you’ll be asked to enter a username and password. These are usually printed on the bottom of the router.
Look for a section marked Wireless Network Settings (you change the channel the router broadcasts on here). They will be located in different places, depending on your make of router.
Speed up your computer
If your computer has frozen at the crucial moment or seems really sluggish, don’t panic - it may not be time for a new laptop just yet. Try these simple steps to see if you can get it motoring again.
- If you have too many programs running at the same time, try closing some (use Task Manager by pressing Ctrl + Alt +Delete on Windows computers or for Mac’s press Command and the Spacebar then type Activity Monitor in the search bar).
- Your machine could be lacking in space. Remove any unwanted files (moving them to the recycle bin doesn’t delete them so empty this too). Think about moving some of your photos and videos from your computer to secure online storage and delete unused programs. To do this on a Windows computer, from the Start Menu select Control Panel, then Uninstall a Program. Select the program you want to remove and press Uninstall. On a Mac, simply drag the program to the Trash icon at the bottom of the window, then empty your Trash folder.

Get rid of a computer virus
If you suspect your computer might have a virus or another type of malware, open your antivirus software. Companies like Malwarebytes , McAfee and AVG offer these if you don't have one already. Open the program and run a full scan of your computer. The software will list the potential threats and solve any problems it finds. If this doesn't work follow these steps on how to remove a virus from your computer .
Save a phone dropped in water
For those have us that don’t have high-end smartphones that can survive an accidental dunk, water is your handset’s kryptonite. But if you act fast you may just be able to rescue it.
Fish it out of the water and dry it off. If it’s still on, switch it off immediately and resist the urge to unlock it. Remove your sim card and any memory cards and gently shake it to remove any water trapped in the ports. Now pop the phone in a bowl of (uncooked) rice, covering it fully and leave for at least 48 hours.
Stop white lines appearing in prints
Is everything you print littered with white vertical lines that obscure the text or photo you’ve printed? There’s a good chance the print head is clogged but it’s easily fixable. Your printer will have a cleaning cycle so run this first. Head to the Settings menu in your printer’s app and find the cleaning option. If it’s still not working, try opening the printer up and removing the cartridges then delicately cleaning the cartridge head (metal contacts) with a cloth or cotton bud.
Turn off popups
Adverts appearing on your phone when you’re browsing the web can be annoying, so start by blocking popups. On an iPhone open Settings, Safari and then turn on Block Pop-ups. On an Android smartphone, open Chrome and tap the menu in the top right-hand corner. Select Settings, followed by Site Settings and then make sure Pop-ups are blocked.
Still seeing popups? Clear your browsing data. On an iPhone, from Safari in the Settings menu select Clear History and Website Data. On an Android device, open Chrome and tap the Menu again. Choose Settings, followed by Privacy then Clear Browsing Data.
If you’re seeing popups when using other apps or on the home screen, check the apps installed on your phone and look for anything suspicious or that crashes when opened without actually doing the job it claims to do. Uninstall any you think might not be genuine.
If that doesn’t work, your smartphone could be infected with Adware, so download and run antivirus.
If nothing malicious is found by the antivirus software, the final step is to factory reset your smartphone. On an iPhone, open the Settings app, then choose General, followed by Reset and then Erase All Content and Settings. For Android, head to Settings, Back Up & Reset then Erase all Data or Factory Reset.
Fix a broken email account on your phone
Is your phone struggling to collect new emails but if you log onto the email account from another device you can see them? If you’re using the Mail app that comes as standard on your smartphone rather than an app such as Outlook or Gmail, the account may have become corrupt. You’ll just need to delete it and re-add the account.
On an iPhone, head to Settings and select Passwords. Tap the account that’s not working and choose Delete account. Now press Add Account and follow the on-screen instructions to re-add your email account.
On an Android smartphone, Open the Settings app then choose Accounts and Backup followed by Accounts, choose to delete your Mail app. Now press Add Account, choose email from the options displayed and follow on-screen instructions to re-add the account. Your email should now work fine.

Acer Swift 1 SF114-32

Avita Liber Core

Acer Aspire 3 15.6in

Geo Book 3X 13.3in

Dell Inspiron 3584 15.6in

Asus VivoBook X512FA 15.6in

Lenovo V130 (81HN00H9UK)

Lenovo Ideapad S340-14API
Like this article? Sign up to our newsletter to get the GHI newsletter delivered straight to your inbox every week.

@media(max-width: 64rem){.css-1yxmhzw:before{background-repeat:no-repeat;bottom:-0.2rem;color:#ffffff;content:'_';display:inline-block;height:1.25rem;line-height:1;margin-bottom:0.5rem;margin-right:0.625rem;position:relative;width:1.25rem;}.loaded .css-1yxmhzw:before{background-image:url(/_assets/design-tokens/goodhousekeeping/static/images/Clover.5c7a1a0.svg);}}@media(min-width: 48rem){.loaded .css-1yxmhzw:before{background-image:url(/_assets/design-tokens/goodhousekeeping/static/images/Clover.5c7a1a0.svg);}} Technology Advice

Get your phone is holiday-ready

How to pay by mobile phone

How to clean your TV

How to retouch your photos

How to set up a new iPhone

How to video call Santa Claus

What to do with your old tech

How to use Private Browsing

How to stop scam calls

5 ways to stay safe on eBay

How to take photos of fireworks
Computer Systems Analyst Career
Job Description: Analyze science, engineering, business, and other data processing problems to develop and implement solutions to complex applications problems, system administration issues, or network concerns. Perform systems management and integration functions, improve existing computer systems, and review computer system capabilities, workflow, and schedule limitations. May analyze or recommend commercially available software.
Is Computer Systems Analyst the right career path for you? Take the MyMajors Quiz and find out if it fits one of your top recommended majors!
What skills are required for Computer Systems Analysts?
What knowledge is needed to be a computer systems analyst, work styles.

IMAGES
VIDEO
COMMENTS
Quite often there are problems with either the hardware or software on your computer or possibly even with programs or apps you have added along the way. To identify hardware issues and problems always ensure
Overheating – A computer will automatically reboot (or shutdown) if it gets too hot. If any sort of irregular noises are coming from the computer such as a high pitch sound then this could mean the fan on the computer has failed
PC Repair Tool can easily fix the issues like Blue Screen of Death, missing or damaged DLL files, application installation error, windows error, virus damage, freezing computer, windows repair and many more
Conceptually it is not very difficult to write a program that solves a problem that you can solve yourself. In the same way that you can express the same argument in different ways in a normal English essay
Let's summarize the four ways that exist to solve a problem with management software with its pros, cons and main features. There are very few problems that can not be solved more or less provisionally with a
Get rid of a computer virus If you suspect your computer might have a virus or another type of malware, open your antivirus software. Open the program and run a full scan of your computer
Active Learning - Understanding the implications of new information for both current and future problem-solving and decision-making. Complex Problem Solving - Identifying complex problems and reviewing related