PROGRAMIRANJE 2

U okviru kursa Programiranje 2 obrađuju se napredni pojmovi proceduralnog programiranja i osnovni pojmovi algoritama i struktura podataka. U okviru naprednih pojmova proceduralnog programiranja, akcenat je na razumevanju funkcijskih poziva, rekurzije, upravljanju memorijom i primeni tih tehnika u rešavanju problema. U okviru osnovnih pojmova algoritama i struktura podataka, akcenat je na razumevanju pojma složenosti algoritma, osnovnim algoritmima za pretragu i sortiranje, dinamičkim strukturama podataka poput listi i stabala i algoritmima vezanim za njih. Kurs osposobljava studente da prepoznaju prilike za primenu naučenih tehnika, da na osnovu njihovih svojstava od više primenljivih tehnika izaberu bolje i da ih ispravno implementiraju.

Predmetni nastavnici:

Asistenti:

Osnovna literatura:

Dodatna literatura:

  • Brian Kernighan, Dennis Ritchie: The C Programming Language
  • Robert Sedgewick: Algorithms in C

Završni ispit:

Ispit u celini nosi 100 poena i oni će biti raspodeljeni na sledeći način:

  • Teorijski deo - nosi 50 poena (prag 30%) i radi se 1h
  • Praktični deo - nosi 50 poena (prag 30%) i radi se 2h

Pravila polaganja završnog ispita:
  • Svi delovi završnog ispita mogu se polagati u jednom ispitnom roku
  • Svi delovi završnog ispita mogu se polagati u više ispitnih rokova
  • Jednom položen bilo koji od delova ispita važi u svim narednim rokovima.
  • Ispit je potrebno prijaviti u svim rokovima u kojima student izlazi na neki deo ispita

Primeri:

  • Primer teorijskog dela ispita (OVDE)
  • Primer praktičnog dela ispita (OVDE)
  • Primeri praktičnog dela ispita (OVDE)
U toku ovog semestra predavanja će se održavati putem Webex platforme prema rasporedu.

ČAS 1: Doseg i životni vek promenljivih, organizacija programa

  • [Sana Stojanović Đurđević] Snimak časa (šifra je data u imenu linka): pP9puqjk
  • Primeri pređeni na času: primer1.c, primer2.c, biblioteka.c, primer3.c
  • [Milena Vujošević Janičić, Jelena Graovac] Slajdovi: 01_doseg_i_zivotni_vek.pdf
  • [Ivana Tomašević] 01 Doseg, životni vek i povezanost; Bitovski operatori (00:00:00 - 00:48:52 Doseg, životni vek i povezanost)

ČAS 2: Bitovski operatori, organizacija memorije

  • [Sana Stojanović Đurđević] Snimak časa (šifra je data u imenu linka): 6qTHfCfa
  • Beleške sa časa: bitovi1.txt, bitovi2.txt
  • [Milena Vujošević Janičić, Jelena Graovac] Slajdovi: 01_bitovski_operatori.pdf, 02_organizacija_memorije.pdf
  • [Ivana Tomašević] 01 Doseg, životni vek i povezanost; Bitovski operatori (00:48:53 - 01:27:10 Bitovski operatori)
  • [Ivana Tomašević] 02 Organizacija memorije; Rekurzija (00:00:00 - 00:34:01 Organizacija memorije)

ČAS 3: Rekurzija

ČAS 4: Repna rekurzija, složenost algoritma

  • [Sana Stojanović Đurđević] Snimak časa (šifra je data u imenu linka): Gf3TkUwG
  • Primer sa časa i kratke beleške: euklid.c, Euklidov algoritam (wikipedia), slozenost.txt
  • [Milena Vujošević Janičić, Jelena Graovac] Slajdovi: 03_04_slozenost.pdf
  • [Ivana Tomašević] 03 Rekurzija; Složenost algoritma (00:18:38 - 01:18:38 Složenost algoritma)
  • [Ivana Tomašević] 04 Rekurzija; Složenost algoritma (00:00:00 - 01:15:03 Klase složenosti)

