About the course:
Lectures deal with the theoretical parts of the subject and are held in classrooms or by distance learning system. Pre-recorded lectures may also occur.
The course will have a theoretical emphasis on selected parts of: Project planning and project management, problem analysis, program management and inspection, code complexity, API design, troubleshooting and testing, packaging, implementation management and dissemination, modeling and structuring of software, reuse, components, architectures, maintenance and documentation. The course includes a number of laboratory elements that must be completed in groups and that are evaluated both through a written report and an oral presentation.
At the end of the course you will be able to:
- Demonstrate basic knowledge of proven methods and theories for engineering software development.
- Demonstrate insight into how software is developed in the industry.
- Demonstrate in-depth knowledge in the following areas of software development: Program management and code complexity, Building support and tools for software development, API design and modular structures, Modeling using patterns, Testing and troubleshooting, Version management, Documentation, Introduction and dissemination
- Demonstrate the ability to critically and creatively identify, formulate, analyze and evaluate the design and implementation of software-based systems.
- Demonstrate the ability to critically and systematically design software-based systems based on modeling information and with an entrepreneurial mindset.
- Demonstrate the ability to use software development tools in a mature way, manage code, build environments and code storage.
- Demonstrate the ability to plan, lead and perform basic tasks in the development of software-based systems.
- Demonstrate the ability to develop software-based systems based on people's needs and conditions within the framework of society's goals for economic, social and ecologically sustainable development.
- Demonstrate the ability to describe a software-based system in an adequate manner through oral and written presentation in English.
- Demonstrate the ability to assess scientific, societal and ethical aspects regarding the development of software-based systems.
- Demonstrate insight into the possibilities and limitations of software technology, primarily regarding social and economic aspects.
- Demonstrate the ability to seek new knowledge and to continuously develop skills with an entrepreneurial approach (individually and through collaboration with others).