A JÓ ÍRÓK JÓ OLVASÓK- IGAZ-E EZ A SZÁMÍTÓGÉPES PROGRAMOZÁS TERÜLETÉN IS?



Hasonló dokumentumok
Tanulási kisokos szülőknek

Nyelvtan. Most lássuk lépésről lépésre, hogy hogyan tanítunk meg valakit olvasni!

Szerintem ez igaz. Teljesen egyetértek. Ezt én is így gondolom. Ez így van. Fogalmam sincs. Nincs véleményem. Talán így van. Lehet.

FELMÉRÉS A ROMÁN NYELV OKTATÁSÁRÓL

Célnyelvi mérés a 6., 8. és a 10. évfolyamon Tartalmi keret

Láncolt lista. az itt adott nevet csak a struct deklaráción belül használjuk

Oldal 1

Oldal 1

Bevezetés a programozásba

C programozás. { Márton Gyöngyvér, 2009 } { Sapientia, Erdélyi Magyar Tudományegyetem }

Az értelem elemei. Az értelem elemei. Tartalom. Megjegyzés

Hogyan vegye rá gyermekét a nyári tanulásra, és hogyan teheti élvezhetővé számára?

Angol nyelv. 5. évfolyam

Tanulási stílus kérdőív

Berlitz 1. szint KER szint A 1

Programozási segédlet

Hogyan kell használni a SZÓFOGADÓ füzeteket? SZÓFOGADÓ füzetek

Hogyan kell használni a SZÓKINCSEM füzeteket? SZÓKINCSEM füzetek

Prievara Tibor Nádori Gergely. A 21. századi szülő

AUDIOVIZUÁLIS TARTALMAK BEFOGADÁSÁT SEGÍTŐ ESZKÖZÖK HATÉKONYSÁGA

TIMSS & PIRLS Tanári kérdőív. online. 4. évfolyam. Azonosító címke

Miért tanulod a nyelvtant? Nyelvtani kiskalauz

1. Feladat: beolvas két számot úgy, hogy a-ba kerüljön a nagyobb

Építőipari Szakképző Iskolája 9024 Győr, Nádor tér 4.

nyelv: 2) Kérdezz meg 3 embert a környezetedben arról, milyen nyelven tud beszélni, írni, olvasni. Írd le a válaszaikat!

Alulteljesítők felismerése a KATT kérdőív segítségével. Taskó Tünde Anna

A kérdést csak akkor töltse ki, ha az Ön házastársa nem magyar anyanyelvű. Ellenkező esetben kérem folytassa a 6. kérdéstől!

MarketingMánia - A kisvállalkozók marketingasszisztense

MESÉL A SZÁMÍTÓGÉP. Interaktív mesekészítés óvodás és kisiskolás korban

IDEGEN NYELV ÉRETTSÉGI VIZSGA ÁLTALÁNOS KÖVETELMÉNYEI

1. Lecke: Bevezetés és a folyamat. elindítása

1. Nagy betűk - először a magánhangzók: A E U Ú I Í O Ó É Á Ü Ű Ö Ő - utána a mássalhangzók: M L H T S K R N B Z G V D SZ P C GY J CS NY F TY ZS LY

Siket diákok egyéni különbségeinek vizsgálata az idegennyelv-tanulásban: Egy kérdőíves kutatás néhány eredménye

Programozás alapjai gyakorlat. 4. gyakorlat Konstansok, tömbök, stringek

3 + 1 SZEMPONT. gy jó coach többek között arról ismerszik meg, hogy mielőtt a hogyannal

6. óra TANULÁSI STÍLUS

SPONTÁN ASSZOCIÁCIÓK VIZSGÁLATA KÖZÉPISKOLÁS DIÁKOK MŰELEMZÉSEIBEN, SALVADOR DALI ALKOTÁSAI NYOMÁN

hang Példamondatok: hang hang hang hang Feladatok: hang

AZ INFO-KOMMUNIKÁCIÓS TECHNOLÓGIA (IKT) HASZNÁLATA. Szövegértés-szövegalkotás területen

Értékelési útmutató a középszintű szóbeli vizsgához. Angol nyelv

C programozás. { Márton Gyöngyvér, 2009 } { Sapientia, Erdélyi Magyar Tudományegyetem }

Színbe hozunk! Találd meg magadban Te is az önkéntest!

A boldog felhasználó

Mindannyiunknak vannak olyan gondolatai, amelyek HO OPONOPONO ÉS AZ EMLÉKEK

Egy híján húsz. 1. Mit olvasol a legtöbbször? Többet is megjelölhetsz! a) kötelező olvasmányokat

A foglalkozás során a tanulók részt vesznek a program megtervezésében, megvalósításában, tesztelésében és továbbfejlesztésében. SZERZŐ: Vindics Dóra

Az új Tanulási stílus kérdőív. A kérdőív skálái, használati javaslatok, kutatási eredmények

MIT NEVEZÜNK GONDOLKODÁSMÓDNAK?

sallang avagy Fordítótervezés dióhéjban Sallai Gyula

Nem vagy egyedül! Sőt, szinte mindenki küzd ezzel a problémával!

SZKA_106_29. A modul szerzője: Nahalka István. é n é s a v i l á g SZOCIÁLIS, ÉLETVITELI ÉS KÖRNYEZETI KOMPETENCIÁK 6. ÉVFOLYAM

IDEGEN NYELVEK TANÍTÁSA A NEMZETKÖZI ÉRETTSÉGI (IB) PROGRAMBAN LANGUAGE B

2+1. Irodalmi és Filmes Verseny (2018/2019) Kedves Versenyző!

Véletlen vagy előre meghatározott

Kincskereső üzemmód: Hol a titok? Mi a trükk? Keressük meg a NAGY kiugrási pontot! 1. HIBA

Hogyan készítsünk könnyen érthető környezetismereti segédanyagot? Irányelvek

