Byl jsem požádán (prý když jako dělám do těch počítačů http://www.komik.cz/cedule/38-pc/ :smile1: ), jestli bych nedal poradní hlas na téma: jaký programovací jazyk vyučovat na střední škole.
Prohledal jsem web, diskuze na tomto i jiných serverech. Nakonec mi z toho vyšlo C/C++. U mě vyhrál díky kvalitě nabízených IDE, budoucímu uplatnění, "kompatibilitě", komplexnosti. V závěsu je Python, následovaný Pascalem. Ten byl dlouho favoritem pro jednoduché IDE a jednoduchý jazyk, ale nakonec to pro něj byla i přítěž (v TP nelze používat Ctrl+C, Ctrl+V, objekty v Pascalu jsou dost těžko stravitelné apod.) .... mohl bych tu o tom psát dlouho, ale spíše mě zajímají vaše názory.
Co vy na to? Čím začít mořit (možná) budoucí programátory na střední škole? Máte jiný tip? A proč?
Fórum › Offtopic
Jaký programovací jazyk
Ono je to otazka sama o sobe..
- Pascal byl vytvoren prave pro vyuku, hodne hlida programatora (hlavne zasahy mimo pamet)
dulezitou vlastnosti jsou hlavne striktni typy promennych (to vzasade chybi ve vetsine interpretovanych jazyku)
pokud zacina clovek bez jasnych typu, bude mit znacne problemy je pak dodrzovat pokud prejde na jazyk, ktery je ma.
- C je systemovy jazyk.. nebyl nikdy urcen pro vyuku, ale pro snadnou tvorbu prenositelneho kodu a aby byl rychly prakticky nic nekontroluje (samozrejme se da zapnout -pedantic a -Wall pripadne strict ansi - ale stale dovoli vsechno mozne..)
Vyhodou je ze clovek muze pretypovat mravence na nakladak nebo podobne, nevyhodou je, ze zacatecnik se v tom muze slusne topit (obzvlaste rozsahy poli)
u obou bych byl za to, aby se IDE vubec nepouzivalo.. textovej editor je na to vic nez dostatecnej.. (pspad, gvim)
interpretovane necham asi na jindy :)
Zdravím,
nejsem sice pedagog, ale prgramováním jsem si taky hodně prošel(průmyslovka + VUTčko) a myslím, že nemá cenu na střední škole vyučovat C++. Důvody jsou celkem pádné:
- studenty nikdy nenaučíte složitější konstrukce(možná některé ano, ale i tak)
- studium tohoto jazyka vyžaduje podstatně hlubší znalosti
- studium na střední škole je takové pozvolnější a je téměř nemožné se dostat k nějakým pokročilejším projektům(max. samostudiem)
Podle mě je lepší Java. Dá se velice rychle zvládnout, obsahuje spoustu knihoven, naučit se dá poměrně dobře i do hloubky cca za rok, spousty knihoven, spousty literatury, napíšete v tom, stejně jako v C++, úplně všechno a je to multiplatformní, stejně jako C++. Navíc, máte jednotný kompilátor, perfektně propracované IDE(jak Eclipse, tak Netbeansy), prostě paráda. Nemůžu na Javu dopustit, ale neříkám, že C++ je špatné.
Plánuju o Javě nějaký menší webík zabývající se připojením a bezpečností, pokud by Vás to třeba zajímalo, ozvěte se na mixxy(zavináč)seznam.cz
Podľa môjho názoru by určite nemali začínať z objektovým prístupom, aj keď je fajn. Zo začiatku treba pochytiť hlavne základy vytvárania algoritmov. Ja by som určite bol za pascal, lebo je prehľadný a najbližšie sa približuje syntaxou myšlienkovým pochodom programátora.
Však Java není striktně objektově programovací jazyk. A když se od začátku člověk naučí s objektama, nebude mu dělat problém přechod z funkcionálního programování na objektově orientované.
Já jsem osobně na střední škole podstoupil 2 roky programování v Delphi. Nemůžu si stěžovat, protože nás tam neučil nikdo jazyk takový, ale principy programování, přičemž nám jazyk napomáhal jen jako demonstrace příkladů => stačí úplně jednoduchý. Naše hodiny se zkládaly z teorie, kterou nám učitel upřesňoval na papír a dále jsme to převedli na Pascalovský kód, s tím, že bych s patřičnou znalostí jiného jazyka dokázal implementovat algoritmus i do něj. Učili jsme se například jak vypočítat přibližné kořeny polynomů (na přesnost třeba 0.000001) či obsahů ploch pod křivkou grafu, která není jednoduše vyčíslitelná běžným integrálem, takže vesměs numerické metody a základy algoritmů, což je podle mě na střední škole mnohem užitečnější, než učit jazyk jako takový.
jenze co se teorie tyce - kazdy zacinajici ma jednu blbou vlastnost - netrpelivost. Proto je tu porad samy vlakno, kde se chtej ucit na necem velkem (nejlepe 3D hra ve stylu far cry a podobne)
proto pak zacinaj napriklad na nepouzitelne jave - kde vse je a staci to jen poslepovat nejakym zpusobem dohromady...
pokud nekdo pak zacinal prave na podobnem jazyce, nedokaze vubec myslet nad tim, jak muze neco fungovat uvnitr casti, ktere slepuje... je to proste delnik... (jediny dobry ze to ma aspon nejakej naznak kontroly typu :D), zatracene velka nevyhoda je garbage collector - pokud pak prejde treba na C nebo C++ tak je z toho neskutecnej brajgl - nedej boze ze by chteli nahodou udelat nejakou systemovou sluzbu.. by brzo zabiralo vic jak ta java :D
Nešlo ani tak o něco komplexního, protože na to není střední škola (a ani její žáci) připravena. Jde o to dostat se přes jednoduché příkazy, podmínky, cykly, proměnné, pole, struktury až k objektům, seznamům, stromům .... vše jim nějak stravitelně podat. Mají na to 2-3 roky. A nejlépe právě v tom jednom jazyce, aby nezačali Pascal, protože je jednoduchý a pak dělali objekty třeba v Javě apod. Střední škola je spíše o tom, jestli na to člověk má nebo ne a řekl bych, že je to hodně vidět i zde na fóru.
Začal bych Pascalem. Říkejte si co chcete, ale z jazyků co znám je Pascal nejjednodušší - tím myslím že jeho zdrojovy kódy se čtou jako kniha (narozdíl třeba od C/C++) ono přece jenom, začátečníkovi spíš něco řekne
begin
writeln(6*7);
write('hello, world, I am ', 6*7);
end.
než
#include <stdio.h>
int main()
{
putint(6*7);
printf("\n");
printf("hello, world, I am %d",6*7);
return 0;
}
ono, většina žáků (z mé zkušenosti, u nás ve třídě to tak bylo přesně) vykřikuje "K čemu nám bude pascal!", popřípadě u příkladů tvrdí "Já bych to klidně naprogramoval, kdybych to psal v nějaky normálním jazyce!", což je samozřejmě blbost. Hlavní je naučit se princip programování, naučit se programátorsky myslet a to se člověk naučí v Pascalu, C/C++, Javě i kdekoliv jinde. Na naučení se jiného, použitelnějšího jazyka bude času ještě spousta. Hlavní je něco s opravdu jednoduchou sytaxí, co dokáže obejmout velký rozsah učiva (Pascal umí aji OOP) a ještě jednou, opravdu jednoduše se v něm píše. Zastaralé IDE je opravdu problém, ale i u nás, kdo píše v Pascalu, stejně to píše v PSPadu, Notepadu++ a podobně a IDE Pascalu používá pouze pro kompilaci (a to pouze proto, že si ještě svůj editor nenastavil, aby ten kompiler sám používal). Budoucí uplatnění bych jako kritérium bral někde na vysoké škole a podobně, ne pro lidi co se programování učí česrtvě. Sám jsem začínal na Pascalu, pak přešel na Delphi, C/C++, pak zkoušel aji Scheme či Smalltalk, ale na začátky s Pascalem rád vzpomínám (ač přiznám se, taky jsem tehdá nadával "k čemu mi bude umět takovýhle jazyk"). Takže, pokud bude někdo brát ohled na můj názor, dávám hlas Pascalu (což samozřejmě neznamená, že si myslím, že by se nedalo začínat i s jiným jazykem). Akorát bych do nich hnedka ze začátku necpal Cčko, podle mě má opravdu dost složitou a na první pohled lehce zmatenou syntaxi.
Python je nejlepší jazyk pro začátečníka:-)
Najdete zde články zabývající se matematikou základních a středních škol a databázi hlavolamů.
Pro vyzkoušení Vaš
Rekl bych, ze zalezi na jednotlivci. Napriklad co napisu v C++ za 5 minut, to v Pascalu pisu nejmin pul hodiny a to kvuli podle me neprehledne syntaxi. Napriklad cyklu apod. Same dvojtecky, begin, end, jednou to strednik po me chce, jindy krici, ze tam byt nema ... Podle me prilis tezkopadne. Podle me neni spatny ten Python. Jednoduchy a elegantni co se tyce pochopeni algoritmu a nepotrebuje hlubsi znalosti napr. prace s pameti jako v C++.
Stredna škola mi programovanie len znechutila.
Je to stale o učiteľovi a spolužiakoch. Ich prístup k tomu je dôležitý.
Ak sa nejande nadšenie zo strany žiakov, dal by som im pokoj.
Môj názor.
To gatuso : Třeba na programujte.com http://programujte.com/?akce=clanek&cl=1970010106-python-popis-jazyka . Hodně věcí se sice s přechodem na verzi 3 stane nepodporovanými, ale jinak solidní základ...
za mě doporučuji python, krasna privetiva syntaxe; zadne prasarny, syntaxi taky vede k dobrym navykum v odsazovani kodu.
Já jsem pro nevyučování programování na SŠ - nikdy se o to nebudou zajímat všichni, ne všichni na to mají buňky– díky tomu jsou ty hodiny v podstatě o ničem - buď učitel říká, napište tam to, tady toto a zmáčkněte F5 (což nemá smysl). A nebo učitel jednostraně, ačkoliv poutavě, vysvětluje teorii, všichni brouzdají po netu a pak při známkování si to od někoho okopčí nebo na to kašlou...
Když Pascal, tak Lazarus (FP)- nebude problém s IDE.
A nebo starý IDE DevPas a nastavit mu cesty k novému FreePascalu.
Ale dneska bych vybral C# - je moderní, hodně dokumentace v češtině, free nástroje.
(český materiál k současnému freepascalu jsem neviděl.)
Studuji zatím ještě střední školu a přitom se aktivně zajímám o programování. A toto je zajímavé téma, takže také přispěji svou troškou do mlýna.
V prváku jsme měli základy programování v Delphi. Ve druhém ročníku také, přibylo kódování v HTML a CSS. Ve třetáku je opět Delphi a k tomu ASM (pro 8051čky), příští rok Cpp a ASM pro x86. Jak to probíhá? Učitelé se snaží, ovšem studenti na to "dlabou" a začnou se o téma začínat až při závěrečných pracích. Dopadá to katastroficky a to tak, že co za ně neuděljí druzí tak nemají.
Ale v ideálním případě by to podlě mě mělo být o znalostech technik a algoritmizaci. V jednom jazyce (+HTML samozřejmě - to je tak jednoduché, že se ani nepočítá) se naučit algoritmizaci, naučit se "správně" programovat, vysvětlit si pojmy, dokázat samostatně řešit problémy a přemýšlet o nich, apd.
OOP bych vynechal - úplně. Když student nedokáže popsat a naprogramovat alespoň jeden třídící algoritmus, k čemu mu bude když to něj budete rvát polymorfismus, zapouzdření atd.? A jazyk - to už nechám na vás, nemám zkušenosti třeba z výše zmiňovaným Pythonem, ale asi nebude tak špatný :)
No, ja ako skalný zástanca C++ by som odporučil práve tento jazyk. Prečo? Lebo je kreatívny, nebráni nikomu v ničom, ale je trochu ťažší na kontrolu kódu/debug/ladenie. Potrebujete si vytvoriť špecifický dátový typ ? V C++ je to možné. C# vám neumožní používať slovo typedef, pretože nie je to podľa MS bezpečné. Ale zase na druhú stranu C# má skvele IDE, rôzne iné možnosti rozšírenia (WPF/WCF) atp. C# nie je môj obľúbený jazyk a to z toho dôvodu, že pokiaľ potrebujete akúkoľvek smiešnu knižnicu, treba sa prebíjať stránkami MS a sťahovať neúrekom dát ( DirectX SDK napr. 0.5 GB (!) ). Je bezpečné z pohľadu "pointerov" a "adries", takže vám nedokáže zhodiť PC ako C++. Takže pokiaľ by som mal učiť niekoho nejaký jazyk tak buď C# alebo C++, tu rozhoduje zameranie a i.
Já doporučuji Python. Dokonce v něm i učíme algoritmizaci na soustředění pro středoškoláky pořádaném MFF UK http://ksp.mff.cuni.cz/sksp/2010J/. I ti kdo neumí programovat ho velmi rychle pochopí a pak se může přejít na výuku algoritmů a informatického přemýšlení. Pascal a C jsou hodně nízkoúrovňové, ono v dnešní době by měl sice každý programátor umět pracovat s pointery a pointerovou aritmetikou, ale pro začátek může začít se zajímavějšími příklady, jako třeba různé grafové úlohy.
To Saphire :
Jenomže na konzolovky dneska nikoho nenalákáš a jak se budou nováčci tvářit na tkinter, je otázka.
(Py3 mám rád kvůli češtině (unikode), ale oknovky si radši dělám v něčem jiném)
Mé požadavky by byly:
free řešení ( hóóóódně),
+ aby konzolovka zvládala nativně vstup i výstup v češtině ( PY3, C#, možná i další...),
+ intuitivní tvorba oknovek (C#),
+ dostatek dokumentace, i v češtině
Nejsem profi ajťák, pouze koníčkář.
Ja jsem na stredni zacal s C, pred tim jen nejakej Visual Basic.
V prvaku na vejsce jsme meli pascal a C....
Druhak seznameni s javou + object pascal (delphi).
Pak uz jen C++az do tretaku, kde byl jeste semestr php.
Muj osobni nazor k temhle jazykum....
Zacnu pascalem..... na nauceni zakladu neni spatnej, ale muj nazor je ten, ze kdyz uz se mam ucit neco, tak se budu ucit neco perspektivniho......
To je pro me C a C++. C a zaklady ASM pro mikrokontrolery a C++ pro PC.
Nevim jak python a podobny jazyky, ale MUJ osobni nazor je ze C++ je jednim z nejsilnejsich jazyku, co se vykonnosti tyce a rozsirenosti....trochu jsem strejchnul i C#, ale to je pro me pouha nadstavba c++...
Java - je podobna c++, ale vykosiila zacatecniky zatracovanou, programatory milovanou vec - pointery. Jinak jak jiz napsal KIIV, je to o slepovani....ma sirokou zakladnu standartnich objektu takze je to spis o znalosti funkci a lepeni....., ale to i PHP a C#
PHP - no ted me tu ostatni asi sezerou, ale tohle je nejblbuvzdornejsi jazyk s jakym jsem se setkal....bez urazky ale v tomhle se nauci programovat snad kazdej a rozhodne nedoporucuju zacinat s nim, protoze u tohohle jazyku muze clovek chytit spatne navyky, a kdyz pak zkusi treba C nebo pascal, tak bude klejt jak dlazdic.....(kdyby nekdo nevedel kam mirim, tak treba automaticke konverze typu, deklarace promennych kdykoliv a kdekoliv -> toto dovoluji i jine jazyky)....
takze MUJ doporucenej postup je....pro zaklady programovani C nebo C++. Myslim ze je jedno jestli se clovek zacne ucit C nebo C++. Osobne bych sel pres C na C++, protoze C++ je trochu benevolentnejsi v nekterych vecech nez C a podle me je lepsi zacit s prisnejsimi pravidly..... Po zvladnuti C prechod na objekty v C++. Po zvladnuti objektu v C++ prechod kamkoliv jinam.....Java, Php, C#.....
H4wk.cz napsal:
Já doporučuji Python. Dokonce v něm i učíme algoritmizaci na soustředění pro středoškoláky pořádaném MFF UK http://ksp.mff.cuni.cz/sksp/2010J/. I ti kdo neumí programovat ho velmi rychle pochopí a pak se může přejít na výuku algoritmů a informatického přemýšlení. Pascal a C jsou hodně nízkoúrovňové, ono v dnešní době by měl sice každý programátor umět pracovat s pointery a pointerovou aritmetikou, ale pro začátek může začít se zajímavějšími příklady, jako třeba různé grafové úlohy.
Nechci rejpat,ale to je presne to co jsem chtel rict v predchozim prispevku....zajimalo by me, kdo se pak bude vracet k pointerum c nebo c++, kdyz bude zvladat graficky aplikace v jak ty rikas High level pythonu....
ASM je nejnizsi uroven, nad nim je C a C++..... a sila C++ je dle meho nazoru, ze pokryva nejsirsi uroven ze vsech mnou poznanych jazyku....
Muj nazor je ten, ze je lepsi jit od zacatku a pak zustat treba u toho C#, ale programator by mel pointery zvladat a mel mit prehled o urovni, ktere jsou pod nim.....
Přidej příspěvek
Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku
×Vložení zdrojáku
×Vložení obrázku
×Vložení videa
Uživatelé prohlížející si toto vlákno
Podobná vlákna
Jaký programovací jazyk? — založil djow
Jaký programovací jazyk? — založil nekdo
Jaký programovací jazyk zvolit? — založil Siopaulo
Programovací jazyk E — založil Nikol
Moderátoři diskuze