Melyik nyelvvel volt a legjobb tapasztalatod gyerekként vagy gyerekek oktatásában tanárként?
Kereken 40 éve programozok, és egyszerűen nem tudom eldönteni, hogy a melyik programozási nyelv a legalkalmasabb 12-14 éves gyerekek oktatására. Amiket nézegettem:
Python - talán ez a legegyszerűbb, de mit csinál benne? Kivy frameworkkel appot, vagy játékot pygame-mel, gondolom. Csak ehhez végképp 0 magyar nyelvű irodalom vagy tutorial van (persze a ami gyerekek már folyékonyan tudnak angolul akkor is, ha németesek :D de azért... mégis. Na.).
JavaScript - ez is egy szuper ötlet, de ahhoz, hogy valaki webalkalmazást csináljon, annyi mindent kell még mellé tanulni (HTML, CSS, React, JSX stb.) hogy nem biztos, hogy ehhez mindenkinek van türelme. Erről mit gondoltok?
PHP - ehhez legalább van normális könyv magyar nyelven, három is. De statikus weblapokon kívül nem nagyon tud vele mást kezdeni, persze ez is valami. Vagy elindulhat a React rögös útján, ld. előző pontot.
Racket - hát ez egy szuperjó cucc, a környezet is meg a nyelv is -- kár, hogy annyira nem mainstream, hogy utána a gyerek kicsit megreked vele. Így ezt végül elvetettem.
Greenfoot - ez is jó állítólag, de talán a Java túl bonyolult kicsiknek. C# / Unity-vel ugyanez a helyzet, azt hiszem.
Ezekről mit gondoltok? Más ötlet?
Szívem szerint egy egyszerű, modern nyelvet (Go, Zig) tanítanék, de egyrészt semmi magyar nyelvű irodalom nincs hozzájuk, másrészt meg -- mit csinálnak velük? Azért a vizuális élmény elég fontos.
De jó volt, amikor annak idején 12 évesen már assemblyben programoztunk Commodore-t, mivel baromi egyszerű volt, másrészt meg csak ehhez volt magyar nyelvű könyv, internet meg nem létezett, szóval abból főztünk, amink volt. A C nyelvet is azért kezdtük el tanulni, mert a K&R ki volt adva magyarul. A Pascalt meg azért kezdtük el utálni, szegényt, mert az iskolában kötelező volt. (Pedig nem szolgált rá, tök jó nyelv volt.)
Nem mellesleg példának okáért a Nemzeti Alaptanterv is a Scratch - Micro Bit - Python vonalat preferálja, a kifejezetten gyerekeknek szóló programozási könyvek - mint például az alábbi:
vagy például az iskolai oktatástól független képzések - mint például a Logiscool
is Scratch - Python vonalon mozog.
Én is utáltam gyerekkoromban a Logo-t, nem hogy 12 évesen, előbb is, mert érdekelt a programozás, az meg komolytalannak tűnt. Skratchet nem ismerem, de értem mire gondolt a kérdező. A Pythonnal nekem is ugyanaz a gondom, hogy sokmindenben nagyon más mint a többi nyelv. Pascal-t manapság nem sokan használják, és nekem már gyerekkoromban is túl bőbeszédű volt. Webes(nek sánt) nyelveket mint PHP, JS nem tanítanék ha az alapok fontosak, mert egy Hello World is komplikáltabb már mint egy normál nyelven.
Én azt mondanám, hogy mégiscsak C# vagy Java, esetleg Kotlin. Nem bonyolultak ezek a nyelvek, ha az alapoknál kezded a tanítását, és kiterjedt magyar nyelvű szakirodalmuk van, még ha nem is a legújabb verzióiknak.
"Pascal-t manapság nem sokan használják, és nekem már gyerekkoromban is túl bőbeszédű volt."
"mert egy Hello World is komplikáltabb már mint egy normál nyelven."
Vs.
"Én azt mondanám, hogy mégiscsak C# vagy Java, esetleg Kotlin."
Itt egy kicsi ellentmondást vélek felfedezni.
Pythonban "egy hello World" ennyi:
print("Hello, World!")
Pascalban:
program helloWorld(output);
begin
writeLn('Hello, World!')
end.
Ezzel szemben Java-ban:
class HelloWorld {
public static void main(String[] args) {
System.out.println("Hello, World!");
}
}
C#-ban:
namespace HelloWorld
{
class Hello {
static void Main(string[] args)
{
System.Console.WriteLine("Hello World!");
}
}
}
egy csomó "zavaró mellékinformáció": namespace, class, public, static, void, main, System/console - mindezt csak azért hogy kiírj valamit.
"Én is utáltam gyerekkoromban a Logo-t, nem hogy 12 évesen, előbb is, mert érdekelt a programozás, az meg komolytalannak tűnt. "
Jó, de ez a te egyéni eseted.
De a gyerekek túlnyomó többségét nem érdekli a programozás (és az oktatásnak nem az a célja, hogy programozókat képezzenek ilyen korban).
Éppen ezért kezdenek Logoval, az arra épülő Scratch-el, vagy a gyors tanulási görbéjű Pythonnal (vagy régebben Basic-kel Pascallal). C-vel/C++-al, C#-al, Java-val ráérnek később foglalkozni.
"Pascalban:
program helloWorld(output);
begin
writeLn('Hello, World!')
end."
Nem, pascalban ennyi:
begin
writeLn('Hello, World!');
end.
#14: A Free Pascal hivatalos dokumentációjából másoltam:
13:
Olyan ellentmondást vélsz felfedezni, ami nincs ott a mondandómban.
Amit a "hello worldről" írtam, az arról szólt, hogy a PHP-ban és JS-ben alapvetően böngészős programokat írunk (igen, ez nem mindig igaz, de kezdők így találkoznak ezekkel a nyelvekkel), így egy egyszerű programot is bonyolít, hogy webolalt csinálsz és nem egy egsszerű console alkalmazást.
A Pascal bőbeszűsége pedig nem hello worldnél, hanem az egyszerű vezérlési szerkezeteknél jön elő, pl. {} vagy a Pythonos identálás helyett begin...end. Meg relatív hosszú kulcsszavak.
A töltelék, bolierplate kódokkal kapcsolatban igazad van Java és C# esetében, ha lenne nyelv ezek nélkül, de nem webes nyelv és nem olyan kezdőknek félrevezető, mint a Python, akkor azt ajánlanám. Így annyit tudok mondani, hogy egy egyszerű IDE nagyrészt kezeli ezt a problémát. Ezek a nyelvek meg egyébként logikájukban eléggé egyszerűek, könnyen tanulhatóak, szemben a C/C++ -al.
Ami a Logo-t illeti, azok az ismerőseim, akik nem programozók és gyerekkoukban tanulták, mindannyian szenvedésnek élték meg. Egyszerűen azért, mert a cuki teknősös felszín alatt nem játékos, amikor a rekurziót akarták velük megértetni grafikusan, amit úgy egyébként még jóval nehezebb megérteni, mint ha pl. nyelvtani példával kezdenék.
LOL.
A freepascal egy magánakciós fejlesztés. Nincs olyanja, hogy "hivatalos", a specifikációja meg bármiben eltérhet a pascal nyelv szabványától.
De csak próbáld ki, a "program azonosító" opcionális, azaz, nem kötelező eleme egy pascal programnak.
"A freepascal egy magánakciós fejlesztés."
Lényegtelen konklúzió érvelési hibába estél.
"Nincs olyanja, hogy "hivatalos", a specifikációja"
De, van.
"meg bármiben eltérhet a pascal nyelv szabványától."
A program kulcsszót pont a szabványkövető - ISO 7185:1990 - módban kell megadni.
18, elárulnád, hogy ezt hol olvastad?
Csak mert végig böngésztem a 202 oldalas doksit és nem találom.
Ezen kívül, tapasztalatból tudom, hogy számtalan pascal fordító nem igényli a program kulcsszó meglétét a headerben, sőt, az alábbi linken még írnak is róla, hogy opcionális:
"A forráskód a program kulcsszóval kezdődik, mely röviden (1-2 szó) leírhatja, hogy maga a program miről szól. Ez az azonosító opcionális, mivel csak a programozónak információ, nem kötelező minden forráskódot ezzel kezdeni."
A delphi fordítója is szó nélkül lefordítja azokat a forrásokat, amelyekből hiányzik ez a sor. Még warning sincs! Már pedig a Borland mindig is ügyelt rá, hogy szabványkövető legyen, ahogy "gondolom" az Embarcadero is ezt teszi.
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!