Szövegértés évfolyam

OOP. Alapelvek Elek Tibor

A tanulásmódszertan alapjai 2

ZA4893. Country Specific Questionnaire Hungary

Miért tanulod a nyelvtant?

Segítség a család lelki növekedéséhez

Középszintű szóbeli érettségi vizsga értékelési útmutatója. Olasz nyelv

Kinek szól a könyv? A könyv témája A könyv felépítése Mire van szükség a könyv használatához? A könyvben használt jelölések. 1. Mi a programozás?

Egy nagyon egyszerű módszer - avagy hogyan egészítheted ki a jövedelmedet anélkül, hogy bármit is el kellene adnod

A matematikai feladatok és megoldások konvenciói

IDEGEN NYELVI MÉRÉS EREDMÉNYEI 2017

Idősek és az idegennyelv tanulás Fülöp Erzsébet Mária

Java programozási nyelv

Tanulj meg angolul 6 hónap alatt az IMPREVO-val! Essentials

Így gyakorold a nyelvet! 8 tipp a kávészünetre

Programozás I. gyakorlat

Mi a célod? Mikor? Mit teszel meg érte?

Feladataink, kötelességeink, önkéntes és szabadidős tevékenységeink elvégzése, a közösségi életformák gyakorlása döntések sorozatából tevődik össze.

Programozással ismerkedőknek ajánlom. SZERZŐ: Szilágyi Csilla. Oldal1

Az eredményes nyelvtanulás alapelvei 1.

Iránytű. Útmutató a Szülőknek gyermekeik német tanulásához

AZ ÚJGENERÁCIÓS TANKÖNYVEK FEJLESZTÉSE

A tartalomelemzés szőkebb értelemben olyan szisztematikus kvalitatív eljárás, amely segítségével bármely szöveget értelmezni tudunk, és

A trialogikus tanítási-tanulási modell

Kompetencia és performancia /Egy útkeresés tapasztalatai/

Biciklizéseink Mahlerrel

A mintában szereplő határon túl tanuló diákok kulturális háttérre

Programozás alapjai gyakorlat. 2. gyakorlat C alapok

1. Egyszerű (primitív) típusok. 2. Referencia típusok

Bevezetés a programozásba I 4. gyakorlat. PLanG: Szekvenciális fájlkezelés. Szekvenciális fájlkezelés Fájlok használata

szikratervező 17/18 évértékelő mondatok Hogyan használd? 365letszikra ILYEN VOLT 2017 KULCSSZAVAKBA SŰRÍTVE ILYEN LESZ 2018 KULCSSZAVAKBA SŰRÍTVE

Jelige/Név:. Válaszadó: y, osztály:, születési év

17. modul: EGYENLETEK, EGYENLŐTLENSÉGEK, KÉTISMERETLENES EGYENLETEK

KÖZÉPSZINT BESZÉDKÉSZSÉG ÉRTÉKELÉSI ÚTMUTATÓ

Bakos Kinga Informatikus könyvtáros 2/I. Az elmúlt időszakban sokat írtak a PISA

... és amit kihagytunk a nyelvi cikkből

Programozásban kezdőknek ajánlom. SZERZŐ: Szilágyi Csilla. Oldal1

VALÓSÁG. Nem harap az énekóra sem Interjú egy mentortanárral

Motiváció hátrányos helyzetűek körében. Oktatói segédanyag és feladatgyűjtemény

TIMSS & PIRLS Tanulói kérdőív. 4. évfolyam. Azonosító címke

Dr. Benedek Dezső Tudásra van szükségünk a túléléshez

Értékelési útmutató a középszintű szóbeli vizsgához. Angol nyelv. Általános jellemzők. Nincs értékelés

Bevezetés a programozásba. 8. Előadás: Függvények 2.

Bán Zsófiával, az ELTE Amerikanisztika Tanszékének docensével Szöllõsi Adrienne beszélget

Átírás:

SAPIENTIA ERDÉLYI MAGYAR TUDOMÁNYEGYETEM MŰSZAKI ÉS HUMÁNTUDOMÁNYOK KAR MATEMATIKA-INFORMATIKA TANSZÉK A JÓ ÍRÓK JÓ OLVASÓK- IGAZ-E EZ A SZÁMÍTÓGÉPES PROGRAMOZÁS TERÜLETÉN IS? KÉSZÍTETTE: TÉMAVEZETŐ TANÁR: PÁLL ENIKŐ-SAROLTA, Informatika II. dr. KÁTAI ZOLTÁN 1

TARTALOMJEGYZÉK Tartalomjegyzék...2 Bevezetés...3 Jó olvasók-jó írók......4 Olvasás-javító technikák...6 Kód olvasás...8 Javasolt kód olvasás javító technikák...12 Hatékony kód olvasás kamatoztatása kód írásban...16 Kísérleti mérések, eredmények...18 Irodalomjegyzék...23 2

Bevezetés A dolgozat arról szól, hogy a számítógépes programozói készséghez (írás) hogyan járulhat hozzá az, ha a hatékony irodalmi olvasás alapelveit megpróbáljuk kamatoztatni a kódolvasásban. A dolgozatban párhuzamot állítok a szépirodalmi szövegek olvasása és a számítógépes programkód olvasása között. Bemutatom, hogy azt, amit tanulunk és használunk a szépirodalmi szövegek olvasásakor, hogyan tudjuk felhasználni egy programkód olvasásakor. Azt is megláthatjuk, hogy nem csak emberi nyelvek léteznek, hanem programozási nyelvek is, amelyek hasonlóak egymáshoz szerkezetileg, vagy éppen teljesen eltérnek. Pont, mint az emberi nyelvek. Egy kérdőívet is készítettem és feldolgoztam, amelyben olyan személyeket kérdeztem a programkód olvasással kapcsalatos véleményükről, akik tanultak/tanulnak programozni. A kérdőívet kitöltök válaszai pedig ugyancsak alátámasztja a dolgozatban leírtakat. 3

