Difference between revisions of "Algorithms, Data Structures, and Problem Solving"
From CERES
| (16 intermediate revisions by one user not shown) | |||
| Line 14: | Line 14: | ||
* Email: [suleyman.savas@hh.se] | * Email: [suleyman.savas@hh.se] | ||
| + | === Schedule=== | ||
| − | ==Objectives== | + | [https://se.timeedit.net/web/hh/db1/schema/ri1w7XYQ60ZZ1YQvQQ075641y6Y3757.html Schedule on Timeedit] |
| + | |||
| + | |||
| + | == Objectives == | ||
On completion of the course students will be able to | On completion of the course students will be able to | ||
* explain how to estimate the execution time of programs | * 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 | * identify the need and use data structures as modules to solve larger problems | ||
* use techniques for algorithm design in solving larger problems | * use techniques for algorithm design in solving larger problems | ||
| Line 27: | Line 31: | ||
| − | ==Practicals and Project== | + | == Practicals and Project == |
| − | Computer based exercises with supervision, complementing the lectures, are provided to the students during the lab sessions. | + | * 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 == |
Examination consists of two elements: written examination of the theory, and project results presented as distributable source archives and with a written report. | Examination consists of two elements: written examination of the theory, and project results presented as distributable source archives and with a written report. | ||
| Line 40: | Line 47: | ||
=== Textbooks === | === Textbooks === | ||
| − | * Loudon, Kyle. Mastering Algorithms with C. O’Reilly & Associates, 1999. | + | * '''[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. |
| Line 59: | Line 66: | ||
[[media:DA4002_L1_2016.pdf| Slides]] | [[media:DA4002_L1_2016.pdf| Slides]] | ||
|| | || | ||
| + | '''[K+R]:''' 2.1-10, 3.1-5, 3.7, 5.1, 5. 3, 5. 4, 7.1-2 | ||
|- | |- | ||
|} | |} | ||
| Line 64: | Line 72: | ||
==Acknowledgement== | ==Acknowledgement== | ||
| − | This course is based on the earlier editions of the course | + | This course is based on the earlier editions of the course in [http://ssavas.com/courses/da4002/ 2013-2015] and the material provided by Roland Philippsen has been essential in the set up the course. |
=[[Masoumeh Taromirad |Back to Home]]= | =[[Masoumeh Taromirad |Back to Home]]= | ||
Latest revision as of 10:08, 26 August 2016
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]
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.
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 in 2013-2015 and the material provided by Roland Philippsen has been essential in the set up the course.