suomeksi
in English

Algorithms and Data Structures (C0197), 3 op

Basic information

Course name:Algorithms and Data Structures
Algorithms and Data Structures
Course Winha code:C0197
Kurre acronym:AD
Credits:3
Type and level of course:Professional studies
Year of study, semester or study period:2.year
Implementation:Autumn semester, 1.period, 2.period
Semester:0708
Language of tuition:English
Teacher:Hannu Laine, Jarkko Vuori
Final assessment:Grading scale (0-5)

Descriptions

Prerequisites

Programming

Course contents (core content level)

The classic ADTs lists, stacks, queues and trees are studied. Different implementations (with identical user interfaces) are compared. The applications are demonstrated, and the students learn to discern the situations applicable to use these general components rather than starting programming from scratch. Recursion is thoroughly studied. Recursion in definitions, in problem solving and as a programming technique is considered. The way recursive function is executed in the processor is examined. The sorting and searching methods are studied as an example of algorithm analysis. The generality aspects are considered also in this context. Tree structures are studied. The template classes, container classes and iterators are discussed, because they are concepts closely connected to topics described above.

Course contents (additional)

Core content level learning outcomes (knowledge and understanding)

The most important issue in the course is to learn to understand the significance of abstraction, generality and software-components and to learn to use them effectively in programming. A view of component developer and a view of component user is considered. The problematic in developing general reusable software components is studied. Students learn to develop reusable software components using C-language first. Then the concept abstract data structure (ADT) is used. The ADT concept is quite a powerful method in achieving the generality and reusability. The defects of these implementations are analysed and tools for improvements are found in C++. Thus a class is used to implement ADTs. This is the way the students learn to understand thoroughly the essence of the object oriented approach. C and C++ features are compared to each other in respect of the tools they offer for abstraction and generality.

Core content level learning outcomes (skills)

Recommended reading

Teaching and learning strategies

lectures and lab. work

Teaching methods and student workload

Lectures
Individual research, reading
Exam
Learning tasks / Assignments
Laboratory assignments

Assessment weighting and grading

exam

Related competences of the degree programme

Software Engineering

login