Jó olvasók jó írok Az olvasás a leírtak által vezetett gondolkodás. Az olvasási folyamat két fő részre osztható. Az első rész a dekódolás, vagyis a vizuális élmény alapján a betűsorok megfejtése, a betűknek a megfelelő beszédhangokkal történő megfeleltetése. A második részben történik a megértés és a jelentés azonosítása. [1] Megkülönböztetünk ismeretszerző olvasást, tanulási célú olvasást, élményszerző olvasást, kereső olvasást, áttekintő olvasást, feladatazonosító olvasást, javító vagy ellenőrző olvasást és korrektúraolvasást. [2] Az értelmes, elemző olvasás (értő olvasás) a mindennapi élet szükségszerűsége. Akkor mondjuk, hogy valaki értelmesen, elemzően, azaz értőn olvas, ha az elolvasott szöveg lényegét kiemelve, lényegtelen jegyeit elvetve vissza tudja adni a szöveg tartalmát. [3] Az emberek azt hiszik, hogy a jó olvasó az, aki helyesen, folyékonyan és gyorsan el tud olvasni bármilyen szöveget. De ők elfelejtenek egy nagyon fontos tényezőt: a jó olvasás nem fejeződik be a helyes kiejtésnél és a gyorsaságnál. Jó olvasónak lenni beszéd értést és megfigyelést jelent. Jó olvasó az, aki kapcsolatot keres meglévő tudása és a szöveg új információi között, meghatározza, hogy melyek a szöveg legfontosabb témái, gondolatai, következtetéseket von le, új gondolatokat fogalmaz meg, összefoglalja, újraalkotja az olvasottakat. [4] Ha valaki jó olvasó nem feltétlenül jelenti azt, hogy jó író is. Az írás egy készség és sokszor a legjobb olvasók is vonakodnak az írástól, mert igazán jól írni nem könnyű. Általában két módja van annak, hogy jobb íróvá váljon valaki: írjon sokat és olvasson sokat. Vajon miért tesz az olvasás jobb íróvá? A legtöbb jó és különösen nagy író gyerekkorától kezdve imádja a könyveket és lelkes olvasó. Így a könyvek észrevétlenül képezik őt, ahogy kirándulnak a képzeletbeli világokba egyre szélesebb látókörre tesz szert és ez egyben egyfajta tapasztalatot is jelent. Megtanítja hogyan kellene írni különböző stílusokban. 1. ábra Olvasás [9] 1. ábra Olvasás [9] Egy jó könyv olvasása szórakozást, kikapcsolódást jelent. A jó könyv alatt itt bármi értetődik, ami megragadja a fantáziát, ami arra késztet, hogy tovább olvassunk, ami elmesél 4

nekünk egy jó történetet, ami csodálatos szereplőket és új világokat teremt. De a szórakoztató olvasás mögött a jó író írói szemmel olvas, lehet nem mindig tudatosan, de általában igen. Semmi sem inspirálja jobban az írót mint az, ha mások szavait olvassa. Általában két dolog van, amit az írók tanácsolnak azoknak, akik fejlődni akarnak: több írás és olvasás. De maga csak az írás nem elég. Az olvasás felfed új írói stílusokat, kifejezéseket, formákat és műfajokat. Ezeket viszont gyakorolni is kell. Gyakorlás nélkül semmi sem lesz tökéletes. Az olvasás segít a szükséges szóbőség, szókincs létrejöttéhez, ami könnyebbé teszi az írást és segít abban is, hogy a megfelelő kifejezéseket használjuk a gondolataink átadására. A jó vagy a rossz szövegek olvasása példát mutat, hogy hogyan írhatunk jól, és melyek azok a hibák amelyeket semmiképp ne kövessünk el. A rendszeres olvasás befolyásolhatja az író stílusát, ízlését és ötleteit. Az, hogy a jó olvasókból lesznek az írok egy nagyon logikus kijelentés, hiszen egy író sem kezdett el írni anélkül, hogy előtte ne olvasott volna, ahogy egy művész sem kezd el alkotni, anélkül, hogy előtte ne látott volna egy művészi alkotást. Így nem lett volna ihlet forrásuk, hogy elkezdjék. Ahhoz, hogy valamihez hozzáfogjunk, vagy valami megtetsszen, általában először valahol találkoznunk kell vele. 5

Olvasás-javító technikák Az olvasás egy készség, amit meg lehet tanulni, meg kell tanulni. Része a mindennapi életünknek és fontos része a fejlődésnek, tanulásnak. Könnyű azt hinni, hogy ha egyszer megtanultuk, akkor többet nem kell fejleszteni, gyakorolni ezt a készséget. Ha tudunk olvasni, de nem olvasunk könyveket az olyan, hogy birtokolunk egy teniszütőt, de nem használjuk, csak hagyjuk porosodni a szekrényben, vagy elkészítünk egy szendvicset és aztán meg kidobjuk, mert nem esszük meg. Sokat kell olvasni. Mint bármilyen más készséget, ezt is gyakorolni kell. A legjobb olvasók (és gyakran a legjobb írok is) azokból lesznek, akik nagyon sokat olvasnak. Így egy idő után észreveszik a visszatérő szimbólumokat, témákat. Ugyanakkor figyelmes olvasónak kell lenni, mert egy nagyon hosszú szövegben nagyon könnyen át lehet siklani az apróságokon, amelyek később fontosak lehetnek. Ahhoz, hogy valaki jó olvasóvá válhasson többféle műfajú, stílusú szövegekből ajánlott válogatnia. Ez fölöslegesnek tűnhet, annak, aki tudja, hogy melyik a kedvenc műfaja, de minden műfaj, stílus más. Újdonságot nyújthat: új élményeket, tapasztalatokat, ismereteket, kihívásokat. Akár meghozhatja a kedvet is az újításokra, újdonságok kipróbálására. Az által, hogy olvasunk, javíthatunk nyelvtudásunkon is akár anyanyelvű, akár idegen nyelvű szöveget olvasunk. Ehhez viszont szükséges, hogy azokat a szavakat, kifejezéseket, amelyeket nem értünk keressük meg, nézzünk utána, hogy mi mit jelent. Az olvasás által bővíthetjük a szókincsünket is. Ha valaki egy idegen nyelvet kezd el 2. ábra ABC [8] tanulni mindenképp fontos, hogy olvasson, mert csak így tanulhatja meg a nyelv szavait, kifejezéseit és, hogy mit milyen helyzetben, kontextusban használjon. Ez ugyanúgy érvényes az anyanyelvű szövegekre is. Az olvasónak meg kell szoknia, hogy ne egyből reagáljon arra, amit olvas, hanem egyszer álljon meg és gondolja végig egy kicsit és csak ez 6

