Osnove računarstvaOsnove računarstva2015/2016.2015/2016.
V. prof. dr Haris Šupićdr Vedran Ljubović
Osnove računarstvaOsnove računarstva
Uvod u programiranjeUvod u programiranje
Mittwoch, 7. Oktober 2015
Vedran Ljubović * OR15 * P01: Uvod u programiranje 5
Ciljevi predmeta
● Programiranje u programskom jeziku C
Mittwoch, 7. Oktober 2015
Vedran Ljubović * OR15 * P01: Uvod u programiranje 6
Ciljevi predmeta
● Programiranje u programskom jeziku C
● Svi studenti ORa će naučiti programirati
Mittwoch, 7. Oktober 2015
Vedran Ljubović * OR15 * P01: Uvod u programiranje 7
Ciljevi predmeta
● Programiranje u programskom jeziku C
● Svi studenti ORa će naučiti programirati
● Da li je programiranje teško?
Mittwoch, 7. Oktober 2015
Vedran Ljubović * OR15 * P01: Uvod u programiranje 8
Ciljevi predmeta
● Programiranje u programskom jeziku C
● Svi studenti ORa će naučiti programirati
● Da li je programiranje teško?
Mittwoch, 7. Oktober 2015
Vedran Ljubović * OR15 * P01: Uvod u programiranje 9
Šta je to programiranje?
● Na osnovu opisa problema formirati opis rješenja
● Prevesti opis rješenja u jezik koji razumije računar
● Potrebno je sebi precizno predstaviti šta želimo da računar uradi, odnosno korake koje treba da obavi
● Potrebno je „programersko razmišljanje“
Mittwoch, 7. Oktober 2015
Vedran Ljubović * OR15 * P01: Uvod u programiranje 10
Šta je to programiranje?
● Na osnovu opisa problema formirati opis rješenja
● Prevesti opis rješenja u jezik koji razumije računar
● Potrebno je sebi precizno predstaviti šta želimo da računar uradi, odnosno korake koje treba da obavi
● Potrebno je „programersko razmišljanje“
– dobro definisati ulaze i izlaze
– rastaviti zadatak na podzadatke
– predvidjeti sve moguće situacije
Mittwoch, 7. Oktober 2015
Vedran Ljubović * OR15 * P01: Uvod u programiranje 11
Šta znači „znati programirati“?
● Sposobnost rješavanja proizvoljnog problema
Mittwoch, 7. Oktober 2015
Vedran Ljubović * OR15 * P01: Uvod u programiranje 12
Šta znači „znati programirati“?
● Sposobnost rješavanja proizvoljnog problema
1) sposobnost
2) rješavanja
3) proizvoljnog
4) problema
Mittwoch, 7. Oktober 2015
Vedran Ljubović * OR15 * P01: Uvod u programiranje 13
Šta znači „znati programirati“?
● Sposobnost rješavanja proizvoljnog problema
1) sposobnost
2) rješavanja
3) proizvoljnog
4) problema● Programski jezik, okruženje itd. nije bitno
Mittwoch, 7. Oktober 2015
Vedran Ljubović * OR15 * P01: Uvod u programiranje 14
Kako naučiti programirati?
Mittwoch, 7. Oktober 2015
Vedran Ljubović * OR15 * P01: Uvod u programiranje 15
Kako naučiti programirati?
● Samostalno rješavanje problema
Mittwoch, 7. Oktober 2015
Vedran Ljubović * OR15 * P01: Uvod u programiranje 16
Kako naučiti programirati?
● Samostalno rješavanje problema
● Učenje na greškama
Mittwoch, 7. Oktober 2015
Vedran Ljubović * OR15 * P01: Uvod u programiranje 17
Kako naučiti programirati?
● Samostalno rješavanje problema
● Učenje na greškama
● Tražite pomoć!
Mittwoch, 7. Oktober 2015
Vedran Ljubović * OR15 * P01: Uvod u programiranje 18
Kako naučiti programirati?
● Samostalno rješavanje problema
● Učenje na greškama
● Tražite pomoć!
● Probati što više različitih stvari
Mittwoch, 7. Oktober 2015
Vedran Ljubović * OR15 * P01: Uvod u programiranje 19
Kako naučiti programirati?
● Samostalno rješavanje problema
● Učenje na greškama
● Tražite pomoć!
● Probati što više različitih stvari
● Učenje se nikada ne završava...
Mittwoch, 7. Oktober 2015
Vedran Ljubović * OR15 * P01: Uvod u programiranje 20
Zašto učiti programiranje?
Mittwoch, 7. Oktober 2015
Vedran Ljubović * OR15 * P01: Uvod u programiranje 21
Zašto učiti programiranje?
Izvor: code.org
Mittwoch, 7. Oktober 2015
Vedran Ljubović * OR15 * P01: Uvod u programiranje 22
Zašto učiti programiranje?
Izvor: code.org
Mittwoch, 7. Oktober 2015
Vedran Ljubović * OR15 * P01: Uvod u programiranje 23
Zašto učiti programiranje?
● Tradicionalni biznis preuzimaju softverske firme
Izvor: WSJ, „Why Software Is Eating The World“
Mittwoch, 7. Oktober 2015
Vedran Ljubović * OR15 * P01: Uvod u programiranje 24
Zašto C?
● Jedan od najpopularnijih jezika svih vremena
● Stvari koje učimo su dovoljno jednostavne da jezik i nije bitan
● „Blizak metalu“
● Najbolje podržan jezik na svimplatformama
● Jezici nalik na C (C-like)
– C++, C#, Java, PHP, JavaScript...
Mittwoch, 7. Oktober 2015
Vedran Ljubović * OR15 * P01: Uvod u programiranje 25
Najpopularniji jezici danas
Oktobar 2015
Mittwoch, 7. Oktober 2015
Vedran Ljubović * OR15 * P01: Uvod u programiranje 26
Najpopularniji jezici danas
Oktobar 2015
Mittwoch, 7. Oktober 2015
Vedran Ljubović * OR15 * P01: Uvod u programiranje 27
Nedostaci C-a
● Okruženje neće upozoriti na mnoge vrste grešaka
– Program radi... ponekad
– Krahiranje, memorijske greške,neočekivani (besmisleni)rezultati...
Mittwoch, 7. Oktober 2015
Vedran Ljubović * OR15 * P01: Uvod u programiranje 28
Nedostaci C-a (2)
● Manjak literature, alata, online resursa namijenenih početnicima
– C je jezik za profesionalce● Literatura:
– K&R ?
– Jurak ?
– Hansen ? Kelley-Pohl ?
– zbirke razne?
Mittwoch, 7. Oktober 2015
Vedran Ljubović * OR15 * P01: Uvod u programiranje 29
Struktura bodovanja na predmetu
Prisustvo 10 bodova
Zadaće 10 bodova
I parcijalni ispit 20 bodova
II parcijalni ispit 20 bodova
UKUPNO: 60 bodova,
minimalno 40 bodova potrebno za:
Završni ispit: 40 bodova
UKUPNO: 100 bodova
Mittwoch, 7. Oktober 2015
Vedran Ljubović * OR15 * P01: Uvod u programiranje 30
Prisustvo
● 0-3 minusa – 10 bodova
● 4+ minusa – 0 bodova
● Nije dovoljno fizičko prisustvo, potreban je aktivan rad na tutorijalu (rješavanje postavljenih zadataka)
● Nije sramota ne znati, sramota je ne pitati ako ne znate
Mittwoch, 7. Oktober 2015
Vedran Ljubović * OR15 * P01: Uvod u programiranje 31
Zadaće
● 5 zadaća po 2 boda, sastoji se od 1-5 programskih zadataka
● Prepisana – 0 bodova
● Ne kompajlira se – 0 bodova
● Pogrešno shvaćen zadatak – 0 bodova
● Ne daje tačan izlaz niti za jedan primjer ulaza (čak ni onaj iz zadatka) – 0 bodova!!!
● Testiraju se specijalni slučajevi ulaza, besmisleni ulazi itd...
● Program NIKADA ne smije da se krahira, upadne u beskonačnu petlju (osim kod scanf-a – biće objašnjeno)
Mittwoch, 7. Oktober 2015
Vedran Ljubović * OR15 * P01: Uvod u programiranje 32
Ispiti
● Rješavanje programskih zadataka na papiru + analiza koda
● Bitno je i ispravno razumijevanje zadatka
● Parcijalno bodovanje
● Tolerišu se sitne greške (tipfeleri, zagrade, tačka-zarezi) osim ako se vidi da student ne razumije
● Završni ispit: na računaru! Testira se na isti način kao zadaće
Mittwoch, 7. Oktober 2015
Vedran Ljubović * OR15 * P01: Uvod u programiranje 33
Kako položiti predmet?
● Budno pratite predavanja, razmišljajte, zapisujte, postavljajte pitanja (možda kolegama na pauzi ;)
● Poslije predavanja pročitajte prateće materijale (slajdovi, skripta)
● Zadatke sa tutorijala preradite kod kuće prije časa
● Na čas tutorijala dođite sa spremnim pitanjima za tutora
● Redovno i samostalno radite zadaće
● Uz sve ovo ispit bi se trebao moći položiti bez posebnog spremanja
Mittwoch, 7. Oktober 2015
Vedran Ljubović * OR15 * P01: Uvod u programiranje 34
Opterećenje na predmetu
● Svi predmeti:
Mittwoch, 7. Oktober 2015
Vedran Ljubović * OR15 * P01: Uvod u programiranje 35
Opterećenje na predmetu
● Svi predmeti:
30 ECTS kredita
Mittwoch, 7. Oktober 2015
Vedran Ljubović * OR15 * P01: Uvod u programiranje 36
Opterećenje na predmetu
● Svi predmeti:
30 ECTS kredita * 25 sati kredit =
Mittwoch, 7. Oktober 2015
Vedran Ljubović * OR15 * P01: Uvod u programiranje 37
Opterećenje na predmetu
● Svi predmeti:
30 ECTS kredita * 25 sati kredit = 750 sati u semestru
Mittwoch, 7. Oktober 2015
Vedran Ljubović * OR15 * P01: Uvod u programiranje 38
Opterećenje na predmetu
● Svi predmeti:
30 ECTS kredita * 25 sati kredit = 750 sati u semestru/ 20 sedmica =
Mittwoch, 7. Oktober 2015
Vedran Ljubović * OR15 * P01: Uvod u programiranje 39
Opterećenje na predmetu
● Svi predmeti:
30 ECTS kredita * 25 sati kredit = 750 sati u semestru/ 20 sedmica =37,5 sati sedmično
Mittwoch, 7. Oktober 2015
Vedran Ljubović * OR15 * P01: Uvod u programiranje 40
Opterećenje na predmetu OR
● Osnove računarstva
Mittwoch, 7. Oktober 2015
Vedran Ljubović * OR15 * P01: Uvod u programiranje 41
Opterećenje na predmetu OR
● Osnove računarstva
6 ECTS kredita
Mittwoch, 7. Oktober 2015
Vedran Ljubović * OR15 * P01: Uvod u programiranje 42
Opterećenje na predmetu OR
● Osnove računarstva
6 ECTS kredita * 25 sati kredit =
Mittwoch, 7. Oktober 2015
Vedran Ljubović * OR15 * P01: Uvod u programiranje 43
Opterećenje na predmetu OR
● Osnove računarstva
6 ECTS kredita * 25 sati kredit = 150 sati u semestru
Mittwoch, 7. Oktober 2015
Vedran Ljubović * OR15 * P01: Uvod u programiranje 44
Opterećenje na predmetu OR
● Osnove računarstva
6 ECTS kredita * 25 sati kredit = 150 sati u semestru/ 20 sedmica =
Mittwoch, 7. Oktober 2015
Vedran Ljubović * OR15 * P01: Uvod u programiranje 45
Opterećenje na predmetu OR
● Osnove računarstva
6 ECTS kredita * 25 sati kredit = 150 sati u semestru/ 20 sedmica = 7,5 sati sedmično
Mittwoch, 7. Oktober 2015
Vedran Ljubović * OR15 * P01: Uvod u programiranje 46
Opterećenje na predmetu OR
● Osnove računarstva
7,5 sati sedmično
Mittwoch, 7. Oktober 2015
Vedran Ljubović * OR15 * P01: Uvod u programiranje 47
Opterećenje na predmetu OR
● Osnove računarstva
7,5 sati sedmično
- 3 sata predavanja- 2 sata tutorijala- 2,5 sata samostalnograda kod kuće - 1 sat ponavljanje predavanja, čitanje skripte - 1,5 sat (u prosjeku) izrada zadaće