Sziasztok!
Egy nem mindennapi kerdessel fordulnek hozzatok. Van egy kollegank akinek sajnos nincs semmilyen programozasi ismerete. A mi rendszerunkhoz viszont szukseges a programozasi logika. Na ezt kellene valahogy fejlesztenem nala. Sajnos arra nincs ido, hogy egy programozasi nyelvet megtanuljon.
Van esetleg valami gyors bevalt otlet? Csak alap dolgok kellenenek (for, switch, adatbekeres, adatkiiras), annak is a logikaja. Sajnos a mi rendzserunkben levo peldak magas szintuek neki. Probaltam par peldat kuldeni pl for ciklusrol, de nem ertette mi miert tortenik.
Varom otleteiteket.
SZERK:
Megtortent az oktatas. Probaltam minel interaktivabb lenni. Sikerult. Gyerek modszerekkel mutattam be a regi projektjeinket, hogyan mukodnek. Vegere eleg jol belejott. Utolso peldana, mar nagyjabol elmagyarazta mi is tortenik ott.
Koszonom a segitsegeteket! Nagyon hasznos volt!
- 4862 megtekintés
Hozzászólások
Játékos módszer: http://codecombat.com. Használata lehetőleg chrome-ból (HTML5-ös memóriazabáló cucc).
- A hozzászóláshoz be kell jelentkezni
Az meg milyen?
<?php
$j=1;
while ($j!=5) {
for ($i=1;$i<=4;$i++) echo $i.",";
echo "\n";
switch ($j)
{
case 1: printf("%d kis mackó vígan lép.\n%d kismackó ugrál, fordul,\nÚgy nevet a könnye kicsordul.\n",$j,++$j); break;
case 2: printf("%d kis madár %d-t lép.\n%d szem búza volt ott,\nAbból %d-et bekapott.\n", --$j,++$j,++$j,$j-2); break;
case 3: printf("%d kis nyuszi jaj de szép.\n%d füle %d kis lába.\nPuha fehér a bundája.\n",$j-2,$j-1,++$j); break;
case 4: printf("Ez %d mese vígan légy\n", $j++-3); break;
};
printf("\n");
};
- A hozzászóláshoz be kell jelentkezni
Én tesztbe is csak vállalható minőségű kódot írok.
Ez szerintem nem az, és akkor finom voltam... :)
--
Gábriel Ákos
http://ixenit.com
- A hozzászóláshoz be kell jelentkezni
A kb. egy-két percbe amit a megírására szántam kb. ennyi fért bele (ezért is php ott lehet gyorsan randán). Tudom, egy jó programozó ennyi idő alatt dokumentációval együtt megszülte volna, de én üzemeltető vagyok.
Bár amilyen magyar szoftvercégek által szállított megoldásokkal találkoztam eddig (bár a mellény mindig nagy), néha elgondolkodom, hogy ennél még talán nekem is sikerülne jobbat. :P
Egyébként mi vele a baj, nem lehet belőle megérteni a for ciklust, vagy valahol elszámolja a malackákat? :D
[off]
Nem kötekedés, de tényleg érdekel: mi annak az oka, hogy a Liferay thingy fél oldalas üres részekkel generálja a html forrást (valami enterprise olvashatósági ?)?
[/off]
- A hozzászóláshoz be kell jelentkezni
Mert nincs bekapcsolva a filter, ami eltávolítja őket :D
-
JVM futásidejű monitorozása
- A hozzászóláshoz be kell jelentkezni
Értem én, nem is nagy dolog, de végülis CMS-t (is) árulnak, szerintem ha az ember CMS-t választ az első 10-be tutira benne van, hogy nézzük már mit is generál (mivel úgye az egyetlen dolog amit kívülről a látogatók látnak belőle). És az, hogy az első 100 sorba egy HTML tag sincs a forrásba legalábbis nálam nem esik bele az "enterprájz gréd" kategórába igazából a "vállalható"-ba se. (Főleg, hogy a pagespeed is alacsonyabb mint egy self-hosted kábelnetes joomla install)
És nem azt mondom, hogy az én óvodás php scriptem beleesett, de nem állásra pályáztam és nem is próbáltam eladni enterprise grade versmondóként. :D
/* This was a very serious effort to teach peeps from kindergarden to programming.
(v. 2.02) have to keep up with Linux
Man they hate me so from now this is under GPL (whatever version) or BSD who cares how many clause
*/
$j=0;
do {
for ($i=0;$i<4;printf("%d,",++$i)) ;
printf ("\n");
switch ($j)
{
case 0: printf("%d kis mackó vígan lép.\n%d kismackó ugrál, fordul,\nÚgy nevet a könnye kicsordul.\n",++$j,++$j); break;
case 2: printf("%d kis madár %d-t lép.\n%d szem búza volt ott,\nAbból %d-et bekapott.\n", --$j,++$j,++$j,$j-=2); break;
case 1: printf("%d kis nyuszi jaj de szép.\n%d füle %d kis lába.\nPuha fehér a bundája.\n",$j,++$j,++$j+1); break;
case 3: printf("Ez %d mese vígan légy\n", $j++-2); break;
};
printf("\n");
} while ($i!=$j);
Valamit fejlődtem azért? :D Hogy csinálná egy "IT építész"?
- A hozzászóláshoz be kell jelentkezni
lock
- A hozzászóláshoz be kell jelentkezni
szerintem az a gond vele, hogy "sok",
olyan "finomságokat" is használsz, amelyek további magyarázkodásra/gondolkodásra késztetnek, és ezáltal elvonod a tanuló figyelmét a "lényegről", a for ciklusról(?) (mivel arra hivatkozol, ezért feltételezem, hogy annak bemutatása volt a szándék),
pld. megkérdezheti a kolléga, hogy a paraméterek kiértékelési sorrendjére van-e valamilyen szabály?
akinek nem egyértelmű, hogy mire gondolok:
a te kódod online futtatva: http://ideone.com/G4LuIk
"átírva" (nem gondolkodva, csak az elvárt szintaxishoz alkalmazkodva) C-re: http://ideone.com/FusO37 (nem így tördelném, de tartottam magadat a példádhoz)
azt írod, hogy üzemeltető vagy, nem programozó, és ez alapján esetleg meg is lepődhetsz a C-s kód kimenetén,
ha tisztában voltál a felvetett "problémával", akkor meg feleslegesen leterheled a tanulót, annak a "tárgyalásával", ha meg nem említed, akkor berögzülhet neki olyan "minta", ami egy megváltozott környezetben nem fog működni,
- A hozzászóláshoz be kell jelentkezni
Én nem vagyok tanár, ami a for cikluson kívül van egyszerűen felkelti a kíváncsiságot és legalábbis nálam mindig az volt a mozgató erő. (azzal sosincs baj, ha valami gondolkodásra késztet mert az vezet végülis a megoldáshoz) :)
Szerintem nem azt akarod vele megtanítattni mi az a for ciklus, hanem gondolkodni akarod megtanítani.
- A hozzászóláshoz be kell jelentkezni
Nem vagyok programozó, de volt alkalmam villamosmérnökök számára programozást tanítani (C, alapszinten; hallgatók: mindenféle elméleti alapismeret nélkül). Egy lényeges dologra rájöttem (jó, valójában többre is): Az olyan példák/problémák, amik sokkal egyszerűbben is megoldhatóak, csak rontanak a helyzeten. A csoportban mindig lesz legalább egy ember*, aki rájön, hogy ez messze nem a legegyszerűbb megoldás. Ezt jelezni is fogja. Ilyenkor meg lehet próbálni hivatkozni arra, hogy ilyen-olyan okok miatt választottad a bonyolult módszert, de megvan az esélye, hogy az oktatott azt gondolja, hogy nem is értesz ahhoz amit oktatni akarsz. Pedig csak tanítani nem tudod.
Ha már mindenképpen egy bonyolult, felesleges dolgokat tartalmazó megoldást választasz (mert például nem ismersz egyszerűbbet), akkor még az ismertetése előtt el kell mondani, hogy ezt most csak pedagógiai céllal teszed, és a gyakorlatban nem így oldanád meg. Utána pedig elmagyarázod, hogy miért nem találtál jobb példát.
*: Mivel az eredeti problémafelvetésben csak egy emberről van szó, így lehet reménykedni, hogy elég hülye ahhoz, hogy ezt észrevegye. Bár ebben az esetben nem biztos, hogy megéri nagy erőket bevetni az illető „okosítására”.
-----
(&%;_98\<|{3W10Tut,P0/on&Jkj"Fg}|B/!~}|{z(8qv55sr1C/n--k**;gfe$$5a!BB]\.-
- A hozzászóláshoz be kell jelentkezni
Az nem baj, ha talál egyszerűbbet (a sikerélmény is előre visz), de értse , hogy miért működik a bonyolult. Mintaprogramokkal amik elszámolnak 1-től 4-ig (szerintem) nem fogod fejleszteni a logikai készséget, mivel ami ránézésre egyértelmű nemigen fogja gondolkodásra sarkalni az embert.
Márpedig ha nem hajlandó agyalni akkor veszett fejsze nyele az egész.
És ha sikerült megérteni, akkor lehet demózni C-ben mint fenn és felvetni, hogy vajon mi lehet az oka, hogy ott más az eredmény, egyszerűen azért mert szerintem amire magától ébred rá az ember jobban berögzül.
- A hozzászóláshoz be kell jelentkezni
Tapasztalataim szerint ez nem így működik. Ha rájön az oktatott, hogy van egyszerűbb megoldás is, akkor már nem akarja megérteni a bonyolultat, mert már magától ráébredt, hogy itten-mostan őt át akarják verni.
Olyan feladatokat kell kitalálni, amire a bemutatni kívánt utasítás/módszer/elv adja a legegyszerűbb megoldást. Legalábbis a „józan paraszti ész” szerint. Ez ugyan több kreativitást kíván az oktatótól, de az eredmény kárpótolni fogja. Ha valakinek ez problémát okoz, akkor ne akarjon másokat oktatni. Ettől függetlenül még kiváló programozó is lehet az illető. Legfeljebb nem jó tanár.
-----
(&%;_98\<|{3W10Tut,P0/on&Jkj"Fg}|B/!~}|{z(8qv55sr1C/n--k**;gfe$$5a!BB]\.-
- A hozzászóláshoz be kell jelentkezni
Lehet igazad van, de ha visszagondolok én soha se gondoltam, hogy a tanárom hülye, csak hogy másként állt hozzá, volt ez a remek Nebulo-1:
http://www.hobbielektronika.hu/forum/getfile.php?id=232543
Volt a feladat, hogy ki kell írni a displayre xy-z memória címen lévő értéket, és ő úgy oktatta mikor hogy az előről-hátra mikor hátulról-erőle olvasva jópár lépést meg lehetett spórolni, és nem gondoltam, hogy hülye csak nem szerettem gépelni annyira (elég volt egyetlen byteot félrenyomni és kezdődhetett a műsor előről) :(
De ha egyvalamire megtanította az embert, az az volt, hogy "think more like a computer" (and yes, i can tell you there are no objects :P)
- A hozzászóláshoz be kell jelentkezni
Teljesen egyetértek. Én is tanítottam már sok mindent (matematika, szoftverfejlesztés, küzdősportok), de a legjobb megoldás rendszertől függetlenül az volt, hogy
vegyünk egy problémát, majd adjunk rá egy egyszerű megoldást. Majd nehezítsük a problémát, és ezáltal hozzuk be az újabb-újabb módszereket, amivel a problémát meg
lehet oldalni.
- A hozzászóláshoz be kell jelentkezni
Hogy sikerült ilyen kollégát tenni ilyen rendszer mellé? :)
- A hozzászóláshoz be kell jelentkezni
Ezek első féléves anyagok voltak, ha jól emlékszem.
Nincs esetleg valakinek érthető és használható jegyezte?
- A hozzászóláshoz be kell jelentkezni
Ha Picié megfelel:
- A hozzászóláshoz be kell jelentkezni
Mozgassatok/forgassatok együtt teknőcöt logoban, előbb egyenként léépkedve, aztán ismétléssel (aka. ciklusban), kérjetek be osztandót, osztót, ellenőrizzétek a nulla voltát, és osszatok, ha lehet... mint bárki más, amikor kezdi.
Hacsak nem jó matekos (absztraktos) az illető, akármilyen programnyelv nélkül nehezebb lesz, mint kiszúrva egy egyszerű nyelvet, közösen átvenni, hogy mit, miért és ott konkrétan milyen paranccsal csinál.
(SZERINTEM, a mosógépes, meg teát főzős rávezetők eleinte csak a homályt növelik.)
- A hozzászóláshoz be kell jelentkezni
Koszonom a valaszokat. Ugy nez ki akkor marad egy egyseru programozasi nyelv megtanitasa.
- A hozzászóláshoz be kell jelentkezni
Szerintem működő példán keresztül könnyebb megérteni a dolgokat, ahhoz meg kell egy konkrét nyelv. Na persze az alap dolgok szintaxisának megtanulását még nem nevezném a nyelv megtanulásának, szóval az, hogy phpban $x a változó, és annak lehet értéket adni, meg if, for, stb. esetleg függvények, ez jó kezdésnek. Ez az elvek megértéséhez elég lehet, de ez még nem a php megtanulása szerintem. De persze később az is lehet belőle, ki tudja.
- A hozzászóláshoz be kell jelentkezni
Próbáld meg előbb az alapvető programszerkezeteket (szekvencia, elágazás, ciklus) elmagyarázni akár rajzos formában.
Ha azt megértette akkor tovább lehet lépni egy programnyelv felhasználásával a strukturált programozás felé egészen a magasabb absztrakciós szintekig.
- A hozzászóláshoz be kell jelentkezni
Az "ojjektumokat" ki ne hagyjátok, csípni fogja. :)
- A hozzászóláshoz be kell jelentkezni
Koszi, ez a link nagyon jo lesz. Igazabol a rendszert grafikus programozassal kell vezerelni, ezert nem talatam eddig semmi jot hozza, de ez jo lesz, koszi. :)
- A hozzászóláshoz be kell jelentkezni
- A hozzászóláshoz be kell jelentkezni
Új kolléga?
szerk:
Úgy értve, hogy új kolléga után nézni esetleg.
Persze ha kifizetődőbb tanítani, mint egy olyat alkalmazni, akinek már megvan ez a készsége, akkor sok sikert hozzá.
- A hozzászóláshoz be kell jelentkezni
+1
- A hozzászóláshoz be kell jelentkezni
code.org ? :-)
- A hozzászóláshoz be kell jelentkezni
+1
- A hozzászóláshoz be kell jelentkezni
Awk script? Egyik haverom elte fizikára jár, ott volt ilyen. Nulla programozási ismerettel (mármint nála) simán megértettem vele néhány óra alatt, és nagyon egyszerű, de vannak benne feltételek, ciklusok stb. És viszonylag C szerű.
- A hozzászóláshoz be kell jelentkezni
Motiváció a kulcsszó. Motivált? Akar tanulni? Ha nem, akkor teljesen felesleges tanítani.
- A hozzászóláshoz be kell jelentkezni
+1 ez nagyon igaz.
- A hozzászóláshoz be kell jelentkezni
Aztán olyannak is hívják ám, mint szintaktika meg szemantika, no é_s_truktúra .
A logikus, az a Mr. Spock. :)
- A hozzászóláshoz be kell jelentkezni
A Scratch elég látványosan mutatja hogyan épülnek fel a vezérlőszerkezetek, döntések, stb...
http://scratch.mit.edu
Ave, Saabi.
- A hozzászóláshoz be kell jelentkezni
Barátnőm azt tanítja a suliban. A gyerekek élvezik :D
- A hozzászóláshoz be kell jelentkezni
Gondoltam arra, hogy ha már az iskola nem teszi, én fogom ezt tanítani a fiaimnak. De nem vagyok jó tanár, nem sikerült felkeltenem az érdeklődésüket. Lehet, hogy nem is baj, hogy nem tanítok. :-/
Ave, Saabi.
- A hozzászóláshoz be kell jelentkezni
Kezdd a code.org-on. A scratch volt nálunk is az induló, de csak közepesen sikerült felkelteni az érdeklődésüket. A code.org-on szépen vezetik fel a rakás feladattal, ugyanaz a struktúra mint a scratch-ben, és mivel népszerű játékokból vették át a grafikát, egyből rácuppantak.
- A hozzászóláshoz be kell jelentkezni
Ebéd időben egy lapra rajzoljatok fel neki egy ilyet: http://imgs.g4estatic.com/c-conditionals/flow-chart-switch-case.png . Közben ahogy rajzolod magyarázd el hogy mi micsoda és hogy működik. Nyilazd jegyzetelj mellé stb...
Ilyen ábráknál egyszerűbben nem igen lehet ezeket elmagyarázni.
- A hozzászóláshoz be kell jelentkezni
Néhány adatponttal szeretnék hozzájárulni a témához.
A $cégnél egy ideje úgy alakult, hogy az addig nem programozóként dolgozó kollégákat kellett átképezni programozással kapcsolatos munkakörbe (pl. tesztelőnek).
Hárman (mind értelmes, jól oktató emberek) háromféle elképzeléssel álltak neki bevezető programozást oktatni nekik:
Az egyik elemi példákból kiindulva (hogyan cserélnél meg egy tojástartóban két tojást, ha csak egy kézzel nyúlhatsz bele és egyszerre egyet foghatsz meg stb.) flowchartokkal és struktogramokkal magyarázott programozási tételeket.
Eredmény: mérsékelten negatív, amennyire követtem, azt is eltántorította a témától, akiben amúgy lett volna hajlandóság.
A másik awk-ban írt példákon mutatta be az alapfogalmakat, mint változók, feltételek, ciklus.
Eredmény: alig valami. Elméletben lehet, hogy megértették, de a vizsgafeladatokat jellemzően nem tudták megoldani.
A harmadik egy nagyon rövid elméleti bevezető után egy kész, nem egészen triviális, pygame-ben írt játékot mutatott be, aztán elemzett, hogy mi mit csinál.
Eredmény: látványosan pozitív. A résztvevők közül többen pofás és egész élvezetes játékot tudtak összerakni - nyilván a példa alapján, segítséggel, nem optimális módon, de saját ötletből és működően.
A tanulság talán annyi, hogy a motiváció fenntartása és a minél hamarabb visszajelzés nagyon fontos:
a tanulónak leginkább azt kell meglátnia és elhinnie, hogy a programozás megtanulásával olyan dolgokat is meg tud majd csinálni, amelyeket korábban nem; tehát hogy mindez neki hasznos lesz.
- A hozzászóláshoz be kell jelentkezni
Ez valoban igy van. Sokkal jobban tudtam en is mindig tanulni az interaktiv orakon.
Koszonom mindenkinek a segitseget! Amugy nem gondoltam, hogy ilyen hosszu tema lesz ez, de tanulsagos volt. :)
- A hozzászóláshoz be kell jelentkezni
Ha nem fiatalabb a kolléga ~6 évnél akkor ez tuti hasznos :). A 6-7 éves korosztályon tesztelve. És "látszik" minden.
Üdv
tabatip
- A hozzászóláshoz be kell jelentkezni