Study Guide@lith
 

Linköping Institute of Technology

 
 
Valid for year : 2017
 
TDDD95 Algorithmic Problem Solving, 6 ECTS credits.
/Algoritmisk problemlösning/

For:   D   IT   U  

 

Prel. scheduled hours: 48
Rec. self-study hours: 112

  Area of Education: Technology

Main field of studies: Computer Engineering

  Advancement level (G1, G2, A): A

Aim:
  • Analyze the efficiency of different approaches to solving a problem to determine which approaches will be reasonably efficient in a given situation.
  • Compare different problems in terms of their difficulty.
  • Use algorithm design techniques such as greedy algorithms, dynamic programming, divide and conquer, and combinatorial search to construct algorithms to solve given problems.
  • Strategies for testing and debugging algorithms and data structures.
  • Quickly and correctly implement a given specification of an algorithm or data structure.
  • Communicate and cooperate with other students during problem solving in groups.


Prerequisites: (valid for students admitted to programmes within which the course is offered)
Design and Analysis of Algorithms

Note: Admission requirements for non-programme students usually also include admission requirements for the programme and threshhold requirements for progression within the programme, or corresponding.

Organisation:
The course consists of seminars and lab sessions. The seminars are used to go discuss home work exercises, algorithms and algorithmic problem solving. There will also be problem solving sessions where students should solve as many algorithmic problems as possible from a given problem set.
The course runs over the entire spring semester.


Course contents:
Successful problem solving in computer science requires a solid theoretical foundation as well as ability to apply the theory to practical problem solving. The aim of this course is to develop your ability to solve complex algorithmic problems by applying knowledge of algorithms, data structures, and complexity theory. As a professional software developer it is essential to be able to analyze a problem, chose or design an algorithm, judge the efficiency of proposed algorithms, and to implement and test them quickly and correctly. In this course you will practice this by solving a large number of homework assignments and working under time constraints during problem solving sessions. The course will also contain a competitive element where individuals and teams should solve algorithmic problems with time and resource constraints.

The purpose is that the students should be able to use programming and algorithms as an effective tool for problem solving, and should get opportunity to apply theoretical knowledge from other courses to solve practical problems.


Course literature:
Competitive Programming 3 Steven and Felix Halim. https://sites.google.com/site/stevenhalim/
The following books may be of interest:
Introduction to Algorithms, Third Edition, Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest and Clifford Stein
Algorithmic Problem Solving, R. Backhouse, http://algorithmicproblemsolving.org/
How to Solve It, G. Polya


Examination:
Laboratory work
Assignments
4 ECTS
2 ECTS
 
The final grade is a weighted average of the constituent elements, rounded up.



Course language is Swedish.
Department offering the course: IDA.
Director of Studies: Peter Dalenius
Examiner: Fredrik Heintz

Course Syllabus in Swedish

Linköping Institute of Technology

 


Contact: TFK , val@tfk.liu.se
Last updated: 03/23/2017