Fórum Root.cz
Práce => Studium a uplatnění => Téma založeno: Lukyy 15. 02. 2026, 12:29:41
-
Dobrý večer, chtěl bych se vás zeptat konkrétně okolo základů programování.
Jsem v 1. ročníku na VŠ a jako předmět v LS máme Algoritmizace a základy programování, bohužel tento předmět je jeden z mála, kde se dost vyhazuje, ale máme ho jen v tomto semestru, poté už v dalších ročnících nebudeme mít další podobné předměty okolo informatiky. Chtěl bych se zeptat, zda máte někdo zkušenosti s algoritmizací, pokud jste tím byly úplně nepolíbeny, popřípadě neměli jste moc velké logické myšlení? Co vám nejrychleji pomohlo se toto našrotit?
Děkuji
Toto jsou témata v osnově:
Základní datové typy, deklarace proměnné, základní operace s čísly, vstupy a výstupy dat. Použití nástrojů umělé inteligence při programování.
Operátory a výrazy, logický datový typ, příkaz if a blok. Algoritmy s větvením.
Metody pro matematické operace. Algoritmy s větvením.
Příkaz cyklu while a do. Algoritmy s cykly bez použití polí.
Příkaz cyklu for, příkazy skoku. Algoritmy s cykly bez použití polí.
Datový typ pole. Jednorozměrné pole. Konverze mezi datovými typy. Algoritmy na jednorozměrném poli.
Datový typ char a string. Operace s řetězci znaků. Ladění programu. Algoritmy na jednorozměrném poli.
Vícerozměrné pole. Algoritmy pro práci s maticemi.
Algoritmy pro práci s maticemi.
Metody - deklarace statické metody, parametry, volání, příkaz return.
Algoritmy s použitím podprogramů. Ladění programu s podprogramy.
Řadící a vyhledávací algoritmy.
-
Na jaky to je skole?
Asi bych zjistil, v jakem jazyce se resi prakticka cast (aby jsi netristil sily a nesel proti "vudci") - a pak si nasel kamarada, ktery to s tebou projde nejak predem, abys treba uz na prednasce vedel ktera bije a jen si utridil zakladni znalost do formatu jakym se to bere na dane skole/predmetu.
Tu umelou inteligenci bych z toho vynechal, to je kontraproduktivni v teto fazi.
Naopak mi tam chybi napr - rekurze!
-
Ekonomka? ;D
Pokud si nechceš nebo neumíš vygooglit skripta na netu, a něco použitelného najdeš na stránkách každé lepší střední školy nebo učitele, který stojí za řeč, opatři si tuhle učebnici:
https://ucebnice.heureka.cz/algoritmizace-ing-jana-psencikova/#prehled/ (https://ucebnice.heureka.cz/algoritmizace-ing-jana-psencikova/#prehled/)
Většinu uvedených témat v ní najdeš a ten zbytek, který smrdí Javou a Artificiální Imbecilitou, potom můžeš nakoukat na YouTube.
-
Hlavně to chce nějakou praxi. Vezmi si nějaké jednoduché úkoly a ty si naprogramuj
- základní kalkulačka
- vyhledávání maxima/minima v poli
- házecí kostka pro hry (čtyřstěnná až kdovíjaká, házení pomocí dvou kostek...)
- hlídání spotřeby auta (vložíš stav tacho a kolik jsi tankoval, ukládá si to do souboru a počítá nad tím)
Máš-li alespoň nějaké základy jak algoritmizace funguje - logika, větvení, smyčky, podprogramy - pak přemýšlej nad algoritmizací běžných úloh v životě - nemusíš v konkrétním jazyce, ale obecně. Například jak přejít silnici:
Vidíš přechod pro chodce?
- ano - jdi k němu.
- je se semaforem?
- ano - ...
- ne - rozhlédni se
- je volno?
...
- ne - riskni to a nenech se zajet autem.
Potom můžeš tyto postupy formalizovat do programovacího jazyka.
-
Dám taky radu. Při učení je důležité vědět na co mi to bude. Sice jsem na VŠ měl už nějaké základy díky koníčkům (dělal jsem webovky, pak jsem je vylepšoval o návštěvní knihu apod.., na střední jsme programovali jednoduché aplikace - kalkulačka apod. ve výpočetce atd..), ale reálnou užitnou hodnotu pro to jsem našel až když jsem si zkoušel programovat numerické metody do matiky. Pak byl skok k tomu, že jsem začal dělat zpracování laborek v MATLAB (který jsem kvůli častému vyplýtvání licencí změnil za OCTAVE), jednak se člověk tím sám něco naučí, neboť když ten program zpracovává, tak si dost musí nastudovat, a navíc jen tupě nebere od spolužáků, "zaručeně funkční excell", kterej to spočítá a má pak bez práce odškrtnuto. Dost mi to pomohlo a člověk zjistí, že je to dobrý umět.
-
dcera je na jazykovem gymplu a studuje anglictinu a francouzstinu a taky maji na stredni skole predmet algoritmizace.
ucitel se snazi do nich dostat zaklady pythonu, ale dcera je dost rezistentni a nechce se ji to ucit, tak se ji to snazim
vysvetlovat, ze kdyz se uci jazyky, ze tohle je taky jazyk :-)
-
Já bych doporučil si to procvičovat na psaní jednoduchých her v konzoli. Například napsat si jednoduchou hru miny kterou budu vykreslovat v konzoli, nebo game of life. Tam se tohle všechno dá krásně procvičovat a zůstane vám to už pak v hlavě napořád. Rozhodně nepoužívat umělou inteligenci a když už tak jí hodit svůj kód aby mi pomohla najít chyby.
Já jsem si takhle dělal miny v C++. Sice jsem je nikdy nedodělal ale to nebylo důležitý. Předmět jsem dal a bavilo mě to víc jak číst knížky / scripta.
-
Začni programovat a ono to přijde.
-
dcera je na jazykovem gymplu a studuje anglictinu a francouzstinu a taky maji na stredni skole predmet algoritmizace.
ucitel se snazi do nich dostat zaklady pythonu, ale dcera je dost rezistentni a nechce se ji to ucit, tak se ji to snazim
vysvetlovat, ze kdyz se uci jazyky, ze tohle je taky jazyk :-)
Možná by se jí líbil COBOL :-)
-
Ako uz bolo vyssie spomenute, vediet rozmyslat algoritmicky. Npr. Kavovar.
Hned po po zapnuti.
1. Ked je dostatok vody v zasobniku pokracuj na riadok 2, ked nieje, zapni cervenu kontrolku malo vody.
2. v slucke caka na stlacenie tlacidla co ma varit.
Po stlaceni tlacidla sa slucka ukonci, program pokracuje dalej, "riadok po riadku"..
3. zapne zohrievanie vody
4. v slucke bude koktrolovat teplotu vody, ak teplota vody dosiahla nastavenu teplotu, zapne sa cerpadlo, pocka npr 10sec, vypne cerpadlo, slucka sa ukonci
5. kavovar sa vypne.
atd...
Potom je to uz iba o nauceni sa syntax a specifika konkretneho prog. jazyka.
Navodov, kurzov je na youtube neurekom. Ale vyzaduje si to cas a hlavne realne skusat priklady z kurzov aj domace ulohy.
-
Přijde mi, že tu spousta lidí napsalo jeden random příklad, ale mnohem užitečnější by bylo vypsat seznam zdrojů, kam se na ty příklady třeba jako chodí. Ideálně třeba i s vysvětlením jak se to mělo řešit, když to člověku nejde.
Takže: https://adventofcode.com/, https://ksp.mff.cuni.cz/z/ - úlohy, komentovaná řešení, a hromada textů okolo (https://ksp.mff.cuni.cz/encyklopedie/)
-
...
Hele tohle jsou veci co se ucej decka v krouzcich tak nekde od 5ty tridy ZS.
Ale chapu ze pokud je to soucasti nejakyho toho netechnickyho vzdelavani, tak sem schopen na tom vykopnout klidne uplne vsechny.
Pricemz bez dalsiho ... bych z toho cul veci 30+ let stary (coz by ostatne nasemu vzdelavacimu systemu zcela odpovidalo) protoze sem vazne zvedav, jak budes v charu ... resit unicode (to vyucujici dost pravdepodobne ani netusi). Jinak z toho cuju taky to, ze veci jako quick/bublesort jsou asi porad v mode ... protoze kazdej neprogramator prece zacne databazi ...
Pokud se navic bavime o algoritmizaci, tak to ma s programovanim spolecnyho jen velmi malo, a s nejakym konkretnim jazykem vlastne nic. Jakkoli to k sobe patri. Libovolnej recept v libovolny kucharce je totiz algoritmus. A algoritmizace = schopnost takovej recept sepsat.
vezmi konvici
napln do ni 1/2l vody
zapni ji
vezmi pytlik caje
vloz ho do hrnku
pokud voda bubla ... nalej ji do hrnku
pokud ne, bez o krok zpet
neopar se
-
Pricemz bez dalsiho ... bych z toho cul veci 30+ let stary (coz by ostatne nasemu vzdelavacimu systemu zcela odpovidalo) protoze sem vazne zvedav, jak budes v charu ... resit unicode (to vyucujici dost pravdepodobne ani netusi). Jinak z toho cuju taky to, ze veci jako quick/bublesort jsou asi porad v mode ... protoze kazdej neprogramator prece zacne databazi ...
Ve škole se Unicode učí obvykle až později. Char pro začátečníky úplně stačí. Už i "ch" jim dokáže zamotat šišku, nehledě k tomu, že v angličtině je to jinak. Sorty prověří schopnosti algoritmizovat. Je to dostatečně univerzální zadání, které často dostávají v přijímacím řízení. Objektové programování bych ve školství moc nehledal, stejně jako SOLID a další užitečné praktiky.
-
Jenze tady se nebavime o nejaky vyuce programovani, tady se bavime o ychtylnim napadu na tema ze telocvikar prece taky musi umet programovat ... a kdyz ne, tak ho na tom aspon z ty skoly vykopnem ...
Tyhle veci proste na VS vubec nepatrej. Bud je to skola kde je programovani soucast oboru, a pak tohle vsichni umej uz od zakladky, nebo je to skola, kde to vubec nanic nepotrebujou, a pak to tam nema co pohledavat.
Pro technicky mysliciho cloveka 18+ je to ucivo tak na 10 minut, to je tak cas za kterej to pochopi cely. By me zajimalo, co chces na hodinovy prednasce treba vysvetlovat na if/then/else ... (a je uplne jedno v jak uchylny syntaxi jakyho jazyka to budes realizovat)
Dtto char ... to uz kdyz uz tak zacnu bitama a bajtama ... a pak mozna dojdu k tomu, ze int == char == byte (a ve spouste jazycich je to zcela libovolne zamenitelny).
Pokud uz budu chtit neprogramatora naucit neco na tema script trebas v nejakych tech opicich ... tak snim vubec nebudu resit datovy typy, protoze to je leda naprosto velegiganticka kopa sracek. Protoze to musis zacit instatne resit miliardu architektur, indiany, explicitni vs implicitni konverze atd atd atd.
-
Jenze tady se nebavime o nejaky vyuce programovani, tady se bavime o ychtylnim napadu na tema ze telocvikar prece taky musi umet programovat ... a kdyz ne, tak ho na tom aspon z ty skoly vykopnem ...
Tyhle veci proste na VS vubec nepatrej. Bud je to skola kde je programovani soucast oboru, a pak tohle vsichni umej uz od zakladky, nebo je to skola, kde to vubec nanic nepotrebujou, a pak to tam nema co pohledavat.
Tělocvikář má umět pracovat s nějakým kancelářským balíkem aby v něm zvládl plány učiva nebo seznam žáků na školní akci. To se obejde i bez algoritmizace.
Pro technicky mysliciho cloveka 18+ je to ucivo tak na 10 minut, to je tak cas za kterej to pochopi cely. By me zajimalo, co chces na hodinovy prednasce treba vysvetlovat na if/then/else ... (a je uplne jedno v jak uchylny syntaxi jakyho jazyka to budes realizovat)
Třeba to, že else dává smysl jen u ternárních operátorů :-)
Dtto char ... to uz kdyz uz tak zacnu bitama a bajtama ... a pak mozna dojdu k tomu, ze int == char == byte (a ve spouste jazycich je to zcela libovolne zamenitelny).
Pokud uz budu chtit neprogramatora naucit neco na tema script trebas v nejakych tech opicich ... tak snim vubec nebudu resit datovy typy, protoze to je leda naprosto velegiganticka kopa sracek. Protoze to musis zacit instatne resit miliardu architektur, indiany, explicitni vs implicitni konverze atd atd atd.
Datové typy považuji v procesu učení za velmi odpudivé a odrazující. Vždy mi stoupá tlak, když vidím někoho, jak vymýšlí deklaraci a mezitím zapomene, k čemu tu proměnnou vlastně chce. Nejdřív algoritmus a teprve pak řešit deklarace. Naštěstí v OOP se to obvykle píše na jeden řádek.
-
pokud voda bubla ... nalej ji do hrnku
pokud ne, bez o krok zpet
Je vidět, že ses tu algoritmizaci neučil déle než těch tvých deset minut.
Pokud bys jí totiž pochopil, použil bys tvar
dokud voda nevře
-
pokud voda bubla ... nalej ji do hrnku
pokud ne, bez o krok zpet
Je vidět, že ses tu algoritmizaci neučil déle než těch tvých deset minut.
Pokud bys jí totiž pochopil, použil bys tvar
dokud voda nevře
Dokud voda nevře, dělej co?
-
pokud voda bubla ... nalej ji do hrnku
pokud ne, bez o krok zpet
Je vidět, že ses tu algoritmizaci neučil déle než těch tvých deset minut.
Pokud bys jí totiž pochopil, použil bys tvar
dokud voda nevře
Dokud voda nevře, dělej co?
To vypadá na otravu Pascalem. :P
-
pokud voda bubla ... nalej ji do hrnku
pokud ne, bez o krok zpet
Je vidět, že ses tu algoritmizaci neučil déle než těch tvých deset minut.
Pokud bys jí totiž pochopil, použil bys tvar
dokud voda nevře
Co je na to spatně/nepochopeného že cyklus je jen podmíněný skok na začátek?
Algoritmicky je to ekvivalent.
-
if-then podminka a hlavně různé od toho odvozené operátory (tercialni a jiné) jsou naprostá nutnost ... pro každého, kdo chce zkoušet tvoření v Excelu.
Minimálně by v tom předmětu (ať už se jmenuje Algoritmizace nebo ne) měli všem telocvikarum a učitelkam češtiny vysvětlit, že když už mají tři nebo čtyři IFy v sobě (a to celé na každém řádku a opakovaně v několika sloupcích), že je to blbě a že je to ten moment, kdy se maji zvednout a dojít si pro pomoc k někomu technicky zkušenému
-
pokud voda bubla ... nalej ji do hrnku
pokud ne, bez o krok zpet
Je vidět, že ses tu algoritmizaci neučil déle než těch tvých deset minut.
Pokud bys jí totiž pochopil, použil bys tvar
dokud voda nevře
Co je na to spatně/nepochopeného že cyklus je jen podmíněný skok na začátek?
Algoritmicky je to ekvivalent.
Co je špatného na BASICu a GOTO? No, pro mě nic, je to můj "mateřský" jazyk, ale opravdu bys osmapadesát let po Dijkstrovi (https://homepages.cwi.nl/~storm/teaching/reader/Dijkstra68.pdf) chtěl učit programování stylem z Babbageova Analytical Engine? :P
snugar_i: dokud voda nevře, kontroluješ, jestli na rychlovarné konvici svítí kontrolka. Tam si můžeš odchytit výjimku. Lama bude prostě jen čekat.
-
Co je na to spatně/nepochopeného že cyklus je jen podmíněný skok na začátek?
Algoritmicky je to ekvivalent.
Iba pre úplnosť, skok na začiatok môže byť nepodmienený. Podmienený môže byť vstup do tela cyklu. ;-)
-
Trochu nám tady ta diskuze utíká do offtopicu a "Lukyy" nám někam zmizel.
Učím programování (a algoritmizaci beru jako podmnožinu) pár desítek let.
Nikdy jsem nikoho nevyhodil pro to, že k nějaké dílčí schopnosti nemá dispozice.
A občas má, například s dekompozicí, někdo značné obtíže.
Každý, kdo se na to nevyflákne, nebo na to nejde podvodem má šanci se posunout aspoň na úroveň, že o tom má nějaké povědomí. Programování beru jako užitečnou dovednost použitelnou v mnoha oborech a životních situacích (a to jsem i tělocvikář). Zároveň si nemyslím, že je nutné, aby uměl programovat každý.
Takže tipy pro Lukyyho
* zjistit proč je to vyhazovací předmět, co konkrétně bývá důvodem?
* spolupracovat s ostatními studenty
* nečekat na závěrečné zkoušení a chtít průběžnou zpětnou vazbu
* komunikovat s učitelem, pokud je to možné, sdělit obavy, ptát se na řešení té situace (rozumný učitel skutečnou snahu kladně ocení)
* pokud komunikace nefunguje a hrozí problém, komunikovat (diplomaticky) s některou z vyšších instancí, nejlépe jako skupina studentů a nejen jako jednotlivec