O predmete

Základné informácie o predmete PAZ1a

Predmet PAZ1a (Programovanie, algoritmy, zložitosť) je povinným predmetom pre študentov prvého ročníka bakalárského štúdia odborov I (informatika), AI (aplikovaná informatika), ADUI (analýza dát a umelá inteligencia), M (matematika), EFM (ekonomická a finančná matematika) a IX (medziodborové štúdium informatiky). Jeho kreditová váha je 8 kreditov.

PAZ1a je prvým z trojice predmetov PAZ1a, PAZ1b a PAZ1c, ktoré obsahovo pokrývajú odporúčané kurikulum ACM-IEEE pre kurzy označované ako CS-1 a CS-2. Zameranie jednotlivých predmetov je:

  • PAZ1a – úvod do programovania a objektovo-orientovaného programovania,
  • PAZ1b – úvod do algoritmov a zložitosti,
  • PAZ1c – pokročilé OOP a tvorba komplexnejších aplikácii s GUI.

Predmet PAZ1c narozdiel od predmetov PAZ1a a PAZ1b nie je povinný pre odbory IX, M a EFM (je však uvedený ako odporúčaný predmet v bloku C).

Organizácia výučby

Časová dotácia výučby predmetu PAZ1a v prezenčnej forme je 7 hodín týždenne. Tie sú rozdelené na 3 hodiny prednášok a 4 hodiny cvičení (2x 2 hodiny cvičení v jednom týždni) v počítačovej miestnosti.

Hodnotenie

Hodnotenie je založené na získavaní bodov v jednotlivých kategóriach. Pre viac informácii možno nájsť na podstránke Hodnotenie predmetu PAZ1a.

Koncepcia výučby

Predmet PAZ1a využíva netradičnejšiu koncepciu úvodného kurzu programovania, ktorá je založená na prístupe „OO-first“ (rovno sa začína objektovo-orientovaným programovaním). Dôležitým prvkom je vizuálizácia a použitie metafor v spojení s korytnačou grafikou realizovanou JPAZ2 frameworkom. V druhej časti semestra sa prechádza do systematického výkladu s dôrazom na dobrý objektový návrh. Viac informácií o koncepciách, z ktorých vychádza predmet PAZ1a, možno nájsť v článku Úvodný kurz programovania v Jave na PF UPJŠ z konferencie DidInfo 2011.

Matematické predpoklady

Predmet predpokladá, že študent má základné vedomosti zo základoškolskej matematiky a niektoré jednoduché znalosti zo stredoškolskej matematiky:

  • rozdiel medzi číslom a zápisom čísla, dvojková, desiatková a šestnástková sústava,
  • základy geometrie: uhly, rozdelenie uhlov podľa polohy, vnútorné uhly v trojuholníku,
  • súradnicový systém, vzdialenosť dvoch bodov v rovine, pravouhlé trojuholníky, Pytagorova veta,
  • deliteľnosť čísel, najmenší spoločný násobok, najväčší spoločný deliteľ, prvočísla, rozklad čísla na súčin prvočísel,
  • logické výrazy, logické spojky, negácie logických výrazov (De Morganove pravidlá), negácie výrazov so všeobecným a existenčným kvantifikátorom.

