Š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.