Nechápu, jak by C++ mohlo být lepší. Java je pro děti ideální, protože se tam nedá nic pokazit a program stejně funguje. Že hned sebere všechnu paměť a poběží pomalu, je věc jiná. U C++ bude hodiny luštit, proč to někde padá.
pokud Javu neznáš, tento rok uč C++ a na něco se vymluv - není nic horšího, než učitel, který si není jist tím, co učí :) .
Možná moc rýpu, ale kamarádi, co šli studovat pajdák, tak na 1 odučenou hodinu počítají 1 hodinu přípravy doma.
Ještě abych upřesnil situaci. Ten věk co píšu, se netýka mé osoby. Mě 15 bylo už dávno :-) Učím na SŠ C++, teď nás sloučili s jinou školou, kde programují v Javě. Ale právě už prváci (15-16 letý děcka). No a naši "programátoři" se bijí s těma jejich, že C++ je na naučení a pochopení problematiky lepší. S Javou nemám osobně zkušenosti, proto se ptám :-) A děkuji za názory.O jaký jde předmět a specializaci SŠ? Jaké programátorské techniky by se měli studenti naučit? Jaký způsob použití nabytých znalostí se dá očekávat (typ aplikací, oblast, technologie)?
PHP jako první programovací jazyk? Kdyby nebyl dynamicky tovaný, tak by bylo velmi vhodné, už kvůli své rozšířenosti a možnosti tvořit weby. Takhle by to byl velmi odvážný krok.
Jinak místo javy můžete zkusit C#
Osobne som zacinal v cistom C (v 16), to ma kus chytilo, principy imperativneho stylu som pochopil takmer hned, neskor som skusal Javu, ale nesedela mi, potom som presiel na C++.
Každopádně pro C++ se najde větší uplatnění než pro Javu.
pokud Javu neznáš, tento rok uč C++ a na něco se vymluv - není nic horšího, než učitel, který si není jist tím, co učí :) .
To bych nedělal. Pokud umí C++, potřebné základy Javy se naučí za víkend.
Nejlepší by samozřejmě bylo učit oba jazyky a vzájemně je kombinovat, ale vymyslet to tak aby to šlo snadno pochopit by asi bylo obtížné a vyžadovalo více vyučovacích hodin
Nakonce je to ale stejně jedno, protože dobré věci mají stejně binding na jiné jazyky
Opět se budu opakovat - nejdříve je nutné definovat cíl (studijní obor, očekávané uplatnění v praxi, návaznost na další předměty, zvládnutí některých konkrétních technologií) a teprve potom prostředky (osnovy, jazyk, cvičení, ...).Prosím opište to tu ještě několikrát, snad to někomu dojde.
... a postupně do toho zapojuj Cčko, jen ty pointry vynech, pointry jsou něco co i jako vysokoškolskej student IT nesnáším a nikdy nepochopím k čemu to proboha existuje
...tak bych volil C++ nebo samotný C. Nemá smysl zabíhat moc do OOP, hlavně ať vědí co je to pointer a jak se používá. Ze zkušenosti vím, že potom na VŠ není na čem stavět a nebo ty jejich programy nemají žádnou kultůru.
Opět se budu opakovat - nejdříve je nutné definovat cíl (studijní obor, očekávané uplatnění v praxi, návaznost na další předměty, zvládnutí některých konkrétních technologií) a teprve potom prostředky (osnovy, jazyk, cvičení, ...).
zacal bych na pascalu pro algoritmizaci, pak python (a aspon se nauci strukturovat si kod :) ) a az pak treba tu javu nebo cecko
mozna me nekdo ukamenuje, ale zacal bych na pascalu pro algoritmizaci, pak python (a aspon se nauci strukturovat si kod :) ) a az pak treba tu javu nebo cecko
DK: Tak pascal bych už mezi použitelné jazyky neřadil. Kdysi nám sice říkali, že je názornej a pro začátečníky dobře srozumitelnej, ale nikdy mi nepřišlo, že by byl lehčí na pochopení než C ve kterým se dá dobře pracovat i dnes. A to aby se učili velké množství jazyků asi také nebude nejlepší, dle mého názoru je lepší aby se naučili jeden nebo dva jazyky, ale pořádně.
neron: Myslím, že je zbytečný začínat učit OOP a pokud to člověk vynechá, tak v tom výčtu zůstane u C++ jen ten pointer. Bylo by asi lepší začínat u procedurálního přístupu. Přece jenom se studenti prvně zeptají "jak to mám udělat" než "co budu mít za data a jak s něma budu pracovat." Vzhledem k tomu, že C++ vyšlo z Cčka které je procedurální, tak se mi zdá lepší začínat v něm...
Java je na učení naprosto na ho..., protože jenom k blbému Hello world potřebuješ asi 10 řádků. Kromě jiných nevýhod.
Java je na učení naprosto na ho..., protože jenom k blbému Hello world potřebuješ asi 10 řádků. Kromě jiných nevýhod.
Takže jedním z nejlepších jazyků pro výuku programování je command line ve Windows - tam stačí napsat "echo Hello World!" a je to. Pro složitější projekty je potom možné využít BAT soubory...
Také názor.
Ano, dovedu si představit, že výuka programování prakticky začne úvodem do příkazové řádky, klidně pod Windows. Otázka je, jak bude výuka probíhat, jaké při ní budou studenti vstřebávat principy....
Re:Java nebo C++ pro absolutní začátečníky?
Profesionální C++ programátoři se platí zlatem
Protože memory leak. When you see it you wil sh*t brix. :)
Teď vážně, pokud nejde o programování embedded zařízení nebo specifických aplikací, kde potřebuješ opravdu maximální výkon (např. grafický engine), pak má málokdo nervy na vlastní memory management nebo si sahat přímo na železo. Nehledě na to, že to prodražuje již tak drahý vývoj.
akce(objekt1, vysledek, objekt2);
namísto:vysledek = objekt1.akce(objekt2);
PS: Já měl tu slušnost v tomto příkladu naznačit, co je vstup, a co výstup ;-)if(hmotnost<minimalhmotnost)pocet++;
...
že ho používají pro tyto účely na M.I.T. asi taky o něčem svědčí.
oba jazyky su relativne komplexne
C++ by u mna vyhralo pretoze je relativne standardizovane
Citace: aoeuC++ by u mna vyhralo pretoze je relativne standardizovane
Hm, nechci rejpat, ale nemůžu se zbavit dojmu, že Java o dost je na tom lépe.
Teraz musím všade dávať aj new() na čo občas zabudnem a zbytočne oveľa viac debugujem a odchytávam výnimky. Na ten new sa dá zabudnúť tak, že pri testovaní sa to neprejaví, až u zákazníka a potom nie je sranda to riešiť.Ako sa dá zabudnúť na new, keď to je kompilačná chyba?
Pro prvotní výuku programování by mohlo posloužit i GNU Octave, zvláště někde na gymnáziu které je obecně zaměřené. Ono se totiž daleko víc studentů kteří potom půjdou na VŠ setká s Octave/Matlabem než s "normálním" programováním.
CitaceTeraz musím všade dávať aj new() na čo občas zabudnem a zbytočne oveľa viac debugujem a odchytávam výnimky. Na ten new sa dá zabudnúť tak, že pri testovaní sa to neprejaví, až u zákazníka a potom nie je sranda to riešiť.Ako sa dá zabudnúť na new, keď to je kompilačná chyba?
Java je na učení naprosto na ho..., protože jenom k blbému Hello world potřebuješ asi 10 řádků. Kromě jiných nevýhod.
Pokud máš na mysli kurz 6.001 (Structure and Interpretation of Computer Programs) tak nedávno buď přešli na python, nebo o tom hodně vážně uvažovali. Důvod byl ten, že PLT Scheme (dnes Racket language), ve kterým se to učilo, se v praxi i v jiných kurzech používá minimálně.
Hmm LISPari prave SICP radi argumentovali, no je to myslim i dost skoda, bylo zajimavy si ty prednasky porovnavat treba s tim, co se prednasi u nas (i styl vyuky atd.).
CitaceTeraz musím všade dávať aj new() na čo občas zabudnem a zbytočne oveľa viac debugujem a odchytávam výnimky. Na ten new sa dá zabudnúť tak, že pri testovaní sa to neprejaví, až u zákazníka a potom nie je sranda to riešiť.Ako sa dá zabudnúť na new, keď to je kompilačná chyba?
ak chcem objekt ako member variable tak to nie je (a nemôže byť) chyba pri kompilácii.
public class Container {
private final List<Object> objects = new ArrayList<>(); // nutné přiřadit, jinak compile error
private final String name;
// private final long id; -> zde by byl compile error
public Container(String name) {
this.name = name; // kdybych tohle zapomněl -> compile error
}
}
...
Neviem ako je to v C++, ale v Jave sa pokojne môže stať, že objekt nemá implicitný konštruktor a v tom prípade je veľmi ťažké "domyslieť si", ktorý z nich sa má automaticky zavolať pri inicializácii inštančnej premennej (popravde, netuším ako je to v C++).
public class Troll {
private int level;
public Troll(int level) {
this.level = level;
}
}
private Troll najväčšíTroll;
class X {
public String retazec = null;
...
}
Člověk by se až divil, kolik proměnných ve skutečnosti vůbec "proměnných" být nemusí.
Vite o nejakem nastroji na vizualni programovani, ktery by mel primocarost Scratche a pritom dospelejsi neodrazoval svym na mladsi uzivatele zamerenym vzhledem? Jestli sem se vyjadril dobre .)
Jak je na tom Lua s vhodnosti pro vyuku?
V Javě má každý objekt implicitní konstruktor...
private Troll najväčšíTroll;
Ako je to v C++, neviem, povedzte niekto znalý.
Troll najväčšíTroll(10);
Troll *najväčšíTroll = new Troll(10);
auto_ptr<Troll> najväčšíTroll = new Troll(10);
foo(Troll(10));
Vzhledem k tomu, že autor tématu již diskuzi zavřel, je toto téma volné pro flame ;)
Každopádně víme, že se jedná o elektro průmku. Takže po nějakém tom uvažování jsem došel k závěru, že nejlepší bude jazyk C podle normy ANSI C89 a postupně vysvětlit ty ostatní, třeba C99. Protože ne všechny překladače hlavně pro různé mikroprocesory budou podle nejnovější normy, je nějaká starší norma to nejlepší co může být. Dovedu si i představit i praktické pokusy třeba na Atmelech, rozblikat diodu, motorek a podobné srandy. Pokud ještě mají kompy s paralelním portem, tak napájet kabel vhodný na programování těch atmelů by neměl být problém...