ČAS 5: Pretraživanje i sortiranje

  • [Sana Stojanović Đurđević] Snimak časa (šifra je data u imenu linka): Wqtg88RJ
  • Kratke beleške sa časa: pretraga.txt
  • [Milena Vujošević Janičić, Jelena Graovac] Slajdovi: 05_06_pretrazivanje_sortiranje.pdf
  • [Ivana Tomašević] 05 Pretraživanje i sortiranje (00:00:00 - 01:15:46)
  • [Ivana Tomašević] 06 Sortiranje (00:00:00 - 00:47:23)

ČAS 6: Pokazivači i dinamička alokacija memorije

  • [Sana Stojanović Đurđević] Snimak časa (šifra je data u imenu linka): gSPjgwE3
  • Kratke beleške sa časa: pokazivaci.txt
  • [Milena Vujošević Janičić, Jelena Graovac] Slajdovi: 07_pokazivaci_dinamicka_alokacija.pdf
  • [Ivana Tomašević] 07.01 Pokazivači i dinamička alokacija memorije (00:00:00 - 01:20:47)
  • [Ivana Tomašević] 07.02 Pokazivači i dinamička alokacija memorije (00:00:00 - 00:24:54 Dinamička alokacija memorije - višedimenzioni nizovi)

ČAS 7: Generička funkcija za sortiranje nizova

ČAS 8: Dinamičke strukture podataka - Liste: implementacija funkcija; Primena: stek i red

  • [Sana Stojanović Đurđević] Snimak časa (šifra je data u imenu linka): tKzgP3RE
  • Kratke beleške sa časa: p2_liste.ods
  • [Milena Vujošević Janičić, Jelena Graovac] Slajdovi: 09_10_liste_stek_red.pdf
  • [Ivana Tomašević] 09 Dinamičke strukture podataka - Liste (00:00:00 - 01:17:31)
  • [Ivana Tomašević] 10 Dinamičke strukture podataka - Dvostruko povezane liste, stek, red (00:00:00 - 01:06:49)

ČAS 9: Dinamičke strukture podataka - Stabla; Osnovni pojmovi i primeri

  • [Sana Stojanović Đurđević] Snimak časa (šifra je data u imenu linka): 4uPuXWbw
  • Kratke beleške sa časa: beleske.txt
  • [Milena Vujošević Janičić, Jelena Graovac] Slajdovi: 11_12_stabla.pdf
  • [Ivana Tomašević] 11 Dinamičke strukture podataka - Stabla (00:00:00 - 01:14:57)
  • [Ivana Tomašević] 12 Dinamičke strukture podataka - Uređeno binarno stablo, nastavak (00:00:00 - 00:36:18)

ČAS 10: Dinamičke strukture podataka - Stabla; Pretraga, oslobađanje, ispisivanje stabla u širinu (po nivoima)

  • [Sana Stojanović Đurđević] Snimak časa (šifra je data u imenu linka): VeFBJ9pJ
  • Kratke beleške sa časa: beleske10.odt

ČAS 11: Dinamičke strukture podataka - vežbanje (izračunavanje vrednosti aritmetičkog stabla, obrtanje jednostruko povezane liste u linearnom vremenu)

  • [Sana Stojanović Đurđević] Snimak časa (šifra je data u imenu linka): nU7JbJG3
  • Kratke beleške sa časa (kratak opis domaćeg zadatka, duži je u snimku): beleske11.odt, primer sa časa: aritmeticko_stablo.c

Linkovi ka časovima vežbi

U toku ovog semestra vežbe će se održavati putem Webex platforme prema rasporedu:

Mole se svi studenti da sve uočene greške i/ili propuste iz zbirke prijave preko ove forme kako bi naredno izdanje bilo još bolje. Hvala!

