DA 4002 2016
Contents
Algorithms, Data Structures, and Problem Solving
Contact
Lecturer
- Office: E 308
- Telephone 035 16 71 87
- Email: [m.taromirad@hh.se]
Lab Instructor
- Office: E 321
- Email: [suleyman.savas@hh.se]
Schedule
Objectives
On completion of the course students will be able to
- explain how to estimate the execution time of programs
- recognize techniques for algorithm design such as divide and conquer, recursion, dynamic programming
- recognize 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 Project
- Computer based exercises with supervision, complementing the lectures, are provided to the students during the lab sessions.
- By the end of the course, a project is carried out in teams in order to emphasize reusable software development in a larger context.
The description of the lab exercises and project are available at http://ssavas.com/courses/da4002/2016-2/.
Examination
Examination consists of two elements: written examination of the theory, and project results presented as distributable source archives and with a written report.
2015 - Final Exam (+ solutions)
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 | |
Guest Lecture 1: NP-Complete Problems (part 1)
September 5, 10:15 |
Slides (guest lecture) |
|
Lecture 2: Vectors and Lists
and Guest Lecture 2: NP-Complete Problems (part 2) September 12, 10:15 |
Slides (guest lecture) |
[L]: 5 |
Guest Lecture 3: NP-Complete Problems (part 3)
September 19, 10:15 |
Slides (guest lecture) |
Slides includes the final version of the three parts of the guest lectures. |
Lecture 3: Searching, Trees, and Heaps
September 26, 10:15 |
[L]: 9, 10, 12 | |
Lecture 4: Complexity Analysis and Sorting
October 3, 10:15 |
[L]: 3, 4, 12 | |
Lecture 5: Divide and Conquer
and Function Call Mechanism October 10, 10:15 |
[L]: 12 | |
Lecture 6: Dynamic Programming
and Graphs October 17, 10:15 |
[L]: 11 (Graphs) |
Acknowledgement
This course is based on the earlier editions of the course in 2013-2015 and the material provided by Roland Philippsen has been essential in the set up the course.