INF-32306 Software Engineering

Course

Credits 6.00

Teaching methodContact hours
Lectures10
Learning supported by IT
Practical extensively supervised25
Practical intensively supervised14
Project learning25
Course coordinator(s)drs. MR Kramer
Lecturer(s)ir. MA Zijp
drs. MR Kramer
dr.ir. A Kassahun
Examiner(s)drs. MR Kramer

Language of instruction:

English

Assumed knowledge on:

Fundamentals of programming (e.g. INF-22306 Programming in Python)
Specifically you should be acquainted with the following concepts and techniques:
- variables, assignment, expressions, operators;
- functions (and/or procedures, subroutines, methods) and parameters; also making your own functions;
- control structures: at least: if, for, while;
- objects and their properties (fields, variables) and operations (methods);
arrays, including standard algorithms to traverse arrays (searching, summing, finding the largest element, etc.).

Continuation courses:

MSc Thesis Information Technology with an emphasis on software development.

Contents:

Software systems are developed to serve a specific purpose for specific groups of users. Such systems typically consist of many interacting components. Designing and implementing software systems goes beyond small-scale and ad-hoc programming. The techniques for building them are known under the term Software Engineering.
Software engineering is the application of a systematic, disciplined, quantifiable approach to the development, operation, and maintenance of software. In other words, it is the application of engineering to software. In this course we cover the process of developing a computer program from an initial idea to a tested and maintainable software system.

Learning outcomes:

After successful completion of this course students are expected to be able to:
- find occurrences of object-oriented (OO) software concepts in a given computer program (source code) or UML model;
- write a software specification using UML;
- assess adherence to specified software development practices;
- design a software system using object-oriented (OO) techniques;
- construct a working computer program according to defined specifications;
- formulate and execute functional tests for a software system;
- operate a software version management system for sharing software components and documentation.

Activities:

- project work;
- small individual assignments;
- developing components and integrating them.

Examination:

Each individual student has to fill out check-lists.
The final grade of the course is derived from the grades for these check-lists: group work (at least 5.5: 50%);
individual contributions to group work (at least 5.5: 50 %).

Literature:

See http://www.wageningenur.nl/inf

ProgrammePhaseSpecializationPeriod
Restricted Optional for: MBEBiosystems EngineeringMSc5AF