Re: Jaký programovací jazyk ve výuce?

Petr Zahradnik clexpert@clexpert.cz
Čtvrtek Září 15 18:00:20 CEST 2005


Puvodni zprava ze dne 16.9.2005:

> Nemyslel jsem "goto ukonceni_zpracovani", ale "goto 12334".

To je prece uplne jedno. Prikaz GOTO nemusis ani v Basicu vubec
pouzit, kdyz nechces. Ono neni nikde napsano, ze musis vyuzivat
vsechny prikazy, ktere dany jazyk nabizi. Nevidim ani jediny duvod,
proc by zacatecnik, o kterem se tu bavime, mel pri vyuce programovani
delat nejake rozsahle programy. Na vyuku staci male priklady, protoze
pri vyuce nejde o to, aby nekdo napsal rozsahly a slozity program, ale
aby se naucil programovat. A zrovna tak nejde o to, aby se nekdo
naucil programovat v Cecku zpusobem, aby dany ukol napsal na co
nejmene prikazu nebo snad dokonce nejlepe cely na jeden jediny radek.

> Ale i tak se spagetove programovani musí odvykat s urcitou namahou.
> Goto zamlzuje problem platnosti promennych v blocich, to povazuji za
> dulezite.

Nevim, co mas porad s tim GOTO. Neber to prosim jako podpasovou
otazku, ale to vazne mas takove predstavy o Basicu, ze tam je jen
GOTO?

No a i kdyby, co myslis, ze s tim pak prekladac asi udela? Naseka
Assembler a potazmo strojovy kod plny takovych GOTO.

Lokalni promenne a objekty jsou zcela jednoznacne velkym prinosem.
Ovsem programovat se da i bez nich. A programovat se da i s nekolika
registry a kusem pameti. Koneckoncu jsme v konferenci o hardware,
programuji se tu mikrokontrolery a to asi ne zrovna moc objektove.
Mnozi to delaji dokonce v Assembleru, ani ne v Cecku. A ja si myslim,
ze kdyz se chce nekdo naucit programovat, proste nemuze prehlizet
ostatni zpusoby programovani. To uz rovnou muze byt ten "instantni
programator" (jak tu nekdo napsal) a sazet komponenty na formular.

Proste kdyz se chce nekdo naucit programovat, musi se naucit
programovat. Jestli to je s GOTO nebo bez GOTO, to je uplne jedno.
Kdyz se nauci jen pulku, bude mu to nekde chybet. Asi jako kdyz budes
pouzivat jenom integrovane obvody, protoze prece tranzistory jsou uz
uvnitr a nezajimaji te, ale pak budes potrebovat jednoduse sepnout
relatko... Takze nemusis vedet, jak funguje tranzistor?

Ja jsem prosel vsemi moznymi fazemi a objekty jsem se take naucil.
Jako samouk v dobe, kdy vylezl Turbo Pascal 6 a byl uz slusne
objektovy, musel jsem se to take naucit. A nebylo to zase tak
kriticke.

> Napada me podobenstvi:
> chci-li se pohybovat po lede, muzu zvolit dve strategie. Jedna je
> obednint se konstrukci, která mi zabrani spadnout, druha strategie
> je po lede klouzat a poznat podstatu problemu pohybu po lede. Při
> které se naucim vic? Typova kontrola prekladacem je ta ochranna
> konstrukce (obdoba byrokracie), chyba při behu je realita (naraz
> tvari na led).

OK, chces-li se naucit na lede a nasadis si ty velke brusle, tak se ti
take muze stat, ze si pekne nabijes cumak a uz na ty brusle nikdy
nestoupnes. Proto existuji brusle pro deti, ktere jsou dvojrade, proto
treba take existuji na jizdni kolo pridavna kolecka. Ne kazdy si chce
hned napoprve nabit tlamu :-)

> Predpokladam samozrejme interpretr, který v pripade chyby za behu
> vypise co se mu v danem miste programu nelibi, nebo se to zastavi v
> debuggeru. Při vyukovych programech taky predpokladam, ze okamzik
> vzniku chyby za behu je casove shodny s okamzikem alternativního
> vypisu chyby typu kompilatorem (pokud by byl pouzit jazyk toto
> umoznujici).

> Vid, ze to není moc demagogie? :-)

No nevim, jestli demagogie, ale kazdopadne je to postavene na hlavu.
Opravdu nechapu, kde je ta vyhoda. Jsem toho nazoru, ze kompilator,
notabene urceny pro zacatecnika, by mel striktne hlasit vsechny chyby,
ktere sam dokaze zjistit. A to je i typova kontrola.

Ja v tom vazne nevidim nejake terno, kdyz kompilator necha
programatora napsat totalni cunarnu a pak holt se to bud projevi a
prijde se na to a nebo take ne.

> Chce to oboje, pohled na problem ze vzdalenosti 1km pro rozumny
> navrh a algoritmizaci (tady mi silna typova kontrola nepomuze).

V rizeni ti taky nepomuze meric paliva, ale kdyz se auto zastavi, tak
je to docela dobra vec.

> A praxi abych si to osahal, uvedl v realitu a zafixoval. Jazyk by
> však nemel omezovat v moznostech implementace daneho algoritmu. Coz
> silne typovy jazyk zacatecnikovi cini.

OK, bud konkretni, v cem te tedy omezuje?

Petr Zahradnik, pocitacovy expert

==========================================================
Petr Zahradnik, Computer Laboratory
Obvodova 740/14, 400 07 Usti nad Labem
telefon: 475 501 627, mobil: 602 409 601, fax: 475 511 338
web: http://www.clexpert.cz, e-mail: clexpert@clexpert.cz
ICQ: 21215917, MSN: clexpert@clexpert.cz
==========================================================
 





Další informace o konferenci Hw-list