Talking to Your Computer : Having a conversation with your computer might sound like the Enterprise on Star Trek as they regularly talked with their computer. In fact, the computer often talked back. However, with the rise of Google Assistant, Apple’s Siri, Amazon Echo and other interactive software/hardware platforms, perhaps you really don’t find a conversation so unbelievable.
Asking the computer for information is one thing, but providing it with instructions is quite another. We will consider why you want to instruct your computer about anything and what benefit you gain from it. We will also discover the need for a special language when performing this kind of communication and why you want to use Python to accomplish it.
However, the main thing to get out of this is that programming is simply a kind of communication that is akin to other forms of communication you already have with your computer.
Understanding Why You Want to Talk to Your Computer
Talking to a machine may seem quite odd at first, but it’s necessary because a computer can’t read your mind — yet. Even if the computer did read your mind, it would still be communicating with you. Nothing can occur without an exchange of information between the computer and you. Activities such as
- Reading your e-mail
- Writing email
- Writing about your vacation (blog)
- Finding the greatest gift in the world (Amazon, Apple, Best Buy, Google Store, Ebay, Wish, etc..)
- Playing a game
- Writing a document
are all examples of communication that occurs between a computer and yourself. That the computer further communicates with other machines or people to address requests that you make simply extends the basic idea that communication is necessary to produce any result.
In most cases, the communication takes place in a manner that is nearly invisible to you unless you really think about it. For example, when you visit a chat room online, you might think that you’re communicating with another person. However, you’re communicating with your computer, your computer is communicating with the other person’s computer through the chat room (whatever it consists of), and the other person’s computer is communicating with that person.
Notice the chat server on the right of the image above. The chat server could contain anything, but you know that it at least contains other computers running other applications. These computers make it possible for your friend and you to chat. Now, think about how easy the whole process seems when you’re using the chat application. Even though all these things are going on in the background, it seems as if you’re simply chatting with your friend and the process itself is invisible.
Knowing that an Application is a Form of Communication
Computer communication occurs through the use of applications (apps, programs, all used interchangeably). You use one application to answer your e-mail, another to purchase goods, and still, another to create a presentation. An application (sometimes called an app) provides the means to express human ideas to the computer in a manner the computer can understand and defines the tools needed to shape the data used for the communication in specific ways.
Data used to express the content of a presentation is different from data used to purchase a present for your wife. The way you view, use, and understand the data is different for each task, so you must use different applications to interact with the data in a manner that both the computer and you can understand. It’s possible to obtain applications to meet just about any general need you can conceive of today. In fact, you probably have access to applications for which you haven’t even thought about a purpose yet.
Programmers have been busy creating millions of applications of all types for many years now, so it may be hard to understand what you can accomplish by creating some new method for talking with your computer through an application. The answer comes down to thinking about the data and how you want to interact with it. Some data simply isn’t common enough to have attracted the attention of a programmer, or you may need the data in a format that no application currently supports, so you don’t have any way to tell the computer about it unless you create a custom application to do it.
The following, describe applications from the perspective of working with unique data in a manner that is special in some way. For example, you might have access to a video library database but no method to access it in a way that makes sense to you. The data is unique and your access needs are special, so you may want to create an application that addresses both the data and your needs.
Thinking about procedures you use daily
A procedure is simply a set of steps you follow to perform a task. For example,
when making toast, you might use a procedure like this:
- 1. Get the bread and butter from the refrigerator.
- 2. Open the bread bag and take out two pieces of toast.
- 3. Remove the cover from the toaster.
- 4. Place each piece of bread in its own slot.
- 5. Push the toaster lever down to start toasting the bread.
- 6. Wait for the toasting process to complete.
- 7. Remove toast from the toaster.
- 8. Place toast on a plate.
- 9. Butter the toast.
Your procedure might vary from the one here, but it’s unlikely that you’d butter the toast before placing it in the toaster. Of course, you do actually have to remove the bread from the wrapper before you toast it (placing the bread, wrapper and all, into the toaster would likely produce undesirable results). Most people never actually think about the procedure for making toast. However, you use a procedure like this one even though you don’t think about it.
Computers can’t perform tasks without a procedure. You must tell the computer which steps to perform, the order in which to perform them, and any exceptions to the rule that could cause failure. All this information (and more) appears within an application. In short, an application is simply a written procedure that you use to tell the computer what to do when to do it, and how to do it. Because you’ve been using procedures all your life, all you really need to do is apply the knowledge (abstract thought) you already possess to what a computer needs to know about specific tasks.