SG.hu·

Mindenkinek tudnia kellene programozni?

Számos tanár van azon a véleményen a számítógép-tudományt oktatók körében, hogy a főiskolát végzetteknek tisztában kell lenniük a szoftverek alapjaival. Persze nem azt állítják, hogy mindenkinek szükségképpen képzett programozóvá kell válnia. Inkább arra törekszenek, hogy megtanítsák a "számítógépi gondolkodást" - a programozási nyelvek által alkalmazott általános fogalmakat.

2006-ban Jeannette M. Wing, a Carnegie Mellon Egyetem számítástechnikai karának vezetője kiáltványt állított össze, amellett érvelve, hogy újra kell értelmezni az általános műveltséget: szerepelnie kell benne a számítógépes folyamatok megértésének is. "A számítógépi gondolkodásnak mindenki számára alapvető készségnek kell lennie, az nem csupán a számítógépes szakemberek kiváltsága - írta. "Az olvasással, az írással és a matematikával azonos szintre kell emelni a számítógépes gondolkodást is, hogy teljes értékűvé váljék minden gyermek elemző képessége." Arról azonban nincs igazán egységes álláspont, hogy pontosan mik is minősülnek a számítógépes gondolkodás központi elemeinek. Mint ahogy arról sincs, hogy a diákoknak - ha kell egyáltalán - milyen fokon kell érteniük a programozáshoz, annak érdekében, hogy megértsék azt. És a legfontosabb: továbbra is bizonytalan, szükség van-e arra, hogy minden főiskolai hallgató elsajátítsa a számítógépes gondolkodást.

A nem szakirányú főiskolai képzésben a számítástechnika-órák tematikája igen eltérő. Egyes szakok hallgatói rögtön valamelyik fontosabb programozási nyelven kezdenek el kódolni, másutt viszont teljesen kizárják a programozást, és inkább a számítógép-használat szociális és etikai kérdéseiben merülnek el. A Carnegie Mellonon az olyan diákok számára, akiknek nem a számítástechnika a fő szakjuk, A számítástechnika alapelvei című kurzust javasolják. Ez a számítástechnika történetével indul, de a diákok már a második héten elkezdik tanulni a Ruby nevű programozási nyelvet. A tanfolyam ezt követően az iteráció, a rekurzió, a véletlenszám-generálás és hasonló témák területét fedi le.

Tom Cortina, aki tanít a tanfolyamon, azt mondja, hogy néhány diák kihívásnak tekinti a programozást, különösen azok, akiknek a szakjai nem érintik a technológia, a műszaki tudományok vagy a matematika területét, és nincsenek hozzászokva az e területeken szükséges precizitáshoz. A Massachusetts állambeli Nortonban található Wheaton Főiskolán Mark D. LeBlanc "költőknek" oktatja a számítástechnikát. A tárgy ismertetője szerint a tanfolyami részvétel egyetlen előfeltétele, hogy valaki "szeresse az írott (és a digitális) szöveget". LeBlanc professzor óráin a diákok megtanulják a szoftveripar egyik divatos, modern nyelvének, a Pythonnak az alapjait, de ez a képzés kapcsolódik az angol irodalmi kar J. R. R. Tolkiennel, illetve az angolszász irodalommal foglalkozó kurzusaihoz. A számítástechnikai tanfolyam hallgatói azonnal nagy szövegek elemzésén próbálhatják ki a megszerzett ismereteket. A tanterv olyasmire hasonlít, amit inkább a humán szakokon keresne az ember.


Mark LeBlanc szerint a kreatív írás mellett számítástudományt is kell tanulniuk a költőknek

"Az órákon komoly problémákkal szembesülünk - fogalmazott a professzor a The New York Times tudósítójának nyilatkozva -, hiszen a diákok többsége túlterhelt. Fontos eldönteni, hogy hol kezdjünk bele az anyagba. Ez teremti meg a lehetőséget arra, hogy a hallgatók megismerjék a dekompozíció fogalmát: azt, ahogyan egy nagy problémát kezelhető, kisebb problémákra lehet felosztani." LeBlanc becslései szerint az egyes félévekben a beiratkozók mindössze 5 százaléka int búcsút a kurzusnak azon az alapon, hogy az "rosszabb, mint egy idegen nyelv". A professzor úgy véli, hogy a bölcsészettudományra szakosodott Wheatonon végzettek többsége olyan területeken talál majd munkát, ahol meg kell tanulniuk programozni, a bölcsészettudományi főiskola pedig biztonságos hely az ilyen kezdők számára.

