Programs keep track of a lot of information. Some of it is visible to the user such as values in a spreadsheet but a lot of it is hidden. Some of it is visible to the user such as values in a spreadsheet but a lot of it is hidden. Some of it is visible to the user such as values in a spreadsheet but a lot of it is hidden. Some of it is visible to the user such as values in a spreadsheet but a lot of it is hidden. Some of it is visable to the user such as values in a spreadsheet but a lot of it is hidden. For example, when a spreadsheet program calculates the average of a group of numbers, the program first adds up all the numbers then counts how many there are and then does the appropriate division. All of these values are stored in computer memory. For the purposes of this course, we'll think of computer memory as being a very long list of storage locations, each of which has a unique number called the memory address. We will usually write memory addresses with an x prefix so that they look different from other numbers, x201 is memory address 201. You can think of these memory addresses as being much like house numbers on a long street. As we've said, values are stored in computer memory. So the number 8.5 might be at memory address x34, x34, and the number 44 might be at memory address x35. Programs need a way to keep track of all these values. They do this using something called variables. A variable is a named location in memory. Python keeps track of variables in a separate area of memory from the values. We might have a variable shoe size that stores memory address x34 that means that shoe size refers to the value 8.5. In the same way, we might have a variable paul_age whose value was 44. We accomplish this by storing memory address x35 with variable paul_age. The nice thing about Python is that you don't have to worry about which particular memory addresses are chosen. Python will keep track of all these for you. In fact, you can't even pick which memory addresses are used. However, it really helps to keep this model in mind when you're programming. Here is some terminology that we'll use throughout the course. A value has a memory address. A variable contains memory address. A variable refers or points to a value. Here are some examples of how we use this terminology. Value 8.5 has memory address x34. Variable shoe_size contains memory address x34. The value of shoe_size is 8.5. Shoe_size refers to value 8.5. Shoe_size points to value 8.5.