Grunderna för beräkningstänkande

Webbdesigners är skyldiga att tänka igenom problem på ett sätt som datorer kan förstå, därför är "beräkningstänkande" en oumbärlig färdighet som de måste ha. Det erbjuder systematiska verktyg som behövs för att lösa komplexa uppdrag från kunder. 

Beräkningstänkande gör det möjligt för webbdesigners att bryta ner ett problem, upptäcka mönster i data, identifiera och fokusera på absolut nödvändiga aspekter av ett uppdrag, samtidigt som man lämnar onödig information som kommer att falla ner under processen.

Som ett verktyg för noggrann planering undviker man kostsamma misstag som kommer till följd av rusning för att slutföra ett projekt utan att ha ansett olika aspekter av problemet vid handen. 

Vad är Computational Thinking? 

Beräkningstänkande som koncept kan låta skrämmande. Men varje dag, i alla aspekter av våra liv, utför vi beräkningstänkande. Tänk på följande åtgärder och beslut som går in i dem: 

  • Du vill göra dig en kopp te eller kaffe.
  • Du vill köpa en bil.
  • Du vill byta karriärer.
  • Du vill flytta till en annan stad.
  • Du vill köpa ett hus.                         
  • Du vill skriva en bok.
  • Du vill skapa en app.

Processen att planera och nå dessa mål innefattar beräkningstänkande av något slag.

Planering innebär att man bryter ner dessa problem i hanterbara delar och kommer upp med uppsättningar lösningar som gör det möjligt för oss att nå det mål vi har i åtanke.

Att bryta ner problem

För våra ändamål, eftersom vi som webdesigners vill använda datorer för att hjälpa oss att lösa problem vid handen, beräknar beräkningstänkandet verkligen det komplexa problemet till hands och bryter det ner i en serie mindre hanterbara problem. Vi utvecklar sedan idéer om hur man löser dessa mindre enskilda problem och slutligen kommunicerar de resulterande idéerna i en rad steg som kan förstås och bearbetas av en dator.

Detta tillvägagångssätt följer vad vi kallar "principerna för beräkningstänkande".

Principerna för beräkningstänkande

Det finns fyra sådana principer:

  1. Sönderfall
  2. Abstraktion
  3. Mönsterigenkänning
  4. Algoritmskrivning

Dessa är nyckeltekniker som hjälper dig att tänka beräkningsmässigt genom ett komplext problem (utmaning eller uppgift) innan du skriver en enda kodlinje. Låt oss undersöka dem.

1. Nedbrytning 

Det här är att bryta ner ett komplext problem eller system i mindre, lättare lösade delar. Dessa mindre problem löses efter varandra tills det större komplexa problemet är löst.

"Om ett problem inte bryts ner är det mycket svårare att lösa. Att hantera många olika steg på ett och samma gång är mycket svårare än att bryta ett problem ner i ett antal mindre problem och lösa var och en, en i taget. "- BBC Bitesize                                                   

2. Mönsterigenkänning 

När du har sönderfallat det komplicerade problemet i mindre problem är nästa steg att se på likheter som de delar.

Mönster är delade egenskaper som uppstår i varje enskilt problem. Vilka likheter ser du på? Att hitta dessa likheter i små sönderdelade problem kan hjälpa oss att lösa komplexa problem mer effektivt.

 3. Abstraktion

"Abstraktion" avser att fokusera endast på viktig information, och ignorerar irrelevanta detaljer. För att nå en lösning måste vi ignorera onödiga egenskaper för att fokusera på dem som vi gör.

Så vad är denna viktiga information som vi behöver fokusera på? I abstraktion ligger fokus huvudsakligen på allmänna egenskaper som är gemensamma för varje element, i stället för specifika detaljer.

När du har de allmänna egenskaperna kan du skapa en "modell" av problemet. en modell är den allmänna idén om det problem vi försöker lösa.

"Om vi ​​inte abstrakt kan vi sluta med fel lösning på det problem vi försöker lösa." - BBC Bitesize

När vi har en modell kan vi designa en algoritm

4. Algoritmskrivning

Du har brutit ner det stora problemet i mindre, lätthanterliga problem. Du har identifierat likheter mellan dessa problem. Du har fokuserat på relevanta uppgifter och lämnat något irrelevant.

Nu är det dags att utveckla steg-för-steg-instruktioner för att lösa alla de mindre problemen, eller de regler som ska följa när man löser problemet. Dessa enkla steg eller regler används för att programmera en dator för att lösa ett komplext problem på bästa sätt. De kallas också "algoritmer".

Definition: En algoritm är en plan, en uppsättning steg-för-steg-instruktioner som används för att lösa ett problem.

"Algoritmer involverar inte alltid komplicerade programfärdigheter; i hjärtat är de sekvenser av steg för att röra sig mot ett mål. "- John Villasenor