Egy sor más felsőoktatási intézményben a számítástechnikai karok úgy igyekeznek bevezetni a hallgatókat a számítógépi gondolkodás elsajátításába, hogy megkímélik őket valamelyik "ipari erősségű" programozási nyelv elsajátításától: attól, hogy azokon keresztül ismerjék meg az általános fogalmak alkalmazását. Ehelyett a hallgatók interaktív animációk létrehozására alkalmas vizuális script-nyelveket tanulnak. Az egyik ilyen nyelv a Scratch, amelyet általános és középiskolai tanulók számára fejlesztettek ki. Marie Desjardinsnek, a Marylandi Egyetem számítástechnika-professzorának osztálya a Scratchet a Bevezetés a számítógépek és a programozás világába című tárgy keretében használja, így a diákok a gyakorlatban ismerkedhetnek meg néhány alapfogalommal. A félév mintegy 25 százaléka telik programozással.

Arra a kérdésre, hogy miért használják a főiskolai szintű oktatásban a Scratchet, Desjardins szerint egyszerű a magyarázat: minden hallgató úgy érkezik az egyetemre, hogy a középiskolában angolból, matematikából, biológiából megszerezte a kellő ismereteket, de ugyanez a számítógépes jártasságot illetően már nem mondható el mindenkiről. Michael Littman, aki a Rutgers Egyetem számítástechnikai karának vezetője, hasonló véleményen van: a számítógépi gondolkodást a középiskolában kellene elsajátítani, de az ott nem valósul meg, következésképpen az egyetemi számítástechnikai karoknak kell megfelelő alternatívát ajánlaniuk a felzárkózáshoz.

Az iowai Grinnell Főiskolán a diákok felvehetik A digitális kor című tárgyat, amelynek keretében megismerhetők "a számítógép-tudomány legnagyszerűbb gondolatai, főként a mögöttes algoritmikus elvekre és a társadalmi következményekre összpontosítva". Mindez azonban nem jelenti azt, hogy valamilyen programozási nyelvet meg kellene tanulni. "Mivel az általános műveltségnek része az olvasás és az írás ismerete, a 'számítógépes műveltség' megfogalmazás azt sugallja, hogy kötelező programozói tudással rendelkeznie annak, aki e területen akar tevékenykedni" - magyarázta a lapnak Henry M. Walker, a Grinnell számítástechnika-professzora. "Az átlagos állampolgárok azonban akár tudnak, akár nem tudnak programokat írni, hatékonyan működhetnek ebben a technológiai korban."

A professzor inkább azt részesíti előnyben, hogy a hallgatók otthonosan mozogjanak a számítógépes környezetben, ez pedig elérhető anélkül is, hogy programozási feladatokat végeznének. Eljön majd az az idő, amikor a számítástechnikai folyamatok megértése elengedhetetlen lehet mindenki számára, akárhol tevékenykedik is. De az még nem világos, mikor érkezik el az a pont, amikor a "jó ismerni" megfogalmazás helyét a "kötelező tudni" veszi át.

Kapcsolódó cikkek és linkek

Hozzászólások

Jelentkezz be a hozzászóláshoz.

© fonak2014. 04. 21.. 23:56||#77
És mi a helyes válasz? 0x1004? 😊
© figyu2014. 01. 03.. 23:57||#76
"Én sem tudom pontosan, most hol tart nálunk az oktatás és mit tanítanak, csak azt láttam, hogy akiket suli után felvettünk (nulla gyakorlattal), azok helyett a pizzafutárt is berángathattuk volna,"

10 éve történt: cégünk c++ programozókat keresett. 10 jelentkezõbõl 8-nak fingja se volt a pointer-aritmetikához. És C programozásból akar megélni?
Ez volt a példa amin 80% diplomás elhasalt:

DWORD* p = 0x1000;
p++;
p = ?

Leggyakoribb válasz az 0x1001 volt. De elõfordult 0x1002, 0x1016 (!) is.
Én meg máig nem értem.

© figyu2014. 01. 03.. 23:23||#75
"A programozás = matematika"
Ehhez szeretnék hozzáfûzni egy durva felismerést: Az egyszeri programozó nem is találkozik a matekkal! Én 10 év után azt vettem észre hogy összeadni se kellet 😊 Sõt, ha csak összeadok két számot és az eredményt írom le a kódba az szakmai hiba!
Mert senki sem fogja érteni mi a a fasz az a y = 123, ellenben így rendben van:
#define LOW_LIMIT 100
#define BORDER_SIZE 23
y = LOW_LIMIT + BORDER_SIZE;

Sõt a megrendelõ külön kéri, hogy ne kezdjünk el "optimalizálgatni". Mert nem érdekli hogy egy függvény 10 vagy 14 ms alatt fut le, az érdekli hogy a kód olvasható, fejleszthetõ legyen.

Sõt, a rendszertervezõk se matekoznak. Nekik design patterns, intelligencia és tanulási vágy kell.

Aki matekozik az nagyon kis rész, pl. aki kitalálja a képtömörítéseket, titkosításokat. Ha õ kész van az algoritmussal a programozó majd lekódolja.