Slackware virtuelna mašina

ČAS 2: Algoritmi za rad sa bitovima

ČAS 3: Rekurzija

ČAS 4: Pokazivači i aritmetika sa pokazivačima

ČAS 5: Dinamička alokacija memorije i višedimenzioni nizovi

ČAS 6: Algoritmi pretrage

ČAS 7: Algoritmi sortiranja

ČAS 9: Pokazivaci na funkcije, bibliotecke funkcije qsort i bsearch, liste (uvod)

ČAS 10: Liste (nastavak)

ČAS 11: Liste (vežbanje) i uvod u binarno pretraživačko stablo

  • Prvi zadatak iz zadataka za vežbanje sa časa 10
  • Zadaci iz zbirke: 4.14
  • Biblioteka funkcija za rad sa binarnim pretraživačim stablom celih brojeva: stabla.c, stabla.h

ČAS 12: Binarno pretraživačko stablo - nastavak

ČAS 13: Vežbanje za ispit

ČAS 1: Obnavljanje gradiva Programiranja 1, komplilacija iz više izvornih datoteka

ČAS 2: Algoritmi za rad sa bitovima

ČAS 3: Rekurzija

ČAS 4: Pokazivači i aritmetika sa pokazivačima

ČAS 5: Dinamička alokacija i višedimenzioni nizovi

ČAS 6: Algoritmi pretrage

ČAS 7: Algoritmi sortiranja

ČAS 8: Primene algoritama sortiranja i pretrage

ČAS 9: Pokazivaci na funkcije, bibliotecke funkcije qsort i bsearch, liste (uvod)

ČAS 10: Liste (nastavak)

ČAS 11: Liste (vezbanje) i uvod u stabla

ČAS 12: Stabla (nastavak)

ČAS 13: Priprema za ispit

Upis ocena kod Ivane

Ocene se mogu upisati u ponedeljak 26.09. u 17h u prostorijama u ulici Svetog Nikole u nekoj od slobodnih učionica na prvom spratu.
Ocene ce moći da se upišu i tokom sledećeg semestra u rasporedu kursa Tehničkog i naučnog pisanja.

24.9.2022.

Prijava ispita SEPT2 - Anketa

Studenti koji žele da izađu na ispit u roku SEPT2 treba da popune anketu koja se nalazi na sledećem linku. Anketa će biti aktivna do petka 23.9.2022. u podne.

19.9.2022.

Raspored sedenja - SEPT1

Raspored sedenja možete naći na sledećem linku . Na ispit je potrebno doći 15 minuta ranije kako bi ispit počeo na vreme.

6.9.2022

Ispit 6. 7. 2022.

Ispit će biti održan na Studentskom Trgu. Ispit traje 3h. Prvo se rade zadaci (2h), a nakon toga teorija (1h). Student koji polaže samo teoriju treba da dođe 10tak minuta pre početka teorije (dakle oko 14:50). Za sve nejasnoće, pisati na mejl filip_vidojevic@matf.bg.ac.rs

Raspored sedenja možete naći na linku.

5. 7. 2022.

Prijava ispita - Anketa

Studenti koji žele da izađu na ispit u roku JUN2 treba da popune anketu koja se nalazi na sledećem linku. Anketa će biti aktivna do utorka 5.7.2022.

3.7.2022.

Ispit 16. 6. 2022.

Ispit će biti održan na Studentskom Trgu. Ispit traje 3h. Prvo se rade zadaci (2h), a nakon toga teorija (1h). Student koji polaže samo teoriju treba da dođe 10tak minuta pre početka teorije (dakle oko 14:50). Za sve nejasnoće, pisati na mejl filip_vidojevic@matf.bg.ac.rs

15. 6. 2021.

Prijava ispita - Anketa

