Professional Documents
Culture Documents
Osnovni Podaci o PP
Osnovni Podaci o PP
Jezgreni Osnovni
01.07.300. FPI-CIT 01.06.040. 2.09.06.001. Katedra za softverski inenjering i vjetaku inteligenciju
Principi programiranja
Tip predmeta-obaveznost Obavezni MATINOST PREDMETA: Nauna oblast Nauno polje Ua nauna oblast OPIS PREDMETA:
Introduces the fundamental concepts of procedural programming. Topics include data types, control structures, functions, arrays, files, and the mechanics of running, testing, and debugging. Introduce the fundamental concepts of data structures and the algorithms that proceed from them. Topics include recursion, Obrazovni i profesionalni the underlying philosophy of object-oriented programming, fundamental data structures (including stacks, queues, linked lists, hash tables, trees, and graphs), ciljevi: the basics of algorithmic analysis, and an introduction to the principles of language translation. The course also offers an introduction to the historical and social context of computing and an overview of computer science as a discipline ("Computing Curricula 2001 Computer Science"). Po zavretku kursa, student ima osnovna znanja o funkcionisanju raunarskog sistema i jezikog procesora. Nadalje, razumije pojam algoritma i programa, faza u razvoju programa, kao i razliite programske paradigme. Student je u stanju da razloi program u funkcionalne cjeline (potprograme). U stanju je da koristi algoritme pretraivanja i sortiranja, kao i dinamike strukture podataka u cilju rjeavanja problema. Pojam algoritma i programa. Faze u razvoju programa. Fundamentalni algoritmi i strukture podataka. Programski jezik C. Strukturno programiranje i modularni programi. Programske paradigme.
Razvoj raunarstva. Struktura i funkcionisanje raunarskog sistema. Programski jezici. Jeziki procesori. Struktura kompilatora i interpretatora. Neformalna i formalna definicija algoritma. Algoritamski nerjeivi problemi. Kompleksnost problema i algoritama, donja i gornja ocjena. NP-problemi. Faze u rjeavanju zadataka na raunaru. Elementarne komponente programskog jezika. Projektovanje programa. Programi zasnovani na iteraciji. Algoritmi pretraivanja i sortiranja. Potprogrami tj. funkcije. Rekurzija. Programi zasnovani na rekurziji. Rekurzivne procedure pretraivanja i 2 2.09. 2.09.06. Tehnike nauke Raunarstvo i informatika Softverski inenjering (programski jezici)
Kompetencije/obrazovni ishodi:
sortiranja. Dinamike strukture, sortiranje i pretraivanje dinamikih struktura. Izbor iz algoritama kombinatorike, geometrije, teorije grafova, obrade niski, numerike matematike. Strukturno i modularno programiranje. Korienje API-ja. Programske paradigme: proceduralno, funkcionalno, logiko programiranje, objektno programiranje i programiranje voeno dogadajima.
NAPOMENA: Plan studija i programski sadraji pojedinanih naunih disciplina koje ine jegro kompjuterskih nauka razraeni su prema standardima i programima " Computing Curricula 2001 Computer Science", meunarodno priznate profesionalne organizacije " IEEE Computer Society of the Institute for Electrical and Electronic Engineers " u saradnji sa asocijacijom "ACM - Association for Computing Machinery , koje je izradio zajedniki tim "The Joint Task Force on Computing Curricula ", kao svjetski standard akreditacije ovih programa.
Fundamental data structures: Primitive types; arrays; records; strings and string, processing, Stacks; queues; linked lists; hash tables; trees; graphs; Algorithms and problem-solving: Problem-solving strategies; the role of algorithms in the problem-solving process; implementation strategies for algorithms; debugging strategies; the concept and properties of algorithms; Fundamental computing algorithms: O(N log N) sorting algorithms; hash tables including collision-avoidance strategies; binary search trees; representations of graphs; depth- and breadth-first traversals Recursion: The concept of recursion; recursive mathematical functions; simple recursive procedures; divide-and-conquer strategies; recursive backtracking; implementation of recursion; Basic algorithmic analysis: Asymptotic analysis of upper and average complexity bounds; identifying differences among best, average, and worst case behaviors; big O, little o, omega, and theta notation; standard complexity classes; empirical measurements of performance; time and space tradeoffs in algorithms; using recurrence relations to analyze recursive algorithms Algorithmic strategies: Brute-force algorithms; greedy algorithms; divide-andconquer; backtracking; branch-and-bound; heuristics; pattern matching and string/text algorithms; numerical approximation algorithms Fundamental programming constructs: Syntax and semantics of a higher-level language; variables, types, expressions, and assignment; simple I/O; conditional and iterative control structures; functions and parameter passing; structured decomposition Machine level representation of data: Bits, bytes, and words; numeric data representation and number bases; representation of character data Introduction to net-centric computing: Background and history of networking and the Internet; demonstration and use of networking software including e-mail, telnet, and FTP Overview of object-oriented programming: Object-oriented design; encapsulation and information hiding; classes; separation of
behavior and implementation; class hierarchies; inheritance; polymorphism Overview of programming languages: Programming paradigms Software development methodology: Fundamental design concepts and principles; structured design; testing and debugging strategies; test-case design; programming environments; testing and debugging tools Social context of computing: History of computing and computers; evolution of ideas and machines; social impact of computers and the Internet; professionalism, codes of ethics, and responsible conduct; copyrights, intellectual property, and software piracy.
METRIKA PREDMETA:
Nastavne aktivnosti (as) ECTS Kontakt asovi Vjebe treninzi Seminarski i stud. radovi Pedagoke radionice Struna i klni. praksa Individualni rad Individual. i grupno uenje Istraiv. izvora SVEGA asova rada
40
18
Jezici naroda BiH
86
150
Ocjena
ostvare aktivan odnos u procesu sticanja znanja uz pomo raunarske i komunikacione tehnologije, da ostvare dublju interakciju sa nastavnim sadrajima i primjenu istraivakih tehnika u samom procesu sticanja znanja. Student moe da vri konsultacije sa rukovodiocima nadlene Katedre za softverski inenjering i vjetaku inteligenciju u predvienim i planiranim terminima za konsultacije. Za obradu predmeta planirano je da student utroi i 8 sati na istraivanju izvora.
Rjeenja za zadatke za vjebanje e biti objavljena i dostavljena studentima odmah nakon isteka vremena za predaju zadataka predmetnom nastaviku. Zadaci koji su dostavljeni nakon tog vremena nee se prihvatiti
Vrsta evaluacije
Uee u kontaktnom radu - interakcija na predavanjima Programski zadaci Ispitne aktivnosti parcijalni test (problemski test) Ispitne aktivnosti finalni test (problemski test)
c/ Ostali izvori - asopisi, Autor Prezime, Ime (ukoliko je izvor lanak) Naziv asopisa Sjedite izdavaa Izdava God. Vrsta izdanja asopisa
c/ Ostali izvori Internet (WEB) izvori Naziv sajta Adresa sajta Naziv rada/hiperlink Oitano
(*)Vrsta