300 likes | 469 Views
How Programmers See The World. OBSESSIVELY, COMPULSIVELY ORDERED EVERYTHING IN ITS PLACE EVERYTHING HAS A PLACE EVERYTHING IN THE WORLD IS A MODEL FOR A COMPUTER SYSTEM Even SPELLING, UPPER and lower Case THERE ’ S NOTHING FREE FORM ABOUT IT UNFORTUNATELY, IT ’ S A WHOLE NEW LANGUAGE.
E N D
How Programmers See The World OBSESSIVELY, COMPULSIVELY ORDERED EVERYTHING IN ITS PLACE EVERYTHING HAS A PLACE EVERYTHING IN THE WORLD IS A MODEL FOR A COMPUTER SYSTEM Even SPELLING, UPPER and lower Case THERE’S NOTHING FREE FORM ABOUT IT UNFORTUNATELY, IT’S A WHOLE NEW LANGUAGE
The sky is blue No… what sky? What is blue? Nerds need more information than that… Universe.Galaxies.MilkyWay.OurSun.Planets. Earth.Sky = Color.blue
Computers Computers.big Computers.small.hipster.dontWork.iPhone
What Is This? • It’s called classification • You’ve heard this before: • “A class of problems” • “In a class by itself” • “Classy new styles” • A Class is a container of properties and behaviors
Why? • Because it’s better to solve a class of problems than one just one problem. e.g. ?? mp3 and m4v standards • You need to completely classify a system before you can computerize it… “If you can’t describe it in English, you’ll never program it” • So PROGRAMMERS are always looking for a wide ranging application of their work, and a complete description before they start.
Your Computer • How programmers refer to your computer using namespace std; cout << “Hello”; cin >> x; std is a collection, or library, or (better yet) a CLASS cin is input to the computer, from the keyboard cout is output, to the screen What?
Finally • Class is the category.subCategory.subSub • Object is an example of something of that class • Animals.Dogs.EnglishBullDog is a class but Lemmy here is an actual dog. Lemmy is an Object
We can program… • A wombat, an atm, a robot, a math equation… If we can specify Classification Behaviors Properties Relationships Then we can build a computer “system” to replace it.
Note the abstraction Impress your friends, because this IS rocket science Class SubClass SubClass… … Object Abstract Specific General Concrete High Order Low Order FreeForm Details Cognitive Real
Build a model Classification: • Animals.Mammals.Dogs.EnglishBullDog • Or Friends.NonHuman.Pets.BullDog • Or any classification that makes its relationship to others clear Behaviors: eats, poops, snores, drools, that’s about it. Properties: color, male/female, size, weight, eye color. Relationships: friend, guard, expense
Solve A Problem What could we possibly build a computer system to do, that is currently being done by animals? Note the classes that eventually become objects
Our World: the Problem Space • Real problems, in the real world. In REAL TIME. • http://www.youtube.com/watch?v=dq_SJ7CtnZI • http://www.youtube.com/watch?v=W1czBcnX1Ww • http://www.youtube.com/watch?v=VXJZVZFRFJc • An App, or computer program, solves a class of problems, in real time
The Only Tool We Have The Computer – The Solution Space • Computers solve real world problems • To be solved, the real world “problem” must be reflected in the computer • Modeling
Robots • They LOOK like humans. Why? http://www.youtube.com/watch?v=Q3C5sc8b3xM • NOT because humans are form-fit best at engaging their world.
Computers help humans • Computer systems are built to assist humans in tasks that are iterative, beyond human speed, are lengthy, or dangerous.
So far… • Computer systems are models of something in the real world • The real world is the problem space • The solution space is the hardware and software of the computer • We build high quality systems to the extent that we accurately model the problem space inside the solution space
The issue of DESIGN Good design / Bad design http://www.baddesigns.com/doors.html http://www.baddesigns.com/3doors.html http://failblog.org/2009/04/03/door-fail-3/ http://www.baddesigns.com/autoicons.html http://thetenmost.blogspot.com/2009/04/ten-most-confusing-road-signs-in.html http://www.baddesigns.com/path.html
How many times have you left your headlights on? Left the refrigerator door open? Programmed the microwave for 120 minutes? Recorded the wrong TV program? Ran out of gas? Locked your keys in your car? Lost the remote control? Banged your head? How much responsibility is ours? users often blame themselves, when it is the designer’s fault
Technology Sawblade - http://www.youtube.com/watch?v=esnQwVZOrUU Insane watch - http://www.tokyoflash.com/en/watches/kisai/sensai/ Pomegranate - http://www.pomegranatephone.com/ Apple Wheel - http://www.theonion.com/content/node/92328 Hidden cell phone tower http://www.infrastructurist.com/2009/04/03/gallery-cell-phone-towers-pretending-to-be-trees/
The Design of Everyday Things Design Psychology (POET) Psychopathology
The Essence of Programming • Programs, or Apps, are models of something in the real world. • We build high quality systems to the extent that we can model the problem space within the solution space. • That is, our computer systems should look like and act like the things they replace
What does the model give us? • So what, we’ve recreated a little piece of the real world in our computer? • It gives us INFORMATION, via SIMULATION. • In a document. In a file. In the computer. • It’s called an App, or a computer program, but it reflects a MODEL. • The objects in the model interact, just like the system it represents. • The solution space should have the same properties, behaviors, and relationships as the problem space it models.
Any computer that does something… Is a model of something in the real world: mp3 players are bands Cell phones are your friends ATMs are bank tellers Robots are people Video games are adventures Nemo is an actor
There’s an App for that • What does this mean, really? • http://www.youtube.com/watch?v=szrsfeyLzyg • http://www.youtube.com/watch?v=mZCdF2Cog1s
summary • Understand the relationship between a computerized system, and its counterpart in the real world • Analyze the model: behaviors, properties, relationships
Programmers use 3 types of computers: 1. A word processor (we’ll call them editors)