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