Persze nem azt akarom írni, hogy aki büszkén vallja, hogy "hülye vagyok a matekhoz" az jó lesz programozónak. Kell hozzá némi intelligencia és mérnöki véna (rendszer-szemléletnek, analitikus gondolkodásmódnak szokták írni az állás hirdetésekben). De ha ezek megvannak, a mérnöki szakmák közül mindenképp a programozót javasolnám. A legnyugisabb meló 😊 Nem dõl össze az épület, nem füstöl el a motor. Ha hiba van egyszerûen kijavítjuk és mindenki boldog 😊

© georgesmatyas2012. 07. 03.. 22:53||#74
szánalmas....
gépészmérnöknek is teljesen felesleges belenyalogatni minden szarba.
PLC... jó-jó szép meg minden, de az egy külön szakma. ki nem szarja le a metódusok felépülését?
CAE<#conf><#conf><#gonosz1> ANSYS algoritmusok... No comment. Kajak azt se tudtam mit tanulok csak 15-20 cm széles képleteket bemagoltam. A francot nem érdekli, hogy rácsszerkezetnél a hegesztési tényezõk komponenseit meg feszültséget hogy csûri-csavarja.

Általános isiben bezzeg még a szövegszerkesztõ is érdekes lett volna.
De nehogy baja legyen a gépeknek inkább csak ültünk elõtte és Neumann elvek... dec>bináris szarakodás. és TÁBLÁN a TURBO pascal!!!!

Hungary.....
© M22012. 07. 02.. 13:25||#73
Ami ideális lett volna: egy objektum-orientált nyelv alapos ismerete, Model-View-Controller ismerete, sok-sok framework és design pattern ismerete, mit mikor és hol érdemes használni. Hogy át lehessen beszélni egy egész programozási folyamatot úgy, hogy a konkrét nyelvet még csak nem is érintettük.
© M22012. 07. 02.. 13:17||#72
Én sem tudom pontosan, most hol tart nálunk az oktatás és mit tanítanak, csak azt láttam, hogy akiket suli után felvettünk (nulla gyakorlattal), azok helyett a pizzafutárt is berángathattuk volna, mert fél-egy évig csak tanultak, utána tudtak valami hasznosat produkálni. Mindenrõl hallottak de semmit nem tudtak a gyakorlatban, olyan volt mintha egy vaskos könyvbõl csak a fõcímeket magolták volna be.
© lordsithlord2012. 07. 02.. 03:07||#71
Az a baj, hogy a felsõoktatásban jelenleg nincs igazi alapozás, meghatároznak egy nyelvet (tapasztalataim szerint elõszeretettel vagy JAVA, vagy C vagy C++ lesz ez) és abban elkezdik bemutatni a különbözõ technikákat és módszereket.

Én anno 2 évig tanultam kifejezetten programozást OKJ keretein belül (megjegyzem, kidobott idõ volt). Anno azzal kezdtük, hogy megtanítottak minket megtervezni a programot, utána azt, hogy hogyan válasszuk ki a megfelelõ nyelvet (ez mondjuk poénos volt, mert õssz-vissz tanultunk Pascalt és Delphi-t) és csak ezután jöhetett a kódolás folyamata. Ma meg megkérdezel egy felsõoktatásban tanulót arról, hogy minek alapján választott programnyelvet és milyen módszerrel tervezte meg a programját és nézz rád, mint borjú az új kapura. Lehet, hogy sok dolog elavulttá vált az évek folyamán, nem tudom, mert a programozástechnikát nem követtem az évek folyamán, mivel más szakágat választottam végül, de szerintem sok olyan dolog van, ami még mindig élvez létjogosultságot, mégse tanítják és nem is használják.
© M22012. 07. 02.. 00:47||#70
"Mark LeBlanc szerint a kreatív írás mellett számítástudományt is kell tanulniuk a költõknek"

Szerintem meg Mark LeBlancnak el kellene mennie egy húsz éves kvantumfizika tanfolyamra, az is nagyon hasznos tud lenni, több példa is van rá.
+1
© M22012. 07. 02.. 00:41||#69
Szerintem a programozás alapjait fél, az objektum orientált gondolkozást és trükköket újabb fél év alatt meg lehet tanulni. Ennyi alapozásnak elég is, mert aztán jön egy nyelv kiválasztása, amiben úgy 5-6 év gyakorlat után mondható valaki jónak.
Ebbõl látszik, hogy az elsõ év ami suliban megoldható, de az is csak akkor ha igazán érdekli a delikvenst a programozás (30 gyerekbõl 1). Ne raboljuk el gyerekek idejét, nekik sincs végtelen.
© Ferrer2012. 07. 01.. 22:36||#68
Nekem ez a kedvenc programozós kurzusom (Stanford). Nagyon nagy arc a csávó, és tényleg megtanít mindenkit 0 elõképzettséggel. Igaz bizonyos értelemben az elõadásokon érzõdik az amcsi színvonal, fõleg az elsõ néhányon.
+1