lasten ohjelmointi

Kertokaapa, onko ala-aste -ikäiselle tekniikasta kiinnostuneelle poijalle minkäänlaista 'ohjelmointikieltä', josta hän saisi onnistumisen iloa. Oliopohjaista yms...?

Antakaa vinkkejä, jos kokemusta. KIITOS.
101329
Äänestä

Muut lukivat myös

Vastaukset 10

Vanhimmat

Siihen, mikä on paras kieli, vaikuttaa koodaajan lahjakkuus ja tavoitteet. Peruskysymys: Pitäisikö heti aloittaa "teollisuusakateeminen" ohjelmointi?

Jotkut 3d-grafiikkaohjelmistot ovat jo itsessään hyvin "ohjelmoitavia". Niiden mekaniikassa on enemmän oppimista, kun minun aloittaessani basicin perustoiminnoissa. Muutaman vuoden kuluttua on vielä enemmän. Kehittäjät huolehtivat siitä.

Siis valmisohjelmien toiminta VOISI olla järkevämpää tuntea perin pohjin, kun ohjelmointikielet, joilla työskentely on yhä vaivalloisempaa ja taitoa vaativampaa.

Ohjelmointi voisi avautua myöhemmin ohjelmien laajennosten kautta (skriptaus) tai silloin jos innostuu parantelemaan ohjelmaa (open source).

Äänestä

Tuomoinen omituisuus löytyy

"Tietokoneiden kanssa kannattaa nykymaailmassa hankkiutua tutuksi jo pienenä, mutta ohjelmoinnin opettelu on monille melkoinen askel. Java tai C on etenkin nappulaikäiselle turhan tuhti tapa opetella ohjelmoinnin perusteita. Paremmin alkuun pääsee vaikkapa kotimaisella Kielix-ohjelmointikielellä. Kielixin komennot ovat selvää suomea, eikä sen omaksumiseen vaadita laajaa ohjelmoinnin perusteiden käsitepohjaa. Olio-ohjelmoinnin fanaattiset kannattajat saattavat rypistellä kulmiaan Kielixin rivinumeroille, vaikka luultavasti ovat itsekin aloittaneet koodariuransa jonkin kotimikron Basic-versiolla."

http://www.saunalahti.fi/~mcc/kielix20/index.htm

Logo ?

http://en.wikipedia.org/wiki/Logo_(programming_language)

Ehkä Python ?

Äänestä

Siitä voisi lähteä, että ohjelmointikielessä on jotain minimalismia. Oliopohjaisuus voi olla turhan raskasta kauraa heti aluksi mutta toisaalta olisi hyvä jos kieli olisi sellainen joka ei aiheuttaisi älyttömästi uudelleen oppimista kun siirtyy helloworldeista eteenpäin.

Niin hurjalta kuin kuullostaakin niin sopivin kieli saattaa hyvinkin olla C. Kieli on tavattoman yksinkertainen joten se on myös helppo ymmärtää (paitsi pointterit..), mutta ongelmana on 70-lukulainen kääntöjärjestelmä. Jos viritettäisit ohjelmointiympäristön (ja kirjastot) valmiiksi että tuo ei olisi turhaan nostamassa oppimiskäyrää niin voisi olla hyvä vaihtoehto. Siitä on sujuvaa siirtyä olio-ohjelmointiin ja C:n syntaksi on kopioitu joka paikkaan, että ei mene senkään omaksuminen hukkaan.

Kieltämättä tulkkaava kieli olisi näppärä joten ehkä sitten toinen hyvä vaihtoehto olisi Python.

Äänestä
  • Eli tarjoat lapselle työkalua jossa ei ole mitään turvaominaisuuksia!
    Vaikka C-kieli on yksi yleisemmin käytetyistä kielistä niin se on tarkoitettu
    ammattilaisille (tmv) jotka ymmärtävät sen tarjoamat vaaratekijät.


    Ohjelmoinnin aloittamiseen soveltuu esim. Pascal, Delphi jne

    Äänestä

  • _asiaa_ kirjoitti:

    Eli tarjoat lapselle työkalua jossa ei ole mitään turvaominaisuuksia!
    Vaikka C-kieli on yksi yleisemmin käytetyistä kielistä niin se on tarkoitettu
    ammattilaisille (tmv) jotka ymmärtävät sen tarjoamat vaaratekijät.


    Ohjelmoinnin aloittamiseen soveltuu esim. Pascal, Delphi jne

    Lazarus on Pascal -pohjainen joten se soveltuu hyvin opiskeluun. Lisäksi se on täysverinen ohjelmointiympäristö moneen käyttöjärjestelmään.

    http://www.lazarus.freepascal.org/

    Äänestä