Att skriva en algoritm kräver omfattande planering för att den ska fungera korrekt. Lösningen din dator erbjuder är lika bra som den algoritm du skriver. Om algoritmen inte är bra, kommer din lösning inte heller vara bra.

Använda flödesdiagram

Flödesschema erbjuder ett perfekt sätt att representera algoritmer.

"Ett flödesschema är en typ av diagram som representerar en algoritm, arbetsflöde eller process, som visar stegen som rutor av olika slag och deras ordning genom att ansluta dem med pilar. Denna schematiska representation illustrerar en lösningsmodell för ett givet problem. "- Wikipedia

Flödesdiagram är ett enkelt sätt att plotta ut algoritmer, speciellt om de behöver skriva ut olika resultat under vägen. De använder standard styling konventioner. Flödesscheman flyter från topp till botten och vänster mot höger.

Flödesschema element exempel från UX Kits

Använda pseudokod

Medan du delar upp problemet i handen i mindre hanterbara delar har du kommunicerat dina fynd, idéer och möjliga lösningar på vanlig engelska (eller vilket språk du använder för att kommunicera).

Datorer förstår inte instruktioner på engelska. De förstår kod. Kod eller algoritmer som utgör en uppsättning instruktioner med mycket specifik syntax.  

Men innan du använder dina resultat för att skriva kod som datorn kommer att förstå är det vanligtvis lämpligt att skriva ner dem i pseudokod.

Pseudokod hjälper dig att planera lösningarna på ditt problem för att undvika eventuella misstag när du skriver kod. Det är ett sätt att skriva instruktioner på ett förenklat sätt som läser som kod. Pseudokod är inte kod, men den har inte någon specifik syntax som kod använder.

Pseudokod skrivs bäst med hjälp av nyckelord och variabler. Variabler i programmering står för ett värde, ett ord eller en bit av kod. Vid programmering ändras värdet av variabler beroende på var du befinner dig i koden.

Till exempel kan denna pseudokod (taget från University of Tennessee) beräkna lön:

Börja INPUT timmar INPUT rate pay = timmar * rate OUTPUT betala slut

Och det här, något mer komplexa exemplet kan beräkna lön med övertid:

Börja INPUT timmar, betygsätt IF-timmar ≤ 40 THEN pay = hours * rate ELSE pay = 40 * kurs + (timmar - 40) * kurs * 1,5 OUTPUT-betalning END

 Pseudokoden använder kodliknande termer som är användbara när man översätter den till kod.

  • STOP / END Datorer är bokstavliga. Du måste berätta för dem när ett uttalande eller en instruktion är klar. Gör detta genom att skriva SLUTA eller SLUTET.
  • IF / annat / THENDatorer förstår villkoren: om A händer gör du B, om inte gör då C.
  • INPUT / OUT En del kod kräver inmatning för att kunna köras och skapa ett resultat. Inmatning är för data som en användare eller annan källa kommer att ge till datorn. Output används för att indikera slutresultatet för en serie kommandon. 
  • STORE / SAVEPseudokods term som instruerar en dator att spara eller spara ett värde när det behövs. 

Utvärdering av lösningar

Det är faktiskt en femtedel i hela processen. Du har använt beräkningstänkande för att komma fram till en lösning. Lösningen är en algoritm som kan användas för att programmera datorn.

Du kliar för att börja programmera, men innan du går vidare måste du utvärdera lösningen. Varför?

"Utan utvärdering kommer inga fel i algoritmen att hämtas, och programmet kanske inte löser problemet korrekt, eller kanske inte löser det på bästa sätt." - BBC Bitesize

Tänk på att utvärdera din algoritm som "debugging".

Slutsats

Beräkningstänkandet går igenom alla aspekter och funktioner av 21st talet företag. Det är en oumbärlig problemlösningsförmåga för webbdesigners som i slutändan måste representera lösningar på ett språk som datorer kan förstå och bearbeta.

Kom ihåg att beräkningstänkandet innefattar följande steg:

  1. Nedbrytning: bryta ner ett problem i dess beståndsdelar.
  2. Mönsterigenkänning: Identifiera likheter i komponentdelar av ett problem.
  3. Abstraktion: fokuserar på viktig allmän information och lämnar information som är irrelevant för lösningen.
  4. Algoritmskrivning: Skriv koden som skapar den avsedda lösningen. Skriva steg för steg instruktion som kan läsas och bearbetas av datorn. Instruktionerna skrivs med hjälp av relevant information som samlas in från sönderdelning, mönsterigenkänning och abstraktion.
  5. Utvärdering: hitta buggar i algoritmen och korrigera dem för att säkerställa att det fungerar utan några glitches.

Användbara resurser

  • Hur man ritar ett flödesdiagram
  • Ultimate Flowchart Guide 
  • Flödesschablonmallar på Envato Elements