után reagáljon. Ez a mai embernek furcsa, nehézkes lehet, hiszen ebben a világban minden rohan, próbálunk mindenre azonnal reagálni, ami jó, de nagyon gyakran nem állunk meg először és gondolkodunk el a sokatmondó, meglepő vagy zavaró részleteken. Az olvasott szöveg tanítása, másokkal való megosztása, megbeszélése, vagy csak egyszerűen a hangos olvasás jó módszer a mélyebb szövegértés elsajátításához. A hangos olvasás egy gyakori módszer az olvasási technikák javítására. Amikor a gyerek elkezd olvasni tanulni előbb hangokat, betűket tanul meg. Ezekből építi fel lassan a szavakat. Ebben a kezdeti időszakban fontos a hangos olvasás, mert ez a vizuális dekódolás folyamata, amely a jel-betű és beszédhang megfeleltetése. Ha ez a rész már be van gyakorolva, akkor lassacskán a szimbólumhoz jelentés is rendelődik. A valódi olvasás akkor következik be amikor a vizuális dekódolás folyamata automatikussá válik és a figyelem a jelentésre koncentrálódik a kezdetektől. [5] A hangos olvasáskor kevesebb hibát vetnek a gyerekek, mint néma olvasáskor, mert ilyenkor kijavíthatják őket. Egy jelentés megkülönböztető szereppel bíró hang, betű megváltoztatja a szó jelentését (pl. serényszerény). Ezt néma olvasáskor nem veszi észre a gyerek és így az értelme az olvasott mondatnak megváltozhat. A gyakorlott olvasó képes a tudatos javításra. Ez egy másik fontos tényező: a gyakorlottság, ami csak a rendszeres olvasással érhető el. Minden nap szükséges foglalkozni vele, egy keveset, ne maradjanak ki nagy időközök, mert sokkal könnyebb olyan dolgokat megjegyezni, amelyek részei a mindennapi életünknek. 7

Kód olvasás Sokan úgy gondolhatják, hogy egy kódot (számítógépes programot) olvasni nagy ördöngösség, hogy teljesen más, mint egy irodalmi szöveget olvasni. Azt szeretném bebizonyítani, hogy azok az alapok és technikák, amelyeket még kisiskolás korunktól elkezdünk tanulni és amelyek segítségével értőn tudunk olvasni, felhasználhatók a programozás területén is. Vegyük sorra: miből is áll egy szöveg? Betűkből, szavakból, kifejezésekből, mondatokból, bekezdésekből, fejezetekből, stb. A szavak a mondatokat alkotnak, a mondatok a bekezdéseket, a bekezdések a fejezeteket, stb. Ugyanakkor egy szöveget nem csak elolvasni kell, hanem meg is kell érteni, tudni kell, hogy mi áll a szavak mögött, milyen értelemmel bír. Vegyük példának a nő szót. Ez ha igeként szerepel, akkor egy élő szervezetet jelent ami fejlődik, nagyobbodik : pl. Az ágyásban nőnek a palánták. Ha főnévként szerepel, az nőnemű felnőtt személyt jelent: pl. Nemrég egy nő ült be a taxiba. Függ a kontextustól. Ha csak így látjuk leírva, hogy nő és semmi más nincs mellette, ebből nincs honnan tudjuk, hogy most melyik értelmére is gondoljunk. De egy kifejezés értelme, függhet egy egész bekezdéstől. Miből áll egy számítógépes program? Karakterekből (betűkből és speciális jelekből), kulcsszavakból (pl. a scanf azt a gondolatot közvetíti, hogy adat-beolvasás a standard inputról, ami rendszerint a billentyűzet). Vannak utasítások (kifejezések, tömör mondatok), pl. a scanf( %i, &n) jelentése egy egész szám beolvasása a billentyűzetről az n nevű memória tárolóba. Sőt beszélhetünk összetett utasításokról is (összetett mondatok) pl. for (i=0; i <n; ++i){ scanf( %i, &a[i]);}, ami egy számsorozat beolvasását jelenti egy tömb tárolóba. Vannak bekezdések: pl. for (i=0; i <n; ++i){ scanf( %i, &a[i]); printf( %i, a[i]); }, ami egy számsorozat beolvasását jelenti egy a nevű tömb tárolóba és ugyanennek a tárolónak a kiíratását a standard outputra (ami általában a képernyő). 8

