Difference between revisions of "Algorithms, Data Structures, and Problem Solving"

From CERES
Jump to: navigation, search
 
(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  
* recognise techniques for algorithm design such as divide and conquer, recursion, dynamic programming
+
* recognize 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
+
* 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.  
During the course, two projects are carried out in teams in order to emphasise reusable software development in a larger context.
+
 
Description of the lab sessions and projects are available at [[Süleyman Savaş]].
+
* 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.
  
* Sedgewick, Robert. Algorithms in C, Parts 14: Fundamentals, Data Structures, Sorting, Searching. AddisonWesley Professional, 1997.
+
* '''[K+R]''' Kernighan, Brian W., Ritchie, Dennis M. The C Programming Language. Prentice Hall, 1989.
  
* 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 given by [[Amin Farjudian]] (2015) and Roland Philippsen (2013-2014).
+
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

Contact

Lecturer

Masoumeh Taromirad

  • Office: E 308
  • Telephone 035 16 71 87
  • Email: [m.taromiradi@hh.se]

Lab Instructor

Süleyman Savaş

  • Office: E 321
  • Email: [suleyman.savas@hh.se]

Schedule

Schedule on Timeedit


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

Slides

[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.

Back to Home