Formulera problemet

Datalogiskt tänkande ger oss ett antal verktyg som hjälper oss formulera problem och lösningar, detta kapitel handlar formulera själva problemet. Men vad betyder det att formulera ett problem? Många problem i vår värld går inte att ge exakt svar på. Frågor som hur bygger man en krocksäker bil? Hur många stjärnor finns det i universum? Eller hur skapar man en rymdraket som kan ta människor till Mars? 

Trots att det inte finns ett rätt svar försöker och löser människan ständigt denna typen av problem.

Men vad behöver man föra för att kunna lösa stora komplexa problem? Det man behöver göra är att förstå att stora problem består av små problem. 

Detta kapitel handlar om just det bryta ner problemen på ett sådant sätt att det går att beskriva, automatisera, analysera och korrigera. 

Abstraktion

När vi använder ordet abstraktion så menar vi egenskaper hos ett objekt eller företelse som antingen delas av andra eller som är specifikt. Problemets vi försöker lösa bestämmer vilken abstraktion vi använder. Till exempel om vi skall måla en vägg hemma behöver vi veta hur mycket målarfärg som kommer gå åt så vi inte behöver springa till affären mer än engång. För att få reda på det måste vi göra en abstraktion av väggen. En sådan abstraktion skulle kunna vara att väggen är en höjd och en längd och alltså har en yta. När vi vet vilken yta väggen har är det enklare att veta hur mycket målarfärg man måste köpa. Abstraktionen kan göras ännu bättre genom att vi lägger till vad väggen är gjord av, olika typer av väggar suger åt sig olika mängd färg. 

Nedbrytning

Många problem kan kännas oövervinnerliga när man ser dem. Man får en massa information och data och vet inte vart man ska börja. På 1960-talet så tävlade USA och Ryssland om att utforska rymden, USA:s dåvarande president John F Kennedy sa 1961 att USA innan årtiondets slut skulle ha landat en människa på månen och tagit honom tillbaka i säkerhet.

Nu fick forskarna och raketbyggarna ett tydligt problem: landa en person på månen och ta hem honom eller henne igen.

Vart börjar man när man får ett sånt problem? Det är ju jättekomplicerat. Ett sätt att börja på är att bryta ner problemet i mindre problem och lösa dem var för sig. Rymfärden kan man dela upp i:

Landa på månen

Uppskjutning från jorden

Landa på jorden

Färd till månen

Färd från jorden.

Uppskjutning från månen

Därefter kan man lösa problem ett i taget och sen sätt i hop dem till en algoritm, som beskriver hur en månresa går till.

Att ta ett stort problem och dela upp det i mindre kallas för nedbrytning av problemet. 

Mönsterigenkänning

När vi brutit ner problemet i mindre delar kan vi börja se mönster. Vissa delar av vårt problem liknar varandra, till exempel när vi brutit ner problemet om hur en månresa kan gå till ser vi att vissa saker händer mer än en gång, vi behöver landa på både månen och jorden.

När man hittat ett mönster kan det betyda att man kan lösa de på samma sätt. Ibland är mönstrena inte så tydliga.

Tittar vi på bilderna i den översta raden i bilden nedan så ser vi att en av fyra rutor är svart. Tittar vi på översta raden i mitten så ser vi att den svarta rutan har hoppat ett steg medurs. I den högra bilden högst upp kan vi se att den svarta rutan har hoppat ytterligare ett steg medurs. Detta är ett mönster, om vi nu sätter upp en teori om att mönstret är att den svarta rutan alltid ska hoppa ett steg medurs så kan vi testa vår teori på mittenbilderna. Det visar sig att vårt mönster stämmer. Längst ner ska vi ange hur bilden ska se ut på den tomma rutan. Hur tror du den ska se ut?

Detta är en verklig uppgift från ett test som testar hur smart du tänker!

 

 

Mönstergeneralisering

Mönster generalisering är en teknik som används för att skapa modeller, regler, principer och teorier av observerade mönster för att kunna testa. Att bygga en rymdraket och skicka upp den är otroligt dyrt och man riskerar astronauternas liv varje gång man skickar iväg den. I dag finns avancerade datorprogram som simulerar (testar och visar) hur raketfärden ska gå. I programmet matar man in all data som man har samlat in och analyserat för att sedan se om det kommer gå bra eller ej. Datorprogrammet är programmerat med en massa modeller, regler och principer för att kunna återge verkligheten så korrekt som möjligt.

Datainsamling

När man har brutit ned ett problem i små problem så blir nästa steg att samla in data som man kan behöva för att lösa problemen. Med data så menas värden och beskrivningar på saker och ting, denna data kan sedan omvandlas till användbar information.

När man ska bygga en rymdraket för att skicka upp i rymden så måste man ju veta hur mycket raketen väger, hur mycket blåser det i luften, hur mycket bränsle går åt, hur varm kan raketen bli innan den smälter och så vidare.

Så här ser en vanlig vindmätare ut och den kan samla in data från minsta lilla vind pust till vindar med en bra bit över orkanstyrka. Vindstyrka mäter man ofta i meter per sekund vilket skrivs m/s. Orkan är en av de starkaste vindarna och när det blåser 32,7 m/s så räknas det som orkan.