Ha ilyen formában hasonlítjuk az irodalmi szövegekhez, így minden adott. Tudjuk, hogy karakterekből, szimbólumokból állnak. El tudjuk olvasni őket, ha még a jelentése nem is igazán tisztázott. Amikor olvasni tanítják a gyerekeket nem dobják rögtön a mély vízbe őket. Előbb egyszerűbb szövegekkel kezdik, rövid szavakkal, amelyeknek a megértése nem nehéz, majd fokozatosan haladnak előre. Ugyanez érvényes a programozásban is. Egy kezdőnek nem adnak oda egy több száz soros, bonyolult programkódot, hogy elmondja, csak a kód alapján, hogy mit csinál. Előbb egy rövid, pár soros kóddal kell kezdeni, amiben máris benne van pár alapkifejezés, utasítás és ha ezeket már megértette és átlátta, utána lehet fokozatosan előre haladni. Hasonlóság az irodalmi szövegekhez az is, hogy mennyire fontos a szöveg elrendezése. Egy tagolatlan, csúnyán elhelyezett szöveg nem átlátható és nehezen követhető, arról nem is beszélve, hogy az olvasása is kellemetlen. Egy másik hasonlóság, hogy egy jó író találó neveket ad a szereplőinek, olyat, ami máris mesél róla. Egy jó kódban a változók, meg a függvények nevei szintén beszélőek kell legyenek, amiről rá tudunk jönni, hogy mit is fednek, pl. alkalmazott.getszuletesiev.tostring(). Ahogy az irodalomban vannak szinonimák - pl. diák nebuló, növendék, iskolás, tanítvány, tanonc, hallgató mind ugyanazt jelenti, de azért van egy kis eltérés a jelentésükben - ugyanígy van a programozásban is. Egy dolgot többféleképpen leírhatunk és ez csakis a programozó stílusától függ, a kontextustól, meg persze attól, hogy pontosan mi is a feladat. Például egy állományból való beolvasást az állomány végéig így is elvégezhetünk ugyanabban a programozási nyelvben: for( ; ; ){ scanf("%i", &c); if (feof) break;... }, 3. ábra - Az uráli nyelvcsalád fája [6] és így is: while(!feof(be)){... scanf("%i", &c);} meg így is: while ( (scanf("%i", &c))!= EOF) {... } 9

Egy másik hasonlóság, hogy több nyelv létezik. Ahogy van angol, román, finn, német, magyar, kínai nyelv, így a programozás terén is van C, Java, C++, Pascal, Java Script, Php, stb. A nyelvek bizonyos nyelvcsaládokhoz tartoznak, nyelvtörténetileg bizonyítottan avagy feltételezhetően egyetlen közös őstől származnak. A nyelvcsaládokon belül ezen kívül meg lehet különböztetni kisebb csoportokat is, amelyekbe az egymáshoz leginkább közel álló nyelveket sorolják a nyelvcsalád más tagjaihoz/csoportjaihoz képest. [10] Minden nyelvnél változások figyelhetők meg, az évszázadok során sokat egyszerűsödtek, de egyben bővültek is, hiszen a világ fejlődésével újabb és újabb szavakra van szükség. Ugyanígy a programozási nyelveket is csoportosítani lehet és megvannak a sajátosságaik, a közös ősük. Az első programozási nyelv a gépi kód volt. Ennek a nyelvnek az utasításait a számítógép képes volt közvetlenül, minden átalakítás nélkül végrehajtani, értelmezni. [11] Ugyanahhoz a nyelvcsaládhoz tartozó nyelvek könnyebben megtanulhatók pl. aki már tud olaszul, az könnyen elsajátíthatja a spanyolt is, mert nagyon hasonlóan épül fel, ha viszont pl. magyarul kéne megtanuljon, az már nehezebben menne, mert a magyar nyelv már másképp épül fel, mint a már említett újlatin nyelvek. Ugyanígy a programozás terén is, az azonos kategóriába tartozó nyelvekben vannak hasonlóságok. Például a Java és a C++ programozási nyelvek. Mindkettő ugyanabba a kategóriába tartozik, így maga a kódolási elvük nagyon hasonló. 4. ábra - A programozási nyelvek [7] 10

Javasolt kód olvasás javító technikák A programozás terén nagyon hasznos a nyelvtudás, főleg az angol nyelvtudás, mivel az utasítások nevei nagyon beszélőek, pl. a C nyelvben scanf - a scan szó vizsgál, letapogat -ot jelent, vagyis letapogat, beolvas pl. egy karakterláncot vagy számot, vagy printf print, ami nyomtat, kinyomtat -ot jelent, vagyis kinyomtatunk, kiírunk egy szöveget. Egy másik példa a Java-ban, ahol rengeteg beépített függvény van az add függvény, hozzáad, vagyis hozzáadunk egy tárolóhoz egy újabb elemet. Így nyelvtudásunkat, nyelvérzékünket felhasználhatjuk a programozás területén is. Ha egy programkódot olvasunk, ha nem is ismerjük az utasítást, mert több száz előre megírt utasítás, beépített függvény található, ami megkönnyíti a programozónak a kód írását, kis nyelvtudással ki tudjuk következtetni, hogy mit csinál. Minden szöveget másként kell olvasni. Máshogy olvasunk egy számunkra izgalmas regényt és egy matematikai szöveges feladatot. A szövegértés azt jelenti, hogy megértettük a részleteket és azok összefüggéseit, így birtokba vettük a szöveget. [2] A programkódok ugyanúgy szövegek, csak tudni kell olvasni őket és ugyanúgy többféleképpen lehet olvasni őket. Van amikor azért olvassuk, hogy átlássuk mit csinál, mert bele kell illesztenünk új elemeket, van amikor azért, hogy egy elemét felhasználjuk a saját kódunkba, ilyenkor főleg arra a részletre fektetjük a hangsúlyt, hogy az mit csinál és nem tanulmányozzuk az egészet a-tól z-ig, ha nem muszáj. Vannak kulcsszavak, amiket ugyanúgy meg kell találni, mint az irodalmi, hétköznapi szövegekben, ezzel segítve a megértést. Ha ezek megvannak, akkor ezekből kulcskifejezéseket kell felépíteni, ezzel is egy lépést téve az értelmes olvasás felé, eltávolodva a nyers, felületes olvasástól. Meg kell találni az összefüggéseket. Figyelmesnek kell lenni és nem szabad átsiklani a részleteken, a jelentéktelennek tűnő apróságokon. Ezek később fontosak lehetnek, főleg mikor a végén át kell látni, hogy mi is a lényege az olvasott kódnak. Ezek az apróságok akár értelem módosító szereppel is bírhatnak. Itt van az előbb már felírt példa: for (i=0; i <n; ++i){ scanf( %i, &a[i]); printf( %i, a[i]); }, ha a scanf-ben és a printf-ben a %i megmódosítom %f re. 11

