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
|