|
Šifra modula |
CS 295 |
Fakultet |
PMF Sarajevo |
Programske paradigme
NASTAVNI PROGRAM
A. OPŠTI PODACI
|
Fakultet |
Prirodno-matematički fakultet Univerziteta u
Sarajevu |
|
Odsjek |
Odsjek za matematiku |
|
Smjer |
Svi smjerovi (ako je student slušao neophodne
module) |
|
Semestar |
Četvrti ili šesti |
|
Naziv modula |
Programske paradigme |
|
Tip modula |
Izborni |
|
Broj kreditnih bodova |
5 |
|
Kontakt sati |
Ukupno |
Predavanja |
Vježbe |
Seminari |
Konsultacije |
|
75 |
45 |
30 |
0 |
po potrebi |
|
Samostalni rad (sati) |
50 |
|
Obavezni prethodno položeni moduli |
Uvod u programiranje |
|
Modul relevantan za module |
– |
|
Nastavno osoblje |
|
|
– Nastavnik nosilac modula |
Doc. dr. Nedžad Dukić |
|
– Ostali nastavnici |
Doc. dr. Haris Gavranović; Doc. dr. Željko
Jurić |
|
– Asistenti |
Adis Alihodžić; Vedad Letić; Mr. Esmir Pilav |
B. CILJEVI MODULA
|
Ciljevi modula su
upoznavanje sa različitim paradigmama (pristupima) u razvoju
softverskih rješenja, kao što su imperativna, proceduralna,
modularna, objektno-zasnovana, objektno-orijentirana, generička,
funkcionalna, deklarativno-logička i konkurentna paradigma, kao i
elementarnoupoznavanje sa osnovnim programskim jezicima koji
podržavaju svaku od navedenih paradigmi |
C. SPECIFIČNI ZADACI MODULA
|
Kroz navedeni modul studenti
će kroz samostalan rad na laboratorijskim vježbama biti usmjereni
na upoznavanje razlika između različitih programskih paradigmi, kao
i prednostima i manama upotrebe svake od njih. Laboratorijske vježbe
će se izvoditi u paketu Mathematica kao primjeru programskog jezika
koji podržava gotovo sve programske paradigme, zatim u jeziku C++
koji također podržava nekoliko programskih paradigmi, i u nekim
tipičnim predstavnicima funkcionalnih i logičko-deklarativnih jezika
(LISP, ML, Prolog). |
D. OČEKIVANI REZULTATI NASTAVNOG
PROCESA
|
Nakon završetka modula,
studenti će biti u stanju da:
- Razumiju razlike između različitih
pristupa u razvoju softverskih rješenja;
- Razumiju ograničenja klasične
imperativne paradigme i potrebu za razmatranjem alternativnih
pristupa u razvoju softverskih rješenja;
- Razumiju ograničenja proceduralnog
pristupa u razvoju većih programa, i potrebu za razmatranjem
objektno-zasnovanog i objektno-orijentiranog pristupa;
- Razumiju ograničenja
objektno-orijentiranih tehnika i potrebu za uvođenjem generičkih
koncepata;
- Razumiju osnovne ideje koje vode ka
alternativnim programskim paradigmama kao što su funkcionalna i
logičko-deklarativna, kao da razumiju prednosti i mane ovakvih
paradigmi u odnosu na konvencionalne paradigme;
- Poznaju koji programski jezici
podržavaju koje programske paradigme
|
E. SADRŽAJ NASTAVNOG PROCESA
|
Br. |
Nastavna jedinica |
Nastavni metod |
Sati rada |
|
Kontakt |
Samostalno |
|
1. |
Pojam programskih paradigmi; Ilustracija
razlika između pojedinih paradigmi |
Usmeno izlaganje 3
Vježbe i zadaci 2 |
5 |
2 |
|
2. |
Klasifikacija programskih paradigmi; Osnovne
karakteristike svake od pojedinih paradigmi |
Usmeno izlaganje 2
Vježbe i zadaci 2 |
5 |
2 |
|
3. |
Imperativna paradigma; Prednosti i ograničenja
imperativne paradigme |
Usmeno izlaganje 3
Vježbe i zadaci 2 |
5 |
2 |
|
4. |
Klasični programski jezici predstavnici
imperativne paradigme |
Usmeno izlaganje 3
Rad na računaru 2 |
5 |
2 |
|
5. |
Proceduralna paradigma; Ograničenja
proceduralne paradigme; Modularna paradigma |
Usmeno izlaganje 3
Rad na računaru 2 |
5 |
2 |
|
6. |
Ilustracija proceduralno-modularnih paradigmi;
Ograničenja proceduralno-modularnih paradigmi |
Usmeno izlaganje 3
Rad na računaru 2 |
5 |
2 |
|
7. |
Potreba za objektno-zasnovanim i
objektno-orijentiranim paradigmama; Osnovni koncepti
objektno-zasnovanih i objektno-orijentiranih paradigmi |
Usmeno izlaganje 3
Vježbe i zadaci 2 |
5 |
2 |
|
8. |
Tipični jezici predstavnici objektno-zasnovanih
i objektno-orijentiranih paradigmi |
Usmeno izlaganje 2
Rad na računaru 2 |
5 |
2 |
|
9. |
Nedostaci objektno-orijentiranih paradigmi;
Potreba za uvođenjem generičke paradigme |
Usmeno izlaganje 3
Vježbe i zadaci 2 |
5 |
2 |
|
10. |
Potreba za alternativnim pristupima razvoju
softverskih rješenja; Lambda račun; Funkcionalna paradigma |
Usmeno izlaganje 3
Vježbe i zadaci 2 |
5 |
2 |
|
11. |
Jezici predstavnici funkcionalne paradigme;
Prednosti i nedostaci funkcionalne paradigme |
Usmeno izlaganje 3
Rad na računaru 2 |
5 |
2 |
|
12. |
Deklarativno-logička paradigma; Paradigma
zasnovana na pravilima |
Usmeno izlaganje 3
Rad na računaru 2 |
5 |
2 |
|
13. |
Prolog kao tipični predstavnik jezika koji
podržava deklarativno-logičku paradigmu |
Usmeno izlaganje 3
Vježbe i zadaci 2 |
5 |
2 |
|
14. |
Nedostaci i ograničenja deklarativno-logičke
paradigme; Budućnost alternativnih programskih paradigmi |
Usmeno izlaganje 3
Rad na računaru 2 |
5 |
2 |
|
15. |
Konkurentna paradigma kao model paralelnog
procesiranja |
Usmeno izlaganje 3
Rad na računaru 2 |
5 |
2 |
F. PROVJERA ZNANJA I OCJENJIVANJE
|
Provjera znanja - kriteriji |
Ocjenjivanje |
|
Kriterij |
Maksimalan broj bodova |
Bodovi za prolaz |
Osvojen broj bodova |
Ocjena (BiH) |
ECTS ocjena |
|
Domaće zadaće (3 zadaće) |
30 |
15 |
< 55,00 |
5 |
F |
|
Projektni zadaci (2 projekta) |
30 |
15 |
55,00 – 64,99 |
6 |
E |
|
Pismeni završni ispit |
40 |
25 |
65,00 – 74,99 |
7 |
D |
|
|
|
|
75,00 – 84,99 |
8 |
C |
|
|
|
|
85,00 – 94,99 |
9 |
B |
|
|
|
|
95,00 – 100,00 |
10 |
A |
|
U k u p n o |
100 |
55 |
|
G. LITERATURA
Osnovna literatura:
1.
D. A. Watt: “Programming Language
Concepts and Paradigms”, Prentice Hall, 1990.
2.
C. Ghezzi, M. Jazayeri: “Programming
Language Concepts”, Third Edition, John Wiley & Sons, Inc., 1998.
3.
R. E. Maeder: “Programming in
Mathematica (2nd edition)”, Addison Wesley, 1991.
4.
C. Reade: “Elements of Functional
Programming”, Addison Wesley, 1989.
5.
L. B. Wilson, R. G. Clark: “Comparative
Programming Languages”, Second Edition, Addison Wesley Publishing
Company, 1993.
Dopunska literatura:
1.
L. W. Friedman: “Comparative Programming
Languages”, Prentice Hall, 1991.
2.
W. F. Clocksin, C. S. Mellish: “Programming
in PROLOG (2nd edition)”, Springer-Verlag, 1984.
3.
A. Koenig, B. Moo: “Ruminations on C++”,
Addison-Wesley Longman Inc, 1997.
4.
B. Meyer: “Object-Oriented Software
Construction”, Prentice Hall, 1988.
5.
S. Wolfram: “The Mathematica Book (4th
edition)”, Cambridge University Press, 1999.