Algorithmic Methods
2015-2016 - IMT2021 - 10 ECTS

On the basis of

IMT1082 - Object-Oriented Programming

REA1101 - Mathematics for computer science 
or
REA2091 -  Mathematics  2 for computer science

Expected learning outcomes

Knowledge:

  • Become familiar with, explain, apply and to some extent be able to rewrite some standard algorithms such as sorting, searching and graph handling.
  • Describe and explain various data structures (arrays/tables, linked lists, queues, stacks, trees and graphs).
  • Analyze advanced and complex (non-trivial) issues, and finding the algorithm to solve these.
  • Apply recursive approach/method of problem solving and programming.
  • Using abstraction in the construction of programs.

Skills:

  • Writing reliable and efficient / fast computer programs.
  • Write the program code that addresses advanced and complicated issues.
  • Manage and handle advanced data structures (with particular emphasis on trees and graphs).

General competence:

  • Had developed the ability to think and solve sophisticated and complex problems.
  • Finding other/newer knowledge (here: algorithms), results and research in the field.

Topic(s)

Techniques and algorithms:
- Object orientation
- Abstract datatypes
- Recursion
- Searching
- Sorting
- Hashing
- Compression

Data Structures:
- Arrays
- Queues
- Stacks
- Pointers and dynamic allocation
- Lists
- Trees
- Graph (connectivity, weighted, directed)
- Network Flow

Efficiency:
- Complexity and O-notation
- Use of time and space

Teaching Methods

Lectures
Exercises
Tutoring

Form(s) of Assessment

Written exam, 5 hours

Grading Scale

Alphabetical Scale, A(best) – F (fail)

External/internal examiner

Graded by course instructor and examiner.

Re-sit examination

Re-sit August 2016

Examination support

All printed matters and hand written notes

Teaching Materials

Algorithms in C++,  Robert Sedgewick,  Addison-Wesley Publishing Company

Faglærer. Kompendium. Gjøvik: HiG.
Faglærer. Annet utdelt litteratur/artikler/notater. Gjøvik: HiG.