Ez a kis változtatás egy jelentéktelen apróságnak tűnhet, hiszen szintén számokat olvasok be, de az nem mindegy, hogy milyen számokat. A %f szimbólum segítségével nemcsak egész számokat tudunk beolvasni (pl 1, 2, 3), hanem valós értékeket is (pl 1.0 1.23, 2, 33 3.14). for (i=0; i <n; ++i){ scanf( %f, &a[i]); printf( %f, a[i]); } Ha átsiklunk egy ilyen apróságon, amikor egy hosszabb kódot nekünk kell megírni, akkor elég fejtörést okozhat a kód kijavítása, főleg, ha nem jövünk rá egyből a hibára. De ezzel nagyon sokat lehet tanulni, mert legközelebb, amikor kódot javítunk legelőször pont ezeket nézzük majd meg, hogy nem-e ugyanott hibáztunk figyelmetlenség miatt. Amikor először ránézünk egy szövegre egyből a kulcsszavakat látjuk meg. Például, ha adott a következő kódrészlet: int i, szam, n, szjo; printf("adja meg n-t: "); scanf("%i", &n); for(i=0; i<n; ++i){ } scanf("%i", &szam); szjo=0; printf(" %i ", szam); while(szam){ } szjo+=szam%10; szam/=10; printf(" -> %i \n", szjo); Majd, ahogy tovább tekintünk még több lényeges dolgot fedezünk fel: int i, szam, n, szjo; printf("adja meg n-t: "); scanf("%i", &n); for(i=0; i<n; ++i){ scanf("%i", &szam); szjo=0; 12

printf(" %i ", szam); while(szam){ szjo+=szam%10; szam/=10; } printf(" -> %i \n", szjo);} Végül összeáll teljesen a kép: int i, szam, n, szjo; printf("adja meg n-t: "); scanf("%i", &n); for(i=0; i<n; ++i){ scanf("%i", &szam); szjo=0; printf(" %i ", szam); while(szam){ szjo+=szam%10; szam/=10; } printf(" -> %i \n", szjo); } A kód olvasása és közös elemzése egy olyan módszer, amit tanórákon is használnak. Közösen beszélik meg a diákok a tanárral a helyességét vagy éppen helytelenségét, a helytelenség okait és azt is, hogy lehetne helyes, jobb vagy hatékonyabb az éppen elemzésre került számítógépes kódrészlet. Így a diákok szintén egyfajta tapasztalatot szereznek, mert belelátnak a többiek fejébe és a gondolkodásmódjukat is követhetik, ami külön külön a diákok gondolkodásmódján is javíthat. Irodalom órán is a diákok a tanárral együtt közösen megbeszélik az elolvasott szöveget, elemzik, megpróbálják a lényegtelen elemeit lebontva a lényeget megérteni. Annak, hogy mások írását is látjuk nagy hasznát fogjuk venni a későbbiekben is. Mert így hozzászokunk a különböző stílusokhoz és nem fog nagyon nagy gondot okozni más program kódjában való kiigazodás, amire elég gyakran van szükség, tekintve, hogy egy munkahelyen, egy cégnél egy számítógépes programot (szoftvert) többen is írnak és fennáll az a lehetőség, hogy egy másik személy által megírt kódba kell beleilleszteni új elemeket, vagy kell javítani rajta és ahhoz, hogy ez sikerüljön ezt a kódot előbb át kell látni. 13

Szinte biztos, hogy a kód olvasásról nagyon kevés programozónak van pozitív véleménye, mert egy létező kód olvasása és megértése az egyik legunalmasabb dolognak tekinthető, ugyanakkor az egyik leghasznosabbnak is. De ez nem gond egészen addig, amíg nem gátol meg abban, hogy létező kódokat olvassunk, mert ha meggátol, akkor az egyik legfontosabb és leghasznosabb gyakorlási módszertől eshetünk el. Idegen kódok olvasásának a megértésében még segítenek a magyarázatok is, amiket a programozó írogat a kódjába. Ez a lábléc egy irodalmi szövegben. Egy programkód olvasása, főleg egy kezdő, gyakorlatlan szemnek nem egyszerű, ide tényleg szükséges az értő olvasás és a rengeteg gyakorlás. De a nehézség ellenére tényleg az egyik legfontosabb tanulási módszer. Egy programozónak még a saját kódjában is nehéz lehet kiigazodni, ha azt nem látja el magyarázatokkal írás közben. A jó magyarázatok pedig nem azt írják le, hogy mit csinál egy bizonyos rész, hanem hogy mért így csinálja. Lehet, hogy akkor, amikor íródik a kód minden tiszta és világos, de pár hónap múlva biztos nem lesz az. 14

