[ Beer-drinker @ 03.05.2008. 17:11 ] @
Imam desetogodisnjeg klinca koji se veoma dobro snalazi oko compa. Mislim da je pravo vreme za pocetak ucenja ozbiljnih stvari, pa bih krenuo da ga ucim .Net-u (C# ili VB). Voleo bih da radimo po planu koji je kreirao neko ko je strucniji od mene za taj uzrast dece. Pre vise godina u nekom hrvatskom casopisu sam naleteo na feljton "VB za d(j)ecu" i secam se da je lekcija bilja jako zanimljiva, na zalost bilo je to davno a i samo jedan broj... Sve sto pronalazim na Net-u za pocetnike je ipak na nekom drugom nivou, recimo srednjoskolskom, sto mi je dobro poznato jer sam nekad davno i ja predavao u srednjoj skoli...
Ako neko zna dobar link ili knjigu (programski jezik nije vazan,bitne su ideje i prakticni zadaci) molim da se javi. Treba neko da me izdrzava kad odem u penziju :)
[ mmix @ 03.05.2008. 19:36 ] @
Eee, dok ti dodjes do penzije, pitanje je dal ce sa tim moci sebe da izdrava a kamoli tebe


Inace, iskreno nisam bas siguran da ti je .NET dobar pocetak za 10godisnjaka, niti u principu bilo koji OOP jezik, gledaj da ga zapocetak naucis strukturalnom programiranju a za to ti je najidealniji deskriptivni jezik (pod uslovom da je bar malo familijaran sa engleskim), znaci neki Pascal recimo ili BASIC. Jes da mu to nece trebati posle za pare, ali ce mu usaditi koncept strukturalnog programiranja iz koga ce lakse uci u OOP.

[ jablan @ 03.05.2008. 19:55 ] @
Takođe glas protiv .NET-a. Ja predlažem neki jezik koji, pored objektnog i strukturnog, nudi i mogućnost funkcionalnog programiranja. Po mom mišljenju, najbolji za učenje su Pajton i Rubi. Štaviše, WhyTheLuckyStiff ima projekat za platformu namenjenu početnicima u programiranju (baziranu na Rubiju), savetujem ti da pogledaš:

http://hacketyhack.net/

Generalno, bilo koji jezik koji ima komandnu liniju u kojoj možete odmah videti rezultate onoga što kucate, kao u stara dobra vremena na Bejziku na Spektrumu ili C64... ;)
[ momsab @ 03.05.2008. 20:07 ] @
dobar (nije savrsen, zbog dinamickih tipova) za ucenje klinaca je i Python
[ jablan @ 03.05.2008. 20:13 ] @
Dobro bre, jel meni na ovom forumu stavili "invisible ban", pa sve što kucam vidim samo ja?! :) Prvo onaj na onoj temi za knjigovodstveni softver, sad i ovde, ja kažem Pajton, neko drugi se pojavi i kaže "e, čudi me da niko nije pomenuo Pajton"...

Zašto nije savršen zbog dinamičkih tipova? Pa dinamičko tipiziranje nije ni gore ni bolje od statičkog, jednostavno je drugačije i ima neke prednosti i mane. Istom logikom ja kao Rubi fan mogu da kažem da Java i .NET nisu savršeni za učenje zato što su statički tipizirani. :)
[ momsab @ 03.05.2008. 20:34 ] @
ti si napisao Pajton a ja trazio Python :D

ne znam kako da ti odgovorim, mozda zato sto sam pre 10ak godina nesto radio u BASIC-u (Bejziku) pa posle Pascal gde su se odredjivali tipovi.. mada, ja sam i Bejzik (igrao se malo tokom osnovne) i Paskal (koji sam i na faxu ucio) dobro zaboravio, pamtim Javu, C#, php i Python.

sad, poredeci sa C# (to dodje .net) i Javom, mislim da je Python mnogo bolje resenje za apsolutnog pocetnika
u stvari, mozda gresim kad kazem da Python nije savrsen zbog dinamickih tipova, lako je sa dinamickog preci na staticko i obrnuto ako se skapiraju stvari, sto je najvaznije

