myślenie komputacyjne

Myślenie komputacyjne – Dlaczego inżynierowie powinni je znac?

Myślenie komputacyjne stanowi jedną z największych supermocy przyszłych inżynierów. Możemy spojrzeć na nie jak na zestaw umiejętności potrzebnych do przekształcenia rzeczywistych wyzwań w zadania, które mogą być rozwiązane przy użyciu komputera. Dlaczego ten sposób myślenia jest niezbędny do wykonania niemal każdego zadania inżynierskiego? Przeczytaj artykuł, aby zapoznać się z procesem myślenia komputacyjnego.

Spis treści

1. Programowanie komputerowe

Czy znasz termin „Programowanie komputerów”? W ciągu ostatnich 3 dekad, ta stosunkowo nowa i szybko rozwijająca się dziedzina zyskała ogromną popularność i obecnie możemy zaobserwować, nawet małe dzieci, które zaczynają pisać swoje własne skrypty i programy. Jeśli zaczynasz tak wcześnie, naturalnym jest, że wybierzesz informatykę jako kierunek studiów. Z takimi kwalifikacjami możesz nawet aplikować do wymarzonej firmy technologicznej – bez względu na to, czy jest to Google, Facebook, Microsoft, Apple czy jakakolwiek inna firma.

Komputery są w stanie wykonywać wiele niesamowitych czynności, poczynając od zwykłych laptopów mogących wykonywać proste funkcje edytora tekstu i arkusza kalkulacyjnego, aż po niezwykle złożone superkomputery realizujące miliony transakcji finansowych dziennie. Trafne byłoby stwierdzenie, że komputery kontrolują infrastrukturę, która ułatwia współczesne życie.

Komputery są głupie

Niemniej jednak prawdą jest, że komputery same w sobie są tak naprawdę głupie. Pomimo wszystkich niesamowitych rzeczy, które potrafią dokonać, w rzeczywistości są bezużyteczne bez programisty. Potrzebują poleceń i danych wejściowych od człowieka, aby wykonywać obliczenia i uzyskiwać sensowne wyniki. Bez programisty komputery nie będą wiedziały, jak się zachować.
Stupid computer
Bez programisty komputery nie będą wiedziały, jak się zachować.
Sam Stuart Walsh ubrał to w ładne słowa.

Komputery są niesamowicie szybkie, dokładne ale i głupie. Istoty ludzkie są niewiarygodnie wolne, niedokładne i genialne. Razem są niezwykle potężne.

Programowanie komputerów polega na połączeniu ludzi i komputerów.

Chociaż istnieje wiele różnych języków programowania i wiele różnych typów komputerów, to jednak istotnym pierwszym krokiem jest konieczność posiadania w głowie rozwiązania na poziomie koncepcyjnym. Bez algorytmu nie może być mowy o programie. Komputery, w przeciwieństwie do ludzi, są bardzo wydajne przy wykonywaniu tych zadań, ponieważ z przyjemnością wykonują w kółko te same działania, nigdy się przy tym nie nudząc.

2. Idea myślenia obliczeniowego

Jak wspomniałem wcześniej, komputery mogą być wykorzystywane jako wsparcie w rozwiązywaniu problemów. Musimy jednak zrozumieć sam problem, zanim będzie można się nim zająć i go rozwiązać. Myślenie komputacyjne to krok poprzedzający programowanie, który pozwala nam zrozumieć daną kwestię.

I to jest właśnie cały sens myślenia komputacyjnego. Umożliwia nam podjęcie złożonego problemu, zrozumienie, na czym on polega i jak można go rozwiązać, a następnie opracowanie możliwych rozwiązań. Na koniec możemy przedstawić te rozwiązania w sposób zrozumiały dla komputera, człowieka albo jednego i drugiego.

2.1. Cztery kroki do myślenia obliczeniowego