Hatékony kód olvasás kamatoztatása a kód írásban Ha valaki író akar lenni, akkor előbb elolvas több száz regényt és csak utána fog tudni írni egy jó művet. Ugyanígy, ha egy jó programkódot akarunk írni, előbb jó párat látnunk kell. Hasonlítási alap nélkül honnan tudjuk, hogy az amit írtunk jó e vagy csak egyszerűen milyen kell legyen egy jó kód? Egy olvasó számára, főleg ha tudását írásra is használja, nagyon építő jellegű lehet más írók szövegeinek az olvasása. Ugyanez érvényes a programozás terén is. Az csak egy része a programozási nyelvek tanításának, hogy megtanítják, hogy mi mit jelent, hogy használjuk, meg magunk próbálunk meg előbb egyszerűbb, majd egyre összetettebb kódokat írni. Egy másik része a különböző kódok olvasása. Azzal, hogy különböző kódokat olvasunk, sokat tanulhatunk. Minden programozónak más és más stílusa van, ahogy az irodalomban is, minden író más és más stílusban ír. Ezáltal nem csak egy megoldási módszert fogunk ismerni, hanem rájövünk, hogy ez így is meg így is lehetséges és lehet, hogy hatékonyabb is. Látunk jó vagy rossz megoldásokat, amelyeket fel tudunk használni később, vagy éppen megtanuljuk, hogy mit ne használjunk, mert hibás lesz. Ehhez társul még az a fontos rész, hogy amit már láttunk és megértettünk megpróbáljuk leírni, mert így még kisebb az esélye, hogy átsiklunk valami apróságon. Egy lényeges hasonlóság a programkód és az irodalmi szöveg írása között, hogy nem feltétlenül kell feltalálni a spanyolviaszt, egyszerűen tudni kell használni azt ami adott. Egy író mikor elkezd írni, nem teljesen új szavakat talál ki és használ, hanem a meglévőket alakítja, formálja, használja úgy, hogy a legmegfelelőbben tudja átadni a gondolatait. Ugyanígy a programozás terén sem kell minden egyes alkalommal teljesen új utasításokat, programrészeket írni, kitalálni, mert használhatjuk a meglévőket alakítva, formálva az adott szükségletekre, ezekből építhetjük fel a programkódot és a meglévő kódokat átalakítva beépíthetik a sajátunkba. Azzal, hogy látjuk mások kódjait megtanuljuk azt is, hogy hogyan helyezzük el a programkódot, ahhoz, hogy könnyebben átlátható legyen. Azzal, hogy utánanézünk különböző kódoknak és akár felhasználjuk a saját programunkban is, egyrészt az újdonságokat is megtanuljuk, másrészt a programozás egyike az olyan szakmáknak, ahol folyamatosan tanulni kell és folyamatosan fejlődni, mert mindig változtatnak és újítanak rajta. Muszáj lépést tartani a fejlődéssel. 15

Mielőtt egy író elkezd írni, előbb végiggondolja, hogy miről is szeretne írni, esetleg feljegyzi vázlatosan az éppen eszébe jutó gondolatokat. A fejében lassan kialakul maga a történet, amelyet már csak le kell írni. Amikor végül nekiáll az írásnak, akkor először úgy írja le a gondolatait, ahogy eszébe jutnak, hogy ezek a gondolatok ne felejtődjenek el. Később ez még nagy valószínűséggel párszor át lesz javítva. Esetleg kiegészítve, hogy jól érthető legyen és megfelelően következzenek a gondolatok. Erre azért lehet szükség, mert az írás folyamán lehet olyan gondolatok jutottak eszébe, amelyekhez szükséges a korábban megírt részek kiegészítése, hogy érthető legyen a történetvezetés. Egy programozó mielőtt elkezd programozni, előbb szintén végiggondolja a feladatot, megpróbálja megérteni, hogy mit is kell csinálnia. Esetleg lejegyzi, felvázolja, hogy később ezt fel tudja használni. Lassan kialakul a fejében egy elképzelés, ami a tényleges megvalósítás folyamán még változhat. Mikor ténylegesen nekiáll megvalósítani, akkor első körben leírja azokat a változókat, meg függvény neveket, amelyek első elképzelésre, a tervezési szakaszban eszébe jutottak. De ezek még sok változáson fognak átesni. Menet közben lehet rájönni, hogy mire lesz szükségünk még. A megvalósítás során olyan helyzetekbe ütközhetünk, amik a korábban leírt dolgok megváltoztatását igényelhetik. Így a kód is rengeteg javításon, átszerkesztésen fog átesni amíg végleges formáját el nem nyeri. Ha előbb kicsit belenézünk más hasonló jellegű programkódba, jól átbogarásszuk őket, akkor nagyobb eséllyel vétünk kevesebb hibát az írás során, mert lesz egy kiindulási pontunk és könnyebben át tudjuk látni az alapokat és könnyebben el lehet indulni így. Ez megint egy hasznos tulajdonsága a kódolvasásnak. Ha egyszer hatékonyan megtanultunk kódot olvasni, az nem feltétlenül jelenti azt is, hogy egyből jó programozók is leszünk. Ehhez nagyon-nagyon sokat (és még annál is többet) kell gyakorolni. Ebből nyugodtan lehetne kérdezni azt is, hogy mennyi az a sok? Vagy, hogy mennyit kell olvassunk, ahhoz, hogy amit olvastunk a kódolásban is fel tudjuk használni? Erre megint az a válasz, hogy sokat. Ez személyenként váltózik. Van akinek egy bizonyos dolog elsajátítása nagyon kevés időt vesz igénybe és egykettőre megtanulja, de van akinek ez hosszabb ideig tart. Ebben az esetben, ahogy az irodalomban is, nem az időn van a lényeg, hanem a minőségen és a mennyiségen. Minél több, minél jobb szöveget/kódot kell olvasni, hogy legyen egy mércénk, hogy tudjuk mi a jó és megpróbáljuk ezt a mércét mi is megütni, de ez csak szorgalommal és kitartással érhető el. 16

