Algorithm efficiency analysis. Definition, usage, and implementations of abstract data types: Stacks, queues, lists, associative arrays (dictionary in Python), tree structures, graphs, priority queues, heaps. Hash techniques. Tree structures. Implementation and use of data structures that can represent graphs. Algorithms for sorting and searching. Some basic algorithms for graphs, including wayfinding. Use of recursion as programming technique.
Learning outcome
After ending this course the student should know how to:
Knowledge
Know how basic algorithms for sorting, searching and wayfinding in graphs work.
Know how basic data structures for lists, stacks, queues, priority queues, sets, associative arrays and graphs work
Skills
Be able to calculate the efficiency of algorithms
Be able to implement efficient recursive algorithms
Be able to implement efficient algorithms for sorting and searching
General competency
Know how data structures and algorithms for lists, queues, stacks, heaps, binary trees and graphs can be implemented.
Be able to use standard algorithms and data structures to implement efficient programs
Forkunnskapskrav
The student is expected to know how to program at a level equivalent to DAT110 or DAT120 Introduction to programming.
Anbefalte forkunnskaper
Object-oriented Programming (DAT100), Introduction to Programming (DAT120)
Exam
Form of assessment
Weight
Duration
Marks
Aid
Exam system
Withdrawal deadline
Exam date
Written exam
1/1
4 Hours
Letter grades
None permitted
Inspera assessment
—
—
This course has digital exam. It will be possible to use Scantron to scan drawings made by hand and connect these to the digital exam.
Vilkår for å gå opp til eksamen/vurdering
Hand-in assignments
There are nine exercises in this course. In order to be allowed to take the exam at least seven out of the nine exercises need to be approved within the given deadline.
Six hours of lecturing per week. All students can get help for the exercises at a room reserved for the purpose four hours a week. The exercises are approved by presenting them to the teacher or a student assistant during these four hours.
Completion of mandatory exercises are to be made at the times and in the groups that are assigned and published. Absence due to illness or for other reasons must be communicated as soon as possible to the laboratory personnel. One cannot expect that provisions for completion of the exercises at other times are made unless prior arrangements with the laboratory personnel have been agreed upon.
Failure to complete the assigned exercises on time or not having them approved will result in barring from taking the exam of the course.
Overlapping
Emne
Reduksjon (SP)
Algorithms and Datastructures (DAT200_1)
,
Data structures and algoritms (TE0458_1)
6
Algorithms and Datastructures (DAT200_1)
,
Data structures and algoritms (TE0458_A)
6
Datastructures and algorithms (BIE270_1)
,
Algorithms and Datastructures (DAT200_1)
E-book Problem solving with algorithms and data structures using Python Miller, B.N., Ranum, D.L., Wilsonville, Or, Franklin, Beedle & Associates, XI, 357, 2006, isbn:1590280539, Jeg vil basere meg på on-line versjonen av denne boka. I denne versjonen kan studentene prøve ut en del av algoritmene selv. https://runestone.academy/runestone/books/published/pythonds/index.htmlView online Other Kompendium Forelesningsnotater, terminologilister og kompendier som legges ut på Canvas i løpet av faget er del av pensum. Disse dekker pensum som ikke er dekket av primær pensumbok, eller ikke er godt nok dekket av primær lærebok. Other Øvingsoppgaver Øvingene er del av pensum. Løsningsforslag til øvingene er del av pensum. Du må levere 7 av 9 øvinger for å gå opp til eksamen. Oppgaver og løsningsforslag legges ut på Canvas i løpet av faget. Book Introduction to algorithms Cormen, T.H., Leiserson, C.E., Rivest, R.L., Stein, C., Stein, Clifford,; Rivest, Ronald.; Leiserson, Charles Eric.; Cormen, Thomas H., Cambridge, Massachusetts. :, MIT Press, 1 online resource (xix, 1292 pages) :, 2009, isbn:1-62870-913-8; 0-262-53305-7; 0-262-25810-2; 9780262270830, This textbook is thorough and is used for the master course DAT600 algorithm theory. It is also used in other universities for bachelor courses on algorithms. However, this book is very theoretical and mathematical. All algorithms are illustrated with pseudocode alone and not in a real programming language. https://bibsys-ur.userservices.exlibrisgroup.com/view/uresolver/47BIBSYS_UBIS/openurl?ctx_enc=info:ofi/enc:UTF-8&ctx_id=10_1&ctx_tim=2019-11-21T16%3A03%3A53IST&ctx_ver=Z39.88-2004&url_ctx_fmt=info:ofi/fmt:kev:mtx:ctx&url_ver=Z39.88-2004&rfr_id=info:sid/primo.exlibrisgroup.com-vlebooks&req_id=&rft_val_fmt=info:ofi/fmt:kev:mtx:book&rft.genre=book&rft.atitle=&rft.jtitle=&rft.btitle=Introduction%20to%20algorithms&rft.aulast=Cormen&rft.auinit=&rft.auinit1=&rft.auinitm=&rft.ausuffix=&rft.au=&rft.aucorp=&rft.date=2009&rft.volume=&rft.issue=&rft.part=&rft.quarter=&rft.ssn=&rft.spage=&rft.epage=&rft.pages=xix,%201292&rft.artnum=&rft.issn=&rft.eissn=97802622&rft.isbn=9780262533058&rft.sici=&rft.coden=&rft_id=info:doi/&rft.object_id=&rft.eisbn=9780262258104&rft.edition=3rd%20ed..&rft.pub=MIT%20Press&rft.place=Cambridge,%20Mass.%20;%20London&rft.series=&rft.stitle=&rft.bici=&rft_id=info:bibcode/&rft_id=info:hdl/&rft_id=info:lccn/QA76.6&rft_id=info:oclcnum/&rft_id=info:pmid/&rft_id=info:eric/((addata/eric}}&rft_dat=%3Cvlebooks%3EAH33814674%3C/vlebooks%3E%3Curl%3E%3C/url%3E,language=eng,view=UBIS&svc_dat=viewit&user_ip=10.16.56.140&req.skin=primo&rft_pqid=EBC3339142&rft_galeid=&rft_cupid=&rft_eruid=&rft_nurid=&rft_ingid=View online
The course description is retrieved from FS (Felles studentsystem). Version 1