od skoro ucim Python i pitao sam se vise puta zasto nismo ucili programiranje na njemu umesto na Paskalu i sta ti ja znam
skoro sam probao i ta Ruby na nekom sajtu, bas je opustencija


i,tako,oce ova tema u AoP? :) sve manje ima veze sa .net (evo,za utehu, cuh da se planira povezivanje Pythona sa .net,ako se vec nije desilo)
[ Milan Gligorijevic @ 03.05.2008. 21:47 ] @
Citat:
Beer-drinker: Imam desetogodisnjeg klinca...

Mislim da si malo poranio. Nemoj ga forsirati bez potrebe ako njega to ne zanima i neće sam da se trudi i uči. Za par godina će imati informatiku u školi, možda će raditi malo VB pa je tad prava prilika da se i ti uključiš i zainteresuješ ga malo. Neka radi sam, a ti budi uz njega kad mu zatreba neka pomoć.
Bolje ga upiši na engleski ili neka trenira neki sport. Opet, nemoj ga ti terati, neka odabere sam.
[ Beer-drinker @ 04.05.2008. 00:03 ] @
Da malo razjasnim situaciju:
a) Preracunao sam se,klinac nema 10 god,za tri nedelje ce 11 i dobija svoju masinu jer mu starija sestra pojede dusu posto ona sada radi "ozbiljne stvari".
b) Ima izrazitu zelju da pocne sa programiranjem. Mislim da mu je odavno dosadilo sve ono sto njegovi vrsnjaci tek sad otkrivaju: crtace,igrice... Sta da radim, moja deca prvo drndaju misa pa tek onda zvecku.
c) Engleski mu dodje k'o maternji jezik,filmove im snimam bez prevoda a fudbal ga bas i ne zanima.
d) Nisam mislio bas na pravo programiranje a narocito ne na komandnu liniju i OOP. Graficki interfejs, da napravi nesto tipa : kliknes na dugme a slika se promeni, da shvati funkciju kontrola i oseti kako se kontrolisu dogadjaji... Posle bih mu uveo pomalo koda-petlje,matematicke operacije...
e) Ono sto trazim se u skoli zove PLAN I PROGRAM. Mogu i ja svasta da izmislim ali bih vise voleo da vidim kako je to uradio neko ko je strucniji od mene u pedagoskom smislu. Ponavljam, nije bitan programski jezik vec samo primeri (Informatika za osnovne skole otpada, tu je plan i program pravio neko losiji od mene, za srednje se previse oslanja na neko opste znanje koje u ovim godinama jos nemaju.)

[ momsab @ 04.05.2008. 00:42 ] @
uh, plan i program za klince
postoje neki programski jezici za decu sa sve planom (http://www.google.com/search?q=programming+languages+for+kids) moracu malo da ih potrazim http://en.wikipedia.org/wiki/E..._programming_language#Children

za Python naleteh na http://www.freenetpages.co.uk/hp/alan.gauld/ (referenca za first time programmers)
[ bratovuk @ 04.05.2008. 03:51 ] @
ljudi pa prvo se uci pascal, svi to znamo ....dakle za pocetak neka uci paskal...najbolja knjiga za njega je Cabarkapina knjiga, koju mozes kupiti u knjizari na studentskom trgu...trust me
[ lowlife @ 04.05.2008. 04:42 ] @
Pozdrav!

Složio bih se sa ostalima da je ulazak u .NET preuranjen. Već sam ranije imao iskustva u radu sa klincima koji na ovaj ili onaj način pokazuju talenat u radu sa računarom, te je i metodološki
i tehnički najbolje da se krene sa Pascal-om recimo. Ovo što si naveo pod d) jeste "legitiman" cilj, ali da bi to savladao treba da bar načne proceduralno razmišljanje, automatizaciju rešavanja problema (otuda se i apsolutno slažem sa bratovuk-om), a onda će i sam videti kako ostale programerske paradigme i tehnologije rešavaju probleme na koje bude nailazio. Dakle daj mu "štap i kanap", pa kad hoće napred, ti mu unapredi alatku, korak po korak...
[ jablan @ 04.05.2008. 07:42 ] @
Ljudi, paskal se učio u vreme kad je jedina moguća alternativa bila C, pa nije teško razumeti tadašnju odluku da Paskal bude prvi. Sada su oba jezika deplasirana i ima mnogo boljih alternativa.

