Working as a Software Engineer (EN)
2022/2023- Purpose and learning objectives
Relevance
Knowledge
As a professional you will be working together both with business people and software engineers. This course will focus on extending your understanding of the software development process and thereby your ability to work together with software engineers.
Description During your SD and SC classes you have been working with many topics that are relevant for your ability to understand and participate in the software engineering process. The course will build on this understanding and will increase your skills by integrating the topics from SD and SC and give you more experience with the topics.
Participants
The course is for students who want to increase their skills to build IT systems, including, in particular, their programming skills. Participants will not become software engineers by participating, but their skills come at a level that will facilitate collaboration with software engineers.
Components in the course
• Object oriented software development
o Analysis, design and programming
• Handling the semantic gap between problem and solution domain
o Domain driven design – from domain to code
• Well-designed software
o High cohesion and low coupling o Encapsulation o Interfaces, components and services
• Design patterns
o Reuse of known solutions to design problems
• Modeling
o UML
o Forward and reverse engineering
• Experimental, iterative and incremental development in practice
Activities
The course will be an interaction between theory and practice, but the focus will be on problem-based learning. realization of smaller but fully functioning applications.
The main elements of the project and therefore the course will be the following:
• Which applications will we build?
• How do we break down our application?
• How do we work with models to design it?
• How do we program it?• Different programming languages
Skills
• The semantic gap as a challenge
• The use of models in software engineering
• Implementation and use of design patterns in an application• Can create smaller but technically well-designed applications
Competences
• Can use interfaces as contracts between components in a system
• Can use UML and other models both in a forward and a reverse engineering process
• Can work with ubiquitous language and semantic gap in practice• Can choose relevant use of models in an unknown situation
• Can interact with people from the solution domain (software engineers)
• Computational Thinking - Type of instruction
The course will focus on project and problem-based learning. We will be working on one or more real but small project. We will do some tasks together in the class (modelling and programming) and you will do some tasks in smaller groups. We will also as a whole class divide a system into smaller parts and assign the responsibility for building these parts to individual groups.
- Subject/module requirement for
participation
Academic requirement for participation
Primary language used for programming will be Python.Equipment needed to participate
Own computer. - Exam
The learning outcomes of the exam are identical with the learning outcomes of the subject(s)/modul(es)
Prerequisites for access to the examinationPortfolio from each day must be provided.Exam in one or more subjectsSubject/module is tested standaloneType of examOral examinationIndividual exam or group examIndividualExam languagesEnglishPermitted exam aidsNoneAvailable exam aidsNoneType of evaluation7-point grading scaleExaminersInternal censure
In the subject Working as a Software Engineer (EN) you will receive 65 hours of instruction, which corresponds to 86 lessons (1 lesson = 45 min.) and 24% of your total workload for the subject.
The teaching primarily consists of the following activities: digital exercises.
The preparation primarily consists of the following activities: reading the curriculum, exercises.
Read about KEAs Study Activity Model
*KEA can deviate from the number of hours if this is justified by special circumstances