(Created 2009-08-11.)

PROGRAMMING, FIRST COURSE | EDA017 |

**Aim**

The students shall learn to write small and medium-sized computer programs and attain basic knowledge of object-oriented programming and the programming language Java.

*Knowledge and understanding*

For a passing grade the student must

- be able to explain, at a basic level, what happens in a computer when a program is executed
- be able to explain fundamental concepts in object-oriented and imperative programming
- be able to explain and give examples of use of fundamental algorithms, for example for searching and sorting
- be able to describe and give examples of use of fundamental data structures such as arrays, matrices and lists
- be able to list and describe the most basic Matlab functions

*Skills and abilities*

For a passing grade the student must

- be able to develop and implement algorithms to solve simple problems
- be able to implement Java classes, starting from given specifications
- be able to structure programs, both using subroutines and using classes and methods
- be able to develop a model of a small system, using classes and methods
- be able to use tools to write, test and debug programs
- be able to use Matlab to perform simulations and calculations to solve mathematical problems

*Judgement and approach*

For a passing grade the student must

- be able to estimate the degree of difficulty of writing different programs
- be able to independently learn to write programs in programming languages similar to Java and Matlab

**Contents**

Program constructs, development of elementary algorithms, usage of library classes, testing and debugging. Arrays, searching and sorting. Introduction to functional and data abstraction. Implementation of classes, encapsulation, inheritance and polymorphism. Fundamentals of modelling. Exercise session which give the students experience of problem analysis, program development and program testing. Assignments in Matlab.

**Literature**

Material distributed by the department.

**Code: **0106.
**Name: **Programming Assignments.

**Higher education credits: ** 3.
**Grading scale: **UG.
**Assessment:** Completed programming assignments in Java.

**Code: **0206.
**Name: **Written Programming Examination.

**Higher education credits: ** 4,5.
**Grading scale: **TH.
**Assessment:** Written examination. The final grade of the course is based on the written examination.
**Further information:** To qualify for the written examination, students must have completed the compulsory assignments.

**Code: **0306.
**Name: **Introduction to Matlab.

**Higher education credits: ** 1,5.
**Grading scale: **UG.
**Assessment:** Completed assignments in Matlab.