 As a program is improved over time, the new versions are given updated version numbers. And actually the versions of most programs are specified with two numbers called the major version number and the minor version number. And they're written with the major version first, followed by a dot, then the minor version. The general convention is that as you release only minor upgrades, you increment only the minor version number. Only when you release a new version which is significantly different do you increment the major number, and when you do that, you then reset the minor number to zero. For example, if the current version of Firefox is 2.4, but then you release a major upgrade, you would call that 3.0, 3.0. You also have to be careful to recognize that 3.12, for instance, is a later version number than 3.8. Even though the quantity 3.8 is greater than the quantity 3.12. The way you're supposed to read it is that 12 comes after 8, therefore 3.12 is a later version than 3.8. So a good question is, when a new version of a program is released, how do you update your software? Well, with some programs you may simply have to download the new version and then install it just as if you were installing a totally new program. Some programs though are a bit smarter and every time you run them, they will check on the internet to see if there's a new update, if there's a new version. And some programs will even go so far to automatically download and install the update themselves. When a program does this, usually they will at least prompt the user for permission to do so. Some users are apprehensive about new updates because when a new update is released, it may fix things, it may add new features, but there's a good chance it also may break some things. So some people like to wait a little while when a new version is released and hang back and see if other people have problems with the new version before they install it themselves. There's an idea that has caught on in recent years which you might call a software repository. A software repository is some kind of system, some program maybe, that downloads and installs and updates software on your system. So rather you the user having to manually download and install all of these separate programs, it's one central program that does all of that for you. The idea of such a system actually first showed up on Linux. On Linux you have this thing called APT which stands for the Advanced Packaging Tool which is this whole repository system. So a user on Linux when they install software they typically don't install separate installers, they just use their package management system to grab some piece of software and install it. And one advantage of this centralized system is it's generally better at automatically making sure that all of your software is up to date. In the last few years this idea of a software repository has been picked up by commercial software makers. For example, Apple has created such a system for its iPhone called the App Store. App here is short for application, meaning a program. And the idea with the App Store is it's one centralized location which a user goes to to browse through available programs and then they can purchase any of those programs and have it downloaded and installed and then automatically updated when new versions are released. Steam is another such system and it runs on Windows and it's primarily about games. So if we take a look at what Steam looks like it's a program which you download and install on your system and then if you open it up you're presented with an online store from which you can purchase and download any games. And then in Steam you have your list of games which you've purchased and you can launch them from here. So for these games it functions as an alternative to using the start menu. And again a very nice thing about this sort of system is you don't have to worry about keeping everything up to date. It automatically keeps everything up to date for you. Again Steam is just about games. There isn't yet a well established application store for just general programs on Windows, but it seems likely that there will be sometime soon in the future. We talked briefly about file formats and file extensions, for example .doc files or Microsoft Word document files. When it comes to these file extensions Windows has this concept of file associations meaning which installed program is associated with files ending in that extension. If you go to this set associations window in the control panel you'll see the list of all the extensions that Windows knows about and which program by default it will use to open that type of file. So here for example files with the extension .docx are opened by default with Microsoft Word. That's why when you open a .docx file what you're doing is opening Microsoft Word because Microsoft Word is currently the program associated with .docx files. Now it turns out that OpenOfficeWriter can also open and view .docx files. So if you wish to use OpenOfficeWriter as your default application for dealing with .docx files you can go into this window and change the association with .docx files. However if opening a .docx file in an OpenOfficeWriter is something you only wish to do occasionally a better thing to do is just right click on the file and then go to the open with menu and you'll be given a selection of different programs which can open that file. And so you can simply select there OpenOfficeWriter and that will open the file in OpenOfficeWriter just for that one time. It doesn't change the default association. Underneath the hood most programs are quite complicated things and like all complicated things designed by humans inevitably they're never perfect. Programs have imperfections which we call bugs. A bug is simply just some kind of undesired behavior of the program. And some program bugs may cause a program to just lock up to freeze up and stop responding to the user. Hopefully this doesn't happen very often but when it does we need some means to kill a program to get rid of it. When a program locks up like this we can't close it by normal means. We can't just click on the red X in the top right corner that usually doesn't work when this happens. So the way you can terminate a misbehaving program in Windows is to use what's called the Windows Task Manager. The best way to open the Task Manager is to use this handy keyboard shortcut of holding control and holding shift and hitting escape. In the Task Manager window you'll then see these different tabs. There's the applications tab, a processes tab, a services tab, performance networking and users. The two most interesting ones here are applications and processes. Applications here is just used as a synonym for programs so applications here will show you a list of all of your running programs. And you can terminate any program in this list by clicking on it and then clicking on the button that says end task. If that fails to work you can alternatively try to kill a program through the processes tab. The list of programs you see in the applications tab is actually sort of a lie. It's just a friendly gloss over what's really going on in your system. In truth as far as your operating system is concerned the programs that run are called processes. And so when you look in the processes tab you see the true full list of all the processes that are currently running on your system. The surprising part about this list is it tends to contain quite a few more processes than there are programs you yourself started. The reason for this is that many of the processes that run on your system are there functioning not as visible programs to the user, but as sort of background services as we sometimes call them. Things that run in the background and manage various aspects of your computer. Most of these processes are actually in a sense part of Windows itself. For instance in the list here you'll see a process called DWM.exe. It's the desktop window manager and it's actually the part of window responsible for moving your windows around and displaying them and so forth. So this processes list is a bit less friendly than the applications list. However a nice part about the processes list is that it has a column here in the list for CPU time. For each process it is displaying the percentage of CPU time which that process is currently consuming. So say if you have a process listed here where the CPU column reads 50 that means that process is currently taking up 50% of the CPU time. Knowing how much CPU time a process is currently taking up can be useful because sometimes what happens is that a process when it gets in a stuck state, it gets stuck in a loop such that it is actually using the CPU but otherwise not doing anything useful. This may be bad because it might make the other programs in your system run much slower. So what you can try if you ever find that your programs are running really slow is to open up the task manager and try to identify any process that seems to be hogging an inordinate amount of CPU time. Say upwards of 90%. If you find that there's a program hogging the CPU you should first try and close it by normal means and if that fails to work because the program has actually locked up then you can come back to the process list and kill that process.