ITF20006 Algorithms and Datastructures (Spring 2015)
Facts about the course
- ECTS Credits:
- 10
- Responsible department:
- Faculty of Computer Science, Engineering and Economics
- Course Leader:
- Lars Vidar Magnusson
- Teaching language:
- Norwegian
- Duration:
- ½ year
The course is connected to the following study programs
Compulsory course in the Bachelor Programme in Computer Science.
Elective course in:
- Bachelor Programme in Computer Engineering
- Bachelor Programme in Computer Engineering, Y-veien
- Bachelor Programme in Computer Engineering, Tress
Prerequisites
This course requires prerequisite knowledge equivalent to Object-oriented Programming.
Lecture Semester
Bachelor Programme in Computer Science: semester 4 (spring)
Bachelor Programme in Computer Engineering: semester 4 or 6 (spring)
Bachelor Programme in Computer Engineering, Y-veien: semester 4 or 6 (spring)
Bachelor Programme in Computer Engineering, Tress: semester 4 or 6 (spring)
Total workload:
4 hours of lectures + exercises per week.
The student's learning outcomes after completing the course
Knowledge
On completion of the course, the students can:
- explain the construction and purpose of linear data structures (lists, queues), tree structures, (binary trees, search trees, balanced trees, binary heaps) and network structures
- give an account of table-based and linked data structures and explain what is meant by the term "effective" in the context of algorithms
- give an account of how different algorithms work and of their effectiveness for storing, inserting, searching, deleting, sorting, traversing and backtracking, both as iterative and recursive variants
Skills
On completion of the course, the students can:
- design, implement and apply data structures to different requirements
- analyze, design, implement and use fundamental and classic algorithms
- use both custom and proprietary algorithms and data structures to solve complex and complicated problems
General competence
On completion of the course, the students can:
- derive pleasure from having insights into fundamental and durable principles in classic computer science that will remain valid regardless of hardware platforms and programming languages
- feel confident in using concepts and terminology that are broadly used computer science communities worldwide
- discuss and advise on the use of data structures and algorithms in different situations in professional forums
- disseminate the importance and necessity of using appropriate structures and effective algorithms
Content
Recursive problems. A review of the key data structures such as tables, lists, queues, stacks, hash tables, trees, graphs, and related operations Algorithms for sorting, searching, storing and recursion The programming language used is Java.
Forms of teaching and learning
Lectures and exercises.
Coursework requirements - conditions for taking the exam
4 assignments must be submitted and approved. The coursework requirements must be approved before students may sit the exam.
Examination
Written exam
Written exam lasting 4 hours. Letter grading scale A?F.
Support materials: 4 sheets (8 pages) in A4-format containing students' own notes.
Course evaluation
This course is evaluated as follows:
- Mid-semester evaluation (optional)
- Final evaluation (compulsory)
The course instructor prepares a course report on the basis of student feedback and on his/her own experiences of the course. Course reports are discussed with the Committee for Study Quality at the Faculty of Computer Sciences.
Literature
Introduction to Algorithms av Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest, Clifford Stein, ISBN-10: 0262033844 ISBN-13: 978-0262033848, third edition.