Algorithms, Data Structures and Programming

Undergraduate course

Course description

Objectives and Content

The course gives an introduction to basic algorithms, such as sorting and finding shortest paths. Central in the study of these algorithms is the choice of data structures, as well as the analysis of the runtime and memory use.

An important part of the course consists of programming in practice.

Learning Outcomes

Upon completion of the course the student should have the following learning outcomes defined in terms of knowledge, skills and general competence:


The student

  • knows the basic algorithms and data structures for sorting
  • knows the basic algorithms and data structures for searching
  • knows important graph algorithms and their datastructures
  • knows the mathematical concepts needed for the analysis of the behaviour of algorithms in terms of time and memory use


The student

  • can program efficient algorithms for sorting, searching and graphs
  • can analyse mathematically the behaviour of algorithms in terms of time and memory use
  • can analyse empirically the behaviour of algorithms in terms of time and memory use
  • can recognize new problems that are amenable to the techniques learned in this course, and design new algorithms for similar problems
  • can use generic programming to program the algorithms


General competence
The student

  • can discuss algorithms and datastructures for programming with others
  • is aware of the differences in efficiency of software solutions
  • can apply the knowledge and skills of algorithms and datastructures in various application domains

ECTS Credits


Level of Study


Semester of Instruction

Required Previous Knowledge
Recommended Previous Knowledge
Credit Reduction due to Course Overlap
I120: 10 ECTS, INFO135 10 ECTS
Access to the Course
Access to the course requires admission to a programme of study at The Faculty of Mathematics and Natural Sciences
Teaching and learning methods
During the whole semester: two double lectures and one workshop per week. In addition one review session per week.
Compulsory Assignments and Attendance
The compulsory exercises have to be passed and are then valid for two semesters, including the semester in which they are approved.
Forms of Assessment
Written, digital exam (3 hrs, on a computer). For more information, see Compulsory exercises may count towards the final grade. Both the exam and the compulsory exercises must be passed.
  • Spring semester 2022: Digital written home examination instead of written examination on campus
Grading Scale
The grading scale used is A to F. Grade A is the highest passing grade in the grading scale, grade F is a fail.
Assessment Semester
Examination both spring semester and autumn semester. In semesters without teaching the examination will be arranged at the beginning of the semester.
Reading List
The reading list will be available within July 1st for the autumn semester and December 1st for the spring semester.
Course Evaluation
The course will be evaluated by the students in accordance with the quality assurance system at UiB and the department.
Examination Support Material
All written and printed examination aids are allowed.
Programme Committee
The Programme Committee is responsible for the content, structure and quality of the study programme and courses.
Course Coordinator
Course coordinator and administrative contact person can be found on Mitt UiB, or contact Student adviser
Course Administrator
The Faculty of Mathematics and Natural Sciences represented by the Department of Informatics is the course administrator for the course and study programme.