Úvod
Základné údaje
Rozvrh
- Prednášky: pondelok 9:00-10:30 F2 a streda 9:50-11:20 F1
- Cvičenia: pondelok 14:50 I-H6 a utorok 9:50 I-H6
Vyučujú
Konzultácie po dohode e-mailom.
Ak nemáte otázku na konkrétnu osobu, odporúčame vyučujúcich kontaktovať
pomocou spoločnej e-mailovej adresy
.
Odpovie vám ten z nás, kto má na starosti príslušnú otázku
alebo kto má práve čas.
Ciele predmetu
- Naučiť sa algoritmicky uvažovať, písať kratšie programy a hľadať v nich chyby, porozumieť existujúcemu kódu
- Oboznámiť sa so základnými programovými a dátovými štruktúrami
jazyka C, nie je však so všetkými črtami tohto
jazyka
- Cykly, podmienky, premenné a ich typy, funkcie a odovzdávanie parametrov, polia, smerníky, reťazce, súbory
- Oboznámiť sa s niektorými základnými algoritmami a dátovými
štruktúrami
- Triedenia, spájané zoznamy, hašovacie tabuľky, stromy, aritmetické výrazy, rad a zásobník, rekurzia, prehľadávanie, vyfarbovanie
- V malej miere si ukážeme aj niektoré črty jazyka C++.
- Aj štruktúry, ktoré sú hotové v C++, Pythone a iných jazykoch, si budeme programovať sami, aby sme videli, čo sa za nimi skrýva
Priebeh semestra
- Na prednáškach budeme preberať obsah predmetu (2x2 vyučovacie hodiny do týždňa).
- Cvičenia budú 2x2 vyučovacie hodiny do týždňa v počítačovej učebni a ich cieľom je aktívne si precvičiť učivo. Hlavnou náplňou cvičenia je riešenie zadaných príkladov pri počítači alebo na papieri. Cvičiaci vám podľa potreby pomôžu a poradia.
- Niektoré príklady bude možné dokončiť aj doma alebo na ďalších cvičeniach.
- Cvičné príklady navrhujeme tak, aby vám ich riešenie pomohlo precvičiť si učivo, čím sa okrem iného pripravujete aj na záverečnú skúšku. Okrem tohto sú za tieto príklady body do záverečného hodnotenia. Najviac sa naučíte, ak sa vám príklad podarí samostatne vyriešiť, ale ak sa vám to napriek vášmu úsiliu nedarí, neváhajte sa spýtať o pomoc vyučujúcich. Možno s malou radou od nás sa Vám podarí úlohu spraviť.
- Cieľom vyučujúcich tohto predmetu je vás čo najviac naučiť, ale musíte aj vy byť aktívni partneri. Ak vám na prednáške alebo cvičení nie je niečo jasné, spýtajte sa. V prípade problémov si môžete dohodnúť konzultáciu. Môžete nám klásť tiež otázky emailom. Ak sa dostanete do väčších problémov s plnením študijných povinností, poraďte sa s vyučujúcimi alebo s tútorom, ako tieto problémy riešiť.
Umelá inteligencia
- Umelá inteligencia (AI) zvládne vyriešiť všetky príklady na tomto predmete.
- Pre pokročilých programátorov je skvelým pomocníkom na zrýchlenie práce.
- Ale na škole nie ste preto, aby ste niečo konkrétne naprogramovali, ale aby ste sa zlepšili v rôznych zručnostiach ako abstraktné myslenie, presné vyjadrovanie, kreatívne riešenie úloh a podobne.
- Na to je potrebné, aby ste riešili zadané úlohy samostatne, bez použitia AI, a tým sa zlepšovali.
- Nepoužívajte umelú inteligenciu na riešenie zadaných úloh, môže však byť užitočná na iné účely, napríklad vysvetľovanie nejasných častí učiva, skritizovanie vašich programov, po tom ako ste ich odovzdali, alebo generovanie ďalších cvičných zadaní.
- Obľúbené prirovnanie: Použitie AI na riešenie domácich úloh je ako zdvíhanie činiek vo fitku vysokozdvižným vozíkom, po anglicky “using a forklift in the gym”
Celkové odporúčania
Prichádzajúci študenti v prvom ročníku majú rôznu úroveň znalosti programovania, podľa toho, koľko sa mu venovali na strednej škole. Preto pre niektorých môže byť tento predmet veľmi ľahký, pre iných veľmi ťažký. Môže sa to zdať nespravodlivé, ale pokročilí študenti už nad programovaním strávili dlhé hodiny a začiatočníci ich bez určitej námahy nedobehnú. Tu sú naše odporúčania podľa toho, aké znalosti už máte na začiatku semestra. Učebnú látku možno zhruba rozdeliť na základné programovacie konštrukty jazyka C a základné algoritmy, ktoré sa budú počas semestra striedať.
| Úroveň znalostí | Náročnosť látky: základy programovania v C | Náročnosť látky: algoritmy, rekurzia | Odporúčanie |
|---|---|---|---|
| Programovať viem len málo alebo vôbec | ťažké | ťažké | Dôležité je začať usilovne pracovať už od začiatku semestra. Odporúčame chodiť aj na doplnkové cvičenia, ďalšie príklady riešiť doma. Neváhajte sa nás spýtať, ak vám niečo nie je jasné. |
| Som skúsený programátor, ale neovládam C | ľahké | ťažké | Aj keď prvé prednášky sa vám môžu zdať ľahké, sledujte učebnú látku, aby sa nestalo, že ste sa niektorými dôležitými vecami ešte nestretli. Nezabudnite riešiť príklady z cvičení a domáce úlohy. Hlavne ale nezaspite na vavrínoch: už po pár týždňoch začneme preberať algoritmy a rekurziu, čo môžu byť pre vás ťažšie témy. Treba preto zamakať aj na tomto predmete a v prípade, že vám učivo robí problémy, neváhajte prísť na doplnkové cvičenia. |
| Som skúsený programátor a ovládam C | viem | ťažké | Podobne ako predchádzajúci riadok. Môžete si prípadne skúsiť napísať test pre pokročilých, môže sa vám podariť preskočiť zopár cvičení. |
| Som skúsený programátor a ovládam aj rekurziu a základné algoritmy (napr. z programátorských súťaží alebo rozšírenej výučby programovania na strednej škole) | ľahké/viem | ľahké/viem | Aby ste sa nenudili riešením ľahkých príkladov, odporúčame test pre pokročilých, vďaka ktorému vám odpadnú niektoré povinnosti. Priebežne sledujte učivo a v prípade nejasností sa pýtajte. |
Literatúra
- Predmet sa nebude striktne riadiť žiadnou učebnicou. Prehľad preberaných tém a stručné poznámky nájdete na stránke predmetu, odporúčame vám si na prednáškach a cvičeniach robiť vlastné poznámky.
- Pri štúdiu vám môžu pomôcť knihy o jazykoch C a C++, o programovaní
všeobecne a o algoritmoch preberaných na prednáške. Tu je výber z
vhodných titulov, ktoré sú k dispozícii na prezenčné štúdium vo
fakultnej knižnici:
- Prokop: Algoritmy v jazyku C a C++ praktický průvodce, Grada 2008, I-INF-P-26
- Sedgewick: Algorithms in C. Parts 1-4 I-INF-S-43/I-IV
- Kochan: Programming in C, 2005 D-INF-K-7a
- Referenčnú príručku k jazykom C a C++ nájdete napríklad na tejto webstránke: https://cppreference.com/c
- Môže vás zaujímať aj video prednášok z iných škôl v angličtine