(Nielen) pre fajnšmekrov so záujmom o pochopenie aritmetiky s číslami s desatinnou čiarkou odporúčame – základné princípy využívané pri aproximovaní hodnôt matematických (najmä transcendentálnych) funkcií – napr. sin(x), cx, … – v najjednoduchšej forme cez Taylorove rady (http://stackoverflow.com/questions/2284860/how-does-c-compute-sin-and-other-math-functions)


Nástroje komunikácie

Je pre nás dôležité, aby študenti a vyučujúci boli navzájom partnermi v procese výučby, t.j. aby existovala vzájomná komunikácia a spolupráca, ktorej cieľom je naučiť sa niečo nové a osvojiť si potrebné algoritmicko-programátorské zručnosti na strane študentov. S využitím moderných nástrojov je možné zabezpečiť efektívnu výmenu potrebných informácií a komunikáciu aj v čase mimo prezenčnej výučby.

Čo robiť, keď potrebujem poradiť alebo mám problém?

Predmet PAZ patrí k tým náročnejším predmetom. Ľahko sa preto počas štúdia môže stať, že sa dostanete do situácie, kedy potrebujete poradiť alebo si s niečim neviete dať rady. V takejto situácii sa určite treba pýtať a nečakať, že sa to vyrieši samo.

  • Kedy sa pýtať?
    • Ak máte nejaký problém alebo otázku, skúste najprv hľadať riešenie alebo odpoveď sám/sama. Môžete sa spýtať kolegu (pozor na aktuálne domáce zadania), hľadať odpoveď na stránke predmetu (zdrojové kódy z cvičení, slajdy, učebný text, …), googliť, atď. Inými slovami podniknite nejaké vlastné kroky. Ak v rozumnom čase nemáte riešenie alebo odpoveď, alebo máte pochybnosti o ich správnosti, treba kontaktovať tútorov, vyučujúcich alebo sa spýtať verejne.
    • Pozor, už viac ráz sme zažili, keď sa začali šíriť rôzne nekorektné informácie (zvyčajne k organizácii hodnotiacich aktivít). Ak máte informáciu od kolegu, pýtajte sa ho aj na zdroj. Nebojte sa overiť korektnosť informácie.
  • Koho sa pýtať?
    • Ak máte všeobecnú otázku k organizácii, domácim zadaniam, resp. k čomukoľvek, kde je predpoklad, že to zaujíma aj ďalších, pošlite otázku na predmetový mailing-list. Je tu predpoklad rýchlej reakcie – či už od spolužiakov, či niekoho z vyučujúcich. Overte si ale najprv, že požadovaná informácia už nie je niekde zverejnená.
    • Ak máte otázku k organizácii cvičení, hodnoteniam, atď. na úrovni konkrétnej skupiny, kontaktujte svojho cvičiaceho. Cvičiaci je váš prvý kontakt vo všetkých situáciach, ktoré sa týkajú vás a nemajú globálnejší dosah. To sa netýka situácii manažovaných centrálne (napr. polsemestrálne testu, záverečné testu, atď.) – vtedy kontaktujte prednášajúcich.
    • Ak potrebujete radu alebo usmernenie ohľadom štúdia či už v rámci PAZka alebo všeobecne, obráťte sa na niektorého z tútorov. Sú to vaši kolegovia a nejaký ten ročník skúsenejší.
  • Akou formou sa pýtať?
    • Preferovná je elektronická (ideálne e-mailová) komunikácia. Nebojte sa riešiť veci e-mailom. Viete ich tak riešiť ihneď, asynchrónne (nemusíte sa s protistranou dohadovať na spoločnom mieste a čase), máte záznam z komunikácie, ku ktorému sa viete vrátiť a pripomenúť si obsah.
    • Ak už niečo potrebujete poriešiť osobne, alebo osobné riešenie považujete za časovo efektívnejšie pre vás i protistranu, dohodnite si čas a miesto stretnutie vopred. Väčšina členov v PAZ1a tíme má flexibilný pracovný čas alebo pracuje vzdialene.
    • E-maily nemusíte posielať len jednej osobe. Napríklad pri komunikácii s prednášajúcimi je najlepšie uviesť medzi adresátov oboch prednášajúcich. Pokojne môžete poslať e-mail tútorovi a do kópie môžete uviesť cvičiaceho, ktorý môže odpoveď tútora neskôr doplniť.
    • Upozornenie: E-mail zaslaný na predmetový mailing-list príde všetkým osobám prihláseným na mailing-list. Rozmyslite si preto, čo všetko pošlete na mailing-list. Napr. nie je rozumné chváliť sa na mailing-liste zdrojovým kódom svojho riešenia aktuálneho domáceho zadania (áno, aj také sa už stalo), pretože výsledkom budú kroky, pre ktoré vás spolužiaci nebudú mať v obľube.
  • Ako sa pýtať?
    • Teraz nejde o to, že slušne a s dodržaním zásad netikety. Problém, resp. otázku, čo najpresnejšie popíšte, prípadne popíšte aj kroky, ktoré ste podnikli na nájdenie riešenia („čo som skúsil a nefungovalo“) – iba tak je šanca na skoré riešenie, resp. odpoveď. Konštatovanie „nefunguje mi XYZ“ dá protistrane príliš málo informácii, aby vám vedela pomôcť.

Ako posielať e-maily?

Pri prijímaní e-mailov sa neraz stane, že e-mail nespĺňa základné požiadavky slušnej elektronickej komunikácie. Samozrejme od študenta VŠ sa očakáva, že si na tieto požiadavky dá pozor. Preto, prosím pred odoslaním e-mailu skontrolujte:

      • Je uvedený stručný predmet (subject) e-mailu? Pozor na zabudnutý predmet.
      • Je adresát podpísaný vlastným menom? Ak dostanete e-mail z adresy ddd1990@gmail.com, ktorý nie je podpísaný, príjemca netuší, kto e-mail odoslal.

Sociálne siete a PAZ1a?

PAZ1a neignoruje ani sociálne siete. Vzhľadom na nemalý počet pravidelných používateľov Facebooku z radov študentov, má predmet PAZ aj svoju facebookovú stránku https://www.facebook.com/upjs.paz. Oproti minulosti je ale primárnou komunikačnou platformou e-mail a predmetový mailing-list.


FAQ

Na tomto mieste sú zhromaždené najčastejšie otázky týkajúce sa predmetu PAZ1a a odpovede na ne.

Je predmet PAZ1a náročný?

Už samotné štúdium informatiky, či matematiky patrí k tým náročnejším. Dôvodom je to, že „učivo“ sa nestačí len mechanicky naučiť, ale treba mu rozumieť a vedieť ho aj prakticky aplikovať. Programovanie, o ktorom je predmet PAZ1a, je zručnosťou. A zručnosť získate jedine poctivým tréningom (=sadnúť si za počítač a programovať). V závislosti od predošlých skúseností a osobných zručností môže byť tento tréning dosť časovo náročný – odtiaľ asi pochádza mýtus o náročnosti predmetu PAZ1a. Poctivou, zodpovednou a priebežnou prácou počas semestra nie je problém získať hodnotenie A – bez ohľadu na to, či ste už predtým programovali alebo nie.

Aká je úspešnosť na predmete PAZ1a?

Celkové počty študentov s jednotlivými známkami je možné prezrieť si v informačnom liste predmetu v AISe. Predmet PAZ1a zvyčajne úspešne absolvujú zhruba dve tretiny prihlásených študentov. Tieto čísla sú však len štatistika, ktorá nehovorí nič o konkrétnych jednotlivcoch a úspešnosti v iný akademický rok. Samozrejme, čím bude úspešnosť vyššia, tým viac budú všetci členovia PAZ1a tímu potešení, keďže ich práca počas semestra priniesla svoje výsledky. Záleží nám na tom, aby každý študent, ktorý má záujem na sebe pracovať, predmet PAZ1a úspešne absolvoval. Aj preto v prípade záujmu organizujeme workshopy, no predovšetkým sa snažíme o zodpovednú, otvorenú a modernú výučbu. Veľkou výhodou, ktorú ponúka PAZ1a, sú malé študijné skupiny, kde nehrozí, že sa študent so svojimi problémami „stratí v dave“. Na druhej strane, nutným predpokladom pre úspešné zvládnutie predmetu PAZ1a je to, aby študent aj predmet chcel úspešne zvládnuť a bol pripravený investovať čas do zodpovednej prípravy počas celého semestra.

Potrebujem mať svoj vlastný počítač kvôli PAZ1a?

Predpokladom pre zvládnutie predmetu PAZ1a je priebežná práca počas semestra, ktorá spočíva najmä v samostatnom riešení domácich zadaní. A k tomu je potrebný samozrejme počítač. Termíny odovzdávania riešení úloh sú nastavené tak, aby pokrývali aspoň jeden celý víkend, t.j. aby mimokošickí študenti mohli použiť napríklad počítače (a pokoj) doma, keď idú domov na víkend. Ak nemáte vlastný počítač alebo notebook môžete využiť počítače v Nonstop učebni (oproti P/03) v čase, keď tam nie je výučba.

Stačí sa na predmet PAZ1a pripravovať až v skúškovom?

Častým mýtom je, že študent VŠ si môže úžívať študentský život počas celého semestra a stačí „zabrať“ len v skúškovom (napr. učím sa celú noc pred skúškou). Toto môže platiť v prípade iných škôl, odborov, či predmetov. Na PAZ1a to určite neplatí. Programovať sa nedá naučiť zo dňa na deň, je to výsledok systematickej prípravy (tako ako v prípade každej zručnosti: plávanie, šoférovanie, maľovanie, …). Obzvlášť v prvom ročníku má študent tendenciu odkladať študijné povinnosti na neskôr (je to klasický syndróm pri prechode zo stredoškolského systému štúdia na vysokoškolský). Aj preto je hodnotenie predmetu PAZ1a postavené tak, aby boli študenti motivovaní k priebežnej príprave počas celého semestra (či už vo forme domácich zadaní alebo písomiek). Pri priebežnej príprave je potom už veľmi jednoduché úspešne ukončiť predmet PAZ1a.

Zvládnem predmet PAZ1a, ak som ešte nikdy predtým neprogramoval(a)?

Samozrejme. Výučba predmetu PAZ1a nepredpokladá žiadne predošlé programátorské skúsenosti. Ide sa pekne od základov (je však treba povedať, že tempo je podstatne vyššie než zvykne bývať na stredných školách). Od študenta sa očakávajú základné zručnosti práce s počítačom (na úrovni písania v textovom editore, práce s adresármi, kopírovanie súborov, práca s internetom a e-mailom) a jednoduchá stredoškolská matematika. So splnením týchto predpokladov doposiaľ neboli problémy. Študenti, ktorí už programovali, sú v miernej výhode, keďže viaceré koncepty (cykly, premenné, …) sú im už známe. Na druhej strane, z predošlých semestrov máme viacero príkladov, kedy študent bez akýchkoľvek predošlých programátorských skúseností (vďaka zodpovednej príprave) ďaleko predbehol svojich kolegov (aj takých, ktorí prišli z kvalitných škol s dobrou informatickou prípravou).

Už som programoval(a) na strednej škole, naučím sa na PAZ1a niečo nové?

Programovacím jazykom PAZ1a je Java. Dôraz sa kladie na objektovo-orientované programovanie (OOP). OOP a ani Java sa nezvyknú vyučovať na stredných školách.

Upozornenie: Zvykne sa stávať, že študenti s predošlými programátorskými skúsenosťami predmet PAZ1a zanedbajú (v úvodné týždne všetko vyzerá jednoducho a zdá sa to ako „detské“ programovanie) a v dôsledku toho majú neskôr problémy jednoducho úspešne absolvovať predmet (bojujú o body, končia so známkou v „horšej“ škále hodnotenia D, či E).

Javu a OOP už perfektne ovládam. Povinné cvičenia z PAZ1a sú pre mňa strata času. Čo s tým?

Kontaktujte niektorého z prednášajúcich. Dohodneme alternatívny individuálny plán a podmienky hodnotenia (pravdepodobne však podmienka vypracovania a obhajoby projektu/domácich zadaní, účasti na polsemestrálnom a záverečnom praktickom teste ostane aj pri alternatívnom pláne – pre skúseného programátora sú to „minútové“ záležitosti).


Máte iné otázky alebo problémy, ktoré treba riešiť? Dajte nám o nich vedieť cez predmetový mailing-list alebo e-mailom.