Ready to watch this entire course?
Become a member and get unlimited access to the entire skills library of over 4,900 courses, including more Web and personalized recommendations.Start Your Free Trial Now
- View Offline
The core idea of logic is to create a system in which communication is clear, precise, and unambiguous, which is (or at least should be) the goal of any website or other communication.
- How humans communicate
- Comparing human and computer communication
- Speaking logically
- Using logical arguments
- Understanding the limits of computer logic
- Formatting information for humans
- Communicating with logic
Skill Level Beginner
Because computers operate on a strict true false basis. While we humans tend to work on an everything in between basis. We have to convert our vague and uncertain problems into cold, hard logic algorithms, if we want a computer's help in solving them. Let's look at a common task we all perform every day, checking the weather. When you get up in the morning, you likely look out of a window or go outside to find out what the weather is like. And when someone asks you what the weather is like, your answer will be some variety of great, okay, nice, nasty, terrible, fantastic or another adjective.
But if you ask a computer, for example your smart phone, what the weather is like, what does it do? Chances are it will tell you the temperature, the current humidity levels, the percentage of precipitation, and a myriad of other numerical data. What the computer won't tell you is whether or not it's a nice day. And there's a good reason for that. The definition of a nice day is incredibly vague and subjective. The computer simply can't compute what a nice day is. Because it's not something that can be boiled down to cold, hard logic.
In other words, no matter how much we want our computers to act like people, they simply can't. To get anywhere close to an approximation of human behavior, we have to create complex logical algorithms. And define clear parameters the computer can understand, that will return a simulacrum of human behavior. So if we wanted our smart phones to tell us what the weather is like today, we'd have to break it down for it first. A nice day means temperature between 65 and 77 degrees Fahrenheit, wind between zero and ten miles per hour, sunny or slightly overcast, chance of precipitation lower than 15%.
We could then define parameters for each of our weather adjectives. Okay means temperatures between 45 and 65 degrees, slightly overcast to overcast. And winds up to 20 miles per hour. Terrible, means temperatures between 0 an 45 degrees, 100% chance of precipitation, and winds over 40 miles per hour, and so on. The problem is, these definitions are highly subjective, and dependent on everything from geographic location, to personality, and even the current mood of the person asking.
I like warm and sunny days. My wife enjoys cooler days preferably with a light cover of clouds. This produces a core dilemma for anyone creating user experiences. How do you create a wholesale solution that uses computer logic to produce human results to suit everyone? And should you? Currently, the answer is almost always to provide the user with the raw data output from the computer. That way, you leave the human brain to decide whether the weather is nice or nasty.
But this is not a great user experience. Especially if you don't understand what the computer is telling you. Say you're European like me, and you're presented with temperature in Fahrenheit. When the computer says it's currently 88 degrees outside, the picture in my head is of a sauna not a nice sunny day. Because 88 degrees Celsius is 190 degrees Fahrenheit. To curb this problem and make computer behavior move closer to human behavior, programmers are introducing an ever deeper level of personalization into their applications.
Instead of providing a wholesale answer to everyone with the hit and user experience that follows, everyone is served with individualized results based on their own personal parameters. This takes the edge off the cold, hard logic of the computer but it also makes the applications more complex, more resource intensive and more prone to error. Working with computer logic, you have to identify what the computer does best. And what is best left to the user. And then find ways of translating natural language to computer logic.
And back again, without the meaning being lost along the way.