Studenti koji žele da izađu na ispit u roku JUN1 treba da popune anketu koja se nalazi na sledećem linku. Anketa će biti aktivna do srede 15.6.2022.

11.6.2022.

Konsultacije pred ispitni rok za tok 2 (predavanja)

Konsultacije pred ispitni rok za tok 2 (predavanja) kod prof. Ivane Tomašević će biti održane online u sredu, 25.05.2022. godine, od 8h i 30 min.

21.5.2022.

Časovi vežbi 19. 5. i 20. 5. kod Filipa

Časovi neće biti održani zbog bolesti asistenta (izvinjavam se zbog zakasnelog obaveštenja). Okačeni su snimci u odeljku za snimke.

19.5.2022.

Nadoknada za grupe 1O1A, 1O1B i 1O2A

Nadoknada vežbi za grupe 101A, 101B i 102A održaće se u nedelju 15.5. u 16h (sve tri grupe).

14.5.2022.

Nadoknada za grupu 1O2B

Nadoknada vežbi za grupu 1O2B održaće se u subotu 7.5. u 11h.

02.05.2022.

Vežbe 21.4.2022.

Čas kod Filipa neće biti održan. Umesto toga, biće okačen snimak vežbi, s tim što ćemo se o eventualnim konsultacijama dogovoriti putem mejla.

20.04.2022.

Vežbe za grupe 1O1A, 1O1B i 1O2A

Ove nedelje neće biti održane vežbe za grupe 101A, 101B i 102A. Termini nadoknade će biti naknadno objavljeni.

14.03.2022.

Nadoknada za grupe 1O1A, 1O1B i 1O2A

Nadoknada vežbi za grupe 101A, 101B i 102A održaće se u subotu 5.3. u 16h (sve tri grupe).

04.02.2022.

Vežbe u prvoj nedelji za grupe 1O1A, 1O1B i 1O2A

U prvoj nedelji nastave vežbe za grupe 1O1A, 1O1B i 1O2A neće biti održane. Termini nadoknade će biti naknadno objavljeni.

20.02.2022.

Početak novog semestra

Srećno!

20.02.2022.

REZULTATI ISPITA

U ovom odeljku se nalaze rezultati ispita. Na vrhu svake tabele označen je rok u kom je taj deo pregledan. Kada se u novom roku pregleda ispit, biće ažurirana i sama tabela.

  • 1. tok: link.

    [Praktični] Uvid u radove biće obavljen putem mejla (mejl na koji treba pisati je dara_milojkovic@matf.bg.ac.rs). Za uvid se javiti najkasnije do 28. 9. 2022.
    [Teorija] Za uvid u radove pisati profesorki. Takođe, za poništavanje ocene pisati profesorki.

  • 2. tok: link.

    [Praktični] Uvid u radove biće obavljen putem mejla (mejl na koji treba pisati je dara_milojkovic@matf.bg.ac.rs). Za uvid se javiti najkasnije do 16.9.2022.
    [Teorija] Za uvid u radove pisati profesorki. Takođe, za poništavanje ocene pisati profesorki.
    Za uvid se javiti najkasnije do 28. 9. 2022.

  • 3. tok: link.

    [Praktični] Uvid u radove biće obavljen putem mejla (mejl na koji treba pisati je dara_milojkovic@matf.bg.ac.rs) Za uvid se javiti najkasnije do 28. 9. 2022.
    [Teorija] Rok za uvid u radove ili poništavanje ocene je naveden u tabeli sa rezultatima.

  • 4. tok: link.

    [Praktični] Uvid u radove biće obavljen putem mejla (mejl na koji treba pisati je dara_milojkovic@matf.bg.ac.rs). Za uvid se javiti najkasnije do 28. 9. 2022.
    [Teorija] Rok za uvid u radove ili poništavanje ocene je naveden u tabeli sa rezultatima.

9. 7. 2022.

Matematički fakultet, Univerzitet u Beogradu
školska 2021/22. godina