Course syllabus for Algorithms and data structures

Course syllabus adopted 2019-02-20 by Head of Programme (or corresponding).

Overview

  • Swedish nameAlgoritmer och datastrukturer
  • CodeLET375
  • Credits7.5 Credits
  • OwnerTIDAL
  • Education cycleFirst-cycle
  • Main field of studyComputer Science and Engineering, Software Engineering
  • DepartmentCOMPUTER SCIENCE AND ENGINEERING
  • GradingTH - Pass with distinction (5), Pass with credit (4), Pass (3), Fail

Course round 1

  • Teaching language Swedish
  • Application code 62121
  • Maximum participants120
  • Open for exchange studentsNo
  • Only students with the course round in the programme overview.

Credit distribution

0105 Examination 6 c
Grading: TH
6 c
  • 03 Jun 2021 pm L
  • 09 Okt 2020 pm L
  • 27 Aug 2021 pm L
0205 Written and oral assignments 1.5 c
Grading: UG
1.5 c

In programmes

Examiner

Go to coursepage (Opens in new tab)

Eligibility

General entry requirements for bachelor's level (first cycle)
Applicants enrolled in a programme at Chalmers where the course is included in the study programme are exempted from fulfilling the requirements above.

Specific entry requirements

The same as for the programme that owns the course.
Applicants enrolled in a programme at Chalmers where the course is included in the study programme are exempted from fulfilling the requirements above.

Course specific prerequisites

Skills in object oriented programming comprising classes and objects, data encapsulation, inheritance and polymorphism in Java, corresponding to DAT050 Object oriented programming. Elementary skills in discrete mathematics.

Aim

Algorithms and data structures comprises fundamental components in most modern software products. Knowledge and skill in techniques for the construction and analysis of algorithms are important tools in the construction of correct and efficient programs. Knowledge of data abstraction and data structures is important in the construction of, use, and maintenance of adaptable and reusable program components. The course shall give knowledge and skill in the construction and use of algorithms and data structures, and an introduction to various techniques for the analysis of algorithms together with insights in the advantages of using data abstraction in program development.

Learning outcomes (after completion of the course the student should be able to)

  • use various algorithm techniques as tools for problem solving in program construction.
  • perform analysis of the resource demands of algorithms and data structures.
  • use various data structures and gain basic knowledge about important applications.
  • use standard software libraries for data structures and algorithms.
  • implement data structures in an object oriented language.

Content

  • Java is used for coding.
  • Algorithm techniques: iterative and recursive algorithms, proof by induction, divide and conquer, backtracking, dynamic programming.
  • Analysis of the resource demands of algorithms and data structures with respect to computation timed and memory consumption. Asymptotic complexity, average complexity and worst case complexity.
  • Linear and binary search.
  • Sorting algorithms and their properties.
  • The concepts abstract data type and data structure.
  • Data structures: vectors, strings, stacks, queues, lists, trees, binary search trees, hash tables, priority queues, graphs, sets. Common applications. Typical properties and time complexity for the operations in the various structures.
  • Standardised algorithms and classes for data structures.
  • Implementation of data structures.

Organisation

Lecture classes and supervised computer exercises.

Literature

Weiss, M.A., Data structures and problem solving using Java, Addison-Wesley. Edition is communicated at the beginning of the course, or can be requested from the examiner.

Examination including compulsory elements

Mandatory assignments and written exam. Final grade is obtained after passed assignments and is based on the grade of the written exam.