@pivopija: Veruj mi da ulazak u GUI nije nešto što bitno može da pomogne u učenju programiranja. Programiranje je baratanje konceptima, a ne dugmićima. Zato mislim da je komandna linija nešto što ima mnogo više efekta:


>> 2 + 3
=> 5

>> 5.times { puts 'mladen' }
mladen
mladen
mladen
mladen
mladen
=> 5

>> s = 'mladen'
=> "mladen"
>> s.length.times { |i| puts s[0..i] }
m
ml
mla
mlad
mlade
mladen
=> 6
>>


- Greške se odmah prijavljuju
- Ne prolazi se kroz ciklus compile-run
- Dozvoljava eksperimentisanje dok su u promenljivama već postavljene neke vrednosti
- Može da se koristi i u svakodnevnom životu kao moćan kalkulator (npr. kao pomoćno sredstvo u učenju matematike)
[ mmix @ 04.05.2008. 09:52 ] @
Citat:
Beer-drinker: d) Nisam mislio bas na pravo programiranje a narocito ne na komandnu liniju i OOP. Graficki interfejs, da napravi nesto tipa : kliknes na dugme a slika se promeni, da shvati funkciju kontrola i oseti kako se kontrolisu dogadjaji... Posle bih mu uveo pomalo koda-petlje,matematicke operacije...


Pa u tome lezi veliki deo problema, klinci su veoma ljubopitljivi i cak i ovaj najosnovniji primer koji si naveo zahteva upoznavanje sa podosta za njegov uzrast naprednih koncepata kao sto su klase, instance, eventi, delegati, instance callback, property itd. Plasim se da ces ga jednostavno odjednom zatrpati gomilom nejasnih stvari sto lako dovodi do frustracije i odbijanja. Programiranje se pocinje od Hello World, i "20 goto 10" koncepata, ne preko kompleksnih GUI operacija i konzolni IO je zakon za pocetak programiranja.


@jablan: ne slazem se bas sa Ruby preporukom, ne zato sto imam nesto protiv Ruby-a vec jednostavno zato sto njegova jednostavnost ide na ustrb ucenja nekih vaznih stvari u programiranju koje funkcionalni jezici jednostavno "progutaju". State je najocigledniji primer ovoga, funkcionalni jezici "nemaju" state sto je jedna velika prevara, sve ove petlje koje si dao u primer itekako imaju state unutar interpretera samo je taj state sakriven od programera i samim tim nije lak za objasnjavanje nekome ko treba da ga nauci. Dalje, apstraktuje kontrolne strukture tako da ti nemas direktan osecaj da li je petlja for, foreach, loop sa izlazom na pocetku ili loop sa izlazom na kraju; sve te strukture su veoma vazne za poznavanje kao osnova programiranja i sve imaju konkretne primene u imperativnom programiranju. Slazem se da treba da nauci Ruby jednog dana zabog zaokruzivanja svog znanja ali mi nije nesto od cega treba krenuti.

PS Offtopic, kako si napravio ovaj code box u svojoj poruci?
[ Burgos @ 04.05.2008. 11:16 ] @
[ term ] [/ term]

:)
[ nmilosev @ 04.05.2008. 13:21 ] @
Beer-drinker, ja ti predlažem da tvog klinca prvo naučiš QBasic-u. Zašto?
a) U njemu se svako sa poznavanjem engleskog dobro snalazi
b) Ima odličan help
c) U njemu će najlaše savladati petlje, uslove itd.
d) (još) nije zaboravljen jezik

I ja sam počeo u njemu pa se sada savršeno snalazim u VB.Net-u, i običnom VB-u. Plan i program ti ne treba pusti ga da sam istražuje. Povremeno kad ti se pohvali da je napravio nešto zadaj mu npr. da napravi program (sećam se kad sam ja ovo radio ) koji izračunava sve živo za sve vrste trougla. Ako voli matematiku, a pretpostavljam da voli zadaj mu da napravi program za Pitagorinu teoremu. Kad savlada osnove nauči ga da koristi nizove, da pravi kvizove, naravno kviz u kojem se prebrojavaju tačni i netačni odgovori. Na Internetu imaš xxxx tutorijala na engleskom, takođe ima ih dosta i na srpskom. Kad u potpunosti savlada QB neka pređe na Paskal, a odatle će lako na C ili VB.