Istnieją cztery kluczowe techniki i kroki w myśleniu komputacyjnym:
Dekompozycja – rozbicie złożonego problemu lub systemu na mniejsze, możliwe do opanowania części. Dekompozycja może być zdefiniowana jako proces rozwiązywania złożonego problemu i rozbijania go na więcej podproblemów, które łatwo można rozwiązać. Rozwiązanie złożonego problemu może być czasem trudne, ale znalezienie rozwiązania dla każdego podproblemu będzie prostsze, po czym podproblemy mogą być złożone w jedną całość, aby znaleźć pełne rozwiązanie pierwotnego problemu.
Rozpoznawanie wzorców – szukanie podobieństw pośród i wewnątrz problemów. Pozwala nam pominąć konieczność rozważania każdej koncepcji z osobna i raczej wykorzystać wcześniejsze doświadczenia i metody, aby jednocześnie i efektywnie poradzić sobie z wieloma obiektami i wymyślić rozwiązanie nadające się do ponownego wykorzystania.
Abstrakcja – to skupianie się tylko na ważnych informacjach, ignorowanie nieistotnych szczegółów. Abstrakcja pozwala nam stworzyć ogólne wyobrażenie dotyczące tego, czym jest problem i jak go rozwiązać. Proces ten nakazuje nam usunąć wszystkie szczegółowe informacje oraz wszelkie wzorce, które nie pomogą nam rozwiązać naszego problemu.
Algorytmy – opracowanie krok po kroku rozwiązania problemu lub reguł, które należy zastosować, aby dany problem rozwiązać. Podejście to automatyzuje proces rozwiązywania problemów poprzez tworzenie serii systematycznych, logicznych kroków, które przetwarzają zdefiniowany zestaw danych wejściowych i na ich podstawie wytwarzają zdefiniowany zestaw danych wyjściowych.
Cztery kroki do myślenia obliczeniowego
Każdy z tych kroków – dekompozycja, rozpoznawanie wzorców, abstrakcja i algorytmy – jest równie ważny co pozostałe. Razem tworzą poszczególne warstwy fundamentu programowania. Pamiętaj, że tylko stosując je wszystkie razem, będziesz w stanie osiągnąć zamierzone rezultaty. Pominięcie któregokolwiek z nich sprawi, że Twój fundament będzie słaby.
Zapisz się na darmowy mailing, a co tydzień będziesz otrzymywać cenną wiedzę na temat Grasshoppera.
Już ponad 6000 inżynierów uczy się ze mną i w pełni wykorzystuje możliwości parametrycznego projektowania.

2.2. Myślenie komputacyjne w praktyce

Aby móc zwizualizować myślenie komputacyjne, przedstawię wykorzystanie wszystkich kroków na konkretnym przykładzie.

Załóżmy, że zamierzasz ukończyć maraton w czasie krótszym niż 4 godziny. Rekord świata w tym maratonie wynosi około 2 godzin, więc 4 godziny mogą nie wydawać się wyzwaniem. Nie jest to jednak łatwy wyczyn do osiągnięcia, więc czeka Cię sporo przygotowań, chyba że już od kilku lat regularnie trenujesz. W tym przykładzie załóżmy, że nie jesteś doświadczonym maratończykiem.

Computational thinking marathon
Myślenie obliczeniowe w maratonie

Pierwszy krok - Rozkład 

Aby przekroczyć naszą upragnioną metę maratonu zastosujmy myślenie obliczeniowe.

Na pierwszy rzut oka nie wiemy, jak prosto rozwiązać to zadanie. Samo myślenie o przebiegnięciu ponad 42 km naraz może być przytłaczające i wydawać się niemal niemożliwe do wykonania. Dlatego musimy rozbić ten złożony problem na serię małych, łatwiejszych do opanowania kwestii – tu mamy do czynienia z dekompozycją. W naszym przypadku musimy stworzyć plan treningowy. Trening musi być podzielony na mniejsze dystanse. Nie zamierzasz przecież przebiec w jednym treningu pełnego maratonu. Całe planowanie trzeba zrobić na kilka miesięcy przed właściwym startem w maratonie.

