Programovanie (1) v C/C++
1-INF-127, ZS 2024/25

Úvod · Pravidlá · Prednášky · Softvér · Testovač
· Kontaktujte nás pomocou e-mailovej adresy E-prg.png (bude odpovedať ten z nás, kto má príslušnú otázku na starosti alebo kto má práve čas).
· Prosíme študentov, aby si pravidelne čítali e-maily na @uniba.sk adrese alebo aby si tieto emaily preposielali na adresu, ktorú pravidelne čítajú.


Zimný semester, úvodné informácie: Rozdiel medzi revíziami

Z Programovanie
Skočit na navigaci Skočit na vyhledávání
 
(71 medziľahlých úprav od 3 ďalších používateľov nie je zobrazených)
Riadok 1: Riadok 1:
 +
==Základné údaje==
 +
 
'''Rozvrh'''
 
'''Rozvrh'''
* Prednášky: pondelok 9:00 F1-328 a utorok 9:50 F1-109
+
* Prednášky: pondelok 9:50 F1 a streda 9:50 F1
* Cvičenia:  
+
* Hlavné cvičenia:  
** 1i1 (prvý krúžok) pondelok 10:40 M-217 Martin Králik
+
** utorok 9:50 I-H6 ALEBO
** 1i2 (druhý krúžok) pondelok 12:20 M-217 Martin Králik
+
** utorok 14:50 I-H6
** 1i3 (tretí krúžok) pondelok 12:20 M-218 Jaro Budiš
+
** rozdelenie do skupín bolo rozposlané emailom
** Rozdelenie na krúžky [http://www.fmph.uniba.sk/index.php?id=1774]
+
* Doplnkové cvičenia: piatok 13:10 I-H3, I-H6 (stačí, ak prídete 13:25, ale nie neskôr)
* Nepovinné cvičenia: pondelok 14:50 M-218 (pre tých, ktorí si potrebujú učivo lepšie precvičiť alebo majú ďalšie otázky)
 
Poznámka: cvičenia z predmetu 1-INF-126 Programovanie (1) sú v pondelok o 10:40 v M-IX
 
 
 
'''Vyučujúce'''
 
 
 
* [http://new.dcs.fmph.uniba.sk/index.php/JanaKatreniakova RNDr. Jana Katreniaková PhD.], miestnosť M-263, [[Image:e-jk.png]]
 
::Konzultácie pondelok 13:10-14:00 alebo po dohode e-mailom
 
 
 
* [http://compbio.fmph.uniba.sk/~bbrejova/ Mgr. Broňa Brejová, PhD.], miestnosť M-163, [[Image:e-bb.png]]
 
::Konzultácie pondelok 14:00-15:00 alebo po dohode e-mailom
 
  
'''Cvičiaci'''
+
'''Vyučujú'''
 +
* [http://compbio.fmph.uniba.sk/~bbrejova/ doc. Mgr. Broňa Brejová, PhD.]
 +
* [https://sluzby.fmph.uniba.sk/ludia/bernat21 Ing. Dušan Bernát, PhD.]
 +
* [http://www.dcs.fmph.uniba.sk/~kosticova/index_sk.html RNDr. Jana Kostičová, PhD.]
 +
* Bc. Matej Novota
 +
* Bc. Filip Koseček
 +
<!-- * Felix Oguagbaka-->
  
* Mgr. Jaroslav Budiš, miestnosť M-25 (oproti akváriu X), [[Image:e-jb.png]]
+
Konzultácie po dohode e-mailom.
* Mgr. Martin Králik, miestnosť M-25, [[Image:e-mk.png]]
 
  
'''Voľba verzie programovania'''
+
Ak nemáte otázku na konkrétnu osobu, odporúčame vyučujúcich kontaktovať pomocou spoločnej adresy e-mailovej adresy [[Image:e-prg.png]]. Odpovie vám ten z nás, kto má na starosti príslušnú otázku alebo kto má práve čas.
* Tento predmet (1-INF-127 Programovanie (1) v C/C++) je určený študentom prvého ročníka bakalárskeho študijného programu Informatika a spolu s predmetom 1-INF-166 Programovanie (2) v Jave v letnom semestri tvoria alternatívu k povinným predmetom [http://pascal.input.sk/ 1-INF-126 Programovanie (1) a 1-INF-165 Programovanie (2)].
 
* Každý študent sa môže rozhodnúť, či absolvuje 1-INF-127 a 1-INF-166 alebo 1-INF-126 a 1-INF-165. Nie je však možné absolvovať obe verzie programovania ani sa po prvom semestri presunúť z jednej verzie do druhej.
 
* Predmety 1-INF-126 a 1-INF-165 sa vyučujú v jazyku FreePascal a majú na našej fakulte už dlhú tradíciu. Predmety 1-INF-127 a 1-INF-166 budú vyučované v jazykoch C resp. C++ a Java. Výhodou je, že tieto jazyky využijete aj v ďalších nadväzujúcich predmetoch (Systémové programovanie, Programovanie (3) a podobne) a sú to aj jazyky využívané v praxi. Nevýhodu je, že sa po prvom semestri budete musieť preorientovať na iný jazyk.  
 
  
'''Ciele predmetu 1-INF-127'''
+
==Ciele predmetu==
 
* Naučiť sa algoritmicky uvažovať, písať kratšie programy a hľadať v nich chyby, porozumieť existujúcemu kódu
 
* 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 resp. C++, nie je však nutne so všetkými črtami týchto jazykov  
 
* Oboznámiť sa so základnými programovými a dátovými štruktúrami jazyka C resp. C++, nie je však nutne so všetkými črtami týchto jazykov  
Riadok 35: Riadok 29:
 
* Aj štruktúry, ktoré sú hotové v C++ knižniciach, si budeme programovať sami, aby sme videli, čo sa za nimi skrýva
 
* Aj štruktúry, ktoré sú hotové v C++ knižniciach, si budeme programovať sami, aby sme videli, čo sa za nimi skrýva
  
'''Literatúra'''
+
==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, doporučujeme Vám si na prednáškach a cvičeniach robiť vlastné poznámky.  
+
* 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:
+
* 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ý pruvodce, Grada 2008, I-INF-P-26
+
** 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  
 
** Sedgewick: Algorithms in C. Parts 1-4 I-INF-S-43/I-IV  
 
** Kochan: Programming in C, 2005 D-INF-K-7a
 
** Kochan: Programming in C, 2005 D-INF-K-7a
 
* Referenčnú príručku k jazyku C++ nájdete napríklad na tejto webstránke: http://cplusplus.com/
 
* Referenčnú príručku k jazyku C++ nájdete napríklad na tejto webstránke: http://cplusplus.com/
 +
* Môže vás zaujímať aj [[Video|video prednášok]] z iných škôl v angličtine
 +
 +
==Priebeh semestra==
 +
* Na '''prednáškach''' budeme preberať obsah predmetu. Prednášky budú štyri vyučovacie hodiny do týždňa.
 +
* '''Hlavné cvičenia''' budú dve 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. Cvičiaci vám podľa potreby pomôžu a poradia.
 +
* Príklady z hlavných cvičení, ktoré nestihnete vyriešiť, môžete dokončiť doma alebo na cvičeniach v piatok.
 +
* Okrem toho sa každý týždeň konajú '''doplnkové cvičenia''' (tiež dve vyučovacie hodiny). Sú povinné pre študentov, ktorí mali problémy na cvičeniach v utorok ale radi privítame aj ďalších. Na tomto cvičení s pomocou cvičiacich môžete dokončovať príklady z predchádzajúcich cvičení, pýtať sa otázky k učivu, prípadne pracovať na domácej úlohe.
 +
* '''Domáce úlohy''' budú cca 3 cez semester. Pracujte na nich samostatne doma, prípadne na doplnkových cvičeniach. Nechajte si na ne dosť času, nezačnite tesne pred termínom.
 +
* Príklady na cvičenia a domáce úlohy 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 odporúčame navštíviť doplnkové cvičenia, alebo si 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ť.
 +
 +
<!--
 +
==Dištančná výučba==
 +
* Dúfame, že celý semester sa bude konať prezenčne, môže sa ale stať, že výučba bude presunutá online
 +
* V tom prípade budú prednášky aj cvičenia v systéme MS Teams
 +
* Videá niektorých prednášok z minulého roku sú k dispozícii, takisto poznámky k prednáškam sú na stránke
 +
* Pokyny k použitiu MS Teams nájdete na [[MS Teams|zvláštnej stránke]]
 +
-->
 +
 +
==Celkové odporúčania==
 +
 +
Prichádzajúci študenti v prvom ročníku majú veľmi rôznu úroveň znalosti programovania, v závislosti od 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ú. Veľmi radi vám však pomôžeme prekonať nástrahy tohto predmetu. 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 resp. C++ a základné algoritmy, ktoré sa budú počas semestra striedať.
  
'''Priebeh semestra'''
+
{| style="border-collapse:collapse; border: 1px solid #000; padding: 20px"
* Na prednáškach budeme preberať obsah predmetu. Prednášky budú štyri vyučovacie hodiny do týždňa.
+
|- style="border-style: solid; border-width: 1px"
* Cvičenia budú dve 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. Na začiatku cvičenia bude krátka diskusia o prípadných nejasnostiach ohľadom materiálu z minulého cvičenia. Potom nasleduje rozcvička (krátky test) písaný na papieri. Ďalšou časťou cvičenia je precvičovanie príkladov k predchádzajúcim prednáškam (spoločne alebo individuálne). Na konci cvičenia spravidla budete môcť začať pracovať na domácej úlohe, pričom cvičiaci Vám v prípade potreby odpovie na Vaše otázky.
+
| '''Úroveň znalostí''' || '''Náročnosť látky: základy programovania v C''' || '''Náročnosť látky: algoritmy, rekurzia''' || '''Odporúčanie'''
* Domáce úlohy navrhujeme tak, aby Vám ich riešenie pomohlo osvojiť si a precvičiť si učivo, čím sa okrem iného pripravujete aj na záverečnú skúšku. Okrem tohto sú za domáce úlohy body do záverečného hodnotenia. Najviac sa naučíte, ak sa Vám domácu úlohu podarí samostatne vyriešiť, ale ak sa vám to napriek vášmu usilu nedarí, neváhajte sa spýtať o pomoc prednášajúcich alebo cvičiacich. Možno s malou radou od nás sa Vám podarí úlohu spraviť. Treba však na domácej úlohe začať pracovať v predstihu, aby ste nás v prípade problémov stihli kontaktovať.
+
|- style="border-style: solid; border-width: 1px"
* 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. Môžete nám klásť tiež otázky počas našich konzultačných hodín alebo 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ť.
+
| '''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é.
* 40% známky dostávate za prácu cez semester, preto netreba nechávať štúdium učebnej látky až na skúškové obdobie.
+
|- style="border-style: solid; border-width: 1px"
 +
| '''Som skúsený programátor, ale neovládam C ani 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.
 +
|- style="border-style: solid; border-width: 1px"
 +
| '''Som skúsený programátor a ovládam C alebo 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í.
 +
|- style="border-style: solid; border-width: 1px"
 +
| '''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. Aj tak však treba odovzdať domáce úlohy a absolvovať skúšku, prípadne aj semestrálny test. Priebežne sledujte učivo a v prípade nejasností sa pýtajte.  
 +
|}

Aktuálna revízia z 08:26, 24. september 2024

Základné údaje

Rozvrh

  • Prednášky: pondelok 9:50 F1 a streda 9:50 F1
  • Hlavné cvičenia:
    • utorok 9:50 I-H6 ALEBO
    • utorok 14:50 I-H6
    • rozdelenie do skupín bolo rozposlané emailom
  • Doplnkové cvičenia: piatok 13:10 I-H3, I-H6 (stačí, ak prídete 13:25, ale nie neskôr)

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 adresy e-mailovej adresy E-prg.png. 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 resp. C++, nie je však nutne so všetkými črtami týchto jazykov
    • 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
  • Aj štruktúry, ktoré sú hotové v C++ knižniciach, si budeme programovať sami, aby sme videli, čo sa za nimi skrýva

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 jazyku C++ nájdete napríklad na tejto webstránke: http://cplusplus.com/
  • Môže vás zaujímať aj video prednášok z iných škôl v angličtine

Priebeh semestra

  • Na prednáškach budeme preberať obsah predmetu. Prednášky budú štyri vyučovacie hodiny do týždňa.
  • Hlavné cvičenia budú dve 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. Cvičiaci vám podľa potreby pomôžu a poradia.
  • Príklady z hlavných cvičení, ktoré nestihnete vyriešiť, môžete dokončiť doma alebo na cvičeniach v piatok.
  • Okrem toho sa každý týždeň konajú doplnkové cvičenia (tiež dve vyučovacie hodiny). Sú povinné pre študentov, ktorí mali problémy na cvičeniach v utorok ale radi privítame aj ďalších. Na tomto cvičení s pomocou cvičiacich môžete dokončovať príklady z predchádzajúcich cvičení, pýtať sa otázky k učivu, prípadne pracovať na domácej úlohe.
  • Domáce úlohy budú cca 3 cez semester. Pracujte na nich samostatne doma, prípadne na doplnkových cvičeniach. Nechajte si na ne dosť času, nezačnite tesne pred termínom.
  • Príklady na cvičenia a domáce úlohy 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 odporúčame navštíviť doplnkové cvičenia, alebo si 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ť.


Celkové odporúčania

Prichádzajúci študenti v prvom ročníku majú veľmi rôznu úroveň znalosti programovania, v závislosti od 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ú. Veľmi radi vám však pomôžeme prekonať nástrahy tohto predmetu. 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 resp. 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 ani 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 alebo 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. Aj tak však treba odovzdať domáce úlohy a absolvovať skúšku, prípadne aj semestrálny test. Priebežne sledujte učivo a v prípade nejasností sa pýtajte.