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