Świetnie, zatem pierwszy krok został wykonany. Masz już plan treningowy.

Drugi krok - Rozpoznawanie wzorców

Teraz na każdy z tych mniejszych problemów trzeba spojrzeć indywidualnie, biorąc pod uwagę jak być może rozwiązywałeś podobne problemy wcześniej – czyli rozpoznawanie wzorców. Może wcześniej brałeś udział w zawodach? Może trasa biegu jest podobna do tej, którą pokonywałeś wcześniej, ale tylko na zmniejszonym dystansie 10 km? W tym kroku chodzi o znalezienie podobnych problemów. Zauważ, że niekoniecznie wszystkie rozwiązania, z których mogłeś wcześniej korzystać, mogą być zastosowane.

Trzeci krok - Abstrakcja

W tym kroku musimy skupić się tylko na istotnych szczegółach, jednocześnie ignorując mało ważne informacje – i to jest abstrakcja. To akurat jest proste. Musimy skupić się na regularnym treningu, zdrowej i zbilansowanej diecie, dobrym śnie i być może unikaniu niezdrowych rzeczy takich, jak papierosy i alkohol. Abstrakcja polega na ustalaniu priorytetów.

Czwarty krok - Algorytmy

Na koniec musimy stworzyć proste kroki, aby rozwiązać każdy z mniejszych problemów. Aby to zrobić, musimy zaprojektować zasady, które można opracować i z łatwością wykonać – algorytm. W tym przykładzie musielibyśmy „zaprogramować” siebie w taki sposób, aby regularnie wykonywać wszystkie zaplanowane treningi, tak aby stało się to nawykiem. Na przykład ustawić budzik na 6:00 rano, aby obudzić się wcześniej niż zwykle, założyć wygodne ubranie, rozgrzać mięśnie, rozpocząć trening interwałowy 8×1,0km, zaliczyć rozciąganie, mieć regularnie zaplanowaną dietę spożywając odpowiednie proporcje węglowodanów, tłuszczów i białek, pójść do pracy, wyspać się i powtórzyć.

Wreszcie te proste kroki lub zasady są wykorzystywane do programowania komputera, aby pomóc w jak najlepszym rozwiązywaniu złożonych problemów. Część planistyczna i przygotowawcza przypomina myślenie obliczeniowe, a przestrzeganie założeń szkoleniowych – programowanie.  Jako ”człowiek-robot” musisz wykonać wszystkie kroki w odpowiedniej kolejności.

3. Dlaczego bycie dobrym w myśleniu obliczeniowym ma znaczenie

Każdy inżynier musi używać myślenia komputacyjnego na co dzień.

Jeśli się nad tym zastanowić, cztery fundamentalne warstwy są bardzo podobne do tego, co robimy już na co dzień jako architekci i inżynierowie. Codziennie zajmujemy się definiowaniem/rozpoznawaniem? abstrakcyjnych problemów, tak aby można było je rozwiązać. Dodatkowo, jesteśmy bardzo dobrzy w przeprowadzaniu analiz i ocenianiu rozwiązań.

Schemat pracy inżyniera

Computational thinking Engineer
Myślenie obliczeniowe w pracy inżynierskiej
Niemniej jednak ostatni krok został tradycyjnie zastąpiony pracą manualną w taki czy inny sposób. Oczywiście mamy oprogramowanie, które wspomaga nas w tym procesie, ale często jesteśmy zdani na polecenia ogromnych firm programistycznych i silosów kompetecyjnych. Załóżmy, że mamy problem, który chcemy zautomatyzować, jeśli nie jest to możliwe w oprogramowaniu, do którego w danym momencie mamy dostęp, musimy złożyć wniosek do deweloperów, a uzyskanie dostępu do danej funkcjonalności co może potrwać od kilku miesięcy do 5 lat. To (między innymi) powoduje, że zamiast tego robimy to ręcznie, ponieważ musimy to zrobić teraz, bez zbędnego czekania.

