Algoritmi in podatkovne strukture
Transcription
Algoritmi in podatkovne strukture
Predmet: Course title UČNI NAČRT PREDMETA/COURSE SYLLABUS Algoritmi in podatkovne strukture Algorhythms and Data Structure Študijski program in stopnja Study programme and level Informatika v upravljanju in poslovanju 1 Informatics in Business and Management 1 Študijska smer Study field Informatika v upravljanju in poslovanju Informatics in Business and Management Letnik Academic year 1. Semester Semester 2. 1st 2nd Vrsta predmeta/Course type obvezni/obligatory Univerzitetna koda predmeta/University course code 306NM Predavanja Lectures Seminar Seminar 45 Sem. vaje Tutorial Lab. vaje Laboratory work 15 15 Nosilec predmeta/Lecturer: Jezik/ Languages: Teren. vaje Field work Samost. delo Individ. work ECTS 6 dr. Alenka Rožanec Predavanja/Lectures: slovenski/Slovenian Vaje/Tutorial: slovenski/Slovenian Pogoji za vključitev v delo oz. za opravljanje Prerequisits: študijskih obveznosti: • A prerequisite for inclusion is enrolment • Pogoj za vključitev v delo je vpis v 1. in the first year of study. letnik študija. • Students should prepare and publicly • Študent mora pred izpitom pripraviti in present their seminar papers before the javno predstaviti seminarsko nalogo. examination. Vsebina: Content (Syllabus outline): • Uvod. Osnovni principi reševanja • Introduction. Basic principles of solving problemov, algoritem, psevdokoda in problems, algorithm, pseudocode and abstraktni podatkovni tipi; pomen abstract data types; the importance of poznavanja osnovnih tipov in knowledge of the basic types and algoritmov. algorithms. • Analiza algoritmov. Časovna in • Analysis of algorithms. Time and space prostorska zahtevnost algoritmov, complexity of algorithms, order of velikostni red časovne zahtevnosti, magnitude of time complexity, modelling modeliranje dejanskega časa izvajanja, of the actual time of implementation, razlike med razredi zahtevnosti. differences among complexity classes. • Seznami in preslikave. Abstraktni • Lists and mapping. Abstract data types podatkovni tipi in njihove and their implementation: one-way implementacije: enosmerni in dvosmerni linked list and two-way linked list, seznam, množica, vrsta in sklad, group, queue and stack, hash table. zgoščevalna tabela. Primerjava in analiza Comparison and analysis of different • • • • • različnih tipov in implementacij. Slovar. Definicija abstraktnega podatkovnega tipa slovar, iskalna drevesa, binarno drevo, AVL drevo, B drevesa. Prednosti in slabosti različnih dreves, primerjava in analiza različnih implementacij. Prioritetna vrsta kot abstraktni podatkovni tip, implementacija z delno poravnanim drevesom. Metode načrtovanja algoritmov. Preiskovanje prostora stanj, dinamično programiranje, požrešno iskanje. Graf kot abstraktni podatkovni tip s primeri metod načrtovanja algoritmov. Analiza kritične poti, minimalno vprto drevo in iskanje najkrajših poti kot primeri požrešnih algoritmov in dinamičnega programiranja. Urejanje. Pregled osnovnih metod. Urejanje z vstavljanjem in mehurčki, s kopico, hitro sortiranje in radix sort. Analiza časovne zahtevnosti in pogled z vidika metod načrtovanja algoritmov. • • • • • types and ways of implementation. Glossary. Definition of abstract data type, glossary, search tree, binary tree, AVL tree, B trees. Advantages and disadvantages of different trees, comparison and analysis of different ways of implementation. Priority queue as an abstract data type, implementation with a partially aligned tree. Methods of planning algorithms. State space searching, dynamic programming, greedy search. Graph as an abstract data type with examples of methods of planning algorithms. Analysis of critical path, minimum spanning tree and search for the shortest path as examples of greedy algorithms and dynamic programming. Arranging. Review of the basic methods. Arranging with insertion and bubbles, heap, quick sort and radix sort. Analysis of time complexity and the viewpoint from the perspective of methods of planning algorithms. Temeljna literatura in viri/Readings: Cormen, T. H. et al. (2001). Introduction to Algorithms. MIT Press. Kononenko, I., Robnik Šikonja, M. (2003). Algoritmi in podatkovne strukture I. Ljubljana: Založba FE in FRI. Kononenko, I., Robnik Šikonja, M. (2004). Osnove algoritmov in podatkovnih struktur II. Založba FE in FRI, Ljubljana. Sedgewick, R. (2003). Algorithms in Java, Parts 1-3. Addison Wesley. Izvorna koda algoritmov in primerov iz drugega in tretjega učbenika je dosegljiva na http://aps1.fri.uni-lj.si in http://oaps2.fri.uni-lj.si Cilji in kompetence: Učna enota prispeva k razvoju naslednjih splošnih in specifičnih kompetenc: • usposobljenost za raziskovanje na področju informatike v upravljanju in poslovanju ter razvoj kritične in samokritične presoje; • fleksibilna uporaba znanja v praksi; • sposobnost za reševanje konkretnih delovnih problemov z uporabo znanstvenih metod in postopkov; • zmožnost zapisa problema v obliki algoritma; • poznavanje in razumevanje utemeljitve in Objectives and competences: The learning unit contributes to the development of the following general and specific competences: • the ability to carry out research in the field of informatics and business and the development of critical and self-critical assessment; • flexible use of knowledge in practice; • the ability to solve concrete work problems using scientific methods and procedures; • the ability to record a problem in the form of an algorithm; • • • • • zgodovine temeljnih disciplin s področja računalništva in informatike; razumevanje splošne strukture področja računalništva in informatike in povezanost s podpodročji, predvsem z informatiko v upravljanju in poslovanju; razumevanje in uporaba metod kritične analize in razvoja teorij ter njihova uporaba pri reševanju konkretnih delovnih problemov; znanje o načinih predstavitve, zapisa in modeliranja informacije; razvoj programske opreme; osveščenost o zmožnostih in omejitvah informacijskih tehnologij. • • • • • • knowledge and understanding of the reasons and history of the fundamental disciplines in the field of computing and informatics; understanding of the general structure in the field of computing and informatics with subfields, especially in informatics in business and management; understanding and use of the methods of critical analysis and the development of theories as well as their use in solving concrete work problems; knowledge of the methods of presenting, recording and modelling information; development of software; awareness of capabilities and limitations of information technologies. Predvideni študijski rezultati: Intended learning outcomes: Knowledge in understanding: Znanje in razumevanje: Students should: Študent/Študentka: • know various principles of solving • pozna različne principe reševanja problems; problemov; • understand the importance of an abstract • razume pomen abstraktne predstavitve presentation of a problem; problema; • know and understand terms in the • pozna in razume pojme iz analize analysis of algorithms; algoritmov; • know and understand abstract data types • pozna in razume različne abstraktne and algorithms; podatkovne tipe in algoritme; • know and understand various methods of • pozna in razume različne metode planning algorithms; načrtovanja algoritmov; • know and understand the functioning of • pozna in razume delovanje različnih different ways of implementation and urejanj in algoritmov na grafih; various algorithms in graphs; • uporablja pridobljeno znanje načrtovanja • use the gained knowledge of planning algoritmov pri analizi lastnih praktičnih algorithms in the analysis of one's own problemov iz informatike in upravljanja; practical problems in informatics and • uporablja teorijo časovne zahtevnosti business; algoritmov za analizo praktičnih • use the theory of time complexity of problemov iz informatike; algorithms for the analysis of practical • reflektira in kritično ovrednoti različne problems in informatics; praktične rešitve, ki so jih on in drugi • reflect and critically evaluate various uporabili pri izdelavi seminarskih nalog; practical solutions used by the student • demonstrira in reflektira uporabnost and others in the preparation of seminar različnih podatkovnih struktur in papers; algoritmov na praktičnih problemih iz • demonstrate and reflects the applicability upravljanja in poslovanja; of different data structures and • spremlja in uporablja spletne vire ter algorithms in practical problems related knjižnice algoritmov in podatkovnih to business and management; struktur; • monitor and use Internet resources and • aktivno uporablja sodobna programerska libraries of algorithms and data orodja; structures; • pisno in ustno poroča o analizi in • actively use modern software tools; reševanju praktičnih problemov s • področja upravljanja in poslovanja. in oral and written form, report on the analysis and solving of practical problems in the field of business and management. Metode poučevanja in učenja: Learning and teaching methods: • lectures with active participation of • predavanja z aktivno udeležbo študentov students (explanation, discussion, (razlaga, diskusija, vprašanja, primeri, questions, examples, problem solving); reševanje problemov); • seminar papers in connection with • seminarske naloge v povezavi s practical problems in management and praktičnimi problemi iz upravljanja in informatics (analysis and selections of informatike (analiza in izbor primernega appropriate problem, project work, problema, projektno delo, diskusija, discussion, feedback, public presentation sporočanje povratne informacije, javna and demonstration, critical reflection and predstavitev in demonstracija, kritična analysis of one' own work and work of refleksija in analiza lastnega dela in dela others); drugih); • individual and group consultation • individualne in skupinske konzultacije (discussion, additional explanation, (diskusija, dodatna razlaga, obravnava dealing with specific issues); specifičnih vprašanj); • public appearance with a concise • javni nastop z zgoščeno predstavitvijo presentation (observation, analysis, (opazovanje, analiza, refleksija, reflection, assessment and selfocenjevanje in samoocenjevanje). assessment). Načini ocenjevanja: Način (pisni izpit, ustno spraševanje, naloge, projekt): • • pisni in ustni izpit poročilo seminarskega dela ter njegova javna predstavitev Delež (v %) Weight (v %) 50% 50% Assessment: Type (examination, oral, coursework, project): • • written and oral exam report on seminar work and public presentation of the work