Ja kad sam počeo da programiram sam imao ja mislim 12 godina (6. razred) i tad mi je bilo stvarno #$#"$ano, tako da stvarno ne bi bilo loše da sačekaš još koju godinu.

Pozdrav.
[ Branimir Maksimovic @ 04.05.2008. 13:28 ] @
Preporucio bih http://www.geocities.com/CapeCanaveral/Campus/3472/.
Knjiga nije besplatana i kurs je za osnovnu skolu (mislim od 7-12 godina decu).
Radi se o logo programskom jeziku koji je specijalno dizajniran za
decu i ucenje programiranja.
Jezik je interaktivan, svodi se na to da dete upravlja pointerom koji se
zove kornjaca i crta po ekranu sa komandne linije.
Komande su tipa pen up, pen down, forward, rotate i slicno.... koliko se secam.
Dobro je sto se ide od pojedinacnih komandi pa do full blown programa.
Mislim da ces razlicitih logo implementacija i kurseva baziranih na njemu naci ponajvise.
Drugo preporucio bih ti knjigu http://home.iae.nl/users/mhx/sf.html
Radi se o ucenju forth-a. Nakon logoa dete bi moglo nauciti
jezik koji razvija mastu i daje razumevanje.
Takodje jednostavan, interaktivan jezik.
I da da da obavezno sa komandne linije ;)

Pozzzzz!
[ maksvel @ 04.05.2008. 13:36 ] @
Sa http://www.microsoft.com/scg/obrazovanje/pil/casopis/default.mspx
se mogu skinuti besplatni MS-ovi časopisi, sadrže i mini-školu C#-a.
Najbolje je za motivaciju da počne sa nekim jezikom gde može brzo videti efekte rada - ostali su već dali primere.

Edit: Sad se setih da sam video na BUGovom DVD-u: programski jezik namenjen baš za učenje programiranja, zove se Phrogram ima i knjiga
[ sstanko78 @ 04.05.2008. 16:17 ] @
Poznajem nastavnika informatike u Bačkoj Topoli. On
svojim učenicima predaje osnove informatike i uči ih
programiranju (opciono, ako decu interesuje). Kao nastavno sredstvo
koristi Multimedia Builder http://mmb.mediachance.com/index.html
[ fLuXx @ 04.05.2008. 16:22 ] @
Ja mislim da je za bilo kog pocetnika najbolji i najlaksi i najprimamljiviji Visual Basic 6. Naprosto, nijedan klinac se ne popali na konzolu, svi mnogo vise vole win okruzenje, koje je vizuelno, slozicete se, neuporedivo lepse. VB je za te stvari savrsen, ne moras cak ni da deklarises promenljive ni da radis konverziju podataka i da imas ; na kraju komandi, jednostavno - otporan je na noobove. A daleko od toga da je nemocan. Kada se izvesti sa VB 6 moze da predje na VB.net, pa na C# ili na sta vec hoce.
[ Buum @ 04.05.2008. 16:45 ] @
Ovde imaš razne planove i programe, knjige, metodologije i slične stvari koje se bave podučavanjem dece programiranju.

http://www.kidsdomain.com/down/program.html
http://www.kidwaresoftware.com/vbntutor.htm
http://baheyeldin.com/technology/teaching-kids-programming.html
[ Nemanja_666 @ 04.05.2008. 16:51 ] @
Zanimljivo pitanje. Posto sam ja poceo uciti programiranje sa 8-9 godina da kazem kao sam isao :D

