O nauczaniu informatyki

Czytałem sobie ciekawy wątek na pewnym forum. O nauczaniu informatyki. Ogólnie chodziło o pytanie skąd ściągnąć MS Office by dziecko nie umie Excela i musi w domu poćwiczyć. I tak doszło do nauki programowania. I do tego, że w szkołach nauczają Pascala, a mogli by czegoś innego.

Ja się zgadzam ze stwierdzeniem, że w szkole powinni nauczać programowania, a nie Pascala. Uczyć podejścia do algorytmiki, podstaw programowania ogólnego typu zmienna, typ zmiennej, funkcja, struktura itp. A w czym najlepiej uczyć? W Pascalu, który został stworzony bądź co bądź do nauki programowania? Takie rozwiązanie narzuca się samo. A może czas na coś nowszego? Na Javę może? Na Pythona? I dochodzimy do pytania - czy powinno się najpierw uczyć programowania strukturalnego, czy mozna od razu przeskoczyć do obiektowości? Moim skromnym zdaniem - powinniśmy zaczynać od języków strukturalnych, potem przechodzić do obiektowości, wraz z jej wszelkimi zawirowaniami.

A jakich możemy nauczać języków programowania w szkołach? Obecnie króluje Pascal. Zwłaszcza w IDE nazywanym Turbo Pascal 7. A czego możemy nauczać, a może nawet powinniśmy? C? Jako język bardzo popularny, który może się przydać w przyszłości? Potem przejście do C++ i mamy też nauczanie obiektowości… A gdy już się na nią zdecydujemy to może Java? Oparta składniowo na C, bardzo przyjemna, w pełni obiektowa. Może Python? Nowoczesny język, popularny, obiektowy. Ewentualnie Microsoftowy wynalazek C#, taż przyjemny jezyk, podobny do Javy.

Co do tego ładnego kodu, to też by było miło, gdyby było nauczanie, że ładny kod, sformatowany, wcięcia, odpowiednie nazewnictwo identyfikatorów to bardzo przydatna rzecz i świadcząca częściowo o umiejętnościach programisty. Moglibyśmy też uczyć o komentarzach i konieczności ich stosowania (no, może nie konieczności, ale na pewno przydatności). Bo jak się patrzy niestety na niektóre programy adeptów sztuki programowania to ręce opadają. Kod jednostajny, bez wcieć, nic się nie da zrozumieć praktycznie z niego. Tutaj pokazuje swoją wyższość Python, bardzo rygotystyczny pod tym względem.

Teraz czas na jeszcze jedną sprawę. Na wszelkiego rodzaju ułatwiacze. A zwłaszcza na Delphi - na tym się znam, to i opowiem. Delphi jako język i środowisko są naprawdę bardzo przyjemnym sposobem na szybkie pisanie skomplikowanych aplikacji. Ale niestety, to niesie za sobą też niebezpieczeństwa. Wiele osób od razu przywiązuje największą wagę do tworzenia ładnego wyglądu programu (co oczywiśćie także jest ważne), ale zaniedbuje naukę podstaw. Zbajerzeni możliwościami łatwego “kładzenia” w programie róznych fajoskich kontrolek, nie wiedzą potem czym są pętle, zmienne itp. Mi ręce opadają jak widzę niektóre takie “dzieła”. Także swoje, sprzed kilku lat ;) (zastanawiam się często, jak ja mogłem to zrozumieć).

I wracamy do punktu wyjścia - czy najpierw uczyć obiektowości, czy strukturalności? W obydwu tych podejściach mamy konieczność nauczenia się podstawowych podstaw. Zmiennych, pętli, typów (no, w niektórych językach to nie), typów definiowalnych itp. I te podstawowe pojęcia potem są niezależne od wybranej drogi nauki i towarzyszą nam zawsze. A czego mamy naucząć, jak tu już zrobiono? Że programy składają się z procedur? A może z klas i ich metod? Jeżeli byśmy mieli nowoczesną szkołę, przygotowywującą do przyszłości w zawodzie programisty moglibyśmy w sumie zacząć od obiektowości i nigdy nie mówić o programach strukturalnych. Obecnie mimo wszystko najnowsze języki to języki obiektowe. A czy są jakieś argumenty za nauką programowania strukturalnego?

Zostaw komentarz

Dozwolone są niektóre znaczniki XHTML, jak: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Na tym blogu stosowana jest wtyczka antyspamowa Spam Karma. Jeżeli Twój komentarz nie pojawia się, lub po jego dodaniu otrzymujesz pustą stronę - poczekaj, komentarz został dodany, ale albo oczekuje w kolejce, albo został mylnie zakwalifikowany jako spam - spokojnie, gdy zajrzę do panelu administracyjnego to uratuję go.