To prowadzi nas do punktu, w którym musimy dodać funkcjonalność do programów lub stworzyć je od podstaw samodzielnie. Jak już wspomniano, proces ten nazywany jest tworzeniem algorytmów.

4. Czym jest Algorytm?

Krótko mówiąc, algorytm to sposób postępowania krok po kroku. W matematyce i informatyce, algorytmy są używane do obliczeń lub rozwiązywania problemów. Jednak pojęcie to można spotkać również w innych przypadkach, np. w przepisach kulinarnych, grach, a nawet w instrukcjach montażu mebli. Algorytmy są definiowane przez listy następujących po sobie, ale niekoniecznie sekwencyjnych kroków, z których każdy zawiera dobrze zdefiniowane instrukcje. Algorytmy mają swój początek i koniec. Możemy powiedzieć, że przypominają listy. W swoich stanach początkowych algorytmy przyjmują dane w postaci zmiennych wejściowych. Dane wejściowe są przetwarzane przez kolejne kroki algorytmu i przekształcane w pewien rodzaj informacji lub danych wyjściowych, które są przekazywane w etapie końcowym.

Algorytmy istnieją w wielu różnych formach, od pisemnych instrukcji poprzez schematy przepływu, formalny język komputerowy po obwody elektryczne, a wymieniam tylko niektóre z nich.

Rzućmy okiem na przykład schematu przepływu.

Algorithm in Computational thinking
Prosty algorytm
Wszyscy korzystają z tego rodzaju schematu przepływu w codziennych obowiązkach. Podobnie jak na tym przykładzie, musimy wykonać pewne zadanie, powiedzmy iść do pracy. Wychodzimy z domu, następnie sprawdzamy, która jest godzina. Jeśli jest przed 7 rano to możemy wsiąść w autobus i dojechać do pracy na czas. Jeśli nie, to musimy pojechać samochodem, aby szybciej do niej dotrzeć.

5. Podsumowanie

Myślenie komputacyjne NIE jest narzędziem ani programowaniem. To nawet nie jest sposób w jaki myślą komputery, przecież komputery nie myślą. Nie są aż tak inteligentne, delikatnie rzecz ujmując. Mówiąc najprościej, myślenie komputacyjne to proces rozwiązywania złożonych problemów. Programowanie mówi komputerowi, co i jak ma to zrobić. Jak powiedział Steve Jobs: „To (programowanie) uczy cię, jak myśleć”. Oznacza to, że podchodzisz do problemów w zupełnie nowy sposób. Zawsze poszukujesz logicznego podłoża problemu i tego, co jest motorem napędowym poszczególnych działań.

Aby to zrobić, musimy rozmawiać z komputerami w tym samym języku i o tym opowiem więcej w następnym filmie. Do zobaczenia!

Masz jakieś pytania?

Napisz do mnie [email protected]

Zawsze odpowiadam !!

Sprawdź więcej moich porad w Grasshopperze:

5 trików w Grasshopperze na pozbycie się potwora spaghetti

5 trików w Grasshopperze usprawniających współpracę5

Jak używać masek w Grasshopperze?

Jeśli chcesz uzyskać więcej informacji o Grasshopper ze i nauczyć się modelowania parametrycznego, pobierz bezpłatny przewodnik – Pobierz bezpłatnie

Spodobał Ci się ten artykuł? Podziel się nim !

Dużo czasu i wysiłku poświęcamy na tworzenie wszystkich naszych artykułów i poradników. Byłoby świetnie, gdybyś poświęcił chwilę na udostępnienie tego wpisu!

Udostępnij:

Komentarze:

Subscribe
Powiadom o
guest
0 Comments
Inline Feedbacks
View all comments

Autor:

Pobierz przewodnik po projektach BIM:

Po przeczytaniu tego poradnika dowiesz się:

  1. Jak BIM jest wykorzystywany przy największych projektach w Norwegii
  2. Jakie były wyzwania dla zespołu projektowego i jak zostały rozwiązane
  3. Jakie były wyzwania na budowie i jakie było nasze podejście do nich

Najnowsze wpisy: