Tri semestre javy ..?

<<

guest126

Príspevky: 272

Registrovaný: Štv Jan 10, 2008 1:18 pm

Bydlisko: beyond the rim

Poslať Sob Dec 11, 2010 6:10 pm

alef0 píše:Occamova britva je zdrava. Od jednoduchsieho k zlozitejsiemu.

Ani nie. Tak ako nevysvetlujes co znamena char ** argv, nebudes vysvetlovat, co znamena public static void main. Namespace nevysvetlujes rovnako ako public class, include nevysvetlujes rovnako ako import. (Importy su aj v Pythone, mimochodom).
Otazka je, co je fatalnejsie. Ucit sa kvalitny, jazyk, ktory je tu uz roky,je stale pouzivany, nevyhynie, z ktoreho syntaxe vychadza kopec jazykov a venovat tomu na semester 6 hodin (prijatie technicky veci) viac ako Pascalu alebo bezpecny jazyk so strasnou syntaxou, ktory je uplne na nic. Velka vyhoda prveho jazyka je, ak ho vies, Pascal a vsetky podobne jazyky ja ucis tempom citania Dana Browna, co je aj v celku velka motivacia dat mu tych 6 hodin naviac na stravenie technickych veci. Ak vies iba Pascal, ucenie kazdeho noveho jazyka je znacne casovo narocnejsie. Mne osobne pride fatalnejsi Pascal. Ale ako som spominal, uz je napriklad Python, ktory snad nema kvalitnu vyhovorku, preco s nim nezacat.

Este na margo char argv**. Ano, C poskytie milion sposobov ako znechutit a odradit, ale uprimne, nevidim jediny dovod, preco to hned zaciatocnikovi ukazovat na oci. Na vsetkych rozumnych kompilatoroch funguje
  Kód:
int
main()
{
}
bezproblemov... Ano, mozes zacat ho tryznit rovno
  Kód:
char *(*(**foo[][8])())[];
. No rozumny dovod na to naozaj nevidim. Co oko nevidi, to srdce (teraz vynimocne mozog) netrapi.

Pre mna je naozaj v tomto fatalnejsi Pascal. K technickym veciam sa vyjadrim este nizsie.

alef0 píše:
Java/C# je cisto OOP co skoro implikuje ten obavany skok.
Budes rubat staticke metody ako procedury a ides.
To je presne to, comu vravim znasilnovanie jazyka. Nikto normalny tak v cistom OOP jazyku nepogramuje a staticku metodu aspon 3x zvazi. A vie, co staticka metoda znamena :-)

alef0 píše:Problem je v tom, ze treba vcas opustit proceduralne myslenie, lebo potom to stazuje vnimanie (to je to, co Gursky naznacil, ze ludia rubu staticy vsade).
To zavisi skor od problemovych prikladov.

Fatalny nedostak pre zaciatok v Jave povazujem okrem znasilnovanie jazyka riesenie prikladov, ktore nemaju s OOP nic spolocne.

alef0 píše:
Moje skusenosti s ludmi, ktori zacinali s tymi jazykmi je taka, ze OOP pchaju uplne vsade, aj tam, kde sa to maximalne nehodi, teda nevedia zvolit spravny pristup, lebo poznaju iba OOP (

Toto si krical uz inde, ale som z teba nevydobyl konkretne priklady.
Ukazkovy kod som sa povaluje aj tu kdesi na fore, k podobnym zdrojakom uz nemam pristup ani povolenie ich zverenit. Opakujem, co som pisal v spominanom nenajdenom vlakne: Mate generecie Javistou, nech sa paci, otestuje ich, ako im to ide. Myslim si, ze to bude velmi prinosny test hodny zamyslenia aj urcity feedback.

Koncept vs Technika
Nadobudol som pocit, ze magicke slovica v C su obdobou magickych slovicok v Jave. Take chapanie povazujem silno za chybe. Myslim si, ze vsetky potrebne technicke veci v C sa daju zvladnut, ak tomu student za cely semester venuje cca o 6 hodin viac ako keby bol venoval Pascalu. OOP ponat za 6 hodin mi pride dost pochybne. Technicke veci su technicke veci. V matematike je ich plno. Jedinou ich ulohou v matematike je to, aby to bolo korektne po vsetkych strankach. Nic viac. V myslienkach a abstrakciach su uplne na nic. Co je skoro ekvivaletne tomu, aby kompilator v C prijal zdrojak. Hold, bez technickych veci to nejde ani v C ani v matematike. Ale preto, ze su iba technicke, nie je problem vysvetlit ani prijat. Nic sa nebude zahmlievat abstraktymi vecami, bude to prirodzene jasne z toho, ako funguje PC.

Kdez to vysvetlenie OOP je vysvetlenie konceptu, kde treba pochopit abstraktne myslienky (tie sa najtazsie chapu).

Pouzijem priklad z logiky. Logika sa deli na syntax a semantiku. Syntax je technicka a musi byt. Bez nej nemame s cim pracovat. A ak uz mame syntax, tak pridame k nej semantiku. Mozeme plodit nezmysly, zo syntaxtickeho hladiska to bude spravne no v semantike sa to hned zamietne.

C --> trochu narocnejsia syntax, semantika ostava
OOP --> syntax pomerne jednoducha ale uplne nova netrivialna semantika, ktora potrebuje daleko viac ako casu ako technicke veci v C.

EDIT:
alef0 píše:
osobne nepoznam nikoho, kto zacinal s C a chybal by mu Pascal. Opacnych pripadov poznam dost

Toto je riadny logicky kotrmelec. Ako si kladol otazku? Ak ste zacinali s Pascalom, chybalo vam C? :-)
Nie, nikoho som sa nepytal. Len ludia mi to tak spomenuli medzi recou :)

Hm... Viac uz asi nemam k tomu co povedat.
<<

alef0

Site Admin

Príspevky: 621

Registrovaný: Štv Nov 16, 2006 8:57 am

Poslať Sob Dec 11, 2010 7:32 pm

Ale ako som spominal, uz je napriklad Python, ktory snad nema kvalitnu vyhovorku, preco s nim nezacat.

Tu uplne suhlasim.

Otazka je, co je fatalnejsie.

No mam pocit, ze tu sa uvazuje prilis dopredu. Ta argumentacia ,,ak vies X, ostatne sa ucis rychlo" je uvazovanie prilis do buducnosti. Ale vo vyucovani programovania nie je dolezita buducnost, ale sucasnost.

Zmyslanie 1: naucme ho pointre (potrapme ho nimi), lebo potom bude presne vediet, ako funguju referencie v Jave. Naucme ho dynamicku alokaciu, lebo bude vediet, ze co sa deje za tym, ked sa vykona new Korytnacka().

Zmyslanie 2, opacne: naucme ho programovanie, algoritmicke myslenie a OOP a potom, ked bude vzdelany a sikovny, tak sa vie pytat ,,co sa deje za dynamickou alokaciou? Ako funguju referencie?"


Naozaj to zaciatocnik potrebuje? Nebude nahodou o tych pat rokov dostatocne zdatny na to, aby sa sam ponoril o uroven nizsie?

Moje skusenosti s ludmi, ktori zacinali s tymi jazykmi je taka, ze OOP pchaju uplne vsade, aj tam, kde sa to maximalne nehodi, teda nevedia zvolit spravny pristup, lebo poznaju iba OOP

Este toto: ja pozorujem inak casto velky rozpor medzi proceduralnikmi a OOPckarmi.

Proceduralnici vedia chrlit dokonale rychle algoritmy, ktore ovladaju technicke nuansy. Akonahle vsak ide o dizajn a udrzovatelnost, jednoducho maju problem.

OOPckari vedia dizajn, ale nevedia pisat efektivne algoritmy, resp. pouziju prve drevorubacske riesenie, a nad zlozitostou a efektivnostou sa nezamyslaju, resp. maju velky problem navrhnut nieco efektivne.

Povedane nadnesene: ak OOPckar uvidi program hardcore Cckara, tak dostane infarkt z necitatelnosti a Cckar dostava migreny z toho, ako OOPckar nedokaze napisat tri vnorene for cykly v sebe.

Cize ,,k otestujte ako im to ide" treba povedat ,,ako im ide CO".

Fatalny nedostak pre zaciatok v Jave povazujem okrem znasilnovanie jazyka riesenie prikladov, ktore nemaju s OOP nic spolocne.

Paradoxom je, ze ty mozes vysvetlovat OOP bez toho, aby si sa zmienil o mnozstve veci, ktore su v proceduralnom programovani folklorom :-) a to privadza niektorych starsinov do zmatku, resp. nechapu, ako si mozes dovolit pouzivat kolekcie, Collections.sort a podobne, ked oni si to musia programovat.

Myslim si, ze vsetky potrebne technicke veci v C sa daju zvladnut, ak tomu student za cely semester venuje cca o 6 hodin viac ako keby bol venoval Pascalu.

To je presne o tom, ze tych 6 hodin je usilie na zvladnutie technickych veci, ktore ten clovek moze, ale nemusi pouzit v buducnosti. Pozoruhodne je je, ze zaciatocnik to nevie ocenit, lebo nie je v stave sa uvedomit, ci je tych 6 bonusovych hodin nutnych, alebo vec, ktora vyplynula z toho, ze pedagog sa rozhodol nan zvalit narocnejsiu vec, aby si dokazal, ze to ide.

Kdez to vysvetlenie OOP je vysvetlenie konceptu, kde treba pochopit abstraktne myslienky

Nemylme si abstraktne myslienky s abstrakciou :-)

Na OOP je najtazsie pochopit to, ako vytvorit LEGO kocky tak, aby zodpovedali obmedzeniam realneho sveta a zaroven sa s nimi dobre pracovalo.

Na nizkourovnych veciach je najtazsie pochopit to, ako navrhnut recept, aby zodpovedal obmedzeniam pocitacov a aby bol efektivny.

OOP --> syntax pomerne jednoducha ale uplne nova netrivialna semantika, ktora potrebuje daleko viac ako casu ako technicke veci v C.

S tymto nesuhlasim, na zaklade coho sudis, ze ,,semantika je netrivialna" a ,,ze vyzaduje viac casu ako technicke veci C?" Mas nejaku realnu skusenost?
int
main()
{
}

No ked uz chces ist na hranice jazyka, tak ni ten int tam nemusis pisat :-) Inak mne sa osvedcilo gcc -ansi -pedantic, prechadza to mnohym zaciatocnickym chybam, akurat, ze sa hello.c trochu natiahne.
Lorem ipsum dolor sit amet.
<<

FeroG

Príspevky: 1290

Registrovaný: Uto Máj 29, 2007 11:25 am

Poslať Sob Dec 11, 2010 8:28 pm

guest126 píše:...


Ked uz sa tu tak pekne rozdiskutovala tema "v com ucit programovat", neda mi nevyjadrit sa. Musim vsak povedat, ze cela tato diskusia mi pride tak trochu divna (objasnim neskor). Oblast didaktiky (toto je to, o com sa tu skutocne rozprava) nie je veda typu veta/dokaz. Tu nie su univerzalne tvrdenia, ktore mozne dokazat, cim sa odhali hladana pravda. Mozno sa bavit nanajvys tak o statistickej pravdivosti tvrdenia. Kazdy clovek je jednoducho iny - a na to sa nesmie zabudat. Alebo si niekto z diskutujucich (narazam na jedneho konkretneho) mysli, ze existuje zazrazny a genialny jazyk, ktory sadne kazdemu a v ktorom kazdy uvidi principy informatiky? Takym jazykom nie je ani Java, ani C a ani Pascal. Teda to, o com sa moze diskutovat, je najvys to, ktore postupy a ktore prostriedky (jazyky) umoznia statisticky co najviac ludom osvojit si v danom case vseobecne uznavane programatorske zrucnosti.

Nazory Aby som sa neopakoval - plne suhlasim s tym, co tu napisal Peto (gursky) a Robo (alef). Tato podobnost nazorov asi nebude nahoda (pripominam, ze v istych detailoch a tiez v roznych inych veciach su nase nazory neraz odlisne, takze toto nie je pripad toho akehosi nazoroveho splynutia na UINFe). Budem reagovat (nebudem vsak citovat) na tych, co reagovali na ich nazory - teda specialne Ada (prosim, neber to ako utok na svoju osobu, ale mnozina tu diskutujucich je dost mala).

SubjektivitaKazdy nazor tu napisany vychadza s osobnych (subjektivnych) skusenosti jeho autora. Uvedomuju si vsak autori, ake su to skusenosti? Su to najma skusenosti z "ich cesty" k programovaniu. Ado, vari si myslis, ze ty si referencny student, a co sa pacilo tebe, paci sa aj inym a co sa tebe nepaci, nepaci sa aj inym? Ado spominas si na svoje zaciatky? Spominas si na svoj prvy rocnik na UPJS? Viem, vyucujuci boli nic moc, no ty si mal svoju cestu, takze to pre teba v programovani urcite nebola prekazka. Ako ti islo programovanie? Ako si chapal koncepty? Spominas si, ako si sa ucil C-cko? Ake koncepty si uz vtedy ovladal? Toto su otazky, na ktore netreba odpovedat. Ak by si sa vsak rozhodol, nezabudni, ze ja som cviciaci, ktory si pozorne vsima ako ludia na cviceniach pracuju.

Velmi si vazim vsetky nazory, pretoze vdaka nim si clovek moze formovat (alebo zmenit) svoj vlastny nazor a "testovat jeho pevnost" voci inym nazorom, ktore sa zjavuju okolo. Je super, ze sa zamyslas nad tym, ako ucit programovanie. Co sa mi nepaci je ich forma prezentovania a ich direktivny charakter. Otazky vyucby programovania nie su otazky o jednom cloveku (napr. tebe) ale o statistickej uspesnosti/neuspesnosti. Nazory cloveka ovplyvnuje skusenost. Takze: Viedol si niekedy cvicenie na uvodnom kurze programovania? Ucil si niekedy programovat vacsiu skupinu ludi (pozor, nie, ci si ucil programovat niekoho individualne)? Ucil si programovanie na zakladnej alebo strednej skole? Ucil si programovat ludi, ktori nie su presvedceni o tom, ze to chcu vediet (napr. niektori M, IX)? Cital si nejake didakticke materialy alebo absolvoval si nejake predmety, ktore sa venovali didaktike?

OOP vs. proceduralne programovanie. Koncept OOP je prirodzeny. Napr. vsetky dnes pouzivane detske programovacie jazyky su zalozene na myslienke objektov (napr. Imagine alebo Scratch). Je mytus, ze OOP je abstraktne. OOP je uplne prirodzene. Co je abstraktne, resp. narocne je prakticke vyuzitie konceptov ako dedicnost a polymorfizmus. Ak by OOP ako take bolo tazke a narocne, preco by to didaktici v detskych programovacich jazykoch pouzivali? Pre kazdy pripad pripomeniem, ze Imagine, vychadza z Loga, ktoremu sa didaktici venovali dost dlho a Scratch vznikol na MIT (takze ziadne vymysly z nejakej dedinskej skoly). Ak si pisal, ze vo Thinking in C++ je hladky prechod z proceduralneho programovania na OOP, zamysli sa, ci si v dobe, ked si tu hladkost badal, si sa uz stretol s konceptami OOP alebo nie?

Pascal/Object Pascal Aj ked sa ti zda syntax skareda, ukaz mi jazyk, ktory ma kvalitnejsie spracovanu metodiky vyucby ako uvodneho jazyka? Preco takuto kvalitnu metodiku nema C/C++? Pozri sa na historiu tohto jazyka... Modry Pascal je prezitok, ale Pascal adaptovany do prostredi Delphi/Lazarus (aj ked su to problemy, ktore spominal Robo) mozu na tuto tradiciu pekne nadviazat.

Java vs. C vs. vsetko Myslim, ze nakoniec otazka nestoji ani tak v com, ale ako ucit programovanie. Vo vacsine jazykov ide mnohe problematicke veci viac ci menej uspesne kamuflovat. Napr. Robo pisal o problematickych veciach v C-cku. Toto je naozaj problem. Ale v pripade C++ by to islo celkom dobre vybavit (i ked pouzitim OOP veci ako string, ci stream). OK, mozno je uvedomenie si HW super-dolezite a C-cko jazyk pre skutocnych informatikov. Ale programovanie je treba ucit ovela vacsiu masu, nez je skupina "skutocnych informatikov".

Java na UPJS. Ako pisal Ado, je to naozaj experiment. S analyzou http://view.samurajdata.se/psview.php?i ... f08&page=1 sa da len suhlasit. Vyznamnou vyhodou Javy (napr. narozdiel od Pythonu) je jej masivne rozsirenie a aktualna ziadanost na trhu prace (co sa v priebehu casu moze zmenit a tak bude treba opat prehodnotit, co dalej). Takze aktualne je to velmi cenna "deviza" pre studentov do dalsieho zivota (hovorime o masach, nie o jednotlivcoch - expertoch a "skutocnych informatikoch"). Ako sa spomina v analyze, problemom Javy a C# je jej zviazanost s technickymi detailami OOP, co na uvod nie je velmi vhodne. Styl, akym su standardne pisane Java knihy (azda s vynimkou Head First Java) nie su pre priemerneho cloveka bez predchadzajucich skusenosti pouzitelne. Prostredie ako BlueJ je fajn - je tu vypracovana metodika, ale clovek ma pocit, ze robi nieco, co v praxi nepouzije (kto uz programuje v praxi v BlueJ - to je na VS narozdiel od strednych skol problem) , a doraz je na OOP v dosledku coho je algoritmicka zlozka trochu v uzadi (co je na skole typu UPJS nie velmi vhodne). Prave v nasom experimente sme chceli navrhnut metodiku, ktora by spomenute problemy eliminovala. Po 2 rokoch zbierania skusenosti (2007, 2008) s Javou tu aktualne mame nieco, co sme otestovali (2009) a vyladujeme (2010). Ja musim povedat (a co viem, tak aj Peto), ze som s tymto spokojny. Uspesnost sa mi zda primerana (specialne si vsimam skupiny, kde je motivacia mensia - ako napr. matematici). Mozno samotni studenti (bez predchadzajucich programatorskych skusenosti) by sa mali vyjadrit, ci bolo pre nich pouzitie OOP uz v uvode "sokom" alebo to bolo nieco prirodzene.

Tolko nateraz k teme...
<<

guest126

Príspevky: 272

Registrovaný: Štv Jan 10, 2008 1:18 pm

Bydlisko: beyond the rim

Poslať Sob Dec 11, 2010 9:11 pm

Po precitani prispevku FeraG a pre nejake mantinely sa opytam otazku. Co je cielom paz1?

Mal som napisany vlastny ciel, ale asi by sa uplne nezhodoval s tym mojim vseobecnym, preto je fajn, si urcite mantinely :-)

Myslim, ze uplne elementarnym cielom je, aby programator bol programator. Teda aby nebol OOPeckar alebo proceduralista ci iny ista, ale aby podla potreby tazil zo vsetkeho.

alef0, pytas sa, co otestovat? Ucite ciste OOP jazyk. Teda otestujte, ci Vase generacie vedia pisat efektivne algoritmy a spravit efektivny navrh. Ak to vedia, je vsetko ok. Ak nie, je niekde chyba. (nesplna to moje chapenie programatora)

Takisto, keby ceckar simuloval samoobsluhu bez naznaku OOP, je niekde chyba tiez. V tomto pripade je spravne riesenie niekde medzi. Pouzit programovaci jazyk R, ktory je na tie veci urceny.

Opakujem, podla mna je cielom izolovat akykolvek rozdiel medzi procedularnikmi a OOPeckarmi. Myslim si, ze ten rozdiel je umelo vytvoreny a na konceptualnej urovni sa plynuje prechadza medzi nimi v oboch smeroch. S Pythonom myslim, ze to ide prirodzene, pri spravnom vedeni aj v C++. V inych mnou osahanych jazykoch to podla mna nejde uplne prirodzene.

alef0 píše:No mam pocit, ze tu sa uvazuje prilis dopredu. Ta argumentacia ,,ak vies X, ostatne sa ucis rychlo" je uvazovanie prilis do buducnosti. Ale vo vyucovani programovania nie je dolezita buducnost, ale sucasnost.
Ked by bola buduci semester Java, bolo by to prilis dopredu? Resp. co to znamena? Nie je cela vysoka skola u uvazovani dopredu? S cisto pritomneho hladiska je vysoka skola holy nezmysel...

alef0 píše:To je presne o tom, ze tych 6 hodin je usilie na zvladnutie technickych veci, ktore ten clovek moze, ale nemusi pouzit v buducnosti. Pozoruhodne je je, ze zaciatocnik to nevie ocenit, lebo nie je v stave sa uvedomit, ci je tych 6 bonusovych hodin nutnych, alebo vec, ktora vyplynula z toho, ze pedagog sa rozhodol nan zvalit narocnejsiu vec, aby si dokazal, ze to ide.
Mam sa vazne toho chytit? Vidi zaciatocnik vyuzitie matematickej analyzy a n dalsich predmetov? Oproti tomu fakt beriem C ako zlato. A surovo si myslim, ze pokial si student nevie najst 6 hodin za semester, tak nema co na vysokej skole robit.

FeroG, gursky a kludne vsetci, vyjadrujte sa. Ako FeroG pisal, ze velmi fajn si testovat svoje argumenty, snazit sa pochopit ine, pretvarat si svoj obraz atd..


FeroG píše: Teda to, o com sa moze diskutovat, je najvys to, ktore postupy a ktore prostriedky (jazyky) umoznia statisticky co najviac ludom osvojit si v danom case vseobecne uznavane programatorske zrucnosti.

Nazory Aby som sa neopakoval - plne suhlasim s tym, co tu napisal Peto (gursky) a Robo (alef). Tato podobnost nazorov asi nebude nahoda (pripominam, ze v istych detailoch a tiez v roznych inych veciach su nase nazory neraz odlisne, takze toto nie je pripad toho akehosi nazoroveho splynutia na UINFe). Budem reagovat (nebudem vsak citovat) na tych, co reagovali na ich nazory - teda specialne Ada (prosim, neber to ako utok na svoju osobu, ale mnozina tu diskutujucich je dost mala).


Ano spomimam, aj na super cviciaceho, akeho som mal :-) S cvikami som iba pomahal, neviedol som ich. Je didaktika kognitivna psychologia? Velmi si snazim vsimat ludi a ako uvazuju.

Bruce Eckel v 1. kapitole velmi pekne vysvetluje cele OOP.
Otazka je, ak teraz neboli v prvaci v soku, ci nebudu aj potom, ked sa stretnut s pointrami.

Spominas MIT. Po dlhych rokoch, cca 3 roky dozadu, nahradil Lisp Pythonom.

Dokladne som precital Tvoj cely prispevok. Je krasny. Citit z neho skusenosti ale najma nasmiernu snahu vyhoviet co najviac ludom, aj tym, ktori uz mozno nastupuju s apatiou k programovaniu. Ja mozno naozaj direktivne predpokladam, ze kto ide na informatiku, mal by pocitat s programovanim. Ono, obcas som aj s Teba nadobudol pocit, ze zabudas, ze ucis na vyske a nie v materskej skolke :-) To ma asi tak 3 krat napadlo.

Viem, aky si bol, ked si ucil mna. Bol si velmi fajn :) Neviem, aky si bol predo mnou, ale viem, ako si ucil rok po mne. Vyrazne lepsi si bol. Bol som sa iba pozriet, ale odchadzal som stastny a vysmiaty :-)

Feri, z toho ako som cely ten prispevok pochopil, nadobudol som pocit, ze vazne hladas, aspon na prvy semester, Python. Preco zacat s Pythonom, najdes na internete kopec clanov. Komunite http://www.py.cz velka chvala. Prosim, skus si precitat aspon http://howto.py.cz/uvod.htm

Myslim, ze v tomto sledujes uplne iny ciel ako ja. A Tvoj si velmi vazim. Dakujem Feri, ako vzdy :)

EDIT: Pascal/Delphi, tam sa nezhodneme. Voci tomu som uz velmi predpojaty. U mna sa to reguluje zacat s Python. Ak nie s nim, tak C. C++ by sa asi dalo tiez, ale osobne by som ho este ja osobne netrufol didakticky ucit.

EDIT2: Na tuto otazku chcem serioznu odpoved. Predpokladam, ze paz1 ma aj kombinovane studium. A otazka je, co budu ucit na strednych skolach? Ci sa na nejakom predmete ucia aj Pascal? Nemyslim si, ze maju na to, aby ucili na strednych Javu. Keby sa bol na paz1 aspon a, ucil Python, mohli by ucit Python. Co je fajn. Ale takto, vazne, co budu ucit?
Naposledy upravil guest126 dňa Sob Dec 11, 2010 10:20 pm, celkovo upravené 1
<<

alef0

Site Admin

Príspevky: 621

Registrovaný: Štv Nov 16, 2006 8:57 am

Poslať Ned Dec 12, 2010 12:38 am

alef0, pytas sa, co otestovat? Ucite ciste OOP jazyk. Teda otestujte, ci Vase generacie vedia pisat efektivne algoritmy a spravit efektivny navrh. Ak to vedia, je vsetko ok. Ak nie, je niekde chyba. (nesplna to moje chapenie programatora)

Cize aj OOP aj algoritmy? :-) CHapem to spravne?

Takisto, keby ceckar simuloval samoobsluhu bez naznaku OOP, je niekde chyba tiez. V tomto pripade je spravne riesenie niekde medzi. Pouzit programovaci jazyk R, ktory je na tie veci urceny.

Tejto vete som semanticky neporozumel. C a OOP? A samoobsluha?

Ked by bola buduci semester Java, bolo by to prilis dopredu? Resp. co to znamena? Nie je cela vysoka skola u uvazovani dopredu? S cisto pritomneho hladiska je vysoka skola holy nezmysel...

Vysvetlim na analogii. Majme Andreja a Barnabasa, ktori sa chcu naucit soferovat. Andrej dostane auto s automatickou prevodovkou. Barnabas otcovu otcovu skodovku 120 s manualom a ovladanim sytica, a ako bonus sa oboznami s principom motora a vymenou zakladnych suciastok.

Automat = Java. Manual = C.

,,Uvazovanie dopredu" znamena, ze ty chces natrieskat do cloveka manual, lebo co keby raz prislo na to, ze bude musiet sadnut do cudzieho auta s manualom a odviezt opitych kolegov. V takej chvili bude nepouzitelny, otazka je, ako casto ta situacia nastane. Navyse, v realnom svete je moznost volby - do konca zivota mozes jazdit na automate, lebo ine auto si nekupis. Svet programovania je momentalne rovnako ako svet v USA: gro ludi jazdi na automate.

Vidi zaciatocnik vyuzitie matematickej analyzy a n dalsich predmetov? Oproti tomu fakt beriem C ako zlato. A surovo si myslim, ze pokial si student nevie najst 6 hodin za semester, tak nema co na vysokej skole robit.

S tymto nesuhlasim na dvoch urovniach: jednak hovoris, ze ,,ked sa mozu ucit zbytocnu analyzu, pokojne sa mozu ucit aj zbytocne C". A po druhe, presne si zapadol do mojho prikladu, ze ,,kto sa nevie naucit pointery, je lama a nehodny clovek a nikdy z neho nebude poriadny informatik" :-)

Ja mozno naozaj direktivne predpokladam, ze kto ide na informatiku, mal by pocitat s programovanim.


Toto je dost mylny predpoklad (aspon u nas), z ktoreho moze potom plynu rozlicne nazory, ktore narazia na realitu.
---------------------------

Mna fascinuje, ze ty si polarizovany: bud C alebo Python. Preco to? Ked tie jazyky su diametralne odlisne? Ved Python je uplne inde, na vysokej urovni, tak ako mozes sucasne obhajovat aj jedno aj druhe? :-)

--------------------------------------------

Este mi inak napadlo mimo temy: na zakladnych strednych skolach je podla mna uplne v poriadku, ked sa techniky demonstruju na jazykoch, ktore sa ,,zahodia". Nik nebude programovať v realite v Imagine, ani v Baltiku, a ani v Pascale, ani v Scratchi, ale to na strednej vobec neprekaza. (Pride mi to rovnake, ako ked sme sa ucili programovat v Basicu.)
Na vysokej skole je uz mozno problem, ze nie je v casovych moznostiach urobit prvy semester kurz v didaktickom jazyku a potom sa prehodit na nejaky jazyk tvrdej reality.
Lorem ipsum dolor sit amet.
<<

guest126

Príspevky: 272

Registrovaný: Štv Jan 10, 2008 1:18 pm

Bydlisko: beyond the rim

Poslať Ned Dec 12, 2010 1:40 am

alef0 píše: Cize aj OOP aj algoritmy? :-) CHapem to spravne?
Napriklad. Ja si to predstavujem tak, ze nemal by sa niekto zameriavat na OOP alebo procedularne. Ale aby si v danej situacii vedel spravne vybrat. V skratke. Aby OOPeckar nechpal vsade objekty a aby proceduralista v Jave nesekal vsetko static. Teda, aby nebol ziaden proceduralista alebo OOPeckar. Aby vobec nebolo poznat, s cim zacinal. Inac, paz1b je zamerane na algoritmy, nie? :) Inac algoritmy pisem vyhradne v C++. Hold, STL nenapises na kolene :-)

alef0 píše:
Takisto, keby ceckar simuloval samoobsluhu bez naznaku OOP, je niekde chyba tiez. V tomto pripade je spravne riesenie niekde medzi. Pouzit programovaci jazyk R, ktory je na tie veci urceny.

Tejto vete som semanticky neporozumel. C a OOP? A samoobsluha?
Simulovat napriklad rad v pokladni, pohyb zakaznikov, casy prichodov zakaznikov, doba cakania pri pokladni... Asi by ma trafilo, keby som ma toto citat v C. S OOP ok, jazyk R je priamo pre statistiku, pravdebodobnost atd... Zaujimava skusenost. My ste v nom mali na Pravdepodobnosti a statistike simulovat vleky a lyziarov na Chopku.

alef0 píše:,,Uvazovanie dopredu" znamena... Svet programovania je momentalne rovnako ako svet v USA: gro ludi jazdi na automate.
V principoch PC by perfektne sekundovali cvicenia v C.

Tu som Ta iba presne chytil za slovicko. Podla mna je kazda vysoka skola postavena na uvazovani dopredu.

alef0 píše:
Vidi zaciatocnik vyuzitie matematickej analyzy a n dalsich predmetov? Oproti tomu fakt beriem C ako zlato. A surovo si myslim, ze pokial si student nevie najst 6 hodin za semester, tak nema co na vysokej skole robit.

S tymto nesuhlasim na dvoch urovniach: jednak hovoris, ze ,,ked sa mozu ucit zbytocnu analyzu, pokojne sa mozu ucit aj zbytocne C". A po druhe, presne si zapadol do mojho prikladu, ze ,,kto sa nevie naucit pointery, je lama a nehodny clovek a nikdy z neho nebude poriadny informatik" :-)
Stale si myslim, ze kto si za semester nevie najst 6 hodin, nie je vhodny kandidat na VS :)

alef0 píše:
Ja mozno naozaj direktivne predpokladam, ze kto ide na informatiku, mal by pocitat s programovanim.


Toto je dost mylny predpoklad (aspon u nas), z ktoreho moze potom plynu rozlicne nazory, ktore narazia na realitu.
U vas to vyzera tak byt. I ked mne to fakt dava zmysel predpokladat :)
---------------------------

alef0 píše:Mna fascinuje, ze ty si polarizovany: bud C alebo Python. Preco to? Ked tie jazyky su diametralne odlisne? Ved Python je uplne inde, na vysokej urovni, tak ako mozes sucasne obhajovat aj jedno aj druhe? :-)


Pascal som zamietol, lebo ma silne nevyhody a nie je taky problem, pri troske snahy spravat sa v C ako v Pascale. Python mi pride uplne ze super, na vyuku. C++ si by som, dnes, nevedel dobre ucit. Viem vysvetlit namespace, using std ale pri otazke, co je to std::cin? by som zacal skripat zubami, piskat si a spytal sa studentov, ako sa im paci Black books. Nemyslim si, ze by som to bol vedel vysvetlit tak, aby to studenti boli pochopili. Dalej som sa stretol s Bash, R, Java, C#, Delphi, Haskel, Prolog...

Preto som polarizovany, lebo nepoznam vela jazykov. Este taky Prolog by mohla byt zaujimava volba. V Haskel, neviem, ako by zaciatocnik reagoval na typovu deklaraciu funkcii.

Teda Python preto, lebo mi pride genialny a C preto, lebo viem ho ucit ala Pascal. C nie je tazky jazyk. C++ som si vazne uzil a fakt si vyzaduje "gule". Ak je zaciatocnik taky ako ja, ze chce vsetkemu rozumiet :-) Narocnejsi jazyk nepoznam :-) Python ma este aj tu vyhodu, ze student nebude v totalnom zivotnom soku z funkcionalneho jazyka alebo kulat ocami s vyplazenym jazykom pri for cykle v shelli :-)

Zacul som aj taky nazor, ze Assembler. Zaciatnici maju casto problem pochopit for cyklus. V Assembleri nie je :-)

Keby som poznal SmallTalk, Erlang, Lua, SmallBasic, mozno by som tvrdil nieco ine. Ale nepoznam. Zvlast SmallTalk a Lua su iba ospevovane (i ked je dost mozne ze preto, lebo nikto ich nepozna, tak sa neprotiargumentuje).

Ono, uplni zaciatocnici na zakladnej/strednej mozu tvorit aj vlastne hry v GameMaker... Poznam ludi, co zacanali prave s nim.

Ale ak som spravne pochopil ciel FeroG, tak Python sa mi vidi vhodnejsia volba. Drzim sa toho, ze kazde nezname slovicko je pre zaciatocnika velmi neprijemne. Preto aj C, lebo tam viem vsetko vysvetlit. Pri C++ realne hrozi, ze by som musel povedat, tym sa zatial netrapte, co by mne ako studentovi snaziacemu sa pochopit vsetko, strasne vadilo.

--------------------------------------------

alef0 píše:Este mi inak napadlo mimo temy: na zakladnych strednych skolach je podla mna uplne v poriadku, ked sa techniky demonstruju na jazykoch, ktore sa ,,zahodia". Nik nebude programovať v realite v Imagine, ani v Baltiku, a ani v Pascale, ani v Scratchi, ale to na strednej vobec neprekaza. (Pride mi to rovnake, ako ked sme sa ucili programovat v Basicu.)
Na vysokej skole je uz mozno problem, ze nie je v casovych moznostiach urobit prvy semester kurz v didaktickom jazyku a potom sa prehodit na nejaky jazyk tvrdej reality.


Hm, programovanie na strednej. Niektorym ide programovanie lepsie ako matematika ale tym, ktorym ide matika, ide spravidla aj programovanie. Ak tak rozmyslam, bud padnu na uzitok obe alebo ani jedno (velmi zhruba povedane). Nie kazdy ide na informatiku alebo prirodne vedy. Asi su povinne matematika aj programovanie. Ked tak rozmyslam, ja by som dal asi moznost zvolit si medzi matikou a programovanim. Ak to fakt nemaju radi, tak naco im nutit obe, na strednej skole, pre nich velmi podobne veci...

Ale seriozne sa pytam, co (aky jazyk) budu schopni absolventi UPJS ucit na strednej?
<<

marian

Príspevky: 18

Registrovaný: Štv Dec 14, 2006 12:12 am

Poslať Ned Dec 12, 2010 6:00 am

Neviem v ktorom jazyku je najlepsie zacat programovat, aj ked mam tendeciu mysliet si, ze je to viacmenej jedno---cokolvek co cloveka pritiahne k programovaniu je super. Ak je na skole clovek co vie studentov namotivovat ucit sa programovat v jazyku X, tak X bude dost dobra volba pre uvodny kurz (ak ho uci ten clovek ;)). Co mam moznost len tak z dialky pozorovat dianie na UPJS, mam dojem, ze je na skole viacero takych ludi, takze s tym by problem nemal byt.

Mozno dolezitejsie ako vyber prveho jazyka je v neskorsich rocnikoch ukazat alternativy. Ja som mal 3 semestre predmetu s nazvom "Funkcionalne a logicke programovanie" ale bohuzial ziadne funkcionalne programovanie sa na nom nekonalo. Super by mohol byt predmet o historii programovacich jazykov---clovek hned lahsie rozumie preco su veci tak ako su, ked pozna ich dejiny.

A mozno najdolezitejsie je pripravit studentov na to, ze programovat ich nenauci skola: programovat (ako asi aj vsetko ostatne) sa musia naucit sami. Neviem ci by som im prezradzal, ze to bude dlha cesta: to moze niektorych odradit :). Ja mam este stale pocit, ze programovanie je dost tazke a ze sa toho musim este strasne vela naucit.

Ak by mal niekto pocit, ze uz vsetkemu rozumie a uz vsetko vie (ja som tento pocit mal uz niekolko krat ;); vzdy som sa samozrejme mylil), tak tu je pre neho tento pekny citat: "It's what you learn after you know it all that counts." -- John Wooden
<<

alef0

Site Admin

Príspevky: 621

Registrovaný: Štv Nov 16, 2006 8:57 am

Poslať Ned Dec 12, 2010 2:45 pm

Aby OOPeckar nechpal vsade objekty a aby proceduralista v Jave nesekal vsetko static.

Prve je v pohode, pretoze to pomaha prehladnosti. S druhym suhlasim.

Simulovat napriklad rad v pokladni, pohyb zakaznikov, casy prichodov zakaznikov, doba cakania pri pokladni...

Right tool for the right job. V suvislosti s PAZ1[x] sa to ale urobit velmi neda.

Tu som Ta iba presne chytil za slovicko. Podla mna je kazda vysoka skola postavena na uvazovani dopredu.

Cim vlastne hovoris, ze C je super, ale nie ako uvodny jazyk, ale ako sekundujuci. AK je to tak, tak sme sa zhodli. Je to tak?

Stale si myslim, ze kto si za semester nevie najst 6 hodin, nie je vhodny kandidat na VS

Ale ty si nieco ustanovil, bez argumentov a kto nevie splnit tvoje kriteria, je nehodny. Moj priklad hovoril, ze toto nie je dobra cesta. Namiesto uvah, ci tvoje ocakavania a pouzivane metodiky maju zmysel a su efektivne, sa snazis odsudit ucastnikov.

A mozno naozaj direktivne predpokladam, ze kto ide na informatiku, mal by pocitat s programovanim.

Poviem ti to rovno: u nas nemozno. Predpokladat mozes co len chces, ale potom iluzie narazia na realitu.

Pascal som zamietol, lebo ma silne nevyhody a nie je taky problem, pri troske snahy spravat sa v C ako v Pascale.

Cize C len preto, ze v rozstrele s Pascalom mal menej podla teba menej nevyhod. Hm.

Tu je este zakladny problem: podla seba sa nedaju sudit masy. To je to FeroGovo ,,ludia, ktori nie su presvedceni o tom, ze to chcu vediet".

Ale seriozne sa pytam, co (aky jazyk) budu schopni absolventi UPJS ucit na strednej?

Na strednych sa bude ucit Pascal / Lazarus. Tak je nastavena nova metodika.

bohuzial ziadne funkcionalne programovanie sa na nom nekonalo.

Toto je inak velmi poznamka. My sme rovnako mali Prolog, ale ja som si z toho predmetu a Prologu nic neodniesol.
Lorem ipsum dolor sit amet.
<<

FeroG

Príspevky: 1290

Registrovaný: Uto Máj 29, 2007 11:25 am

Poslať Ned Dec 12, 2010 6:56 pm

guest126 píše:Feri, z toho ako som cely ten prispevok pochopil, nadobudol som pocit, ze vazne hladas, aspon na prvy semester, Python

V tomto ta sklamem. Na PAZko aktualne nehladame nic. Volba pre Javu nebolo nejake didakticke alebo ine rozhodnutie s nejakym vyssim cielom. Volba pre Javu bolo cisto politicke rozhodnutie (lebo trh, lebo dalsie predmety, lebo motivacia, lebo ...). A ked uz bola volba pre Javu, riesilo sa to, ako to ucit, ako ludi motivovat (tu bola pre nas inspiraciou korytnacia grafika, ktoru sme skombinovali s OOP). Spravit nieco take ako prvy semester jazyk X a dalsi jazyk Y tiez nie je dobra volba lebo:
1. ludia by sa burili preco dalsi jazyk, ked sa uz s vynalozenim velkeho usilia zoznamili s jazykom X
2. vyucba jazyka X by vyzerala ako ucme sa jazyk pre jazyk (netvrdim, ze by bola)
3. v prvom roku studia ludia este nie su pripraveni na to, aby zvladali viacere programovacie jazyky - novy jazyk by bol na ukor toho ineho (algoritmov, pouzitia OOP, ...), co sa maju naucit.

Python dnes nie je natolko popularny a rozsireny jazyk, aby stimuloval u ludi motivaciu sa ho naucit. Asi rovnako ako v pripade Javy by aj Python vyzadoval vybudovanie nejakej pouzitelnej metodiky (vzhladom na to, s akymi skusenostami prichadzaju ludia na UPJS).

Ako si naznacil, s prechodom na Javu vznikol jeden problem, ktory sa zial doposial neriesil. Problemom je, ze IX nezaziju pocas svojho studia Pascal v dosledku coho pridu absolventi IX na skoly nepripraveni. Totiz Java, ci Python na stredne skoly (nateraz) nepatria. Hlavny dovod je neexistujuca overena metodika pre tento typ skol. Tu ma vyhodu Object Pascal, pre ktory existuje overena metodika (i ked asi nie vsetci ucitelia na SS ju ovladaju, resp. sa s nou stretli - ale v tomto smere tiez nastavaju pozitivne zmeny).
<<

guest126

Príspevky: 272

Registrovaný: Štv Jan 10, 2008 1:18 pm

Bydlisko: beyond the rim

Poslať Ned Dec 12, 2010 8:13 pm

marian píše:Neviem v ktorom jazyku je najlepsie zacat programovat, aj ked mam tendeciu mysliet si, ze je to viacmenej jedno---cokolvek co cloveka pritiahne k programovaniu je super. Ak je na skole clovek co vie studentov namotivovat ucit sa programovat v jazyku X, tak X bude dost dobra volba pre uvodny kurz (ak ho uci ten clovek ;)).
Teda problem najlepsieho jazyka sme previedli na problem, ktory jazyk alebo konkretny ucitel motivuje najviac ludi :) Ako som spomenul, poznam ludi, ktorych uplne super motivoval GameMaker :)

marian píše: Mozno dolezitejsie ako vyber prveho jazyka je v neskorsich rocnikoch ukazat alternativy. [/qoute] Za moje dvojrocne studium na UPJS so to bolo Pascal, Delphi, Java a pri rychlostnom z nicoho nic C++.


Na MFF to funguje nasledovne. V prvom semestri je Pascal, pricom gro sa kladie na spojaky, stromy atd (pointre zpredu odzadu). V druhom semestri sa povinne vsetci stretnu so C# a shell. V tretom sa z povinne volitelnych musi vybrat aspon jeden z tychto: C#, Java, C++. Studijny obor Programovani ma povinne C++ a musi si zvolit este Javu alebo C#. Vo stvrtom semestri sa musi student stretnut s netrivialnym pouzitim Prolog a Haskell. To su vsetko povinne veci. V pripade zaujmu, je moznost PHP, Perl, Flash, F#, Assembler asi este zopar dalsich, o ktorych este neviem.

marian píše: A mozno najdolezitejsie je pripravit studentov na to, ze programovat ich nenauci skola: programovat (ako asi aj vsetko ostatne) sa musia naucit sami. Neviem ci by som im prezradzal, ze to bude dlha cesta: to moze niektorych odradit :). Ja mam este stale pocit, ze programovanie je dost tazke a ze sa toho musim este strasne vela naucit.
Pekny priklad :)

Ja osobne by som programovanie ucil takto. Celu hodinu by som stravil rozpravou o mnou osahanych jazykoch a dal by som moznost studentom vybrat si jazyk, s ktorym zacnu. Keby sa riesila dilema C/Pascal, na strednej by som sa prisposobil studentom, na vysokej skole obor informatika by som tu dilemu zmietol zo skola a ucil by som C.

FeroG píše: ...
To si ma silno sklamal. Jednak vnimam, ze politicke rozhodnutia si mozu robit vysoke skoly ale nie univerzity. V Cesku sa proti tomu studenti velmi burili, aby vzdelanie neovplyvnovali firmy a kadeco ine.

Python je pomerne dost rozsireny a myslim si, ze ludi namotivuje k programovaniu skor ako Pascal/Delphi/Java. Je to moj osobny nazor. Pascal som sa ucil iba z mojej vlastnej vole, lebo som chcel vediet programovat. Jedina motivacia bola moja vlastna vola. Java podobne. Pred rokom som kvoli som si, kvoli jednemu projektu, osahal Python, no a bola to pre mna zabava. Tesilo ma to. A presne toto sa aj o Pythone tvrdi. Ze urobi realne programovanie zabavou, co je velke plus k motivacii, co je, podla mna na vseobecne stredne skoly super. Dalej co viem, Python postupne prebera (ak uz neprebral) hlavnu rolu v programovani na strednych skolach v USA. Z coho sa da usudit, ze asi uz nejaka metodika existuje :) Ale hlavne ta zabava mi pride fakt super.

Alef0, mas velke skony k experimentovaniu. Buduci rok, skus dat do plena, hlavne matikom a IX, ze ci by sa nechceli zucastnit na experimente v uceni programovania. A ze cielom toho experimentu je to, aby ich to bavilo. Nejakych 10 ludi, u ktorych nie je prioritne programovanie. A konci semestra by bola v dotazniku jedina otazka: "Bavilo Vas to?"

Problem s prechodom na Javu ohladom IX je potom dost fatalny. Ked sa doposial neriesil, nebude sa co velmi cudovat, ako bude to na strednych a nasledne na vysokych skolach.
<<

alef0

Site Admin

Príspevky: 621

Registrovaný: Štv Nov 16, 2006 8:57 am

Poslať Ned Dec 12, 2010 11:09 pm

Ja osobne by som programovanie ucil takto. Celu hodinu by som stravil rozpravou o mnou osahanych jazykoch a dal by som moznost studentom vybrat si jazyk, s ktorym zacnu. Keby sa riesila dilema C/Pascal, na strednej by som sa prisposobil studentom, na vysokej skole obor informatika by som tu dilemu zmietol zo skola a ucil by som C.

Tu si tiez protirecis v jedinom prispevku. Na jednej strane davas moznost vyberu a na druhej tvrdo zmeties dilemu zo stola? :-)

Anarchisticky model bez metodiky moze fungovat len v ultra malej skupine, nad ktorou mas sam kontrolu. A vtedy, ked ich volba bude ako v komunizme, ze im sice das volbu, ale nakoniec bude i tak po tvojom.

Po prve, zaciatocnici nevedia posudit vyhody a nevyhody jazykov. (Hovorim o zaciatocnikoch, ktori nevedia, co je programovanie.)

Po druhe, keby sa polovica priklonila na jednu stranu a druha na druhu, co by si robil?

Po tretie, potrebujes mat realizovanu didakticku pripravu, pripravene slajdy, a rozplanovane, co chces stihnut (pokial naozaj nie si jediny prednasajuci A ZAROVEN cviciaci... co nie si, lebo hovorime o uvodnych kurzoch na univerzite, kde tento predmet nebudes robit sam)

To si ma silno sklamal. Jednak vnimam, ze politicke rozhodnutia si mozu robit vysoke skoly ale nie univerzity.

Medzi tie kriteria patrili ,,vzdialenost od praxe / ludske sily / motivacia". Kedze sa opustil Pascal, na zaklade rozlicnych skusenosti by ostala kombinacia Java / C# / C++.


Problem s prechodom na Javu ohladom IX je potom dost fatalny. Ked sa doposial neriesil, nebude sa co velmi cudovat, ako bude to na strednych a nasledne na vysokych skolach.

Riesil sa. Ved som minuly rok prvykrat ucil Lazarus pre kombinaciu XI. To boli ti ucitelia, co uz nezastihli Pascal. Vsetci ostatni studenti este zazili Pascal.

Inak prehlad uvodnych kurzov na inych univerzitach:

MIT: kedysi Scheme, dnes Python.
Carnegie Mellon: Java
Waterloo: scheme. Neskor C++
UCLA: Scheme
Princeton: Java
Cornell: Java
Berkeley: Scheme
Northeastern Uni: Scheme
University of South Carolina: C++
Oxford: funkcionalne
Nottingham: Java
Michigan: C++
Texas A&M: Pascal
Kodan: SML (funkcionalko)
Karlshure: Java
Oslo: Java
Stanford: C++
University of Arizona: Java
University of Toledo: C++. Na OOP Java.
Ohio: C++
Tel Aviv: Scheme.
Western Ontario: Java
Michigan State University: Matlab (pre neinformatikov). Ostatni Python, potom C++
Cambridge: Java.
MFF CUI: Pascal
Bristol: C (potom Java, potom Haskell)
Nottingham: C, potom Java, C++
Lancaster: Java, potom C
Kent: Java. Potom Haskell / SQL
Central Lancashire: C++
Conventry: C++
Bueons Aires: Python, potom C, potom Java
St Andrews: Java
Dundee: Java
Leeds: Python
East Anglia: C++, potom Java
York: Scheme, potom Java
Newcastle: Java
VŠB Ostrava: Java
Ostravská univerzita: Pascal.

Pozoruhodny fakt: C# nie je nikde.
Pozoruhodny fakt 2: C dominuje na operakoch, inde nie. Ak uz, tak sa berie C++
Pozoruhodny fakt 3: vsimnite si dominanciu funkcionalnych veci.
Naposledy upravil alef0 dňa Pon Dec 13, 2010 10:31 am, celkovo upravené 2
Lorem ipsum dolor sit amet.
<<

guest126

Príspevky: 272

Registrovaný: Štv Jan 10, 2008 1:18 pm

Bydlisko: beyond the rim

Poslať Pon Dec 13, 2010 12:42 am

alef0 píše:
Ja osobne by som programovanie ucil takto. Celu hodinu by som stravil rozpravou o mnou osahanych jazykoch a dal by som moznost studentom vybrat si jazyk, s ktorym zacnu. Keby sa riesila dilema C/Pascal, na strednej by som sa prisposobil studentom, na vysokej skole obor informatika by som tu dilemu zmietol zo skola a ucil by som C.

Tu si tiez protirecis v jedinom prispevku. Na jednej strane davas moznost vyberu a na druhej tvrdo zmeties dilemu zo stola? :-)

Anarchisticky model bez metodiky moze fungovat len v ultra malej skupine, nad ktorou mas sam kontrolu. A vtedy, ked ich volba bude ako v komunizme, ze im sice das volbu, ale nakoniec bude i tak po tvojom.

Po prve, zaciatocnici nevedia posudit vyhody a nevyhody jazykov. (Hovorim o zaciatocnikoch, ktori nevedia, co je programovanie.)
to su detaily a daj si to v hlave tak dokopy, aby Ti to sedelo :-) Myslim, ze vyhody, nevyhody a pouzitie roznych jazykov sa da vysvetlit tak, aby si studenti mohli vybrat, co sa im zda sympaticke. Ja by som im silno odporucal Python, ale keby chceli C++ alebo Haskell, budiz po ich vola. Python by som vybral ako default, lebo nim asi nie je co pokazit. Ale toto nechcem riesit a je to uplne od temy.... :-) Samozrejme, vravel som o strednej skole. Na univerzite by som sa prisposobil.

alef0 píše:
To si ma silno sklamal. Jednak vnimam, ze politicke rozhodnutia si mozu robit vysoke skoly ale nie univerzity.

Medzi tie kriteria patrili ,,vzdialenost od praxe / ludske sily / motivacia". Kedze sa opustil Pascal, na zaklade rozlicnych skusenosti by ostala kombinacia Java / C# / C++.
Stale si myslim, ze Python ponuka nakrajsiu motivaciu a nie je v nom problem ani kreslit (Vasa oblubena motivacia).

Skus na 10 studentoch spravit experiment s Pythonom. Ak chces, v lete Ti pomozem 3-5 dni s pripravou slidov.

Myslim, ze Python bol v tom prispevku to gro, mozno este dalsie v jazyky v dalsich semestroch.