Lego Mindstorms, en omaa kokemusta mutta idea on mielestäni hieno.

Äänestä
  • Minusta ohjelmointi ei välttämättä sovellu vielä ala-aste ikäiselle. On tietenkin poikkeuksia, mutta voin kyllä sanoa, että tuskin kovin moni ala-aste ikäinen ohjelmointiin kykenisi se vaatii jo sellaisia matematiikantaitoja ja päättelykykyä jo aika paljon jos haluaa edetä siitä helloworldistä yhtään pidemmälle. Meilläpäin kaikki ohjelmointikurssit mitä on järjestetty kouluissa on ollut 8. - 9. -luokkalaisille ja sielläkin on ollut ongelmia käsittää jo ihan simppeli if-lause! Ja jos joku täällä ehdottelee ihan olio-pohjaista kieltä, niin mielestäni se ei ole todellakaan sopiva niin nuorelle. Pelkkä olion käsite voi olla liian hankala nieltäväksi...

    Äänestä

Omasta kokemuksesta (aloitin ohjelmoinnin ala-asteen 6. luokalla) voin sanoa että alkuun ohjelmoinnin tulee olla äärettömän helppoa, että oppii perusasiat edes.

Pieni tarina: Koulun ATK-kerhossa, jossa siihen aikaan vielä pelattiin enimmäkseen amigalla mätkimispelejä (32 väriä!). Itse kyllästyin pelaamiseen luokan ainoalla PC:llä (EGA 4-väri näyttö) ja opettaja avasi minulle basic-editorin luokan PC-koneella ja löi koneen mukana tulleen ohjekirjan käteen. Mitään ATK-opetusta ei silloin edes ollut.

Kirjoitin koneelle:

10: PRINT "ANNA NIMESI"
20: INPUT A$
30: PRINT "HEI, ", A$
RUN

Sen jälkeen juoksin kotiin ja kirjoitin nuo rivit Commodoren 64 komentotilaan ja sehän toimi. Pientä ironiaa kun nykyään ajattelee että noin vain voisi koneelle kirjoittaa koodia ymmärtämättä kääntäjistä, tulkeista tai editoreista tuon taivaallista. Olin onnesta sekaisin kun tajusin osaavani ohjelmoida.

Tuohon kuin lisäsin vielä IF ja GOTO lauseet, niin niillä pärjäsi jo hyvin kauan:

IF A$="K" PRINT "VASTASIT KYLLÄ"
IF A$="E" GOTO 70

Tuohon aikaan kirjastoista sai vielä värityskirjan näköisiä BASIC oppaita joissa oli listauksia "avaruussota"-peleistä, jotka lähinnä arvuuttelivat lukuja ja IF-ehdon täyttyessä hihkaisivat ruudulla "Pelastit maapallon avaruusolioilta" PRINT komennon avulla. Oi niitä aikoja :)

Ja vielä FOR lause ja numero muuttujan manipulointi eri FOR ja IF lauseiden avulla. Tein matikka pelejä sun muita, ja sitten siirryin merkkien sijoitteluun ruudulle koordinaatein POKE komennolla Y*40 X muuttujien avulla. Ja print komennolla sai hienoa merkkigrafiikkaa C64 aikoina, eikä silloin haaveiltu 3D mallinnuksesta sun muista olioista.

Tämä on taso millä ala-aste ikäiset tutustuvat ohjelmointiin. Nykynuoret tälläkin palstalla kyselevät miten ohjelmoida joku 10 000 työtunnin pelin/ohjelman tapainen ohjelma itse, ja tämä ekana projekti ideanaan, kun ei niillä ole mitään ymmärrystä perusasioista. Aloita basicilla, sitä sen nimikin tarkoittaa. Toisekseen sitä ehtii ennen lukiota loppua ohjelmoida useammallakin eri kielellä jos sikseen tulee.

ps. Tämä on sitten ainut poikkeus kun sanon jotain hyvää basic kielestä ;)

Äänestä

Delphi. Ja saa ilmaiseksi täältä:

http://turboexplorer.com/delphi

Ai miksikö Delphi on C:tä parempi:

no esim.

Delphillä voi tehdä näin:

var
St1, St2 : St3 : String;