Kísérleti mérések, eredmények Egy kérdőívet küldtem ki és kértem meg, hogy töltsék ki olyan személyek, akik tanultak vagy jelenleg is tanulnak programozni. A kérdőívben a következő kérdéseket tettem fel: 1. Mikor tanult programozni? 2. Órán elemeztek-e vagy olvastak-e együtt egy tanár által felírt programkódot? 3. Milyen gyakran tették ezt? 4. Mennyire találja hasznosnak, hogy egyetemen közösen megbeszéljenek felírt kódokat? 5. Miért találja/nem találja hasznosnak? 6. Ön szerint hogyan lehet valakiből jó programozó? 7. Mennyire szeret ön kódot olvasni? 8. Szokta-e ön az előzőleg megírt kódjait újraolvasni, mielőtt egy új munkának kezd neki, tudva, hogy olyan problémákba ütközhet, amelyre már talált megoldást? 9. Ön szerint mennyire járul hozzá egy programozó életében a kódolvasás ahhoz, hogy egy saját kódolvasási stílust fejlesszen ki? 10. Szokott ön programozó fórumokat, blogokat olvasni? 11. Általában mennyire találja hasznosnak már programozók kódjainak olvasását? 12. Szokott-e ön azért kódokat olvasni, hogy lássa mások hogyan gondolkodnak? 13. Milyen gyakran használja fel ön mások kódjait a saját programjaiba? A válaszadók nagy százaléka férfi volt: Nő 23-26% Férfi 65-74% és a 19-23 éves korosztályhoz tartozott: 14-18 éves 1-1% 19-23 éves 74-84% 24-28 éves 13-15% 29-33 éves 0-0% 17

Arra a kérdésre, hogy mikor tanult programozni? A legtöbben az egyetemet jelölték be és a 9-12. osztályt (ebben az esetben több választási lehetőség is megengedett volt). 5-8. osztály 3-2% 9-12. osztály 64-45% Egyetem 70-49% Egyéb 5-4% A következő kérdésben arra voltam kíváncsi, hogy olvastak-e együtt egy tanár által felírt programkódot. Igen 84-95% Nem 4-5% A következő kérdésemből kiderült, hogy a legtöbben hetente gyakorolták ezt. Minden órán 20-23% Hetente 53-60% Havonta 6-7% Ritkán 7-8% Soha 2-2% Arra a kérdésre, hogy: Mennyire találják hasznosnak, hogy iskolában, egyetemen közösen megbeszéljék a felírt kódokat a legtöbb válasz a nagyon volt. Nagyon 47-53% Eléggé 38-43% Nem igazán 1-1% Egyáltalán 2-2% Miért találja/nem találja hasznosnak? Erre a kérdésre a válaszok nagyjából egybe hangzanak. A válaszadók úgy gondolják, hogy azért hasznos, mert ezáltal jobban megérthető/tanulható egy programozási nyelv, segít megérteni a program logikáját, a kódok működését, lehet tanulni a tapasztaltabbaktól és egy jó minta is egyben. Azért is hasznosnak találják, mert gyakori, hogy más munkáját kell tovább fejleszteni és akkor sokat számít, hogy mennyire tudjuk értelmezni a kódot. A következő kérdésre is szinte mind egybehangzanak a válaszok! Úgy véli általában 18

mindenki, hogy valakiből úgy lehet jó programozó, ha rendszeresen és sokat gyakorol. Egy másik fontos tényező, hogy nem szabad feladni, hogy tudj lépést tartani és tudd használni az újdonságokat és persze szeretni is kell, amit csinálunk. Ezek után arra voltam kíváncsi, hogy ki mennyire szeret kódot olvasni? 1 6-7% 2 13-15% 3 42-49% 4 21-24% 5 4-5% A válaszok alapján nagyjából közepes szinten szeretik a kódolvasást. Szokta-e ön az előzőleg megírt kódjait újraolvasni, mielőtt egy új munkának kezd neki, tudva, hogy olyan problémákba ütközhet, amelyre már talált megoldást? Erre a kérdésre a legtöbb válasz néha volt. Igen 31-36% Néha 47-55% Nem 8-9% A legtöbben úgy gondolják, hogy a programozó életében eléggé hozzá járul a kódolvasás ahhoz, hogy egy saját stílust fejlesszen ki? Nagyon 16-19% Eléggé 59-69% Kevésbé 10-12% Egyáltalán 1-1% A válaszadók általában szoktak programozó fórumokat, blogokat olvasni. Igen 38-44% Általában igen 15-17% Nagyon ritkán 25-29% Nem 8-9% Ugyanúgy mint az előző kérdésnél, általában hasznosnak találják más programozók kódjainak olvasását. 19

Nagyon 31-36% Eléggé 45-52% Nem igazán 8-9% Egyáltalán 2-2% Szokott-e ön azért kódokat olvasni, hogy lássa mások hogyan gondolkodnak? Erre a a kérdésre néha volt a leggyakoribb válasz. Igen 31-36% Néha 42-49% Nem 13-15% A legutolsó kérdésben pedig arról érdeklődtem, hogy ki mennyire gyakran használja fel mások kódjait a saját programjaiban? 1 1-1% 2 16-19% 3 34-40% 4 32-37% 5 3-3% A kérdőívet kitöltök nagy része pozitív véleménnyel van kódolvasásról, ami szintén a dolgozatban leírtakat támasztja alá. A különböző programkódok olvasása jó hatással van a programozók stílusára és fejlődésére. Nagyon gyakran felhasználják mások kódjait, mert így könnyebb, hiszen olyan problémákra találhatnak megoldást, amire valószínűleg másképp nem jöttek volna rá, vagy csak nagyon lassan. Csak kitartással, türelemmel és rengeteg belefektetett munkával érhetjük el, hogy valamiben jó eredményeket tudjunk felmutatni. Ez alapján, ha valaki jó programozóvá akar válni, vagy csak egyszerűen az az álma, hogy ő egy jó író legyen, akkor azért tennie is kell. Fejlesztenie kell magát és mivel az olvasás és az írás kéz a kézben jár, így a jó íróvá válás (bármilyen téren) automatikusan maga után vonja azt is, hogy előbb jobb olvasóvá váljunk. Azért kezdjük azzal tanulmányainkat, hogy megtanulunk olvasni és vele párhuzamosan írni is, mert ez a tudás végig fog kísérni és segíteni fog életünk során, e nélkül a társadalomban igencsak el lennénk vesztődve. Ha egyszer ezt megtanultuk, akkor azt is 20