Algorithms, Data Structures, and Problem Solving
Contents
Contact
Lecturer
- Office: E 308
- Telephone 035 16 71 87
- Email: [m.taromiradi@hh.se]
Lab Instructor
- Office: E 321
- Email: [suleyman.savas@hh.se]
Objectives
On completion of the course students will be able to
- explain how to estimate the execution time of programs
- recognise techniques for algorithm design such as divide and conquer, recursion, dynamic programming
- recognise data structures and algorithms for search and sorting, such as quick sort, binary search trees, hash tables
- identify the need and use data structures as modules to solve larger problems
- use techniques for algorithm design in solving larger problems
- judge how suitable a program is given its execution time
- choose adequate implementations of data structures from program libraries
Practicals and Projects
Computer based exercises with supervision, complementing the lectures, are provided to the students during the lab sessions.
During the course, two projects are carried out in teams in order to emphasise reusable software development in a larger context.
The description of the exercises and projects are available at Süleyman Savaş.
Examination
Examination consists of two elements: written examination of the theory, and project results presented as distributable source archives and with a written report.
Course Material and Resources
Textbooks
- [L] Loudon, Kyle. Mastering Algorithms with C. O’Reilly & Associates, 1999.
- [K+R] Kernighan, Brian W., Ritchie, Dennis M. The C Programming Language. Prentice Hall, 1989.
- [recommended] Sedgewick, Robert. Algorithms in C, Parts 14: Fundamentals, Data Structures, Sorting, Searching. AddisonWesley Professional, 1997.
Slides and Handouts
| Lecture | Handouts / Slides | Other Material |
|---|---|---|
| Lecture 1: Introduction and C Tutorial
August 29, 10:15 |
[K+R]: 2.1-10, 3.1-5, 3.7, 5.1, 5. 3, 5. 4, 7.1-2 |
Acknowledgement
This course is based on the earlier editions of the course given by Amin Farjudian (2015) and Roland Philippsen (2013-2014).