begin
St1 := 'moi';
St2 := 'taas!';
St3 := St1 ' ' St2;

ShowMessage(St3);
end;


tai, jos pudotat formille TLabel -komponentin, niin tällöin voi

ShowMessage(St3);

asemesta käyttää:


label1.Caption := St3;

Delphin vahva puoli on siis kehityynyt merkkijonokäsittely, jota C:ssä ei ole.

Kuten joku muu kirjoittaja jo mainitsikin, C.ssä ei juuri "turvarakenteita" tunneta. Ja C:ssä ei pääse juuri alkeita pidem,mälle ilman osoittimia eli pointtereita.

Delphistäkin nuo pointterit toki löytyvät, mutta delphikoodaaja selviää varsin pitkälle kokonaan ilman niitäkin.

C:ssä taas koko merkkijonojen käsittely tukeutuu vahvasti pointtereihin, ja niiden väärä käsittely aikaansaa muistivuotoja, "access violation" ilmoituksia jne. Ja jos jotain nettiin yhteydessä olevaa koodaa, aina on tietoturvauhankin vaara olemassa.

Delphissä taas merkkijonoja voi liittä toisiinsa -operaattorilla )ks. edellä oleva esimerkki) ja merkkijonojen pituutta rajaa vain vapaa muistitila, tai noh, onhan se delphin puoleltakin rajoitettu, mutta raja EI ihan heti tulekaan vastaan:

tavallisen String -tyyppisen merkkijonon maksimipituus on 2147483647 merkkiä, ja unicodea huolivan Widestringin max. pituus sekin on
1073741823 merkkiä.

Lisäksi delphin merkkijonoissa voi olla mukana myös NULL -merkki (joka C:ssä tulkitaan merkkijonon loppumisen merkkinä).

esim. näin:

St4 := 'abc'#0'def;

Ja tuon merkkijonon pituus on todellakin 7 merkkiä, minkä voi osoittaa näin:

ShowMessage(IntToStr(length(St4)));

// em. rivi tulostaa "7"

Ja tuossa siis St4:n neljäs merkki on NULL.

Delphissä muuten St4:n 4. merkkiin voi viitatta näin:

var

Merkki : Char;

begin
merkki := St4[4];
end;

edelläolevat St4:ää käyttävät toki edellyttävät muuttujan St4 määrittelyä, mutta pieniä testiohjelmia tehtäessä voi hyvin käyttää luokkamuuttujaa, lisäämällä TForm1 -tyypin public -sanan jälkeen:

St4 : String;

Turbo Delphin asennus koneelle on parempi sinun hoitaa itse, älä jätä sitä lasten tehtäväksi.

Äänestä

Kommentoi aloitusta


Kiinnostusta kirjoitti:

Kertokaapa, onko ala-aste -ikäiselle tekniikasta kiinnostuneelle poijalle minkäänlaista 'ohjelmointikieltä', josta hän saisi onnistumisen iloa. Oliopohjaista yms...?

Antakaa vinkkejä, jos kokemusta. KIITOS.

Anonyymi
5000

Ilmoita asiaton sisältö

  • Sisältää materiaalia, joka on loukkaavaa, herjaavaa, rasistista, uhkailevaa tai ahdistelevaa.

  • Materiaali sisältää nimiä, yhteystietoja tai muita henkilökohtaisia tietoja. Julkisuuden henkilöistä, julkisissa viroissa toimivista ihmisistä sekä yritysten vastuuhenkilöistä saa keskustella työhön liittyen. Myös yksityiselämään liittyvistä asioista voi keskustella siltä osin, kuin niistä on julkisesti kerrottu.

  • Sisältää lapsille haitallista tai heiltä kiellettyä materiaalia. Seksuaalinen sisältö on sallittua aiheeseen tarkoitetuilla palstoilla, joiden ikäraja on 18 vuotta.

  • Lainvastaista sisältöä voi olla mm. yksityiselämää loukkaavan tiedon levitys, kiihottaminen kansanryhmää vastaan, laiton uhkaaminen, alaikäisiin liittyvä seksuaalinen sisältö/grooming, petokset, identiteettivarkaudet, kunnianloukkaukset ja tekijänoikeusrikkomukset.

  • Sisältö ei liity palstan tai keskusteluketjun aiheeseen.

  • Viesti ei ole suomea tai ruotsia (pl. International Forums), se sisältää mainontaa, se sisältää tekijänoikeuksin suojattua materiaalia, se on massapostitus tai jokin muu syy.

Jaa keskustelu