Prvi jezik koji sam ucio bio je QBasic. Posto tada nisam imao interneta, nikakvi knjiga, niti nekog koje bio upucen u te stvari poceo sam preko help-a.
Znam da sam ucio iz helpa i kucao primjere (ne copy/paste nisam znao da moze). U svakom slucaju mnogo sam vrena proveo u QBasic-u(6-7 godina, kao sto sam rekao nisam imao net-a pa nisam ni znao da postoje drugi jezici). Kad sam krenuo kasnije na Pascal nisam znao: STA SU PROCEDURE, FUNKCIJE i VARIJABLE. Trebalo mi je vremena ali sam za 10 dana u pascal-u napisao igru slot. Poslije toga je bilo lako. Nadogradio znanje sa pascal-a na Delphi. Ucio c pa c++, php ...

U svakom slucaju prepuruka za pocetak je QBasic ili Pascal?

Sto se tice plana za Pascal je najbolja(neko je vec spomeno) cabarkina knjiga, a QBasic posto nisam imao nista osim help-a nebi znao.

Pozz
[ jablan @ 04.05.2008. 21:14 ] @
Zaprepašćen sam činjenicom da ljudi preporučuju jezike koji su godinama pokojni... Valjda zato što su sami počinjali u njima... Nema veze, začetnik teme će odlučiti za svoje dete, a svako od nas za svoje, ja odustajem... Samo da odgovorim mixu:

Citat:
mmix: State je najocigledniji primer ovoga, funkcionalni jezici "nemaju" state sto je jedna velika prevara, sve ove petlje koje si dao u primer itekako imaju state unutar interpretera samo je taj state sakriven od programera i samim tim nije lak za objasnjavanje nekome ko treba da ga nauci. Dalje, apstraktuje kontrolne strukture tako da ti nemas direktan osecaj da li je petlja for, foreach, loop sa izlazom na pocetku ili loop sa izlazom na kraju; sve te strukture su veoma vazne za poznavanje kao osnova programiranja i sve imaju konkretne primene u imperativnom programiranju.

Kao prvo, Rubi nije čisto funkcionalni jezik, već pre svega nudi klasičan struktuirani, kao i (manje-više) klasičan OO pristup, pa ko voli, nek izvoli... Ima sasvim normalne if-ove i while-ove itd.

A kao drugo, programski jezici upravo i služe tome da bi apstrahovali prljavštine koje nameće sama arhitektura računara - prateći tvoju logiku dete bi trebalo da preskoči i GC i radi ručnu alokaciju memorije i baratanje sa pointerima, pa da pozive metoda radi tako što PUSH-uje parametre na stek i pakuje ih u EAX registre itd. Šta da ti kažem, i .NET runtime je jedna velika prevara jer ti programi itekako interno imaju pointere i malloc-e. Celo programiranje je jedna velika prevara, zato i ima toliko nas koji nismo mazohisti, a bavimo se istim.
[ mmix @ 05.05.2008. 10:58 ] @
ih, sto bas u EAX, to je demode, odmah na x64 assembler i parametre u RAX pravi programeri pisu nulama i jedinicima


Naravno da je i ceo .NET prevara iliti apstrakcija, moj glavni komentar nije bio toliko o rudyu koliko o tome da funkcionalno programiranje nije nesto sto je za pocetnike jer je apsrtakcija otisla predaleko i krije previse stvari i pravi probleme posle kad se dete konacno susretne sa imperativnim programiranjem sto je neminovno. GC i generalno alokacija stateova je malo napredniji topic, ali se postojanje statea moze lakse objasniti detetu kad se state "vidi" Iz tog razloga mislim da u principu bilo koji imerativni strukturalni proceduralni jezik moze da posluzi za pocetak, po mogucstvu sa deskriptivnim komandama da bi se kontekst desavanja preuzeo iz poznavanja pisanog i govornog jezika. To da li je jezik pokojan ili nije je nevazno za ucenje, decko ima deset (11) godina i dok on stasa za proizvodnu delatnost vecina jezika koji su sada moderni bice takodje pokojni. Ja sam zato veliki pristalica pascala jer on ispunjava sve te uslove do te mere da se i blokovi ogranicavaju sa begin/end, posle je lako reci begin = { i end = } i slicno i dograditi znanje (a nisam poceo sa pascalom, moj prvi jezik sam sreo sa deset godina, i to je bio BASIC na Loli 8 i kao sto vidis nisam zastupnik ideje da ucenje treba poceti linearnim programiranjem)
[ buda01 @ 05.05.2008. 11:29 ] @
Ja bi preporucio Pascal tj Delphi.