alef0 píše:
Problem s prechodom na Javu ohladom IX je potom dost fatalny. Ked sa doposial neriesil, nebude sa co velmi cudovat, ako bude to na strednych a nasledne na vysokych skolach.

Riesil sa. Ved som minuly rok prvykrat ucil Lazarus pre kombinaciu XI. To boli ti ucitelia, co uz nezastihli Pascal. Vsetci ostatni studenti este zazili Pascal.
Super. Velmi super. Inac Lazarus ako GUI vyuziva Qt. V Qt je spravena aj Opera, ci KDE.

alef0 píše:Inak prehlad uvodnych kurzov na inych univerzitach:
Z cirej zvedavosti, ako si sa k tomu dostal? Poznas nejaky efektivny postup? O MIT viem, lebo si obcas citam ich free course, inac by som klasicky prehladaval.

alef0 píše:Pozoruhodny fakt: C# nie je nikde.
Pozoruhodny fakt 2: C dominuje na operakoch, inde nie. Ak uz, tak sa berie C++
Pozoruhodny fakt 3: vsimnite si dominanciu funkcionalnych veci.
Z mojho pohladu C# nie je az taky prekvapivy. Musel som v nom nieco spravit a velmi silno v nom citit vplyv Microsoftu. Skoly sa vacsinou snazia o riesenie nezavisle na platformach. Osobne zvlastne pozorovanie z MFF: Prednasajuci C# (guru v C#) zaroven na prirodnych vedach prednasa Office. Vela ludi u nas ma rado C# a nic ine a dalsia velka skupina ma rada okre C# vsetko ostatne. Ono dost ludi je na hrane MS vs Unix. Funkcionalne naprilad neriesia strukturalne vs OOP.
<<

alef0

Site Admin

Príspevky: 621

Registrovaný: Štv Nov 16, 2006 8:57 am

Poslať Pon Dec 13, 2010 10:21 am

To su detaily a daj si to v hlave tak dokopy, aby Ti to sedelo Myslim, ze vyhody, nevyhody a pouzitie roznych jazykov sa da vysvetlit tak, aby si studenti mohli vybrat, co sa im zda sympaticke. Ja by som im silno odporucal Python, ale keby chceli C++ alebo Haskell, budiz po ich vola. Python by som vybral ako default, lebo nim asi nie je co pokazit.

Vyborne. Urob prezentaciu na 30 slajdov ,,aky jazyk zvolit" :-) Je to dobre cvicenie, ako si usporiadat myslienky a ako ich podat pre ludi, ktori este nevedia zvazit vyhody.

Prorokujem, ze by si skoncil pri tom, ze by si mal predvoleny Python a zvysok by bola len komunisticka falosna volba.

Skus na 10 studentoch spravit experiment s Pythonom. Ak chces, v lete Ti pomozem 3-5 dni s pripravou slidov.

Podumem, ako by sa to dalo vymysliet technicky.

Inak prehlad uvodnych kurzov na inych univerzitach:
Z cirej zvedavosti, ako si sa k tomu dostal?

Letmy Google :-) http://stackoverflow.com/questions/6440 ... ties-teach

Doplnil som dalsie. (opat letmy google)

---------------------------------------

Problem s C# sipim primarne v tom, ze univerzity, co ficia na Linuxoch, resp. americke prostredie, kde *hordy* ludi maju Macy, by ho asi ani nemali kam nainstalovat prostredie C#. Navyse na zaciatocnickej urovni je to filozofiou i jazykovo ekvivalentne s Javou.

Funkcionalko je vyhodne preto, ze je blizke matematickemu zmyslaniu, a navyse existovali materialy a skusenosti (napr. ktosi pisal, ze jeho indonezska univerzita isla presne podla MIT kurzu.)
Lorem ipsum dolor sit amet.
<<

Azteq

Príspevky: 147

Registrovaný: Ned Feb 24, 2008 11:02 am

Bydlisko: Prešov

Poslať Pon Dec 13, 2010 5:47 pm

s Pythonom som sa tiez zoznamil vramci jedneho predmetu na UPJS, ale musim povedat, ze to nieje uplne jazyk pre zaciatocnikov

je pravda ze dava dost vela moznosti atd. a tiez ma dost zaujal, a zevraj sa v tom robia programy rychlejsie ako v Java, ale tiez som cital ze su pomalsie ako v Java (hm)
+ ma zaujimavu vlastnost ze nema zatvorky a tym padom je dolezite odsadenie, neviem ci by s tym nemali problem zaciatocnici
teda kod v Pythone je kratsi oproti Jave alebo C++

co sa tyka OOP v Pythone je to take nestabilne, ziadne public, private a protected atd atd. a ine vymozenosti

podla mna zaciatocnik potrebuje nejake obmedzenia a tak, trosku menej volnosti

Python je zaujimavy ale az pre pokrocilych programatorov
<<

alef0

Site Admin

Príspevky: 621

Registrovaný: Štv Nov 16, 2006 8:57 am

Poslať Uto Dec 14, 2010 1:09 am

Programy sa pisu rychlejsie, kedze je to principialne skriptovaci jazyk, este o uroven vyssie nez Java. Na rozdiel od PHP je vsak dynamicky typovany = kazda premenna ma v kazdej chvili jasne dany svoj typ, ale nemusis ho deklarovat. Priklad:
  Kód:
i = 5

Presne ako v Basicu :-) Nemusis pisat bodkociarky (ale mozes).

Namiesto begin/endov, resp {, } sa pouziva odsadenie, co je vyargumentovane tym, ze skaredy program nepobezi
  Kód:
for cislo in range(1,10):
  println(cislo)

Neviem ako s odsadenim si poradia uvodnici, toto nemam otestovane v praxi. V Pascale sa realne stava to, ze ludia odsadenie nerobia a chvilu im trva, kym si zvykne na vela ENDov, hlavne, ked sa to zacne kopit.

Ten vyvoj je rychlejsi ako v Jave, hlavne kvoli strucnosti zapisu. (Akurat v extreme moze poviest k write-only kodu.) Finty ako skratky pre polia, list comprehensions, funkcionalne veci a podobne su dost fintive.

Rychlostou behu by som neargumentoval, lebo o to v tychto jazykoch vobec nejde. Navyse, Python je nastaveny tak, ze co ti ide pomaly, prepises do Ccka, kedze prepojenie medzi tymito dvoma jazykmi bolo v zameroch autora.

OOP je do istej miery dedicstvom toho Ccka, menovite ziadne public / private metody (riesi sa to konvenciou) a rovnako mna osobne drazdi to, ze metody musia mat povinny parameter self (ako this). Ale co sa tyka ostatnych veci, je to zarovno. Opat ale, bez discipliny da sa velmi rychlo vyrobit kod, v ktorom sa prestanu vsetci orientovat.

(Inak sesternicou Pythonu je Groovy, co je Java#, teda jazyk pre JVM s featurami a la Python, ale umoznujuci pozvolne pritvrdzovanie syntaxe az k Jave.)

podla mna zaciatocnik potrebuje nejake obmedzenia a tak, trosku menej volnosti

Toto je velmi dobra poznamka, lebo na zaciatocnikov v hocicom treba tvrdo, inak sa rozbehnu do divoka. Otazka je, ktore obmedzenia su otravne a ktore udrziavaju disciplinu.

V kazdom pripade, tu je problem, ze neexistuje metodika a ani skusenosti.
Lorem ipsum dolor sit amet.
PredchádzajúciĎalší

Späť na Pripomienky k predmetom

Kto je on-line

Užívatelia prezerajúci fórum: Žiadny registrovaný užívateľ nie je prítomný a 1 hosť

cron
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group.
Designed by ST Software.
Slovenský preklad.