Zato sto je malo tezi od bejzika, ali mocniji i ozbiljniji od njega, a i dosta je laksi od C++, Net-a i Jave.

Ove shell skriptove ne bi, jer bi se klinac smorio za pola sata, pitao bi cemu to sluzi a uz to i ne radi.
Jednostavno dete hoce nesto zanimljivo, neku grafiku, boje, zvuk, najbolje nek pocne da pravi neku igricu, to je dobitna kombinacija. Uostalom i ja sam poceo da programiram tako sto sam pravio igrice i razne zaebancije.

Uzgred, Delphi je ubijen, nije umro prirodnom smrcu.
[ Branimir Maksimovic @ 05.05.2008. 13:56 ] @
Citat:
jablan:

A kao drugo, programski jezici upravo i služe tome da bi apstrahovali prljavštine koje nameće sama arhitektura računara - prateći tvoju logiku dete bi trebalo da preskoči i GC i radi ručnu alokaciju memorije i baratanje sa pointerima, pa da pozive metoda radi tako što PUSH-uje parametre na stek i pakuje ih u EAX registre itd. Šta da ti kažem, i .NET runtime je jedna velika prevara jer ti programi itekako interno imaju pointere i malloc-e. Celo programiranje je jedna velika prevara, zato i ima toliko nas koji nismo mazohisti, a bavimo se istim. ;)


Ehem, samo da kazem ovo: programiranje u asembleru je daleko jednostavnije
za shvatanje od bilo kog programskog jezika (osim mozda fortha) jednom kad se
detetu objasni kako racunar funkcionise u principu, a to je slozices se
jednostavnije od objasnjavanja sta je to struktuirano, funkcionalno, objektno
ili kakvo vec ne programiranje.
Jednostavna sintaksa, jednostavne operacije.
Ako izuzmemo IO, (sto moze da odradi roditelj) dete moze
pisati rutine u asembleru bez problema. Recimo , sabiranje, oduzimanje
shiftovanje itd. Pa cak ne vidim nikakav problem u prebacivanju
parametara sto preko steka sto preko registara i jednog call-a.
Na kraju krajeva dete moze smisliti sopstvenu calling konvenciju ;)
Stvar je u tome da rad u asembleru ne zahteva apstraktno razmisljanje
kao u slucaju visih programskih jezika. Dakle, nema forsiranih pravila koje treba
objasnjavati, nema while petlji i struktuiranog programiranja, nema objekata, nema struktura
podataka koje treba shvatiti, nema funkcija, nicega sto zamagljuje i
otezava razumevanje kod deteta.


Pozzzzzzzzzzzzzz!
[ markozelenovic @ 14.05.2008. 16:55 ] @
Kakav Pascal kakav Delphi, kakav Logo ...

Python.
[ momsab @ 14.05.2008. 18:29 ] @
cini mi se da je dobijen odgovor od osobe koja je po godinama najbliza subjektu pitanja :)
eto,lepo rece covek Python i mi ne mozemo da protivurecimo
[ jablan @ 14.05.2008. 18:31 ] @
Slušajte mlade jer na njima svet ostaje. A pogotovu kad predlažu dinamičke i funkcionalne jezike!
[ negyxo @ 15.05.2008. 09:38 ] @
Mladi kazu asambler

Po meni, najbolje bi bilo i jedno i drugo, i ove "vislje" i ove "nize" programske jezike. Meni recimo sada predstavlja problem da ucim sto nize stvari tipa: memorija, threadovi, procesi, win internals, COM... sto sam naucio sada koristi, a sto ne znam, ne uci mi se
Sto se tice funkcionalnih jezika definitivno im seldi svetla buducnost, moc i elegancija sve u jednom.

Recimo Haskell i C# bi bila moja preporuka, ali kao sto rekoh, nije lose sto vise razlicitih stvari uciti, pogotovo kada si mlad, imas vremena, a ovde visak znanja nikad nece skoditi.