Important Announcement
PubHTML5 Scheduled Server Maintenance on (GMT) Sunday, June 26th, 2:00 am - 8:00 am.
PubHTML5 site will be inoperative during the times indicated!

Home Explore HASBİ

HASBİ

Published by Emir Can Akyüz, 2021-04-28 20:18:02

Description: FÜTAG-Dergi

Search

Read the Text Version

Module Handbook for the Bachelor Program Software Engineering CODE University of Applied Sciences Version 1.2.0, updated: 30.06.2020 (Attachment to SER SE Version 1.0.1)

2 | 59 The CODE Learning Concept Designing a learning concept is – in a way – trying to predict the future. Ultimately, the aim is to empower students to learn everything they need to be successful in a future world dominated by volatility, uncertainty, complexity, ambiguity, and tech- nology. At CODE, we aim to enable our students to not only survive but actively co-create and shape the world of tomorrow, both in their professional and private life. Therefore, we designed CODE’s learning concept to help students develop a set of funda- mental abilities: • to learn self-determinedly and guided by their own curiosity • to identify and solve problems using their creativity • to realistically assess their competencies and potential • to explore the unknown with a pioneering spirit and to make decisions under uncertainty • to communicate and collaborate successfully with others, especially in international and • interdisciplinary contexts • to think and judge critically and to acquire a solid foundation of explanatory knowledge • to understand technologies, in particular digital technologies, and to assess their actual and potential impact on the economy, politics, and society and to take appropriate account of this in their own actions Theoretical Foundations CODE’s learning concept is unique and a lot of its details have been improved since we started back in 2017, especially thanks to our students who have helped tremendously to understand what works and what doesn’t and to figure out how to improve. Problem-based Learning Knowing the information is just a first step of learning - real competence comes from the ability to apply knowledge and to continue learning. Project-based Learning Students face open-ended problems that are based on predefined scenarios, project-based learning is broader and can in- volve multiple, not that well-defined problems. It requires teamwork, communication, and self-reflection. Learning for Mastery Most students can learn anything, given sufficient time and resources, every student can discover their individual approach to successful learning. By supporting their diverse needs, CODE hopes to motivate them to become lifelong learners who are not afraid of the unknown and are open to continuous improvement Self-directed Learning Students are responsible for acquiring their knowledge and doing their research. Although there is guidance from mentors and support from peers and professors, the students themselves decide what they want to focus on based on their interests and experience. Flipped Classroom Students learn on their own using curated learning resources and prepare questions that they address with the help of pro- fessors and their classmates Peer-to-Peer Learning More advanced students help the beginners. This approach is not only useful for both the tutoring student and the student that needs help but also for creating a supportive community where everyone feels comfortable to learn and grow. Version 1.2.0, updated: 30.06.2020

3 | 59 The Building Blocks Orientation Semester Learning at CODE starts with the orientation semester, where all first-semester students get introduced to CODE’s learning concept, the three study programs, and our Science, Technology & Society Program. They learn how to learn at CODE and become an active part of our community. Students create their first small project and apply the knowledge gained in the introductory modules about software engi- neering, interaction design, and product management. At the end of the orientation semester, students choose their personal mentors. Mentors support their mentees by helping them reflect on their experiences and learning progress and define their personal and professional goals. Core Semester Projects At CODE, projects are at the core of every student’s learning experience. It starts with the challenge of working in an inter- disciplinary and international team. To support the development of those skills, all project teams enjoy biweekly sessions with a team coach to reflect on their performance as a team and to learn about conflict management and success factors for productive teamwork. While working as part of the project team, students continuously face challenges related to their role and responsibility within the team. To transform those challenges into meaningful learning, students use module check-ins, guild meetings, and con- sulting sessions with professors. The learning platform and the learning resource collection help them acquire new knowl- edge and skills. In the end, they are expected to apply their new knowledge in the context of their current project. Modules At the beginning of each core semester, students choose the topics they want to learn, represented by modules. Supported by professors, they connect the selected modules with their project. Usually, the module assessment is related to their project, so students can successfully complete a module by referring to and elaborating on their contribution to the project as assessment. If the project does not allow students to demonstrate the knowledge and skills required for the module, the module coordinator can offer other forms of assessment in accordance with the module description and the examination regulations. Guilds, Learning Units, Consulting Sessions Professors and lecturers at CODE are continually looking for ways to support their students’ learning experience optimally. Therefore, they offer a large variety of learning-related events each semester. Students can choose the events they think best help them with their learning and project experience. Science, Technology and Society (STS) In addition to the STS essentials module that is part of the orientation semester, there are four more mandatory STS modules. Those modules focus on research, academic reading, presentation, and critical judgment. For each module, students pick a topic and agree with the module coordinator on a form of assessment. Synthesis Semester The final semester at CODE, called Synthesis Semester, consists of a capstone project and a bachelor thesis. The idea is to give students the chance to demonstrate their acquired skills and competencies in theory and practice. For the capstone project, the students define the project’s topic and goal and take full responsibility for achieving the promised outcome. The bachelor thesis gives students a chance to apply an established research methodology to a chosen scientific question. This question can but doesn’t have to be linked to the capstone project. Conclusion Studying at CODE is unlike any other learning experience. To truly understand what it means to become a self-directed and curiosity-driven learner, reach out to CODE students, staff and faculty to talk to them in person. Version 1.2.0, updated: 30.06.2020

Table of Contents OS_01 | Introduction to Software Engineering.................................................................................................................................... 6 OS_02 | Introduction to Interaction Design......................................................................................................................................... 7 OS_03 | Introduction to Product Management.................................................................................................................................... 8 STS_01 | Essentials................................................................................................................................................................................ 9 SE_01 | Software Development Basics............................................................................................................................................... 10 SE_02 | Algorithms and Data Structures............................................................................................................................................ 11 SE_03 | Concepts of Programming Languages.................................................................................................................................. 12 SE_04 | Network Programming........................................................................................................................................................... 13 SE_05 | Relational Databases.............................................................................................................................................................. 14 SE_06 | NoSQL Databases................................................................................................................................................................... 15 SE_07 | Collaboration.......................................................................................................................................................................... 16 SE_08 | Clean Code.............................................................................................................................................................................. 17 SE_09 | Cyber Security........................................................................................................................................................................ 18 SE_10 | Automated Software Testing................................................................................................................................................. 19 SE_11 | Hardware and Operating Systems......................................................................................................................................... 20 SE_12 | Internet of Things................................................................................................................................................................... 21 SE_13 | Autonomous Systems............................................................................................................................................................ 22 SE_14 | Artificial Intelligence Basics................................................................................................................................................... 23 SE_15 | Advanced Machine Learning.................................................................................................................................................. 24 SE_16 | Natural Language Processing................................................................................................................................................ 25 SE_17 | 3D Rendering.......................................................................................................................................................................... 26 SE_18 | Image Processing................................................................................................................................................................... 27 SE_19 | Web Technologies Basics....................................................................................................................................................... 28 SE_20 | Web Frontend Technologies.................................................................................................................................................. 29 SE_21 | Native Mobile Development.................................................................................................................................................. 30 SE_22 | Web and Mobile Backend Development............................................................................................................................... 31 SE_23 | Continuous Delivery and Operations.................................................................................................................................... 32 SE_24 | Distributed and Parallel Computing...................................................................................................................................... 33 SE_25 | Data Science........................................................................................................................................................................... 34 SE_26 | Blockchain and Cryptography............................................................................................................................................... 35 SE_27 | Big Data................................................................................................................................................................................... 36 SE_28 | Linear Algebra......................................................................................................................................................................... 37 SE_29 | Multivariate Calculus.............................................................................................................................................................. 38 SE_30 | Probability and Statistics....................................................................................................................................................... 39 SE_31 | Applied Scientific Research................................................................................................................................................... 40 SE_32 | SE Mastery Project.................................................................................................................................................................. 41 SE_33 | Publishing a Research Paper................................................................................................................................................. 42 SE_34 | SE Speciality........................................................................................................................................................................... 43 SE_35 | Software Modeling and Design Patterns............................................................................................................................... 44 SE_36 | Cloud Computing................................................................................................................................................................... 45 SE_37 | Optimization in Artificial Intelligence.................................................................................................................................... 46 SE_38 | Planning in Artificial Intelligence........................................................................................................................................... 47 PM_07 | Agile Process Management................................................................................................................................................... 48 STS_02 | Academic Reading................................................................................................................................................................ 49 STS_03 | Research............................................................................................................................................................................... 50 STS_04 | Presentation......................................................................................................................................................................... 51 STS_05 | Judging Technology............................................................................................................................................................. 52 IS_01 | Teamwork and Collaboration................................................................................................................................................. 53

Table of Contents (cont.) IS_02 | Leadership............................................................................................................................................................................... 54 IS_03 | Creative Problem-Solving....................................................................................................................................................... 55 IS_04 | Self-Directed (Curiosity-Driven) Learning.............................................................................................................................. 56 IS_05 | Sustainable Development....................................................................................................................................................... 57 CP | Capstone Project.......................................................................................................................................................................... 58 BT | Bachelor Thesis............................................................................................................................................................................ 59

6 | 59 OS_01 | Introduction to Software Engineering OS_01 Semester 1 (Orientation) 8 CPs Contact time/self study: 50/190 hours Lecture, seminar/workshop, project work, case study, prac- Teaching Format tice session Mandatory Module Type Annually Frequency • Oral/practical examination Assessment Type • Written examination Not graded Grading Barbara Iverson Module Coordinator None Prerequisites • Software Engineering (B.Sc.) Course module is associated with • Interaction Design (B.A.) • Product Management (B.A.) Contents Students who successfully complete the OS modules gain a basic understanding of the most important aspects of software engineering, product management, and interaction design. They study the most relevant methods, tools, and theories and apply a selection of these in their project work. Students select a problem they would like to focus on and work on a solution over the course of the semester. While re- searching, prototyping, designing, and implementing their solution, the students take on the role of a product manager, an interaction designer and a software engineer within their solo project. They acquire and deepen their knowledge by visiting introductory workshops, completing exercises, and directly applying their skills to their projects. The students reflect on their progress in feedback sessions at the end of each week. They develop an understanding of the professional profiles, roles and responsibilities of a software engineer as they exist in companies of the digital economy today. Qualification Objectives The main objective is to provide students with a sufficient foundational knowledge that allows them to transition into core semester study. Concretely, passing the three orientation semester modules is dependent upon: • creating and presenting an interdisciplinary project demonstrating interest in and basic knowledge of the various fields at CODE, • participating in three different required interpersonal skills workshops, • writing two reflection essays, • consistently documenting and reflecting on the semester using the learning journey. Learning Resources Learning resources are announced in advance at the beginning of each semester. Version 1.2.0, updated: 30.06.2020

7 | 59 OS_02 | Introduction to Interaction Design OS_02 Semester 1 (Orientation) 8 CPs Contact time/self study: 50/190 hours Lecture, seminar/workshop, project work, case study, prac- Teaching Format tice session Mandatory Module Type Annually Frequency • Oral/practical examination Assessment Type • Written examination Not graded Grading Barbara Iverson Module Coordinator OS_01, OS_02, OS_03 Prerequisites • Software Engineering (B.Sc.) Course module is associated with • Interaction Design (B.A.) • Product Management (B.A.) Contents The bachelor thesis is a text that demonstrates the student is able to independently work on a problem in a scientifically appropriate way. The topic of the thesis can be chosen by the student and should (but does not have to) relate to the chosen topic of the capstone project. During a colloquium, students are expected to answer questions related to the topic of their thesis and take an active part in an academic discussion. Qualification Objectives Students who successfully pass this module demonstrate their ability to: • independently work on a self-selected topic in a scientific way • conduct a literature search according to scientific sources • select suitable scientific procedures and methods for their work • apply and, if necessary, adapt them • compare their results critically with the state of research and evaluate them • communicate their results clearly and in an academically appropriate language • answer questions related to the topic of the thesis in an academic discussion. Learning Resources General resources on writing a bachelor thesis are provided by the supervisor(s). Learning resources specific to the student’s bachelor thesis are identified by the student during their research and, if applicable, in liaison with the supervisor(s). Version 1.2.0, updated: 30.06.2020

8 | 59 OS_03 | Introduction to Product Management OS_03 Semester 1 (Orientation) 8 CPs Contact time/self study: 50/190 hours Lecture, seminar/workshop, project work, case study, prac- Teaching Format tice session Mandatory Module Type Annually Frequency • Oral/practical examination Assessment Type • Written examination Not graded Grading Barbara Iverson Module Coordinator OS_01, OS_02, OS_03 Prerequisites • Software Engineering (B.Sc.) Course module is associated with • Interaction Design (B.A.) • Product Management (B.A.) Contents Students who successfully complete the OS modules gain a basic understanding of the most important aspects of software engineering, product management, and interaction design. They study the most relevant methods, tools, and theories and apply a selection of these in their project work. Students select a problem they would like to focus on and work on a solution over the course of the semester. While re- searching, prototyping, designing, and implementing their solution, the students take on the role of a product manager, an interaction designer and a software engineer within their solo project. They acquire and deepen their knowledge by visiting introductory workshops, completing exercises, and directly applying their skills to their projects. The students reflect on their progress in feedback sessions at the end of each week. They develop an understanding of the professional profiles, roles and responsibilities of a product manager as they exist in companies of the digital economy today. Qualification Objectives The main objective is to provide students with a sufficient foundational knowledge that allows them to transition into core semester study. Concretely, passing the three orientation semester modules is dependent upon: • creating and presenting an interdisciplinary project demonstrating interest in and basic knowledge of the various fields at CODE, • participating in three different required interpersonal skills workshops, • writing two reflection essays, • consistently documenting and reflecting on the semester using the learning journey. Learning Resources Learning resources are announced in advance at the beginning of each semester. Version 1.2.0, updated: 30.06.2020

9 | 59 STS_01 | Essentials STS_01 Semester 1 (Orientation) 6 CPs Contact time/self study: 45/135 hours Lecture, seminar/workshop, project work, case study, prac- Teaching Format tice session Mandatory Module Type Annually Frequency • Oral/practical examination Assessment Type • Written examination Graded Grading Dr. Fabian Geier Module Coordinator OS_01, OS_02, OS_03 Prerequisites • Software Engineering (B.Sc.) Course module is associated with • Interaction Design (B.A.) • Product Management (B.A.) Contents STS Essentials is a module in the history of thought, academic writing, analytical thinking, ethics, and philosophy, with refer- ences to the problems of technology. The module covers philosophical inquiries about truth and reality, ethics and morality, art and beauty, as well as questions of social justice, cultural studies, and the role of technology in society. The practical focus of STS Essentials is on academic writing, which is practiced through various written assignments. The STS Essentials module requirements can only be fulfilled by attending the obligatory Learning Units of the same name that are offered. The assessment is based on an essay as well as performance in class. How these aspects are graded and weighted is deter- mined by the respective course instructor. Qualification Objectives Students who successfully pass this module have received an introduction and overview in structured academic writing, ana- lytical thinking, knowledge and reflection about central questions of humanity. They are able to demonstrate this knowledge and use it in practice. Learning Resources Learning resources are announced in advance at the beginning of each semester. Version 1.2.0, updated: 30.06.2020

10 | 59 SE_01 | Software Development Basics SE_01 Semester 2-5 (Core) 5 CPs Contact time/self study: 30/120 hours Lecture, seminar/workshop, project work, case study, prac- Teaching Format tice session Mandatory Module Type Every semester Frequency • Oral/practical examination Assessment Type • Written examination Not graded Grading Fabio Fracassi Module Coordinator OS_01, OS_02, OS_03 Prerequisites • Software Engineering (B.Sc.) Course module is associated with • Interaction Design (B.A.) • Product Management (B.A.) Contents Software development is the process of building a software application, a key element in the larger software engineering process. A wide range of topics are covered in this module, which together allow a student to solve problems and practice using computer programming. The basic concepts of computer programming will be covered here as well as the configura- tion and use of a computer for software development, including the command line interface and integrated development environment. Key elements of the practice of software development will also be covered, including the process of iterative development, the use of version control, debugging, and the documentation process. Qualification Objectives Students who successfully pass this module are able to use, in practice, the basics of: • computer programming • the command-line interface (CLI) • version control • integrated development environments (IDE) Students should also be able to understand the relevancy of the following concepts and can apply them to simple projects: • iterative development • debugging and troubleshooting • documentation Learning Resources Learning resources are announced in advance at the beginning of each semester. Version 1.2.0, updated: 30.06.2020

11 | 59 SE_02 | Algorithms and Data Structures SE_02 Semester 2-5 (Core) 5 CPs Contact time/self study: 30/120 hours Lecture, seminar/workshop, project work, case study, prac- Teaching Format tice session Mandatory Module Type Every semester Frequency • Oral/practical examination Assessment Type • Written examination Graded Grading Dr. Florencia Noriega Module Coordinator OS_01, OS_02, OS_03 Prerequisites • Software Engineering (B.Sc.) Course module is associated with • Interaction Design (B.A.) • Product Management (B.A.) Contents A number of basic algorithms and data structures are at the core of nearly every program. Inspecting algorithms and under- standing their efficiency using techniques such as asymptomatic analysis is key to the assessment of algorithms. Similarly, learning about common data structures and understanding the advantages and disadvantages is fundamental for students to be able to make informed decisions about what data structures to use and how to use them effectively. In this module, students learn about the analysis of algorithms, algorithm time complexity, and searching and sorting al- gorithms. Important data structures such as linked lists, arrays, hash tables, trees, and graphs are also part of this module. Qualification Objectives This module provides students with an understanding of: • How to analyse algorithms • Asymptotic notation • Time complexity theory • Searching and sorting algorithms and their analysis • Data structures • Linked lists and arrays; stacks, queues; hash tables; graphs; trees • Advantages and limitations of the data structures and where they are used Students who successfully pass this module are able to understand the theory behind and have practical experience with these concepts and demonstrate the capability of applying such concepts to novel situations. Learning Resources Learning resources are announced in advance at the beginning of each semester. Version 1.2.0, updated: 30.06.2020

12 | 59 SE_03 | Concepts of Programming Languages SE_03 Semester 2-5 (Core) 5 CPs Contact time/self study: 30/120 hours Lecture, seminar/workshop, project work, case study, prac- Teaching Format tice session Mandatory Module Type Every semester Frequency • Oral/practical examination Assessment Type • Written examination Graded Grading Fabio Fracassi Module Coordinator OS_01, OS_02, OS_03 Prerequisites • Software Engineering (B.Sc.) Course module is associated with • Interaction Design (B.A.) • Product Management (B.A.) Contents There is a wide variety of programming languages, but these languages are usually based on common concepts. Understand- ing these concepts makes it possible to quickly understand and learn new languages and to make informed choices about the language(s) to use in a project. This module introduces the concepts found in programming languages and compiler operations. Students develop an un- derstanding of those concepts and the similarities and differences between languages. This is supplemented by knowledge of compilers and their operations. Qualification Objectives Students who successfully pass this module are able to: • understand general concepts in programming languages such as typing, object-oriented programming, functional pro- gramming and memory management, • identify variations of these concepts in different programming languages, • apply these concepts in practice, • select a programming language based on the desired concepts, • understand compiler operations such as lexical analysis, parsing, semantic analysis, code optimization and code gener- ation. Learning Resources Learning resources are announced in advance at the beginning of each semester. Version 1.2.0, updated: 30.06.2020

13 | 59 SE_04 | Network Programming SE_04 Semester 2-5 (Core) 5 CPs Contact time/self study: 30/120 hours Lecture, seminar/workshop, project work, case study, prac- Teaching Format tice session Elective Module Type Every semester Frequency • Oral/practical examination Assessment Type • Written examination Graded Grading Fabio Fracassi Module Coordinator OS_01, OS_02, OS_03 Prerequisites • Software Engineering (B.Sc.) Course module is associated with • Interaction Design (B.A.) • Product Management (B.A.) Contents Network programming is about creating software which communicates across a computer network. Computer operating systems provide access to the networks they are connected to via low-level APIs, such as sockets, and many programming languages and libraries provide implementations of common network layer protocols such as TCP and UDP, or application layer protocols such as HTTP, IMAP or FTP. In this module, students investigate and answer questions such as: how does the choice of protocol affect the way an en- gineer architects and builds their software? Which network and software choices are “best practice” for transferring large amounts of data that need to arrive perfectly intact, or for real-time streaming of a multi-person video call, or for sending information from an array of IoT devices? What are the pros and cons of various types of network protocols? How does a software engineer design for a network connection that may be unreliable? Which protocols are useful for software that is running on a device not connected to the internet? Qualification Objectives Students who successfully pass this module are able to: • design and implement software using low-level network connections • consider choices of network protocols used and their interaction with software applications • explore the foundational technologies of the internet and how applications interact with them • understand usage of common network protocols, their advantages and limitations Learning Resources Learning resources are announced in advance at the beginning of each semester. Version 1.2.0, updated: 30.06.2020

14 | 59 SE_05 | Relational Databases SE_05 Semester 2-5 (Core) 5 CPs Contact time/self study: 30/120 hours Lecture, seminar/workshop, project work, case study, prac- Teaching Format tice session Compulsory elective (alternative to SE_06) Module Type Every semester Frequency • Oral/practical examination Assessment Type • Written examination Graded Grading Prof. Dr. Peter Ruppel Module Coordinator OS_01, OS_02, OS_03 Prerequisites • Software Engineering (B.Sc.) Course module is associated with • Interaction Design (B.A.) • Product Management (B.A.) Contents The need for storing, updating, managing and searching data in a machine-aggregable and comparable format while being accessed by multiple users simultaneously was observed early on in informatics and still remains a major challenge. Starting with a discussion on how to define a data model, this module covers the basics of operating relational database systems, both the theoretical foundations with relational algebra as well as practical usages such as creating tables, storing data in normalized formats and manipulating information. Furthermore, students learn about data handling and manipula- tion techniques like aggregation, indexing, joining and handling huge amounts of data, as well as accessing data through an application by way of appropriate frameworks, e.g. using Object-Relationship Mappings (ORM). Advanced database objects like user defined functions, triggers or stored procedures are discussed. The motivation for serializing operations is discussed as well as the implementation of transactions and the option of transaction failure and error handling. The course concludes with an overview of state-of-the-art developments, discussing in-memory-databases and multi-version concurrency control (MVCC). Qualification Objectives Students who successfully pass this module have acquired the following knowledge and are able to use it in practice. Stu- dents apply their learning in a project. • How to define a data model and how to adjust it based on their project needs • How to use SQL basics (tables; views; joins; relational enforcement; union; select; create; update; drop; etc.) • Advanced SQL techniques (stored procedures; triggers; user-defined functions; object-level security) • Securing a database • Normalization • Indexes • Entity-Relationship (ER) Model • Relational Database Management System (RDBMS) • Schema optimization • Isolation models • Scaling, performance optimization, handling huge amounts of data Learning Resources Learning resources are announced in advance at the beginning of each semester. Version 1.2.0, updated: 30.06.2020

15 | 59 SE_06 | NoSQL Databases SE_06 Semester 2-5 (Core) 5 CPs Contact time/self study: 30/120 hours Lecture, seminar/workshop, project work, case study, prac- Teaching Format tice session Compulsory elective (alternative to SE_05) Module Type Every semester Frequency • Oral/practical examination Assessment Type • Written examination Graded Grading Prof. Dr. Peter Ruppel Module Coordinator OS_01, OS_02, OS_03 Prerequisites • Software Engineering (B.Sc.) Course module is associated with • Interaction Design (B.A.) • Product Management (B.A.) Contents Building a new application frequently requires the implementation of an operational data store (ODS) in an early stage of design and development. Usually, this requires flexible database schemas and simple development. Further along in de- velopment, elastic scaling, accommodating a fast-growing dataset, and minimizing the use of system resources may play a significant role. NoSQL databases can solve these issues, especially for unstructured or semi-structured data or in a state of development where schema and requirements are still unclear. Furthermore, understanding NoSQL databases includes understanding different types, such as document databases, key-value databases or graph databases. In this module, students learn how to configure and adapt a data model for NoSQL databases. They learn how to optimize efficiency and performance of the databases and how to access them while programming, including through the usage of source code and frameworks. Qualification Objectives Students who successfully pass this module have acquired the following knowledge and are able to use it in practice. Stu- dents will apply their learning in a project. • define and adapt data models to meet business/project needs • understand the advantages and disadvantages of NoSQL compared to relational databases • understand the concepts, characteristics and significance of NoSQL • understand the limitations of NoSQL • understand the advantages and disadvantages of different types of NoSQL databases • create and interact with basic database artefacts • utilize a query or full-text search function in the respective NoSQL database • optimize the respective data structure for huge amounts of data, performance and efficiency • avoid redundancies • handle different data types • interact with a NoSQL database through source code including direct access through plain database objects as well as indirect access through a programming framework • understand and apply the advanced concepts of replication, distribution, sharding, and resilience in a NoSQL database Learning Resources Learning resources are announced in advance at the beginning of each semester. Version 1.2.0, updated: 30.06.2020

16 | 59 SE_07 | Collaboration SE_07 Semester 2-5 (Core) 5 CPs Contact time/self study: 30/120 hours Lecture, seminar/workshop, project work, case study, prac- Teaching Format tice session Mandatory Module Type Every semester Frequency • Oral/practical examination Assessment Type • Written examination Graded Grading Prof. Dr. Ulrich von Zadow Module Coordinator OS_01, OS_02, OS_03 Prerequisites • Software Engineering (B.Sc.) Course module is associated with • Interaction Design (B.A.) • Product Management (B.A.) Contents Efficient collaboration in software development teams is crucial for success because it ensures high code quality and makes generating sustainable code possible. This module examines the technical and procedural aspects of collaboration, includ- ing version control software, bug tracking systems, and code review systems, all of which help development teams to work together seamlessly. Further, students learn how to write clear technical documentation. Qualification Objectives After successful completion of the module, students have understood the following concepts and tools and are able to use them professionally: • Software version control systems • Issue tracking workflows and corresponding tools • Code Reviews They are also able to write understandable and well-structured technical documentation. Learning Resources Learning resources are announced in advance at the beginning of each semester. Version 1.2.0, updated: 30.06.2020

17 | 59 SE_08 | Clean Code SE_08 Semester 2-5 (Core) 5 CPs Contact time/self study: 30/120 hours Lecture, seminar/workshop, project work, case study, prac- Teaching Format tice session Mandatory Module Type Every semester Frequency • Oral/practical examination Assessment Type • Written examination Graded Grading Prof. Dr. Ulrich von Zadow Module Coordinator OS_01, OS_02, OS_03 Prerequisites • Software Engineering (B.Sc.) Course module is associated with • Interaction Design (B.A.) • Product Management (B.A.) Contents Clean code is code that can be adapted to changing requirements. The alternative is code that grows more and more disor- ganized as it is changed over time, leading to slower and slower development. This module introduces clean code principles such as well-structured functions, classes, and modules. It also covers methods for iteratively achieving a high code quality. This includes the ability to recognize potential quality issues (“bad smells”) and leverage refactoring to improve quality. Basic knowledge of automated testing is a prerequisite for this module, so completing SE_10 Automated Software Testing either concurrently with or before this module is strongly recommended. Qualification Objectives Students who successfully pass this module have acquired the following knowledge and are able to use it in practice. • know the characteristics of high-quality code • how to practically write code that has high quality • how to recognize potential quality issues (“bad smells”) • how to improve code quality by refactoring Learning Resources Learning resources are announced in advance at the beginning of each semester. Version 1.2.0, updated: 30.06.2020

18 | 59 SE_09 | Cyber Security SE_09 Semester 2-5 (Core) 5 CPs Contact time/self study: 30/120 hours Lecture, seminar/workshop, project work, case study, prac- Teaching Format tice session Mandatory Module Type Every semester Frequency • Oral/practical examination Assessment Type • Written examination Graded Grading Prof. Dr. Peter Ruppel Module Coordinator OS_01, OS_02, OS_03 Prerequisites • Software Engineering (B.Sc.) Course module is associated with • Interaction Design (B.A.) • Product Management (B.A.) Contents Identifying security risks and breaches is one of the most challenging tasks to solve as a Software Engineer. Gaps in cyber se- curity can occur in many dimensions, from communications to data storage. The foundational principles of cyber security are therefore reliant on assessing potential attack vectors and utilizing architectural patterns to properly secure an application. In this module, students will demonstrate an understanding of these principles and apply them in practice. They also learn to detect fraud and security breaches in their software products. This includes the usage of security analysis tools. Qualification Objectives Students who successfully pass this module should have acquired the following knowledge and should be able to use it in practice. Students will apply their learning in a project. • understand and define different dimensions of cybersecurity(confidentiality, integrity, availability, liability) • understand and apply the tools and methods used to test for security • understand cyber security in the context of data (i.e. transport, persistence, processing) • understand cyber security in the context of software and applications • understand cyber security in the context of transport networks/network security • perform a security analysis • understand and implement security architecture Learning Resources Learning resources are announced in advance at the beginning of each semester. Version 1.2.0, updated: 30.06.2020

19 | 59 SE_10 | Automated Software Testing SE_10 Semester 2-5 (Core) 5 CPs Contact time/self study: 30/120 hours Lecture, seminar/workshop, project work, case study, prac- Teaching Format tice session Mandatory Module Type Every semester Frequency • Oral/practical examination Assessment Type • Written examination Graded Grading Prof. Dr. Ulrich von Zadow Module Coordinator OS_01, OS_02, OS_03 Prerequisites • Software Engineering (B.Sc.) Course module is associated with • Interaction Design (B.A.) • Product Management (B.A.) Contents Automated testing of software has grown in importance in the last two decades, mainly because refactoring and continuous deployment are next to impossible without well-written automated tests. This module focuses on automated testing in its different forms, including unit testing, integration testing and system testing. It also covers the practical ability to write tests for a piece of software and to judge whether these tests are sufficient or not. Qualification Objectives Students who successfully pass this module have acquired the following knowledge: • the available testing methods and types • the reasons for automated testing • the principles of test-driven development They should further be able to: • assess and choose appropriate testing tools • judge whether a given module’s tests are sufficient or not Learning Resources Learning resources are announced in advance at the beginning of each semester. Version 1.2.0, updated: 30.06.2020

20 | 59 SE_11 | Hardware and Operating Systems SE_11 Semester 2-5 (Core) 5 CPs Contact time/self study: 30/120 hours Lecture, seminar/workshop, project work, case study, prac- Teaching Format tice session Elective Module Type Every semester Frequency • Oral/practical examination Assessment Type • Written examination Graded Grading Fabio Fracassi Module Coordinator OS_01, OS_02, OS_03 Prerequisites • Software Engineering (B.Sc.) Course module is associated with • Interaction Design (B.A.) • Product Management (B.A.) Contents Operating systems handle a wide variety of very complex tasks simultaneously. In software engineering, it is critical to un- derstand not only how software functions, but also how it interacts with the underlying operating system and the hardware of the computer. This module covers concepts from general-purpose operating systems and hardware. Students examine different types and architectures of operating systems, including kernels, as well as various hardware components of a computing system. Spe- cifically, the module covers how the operating system interacts with both hardware and software applications. Qualification Objectives Students who successfully pass this module have acquired the following knowledge and are able to use it in practice: • understand the hardware components of a computing system and their purpose, • distinguish between different operating system types and architectures, • understand the concept of a kernel and identify different kernel designs, • understand how the kernel interacts with hardware such as memory, CPU, input and output devices and other periph- eral devices, • understand how the kernel interacts with software applications, e.g., in terms of process scheduling, memory manage- ment and system calls. Learning Resources Learning resources are announced in advance at the beginning of each semester. Version 1.2.0, updated: 30.06.2020

21 | 59 SE_12 | Internet of Things SE_12 Semester 2-5 (Core) 5 CPs Contact time/self study: 30/120 hours Lecture, seminar/workshop, project work, case study, prac- Teaching Format tice session Elective Module Type Every semester Frequency • Oral/practical examination Assessment Type • Written examination Graded Grading Dr. Frank Trollmann Module Coordinator OS_01, OS_02, OS_03 Prerequisites • Software Engineering (B.Sc.) Course module is associated with • Interaction Design (B.A.) • Product Management (B.A.) Contents This module covers the technical foundations and possible uses of the Internet of Things (IoT). In particular, the focus is on the following three aspects: • IoT Devices encompass the typical hardware used in the IoT. This consists of the typical sensors / actuators and their properties. It may also involve the development of micro-controllers to control this hardware. • Communication Protocols include typical wireless technologies and communication protocols associated with the IoT. • IoT Applications refers to the development of software applications that make use of IoT devices. Qualification Objectives Students who successfully pass this module have acquired the following knowledge and are able to use it in practice: • design an IoT system consisting of devices, communication protocols and an IoT application, • identify and solve the challenges associated with software development in the IoT, • select appropriate devices based on their properties, • develop micro-controllers using standardized platforms such as the Raspberry Pi or Arduino, • select appropriate communication protocols based on their properties, • decide when to use an IoT platform and when to implement a stand-alone application, • implement an IoT application that makes use of the capabilities offered by IoT devices. Learning Resources Learning resources are announced in advance at the beginning of each semester. Version 1.2.0, updated: 30.06.2020

22 | 59 SE_13 | Autonomous Systems SE_13 Semester 2-5 (Core) 5 CPs Contact time/self study: 30/120 hours Lecture, seminar/workshop, project work, case study, prac- Teaching Format tice session Elective Module Type Every semester Frequency • Oral/practical examination Assessment Type • Written examination Graded Grading Dr. Frank Trollmann Module Coordinator OS_01, OS_02, OS_03 Prerequisites • Software Engineering (B.Sc.) Course module is associated with • Interaction Design (B.A.) • Product Management (B.A.) Contents Autonomous Systems act independently within a given environment. For this purpose, the autonomous system must per- ceive the state of the environment via sensors, reason about the fulfilment of its goals, and make decisions about which actions to take at which point in time to reach these goals. This notion of autonomy is common between multiple fields of engineering. Accordingly, different types of autonomous systems exist. Examples are robots and multi-agent systems. This module covers commonly used technologies for system and mechanism design of autonomous systems. System design is concerned with the design of the autonomous system in terms of sensors, actuators and goals. Mechanism design is con- cerned with the design of a decision mechanism that selects the next action to take based on the information perceived by the sensors, the system’s goals, and the expected results of these actions. Qualification Objectives Students who successfully pass this module have acquired the following knowledge and areable to use it in practice: • design autonomous systems in terms of sensors, actuators and goals, • design decision mechanisms for selecting actuators based on sensor input and goals, • transfer their practical knowledge to different types of autonomous systems. Learning Resources Learning resources are announced in advance at the beginning of each semester. Version 1.2.0, updated: 30.06.2020

23 | 59 SE_14 | Artificial Intelligence Basics SE_14 Semester 2-5 (Core) 5 CPs Contact time/self study: 30/120 hours Lecture, seminar/workshop, project work, case study, prac- Teaching Format tice session Elective Module Type Every semester Frequency • Oral/practical examination Assessment Type • Written examination Graded Grading Dr. Frank Trollmann Module Coordinator OS_01, OS_02, OS_03 Prerequisites • Software Engineering (B.Sc.) Course module is associated with • Interaction Design (B.A.) • Product Management (B.A.) Contents Artificial Intelligence (AI) seeks to enable artificial systems to act autonomously and rationally. This includes equipping them with basic capabilities of human intelligence, such as planning their own actions, reasoning on the basis of known informa- tion, or learning from experience. Students who study this module develop a basic understanding of the core concepts in artificial intelligence and techniques often related to AI. This includes the concept of rational agents, the basics of machine learning, the basics of automated rea- soning and the basics of decision-making using rule-based approaches, planning, and optimization. Qualification Objectives Students who successfully pass this module have acquired the following knowledge and are able to use it in practice: • decide when to use machine learning, planning, optimization and reasoning, • formulate a problem in a way that enables the application of standardized algorithms from machine learning, planning, optimization and reasoning, • understand the basic concepts and algorithms in machine learning, planning, optimization and reasoning, • apply their knowledge in a practical context in at least one of the above areas, • distinguish and select different algorithms based on their properties, • evaluate the quality of an algorithm and finetune it based on meta-parameters or heuristics. Learning Resources Learning resources are announced in advance at the beginning of each semester. Version 1.2.0, updated: 30.06.2020

24 | 59 SE_15 | Advanced Machine Learning SE_15 Semester 2-5 (Core) 5 CPs Contact time/self study: 30/120 hours Lecture, seminar/workshop, project work, case study, prac- Teaching Format tice session Elective Module Type Every semester Frequency • Oral/practical examination Assessment Type • Written examination Graded Grading Dr. Frank Trollmann Module Coordinator OS_01, OS_02, OS_03 Prerequisites • Software Engineering (B.Sc.) Course module is associated with • Interaction Design (B.A.) • Product Management (B.A.) Contents Students who study this module learn advanced techniques in machine learning. In order to achieve state-of-the-art results in machine learning, the engineer must apply advanced methods to find the right model and fine-tune it. To understand the results, it is useful to visualize the model itself but also the model’s focus on input data (e.g. understanding which part of an image was relevant to decide for a specific classification). In this module, students prove their proficiency in the subject by doing a deep dive into a specific and advanced machine learning problem. Students focus on applying the respective methods, tools, and knowledge to the machine learning ques- tion within their project. Students show that they are able to make an educated decision on machine learning models and their configuration (e.g. layers and architectures of a neural network). They prove that they understand how the selected machine learning approach works and can support this by e.g. creating a visualization of their learning outcomes. Furthermore, their project demon- strates the student’s ability to apply the appropriate metrics, interpret them, handle complex or unbalanced data, and use programming approaches that improve the performance of their chosen model. Qualification Objectives Students who successfully pass this module should have acquired the following knowledge and should be able to use it in practice. Students will apply their learning in a project. • Meta-learning • Deep dives on approaches including (but not limited to): • Neural Network flavors and time series analysis and prediction • Decision tree learning (classification trees, regression trees) • Special & advanced ML topics and improved training and performance • Interpretation and appropriate presentation of your performance metrics • Advanced error metrics and data management and visualization Learning Resources Learning resources are announced in advance at the beginning of each semester. Version 1.2.0, updated: 30.06.2020

25 | 59 SE_16 | Natural Language Processing SE_16 Semester 2-5 (Core) 5 CPs Contact time/self study: 30/120 hours Lecture, seminar/workshop, project work, case study, prac- Teaching Format tice session Elective Module Type Annually Frequency • Oral/practical examination Assessment Type • Written examination Graded Grading Dr. Florencia Noriega Module Coordinator OS_01, OS_02, OS_03 Prerequisites • Software Engineering (B.Sc.) Course module is associated with • Interaction Design (B.A.) • Product Management (B.A.) Contents Natural language processing (also known as computational linguistics) focuses on programming computers to understand and analyze human (natural) language. This module covers speech recognition (e.g. converting spoken word to text), natu- ral-language understanding (e.g. extracting the words of a text and understanding their meaning in context) and natural-lan- guage generation (e.g. text-to-speech functions). Qualification Objectives Students who successfully pass this module have acquired the following knowledge: • Speech recognition • Feature extraction • Performance measure • Natural-language understanding • Syntax and semantics • Segmentation and word tokenization • Predicting parts of speech • Lemmatization • Stop words • Dependency parsing • Named entity recognition • Natural-language generation Learning Resources Learning resources are announced in advance at the beginning of each semester. Version 1.2.0, updated: 30.06.2020

26 | 59 SE_17 | 3D Rendering SE_17 Semester 2-5 (Core) 5 CPs Contact time/self study: 30/120 hours Lecture, seminar/workshop, project work, case study, prac- Teaching Format tice session Elective Module Type Every semester Frequency • Oral/practical examination Assessment Type • Written examination Graded Grading Prof. Dr. Ulrich von Zadow Module Coordinator OS_01, OS_02, OS_03 Prerequisites • Software Engineering (B.Sc.) Course module is associated with • Interaction Design (B.A.) • Product Management (B.A.) Contents Real-time 3D rendering means quickly generating realistic 3D images on a computer and is the basis for many of today’s com- puter games. It is also needed for almost all virtual and augmented reality applications. While current 3D engines provide a very solid base on which to develop applications that leverage 3D rendering, knowledge of the underlying principles, archi- tectures and algorithms is important to be able to use them effectively. Students in this module will gain that knowledge. Prerequisites for the module are the ability to develop a medium-sized codebase (covered in SE_01, SE_07, SE_08 and SE_10) and a solid foundation in linear algebra (covered in SE_28). In addition, image processing knowledge (covered in SE_18) is helpful. Qualification Objectives Students who successfully pass this module have acquired the following knowledge and are able to use it in practice: • principles and common architectures of 3D rendering engines, • the impact of these principles when writing an application using a state-of-the art rendering engine, • architecture of current graphics processing hardware, • the impact of this architecture on applications using 3D rendering. Learning Resources Learning resources are announced in advance at the beginning of each semester. Version 1.2.0, updated: 30.06.2020

27 | 59 SE_18 | Image Processing SE_18 Semester 2-5 (Core) 5 CPs Contact time/self study: 30/120 hours Lecture, seminar/workshop, project work, case study, prac- Teaching Format tice session Elective Module Type Every semester Frequency • Oral/practical examination Assessment Type • Written examination Graded Grading Fabio Fracassi Module Coordinator OS_01, OS_02, OS_03 Prerequisites • Software Engineering (B.Sc.) Course module is associated with • Interaction Design (B.A.) • Product Management (B.A.) Contents Image processing is at the heart of a multitude of today’s applications. Whenever we take pictures with our smartphones, view videos streamed over the internet, or use facial recognition as a login mechanism, image processing algorithms are being used. This module covers a wide variety of subtopics in image processing, including principles of image storage and compression, color models, video compression, and computer vision. It will not cover image processing algorithms based on machine learning. Prerequisites for the module are the ability to develop a medium-sized codebase (covered in SE_01, SE_07, SE_08, and SE_10) and a solid foundation in math (covered in SE_28 and SE_29). Qualification Objectives Students who successfully pass this module have acquired the following knowledge and are able to use it in practice: • general principles of image input/output, storage, filtering, and compression, • principles of color models and choice of color model in practice, • basics of video compression algorithms, • computer vision concepts such as feature detection, object recognition and identification, and motion analysis, • Fourier transform and the sampling theorem. Learning Resources Learning resources are announced in advance at the beginning of each semester. Version 1.2.0, updated: 30.06.2020

28 | 59 SE_19 | Web Technologies Basics SE_19 Semester 2-5 (Core) 5 CPs Contact time/self study: 30/120 hours Lecture, seminar/workshop, project work, case study, prac- Teaching Format tice session Elective Module Type Every semester Frequency • Oral/practical examination Assessment Type • Written examination Not graded Grading Prof. Dr. Adam Roe Module Coordinator OS_01, OS_02, OS_03, SE_19 Prerequisites • Software Engineering (B.Sc.) Course module is associated with • Interaction Design (B.A.) • Product Management (B.A.) Contents Websites are an essential means of communication in the world we live in. Since the inception of the Web, its uses have stretched into nearly every corner of daily life, and its capabilities and architecture have become more refined and complex. This is a broad module covering a general understanding of how a website works, what a web server is, how to dynamically generate and serve content, how a website can be made accessible via the internet, the use of HTTP, how it can be viewed by a user on a browser and what the DOM is, and how a website can receive input from the user. Students will understand what choices they are free to make, e.g. choice of backend language. Students will also understand what the roles of HTML, CSS, and JavaScript are for a website and how they interact. Common architectures for websites such as MVC will be examined here as well. Qualification Objectives Students who successfully pass this module are able to: • build and launch simple websites with dynamic content, • learn about how the internet works and how websites use it, • learn about the client-server relationship, and understand the role of a browser and of a web server, • learn about client-side and server-side rendering, • understand how to generate content dynamically, • understand the limits of simple website software and server architectures. Learning Resources Learning resources are announced in advance at the beginning of each semester. Version 1.2.0, updated: 30.06.2020

29 | 59 SE_20 | Web Frontend Technologies SE_20 Semester 2-5 (Core) 5 CPs Contact time/self study: 30/120 hours Lecture, seminar/workshop, project work, case study, prac- Teaching Format tice session Elective Module Type Every semester Frequency • Oral/practical examination Assessment Type • Written examination Graded Grading Hendrik Niemann Module Coordinator OS_01, OS_02, OS_03 Prerequisites • Software Engineering (B.Sc.) Course module is associated with • Interaction Design (B.A.) • Product Management (B.A.) Contents Web Frontend Technologies have become sophisticated and complex in recent years, allowing for new browser capabilities, a bustling ecosystem of tooling, new architecture patterns, and a new way of thinking about and building websites. Students in this module will learn about contemporary best practices in frontend web application development. The core of this module is a focus on building advanced websites in a secure, modern, and accessible fashion. This often means utilizing a stateful client or pushing the limits of computation in the browser by incorporating new technologies and developments. Qualification Objectives Students who successfully pass this module have acquired the following knowledge and are able to use it in practice: • be able to build complex web frontend clients, • understand the modern JavaScript ecosystem and make informed choices regarding software and frameworks, • build systems which consume HTTP APIs, • design a frontend architecture that takes many factors into account, including accessibility, speed, developer experi- ence, security, and maintainability. Learning Resources Learning resources are announced in advance at the beginning of each semester. Version 1.2.0, updated: 30.06.2020

30 | 59 SE_21 | Native Mobile Development SE_21 Semester 2-5 (Core) 5 CPs Contact time/self study: 30/120 hours Lecture, seminar/workshop, project work, case study, prac- Teaching Format tice session Elective Module Type Every semester Frequency • Oral/practical examination Assessment Type • Written examination Graded Grading Dr. Frank Trollmann Module Coordinator OS_01, OS_02, OS_03 Prerequisites • Software Engineering (B.Sc.) Course module is associated with • Interaction Design (B.A.) • Product Management (B.A.) Contents Mobile devices are an emergent platform that has found widespread use, but also come with challenges, opportunities, and best practices. A specific challenge arises from the fact that there are multiple mobile platforms with different properties and a set of different cross-platform development tools. This module focuses on the development of mobile applications and common issues and frameworks associated with this activity. This includes the challenges resulting from varying devices, the technological difference between the prevalent plat- forms, and limited connectivity. Qualification Objectives Students who successfully pass this module have acquired the following knowledge and are able to use it in practice: • implement applications that run on mobile devices, • deal with the specific properties of mobile platforms, such as limited resources, sensors, mobility and connectivity, • distinguish between the specific challenges and opportunities in the main mobile platforms, • select the right cross-platform development method based on their requirements, • apply their knowledge in a practical context in at least one of the main mobile platforms, • transfer their knowledge to other platforms. Learning Resources Learning resources are announced in advance at the beginning of each semester. Version 1.2.0, updated: 30.06.2020

31 | 59 SE_22 | Web and Mobile Backend Development SE_22 Semester 2-5 (Core) 5 CPs Contact time/self study: 30/120 hours Lecture, seminar/workshop, project work, case study, prac- Teaching Format tice session Elective Module Type Every semester Frequency • Oral/practical examination Assessment Type • Written examination Graded Grading Prof. Dr. Peter Ruppel Module Coordinator OS_01, OS_02, OS_03 Prerequisites • Software Engineering (B.Sc.) Course module is associated with • Interaction Design (B.A.) • Product Management (B.A.) Contents Web and mobile backend development has grown into a mature field with proven best practices, a focus on designing soft- ware for horizontal scalability, and the ability to serve multiple clients via APIs in a secure, modern, and fast network inter- face. Various software design patterns are used in practice, often dependent upon server architecture. These patterns include monolithic applications, microservice architecture, and serverless architecture. Students who study this module will focus on the question of how to build software applications that are scalable in a given context. Qualification Objectives Students who successfully pass this module have acquired the following knowledge and are able to use it in practice: • build a horizontally scalable backend in a web environment, capable of serving multiple clients, using contemporary best practices, • understand how software architectures and server architectures interplay, • launch and maintain backend software in a modern server environment. Learning Resources Learning resources are announced in advance at the beginning of each semester. Version 1.2.0, updated: 30.06.2020

32 | 59 SE_23 | Continuous Delivery and Operations SE_23 Semester 2-5 (Core) 5 CPs Contact time/self study: 30/120 hours Lecture, seminar/workshop, project work, case study, prac- Teaching Format tice session Elective Module Type Every semester Frequency • Oral/practical examination Assessment Type • Written examination Graded Grading Prof. Dr. Adam Roe Module Coordinator OS_01, OS_02, OS_03,SE_10 Prerequisites • Software Engineering (B.Sc.) Course module is associated with • Interaction Design (B.A.) • Product Management (B.A.) Contents Software engineering processes have evolved from the days of long release cycles, slow feedback, and a perpetual high ten- sion between the teams responsible for developing software and those responsible for operating it. Continuous Integration (CI) allows for a developer to quickly test and integrate their work into the mainline of their version control, a process which relies on build automation and automated software testing. Going a step further, building software to be ready to deploy at any moment is known as Continuous Delivery. Even further, Continuous Deployment is the practice of software being deployed automatically to production servers, which itself requires many safeguards to be in place. Col- lectively known as “CI/CD”, these processes have dramatically improved the way software teams work together, the shape of organizations, and the reliability of software systems. CI/CD relies on many elements, both technical and cultural - the latter often being referred to as DevOps. Students who study this module will explore both the how and the why of this evolution. Furthermore, as CI/CD and DevOps become standard in the software engineering process, methodologies keep evolving, with related practices such as Site Re- liability Engineering, Trunk-Based Development, Feature Flagging, and Automated Rollback emerging and gaining traction. Such evolving best practices are covered in this module as well. Qualification Objectives Students who successfully pass this module have acquired the following knowledge and are able to use it in practice: • design and implement a state-of-the-art software deployment pipeline, • practice continuous integration and delivery, • understand the team culture and dynamics required to successfully use CI/CD, • understand continuous deployment, its benefits and difficulties. Learning Resources Learning resources are announced in advance at the beginning of each semester. Version 1.2.0, updated: 30.06.2020

33 | 59 SE_24 | Distributed and Parallel Computing SE_24 Semester 2-5 (Core) 5 CPs Contact time/self study: 30/120 hours Lecture, seminar/workshop, project work, case study, prac- Teaching Format tice session Elective Module Type Annually Frequency • Oral/practical examination Assessment Type • Written examination Graded Grading Fabio Fracassi Module Coordinator OS_01, OS_02, OS_03 Prerequisites • Software Engineering (B.Sc.) Course module is associated with • Interaction Design (B.A.) • Product Management (B.A.) Contents With Moore’s law reaching physical limitations on a single processor in the early 2000s, scaling and growth of computation- al power has shifted more towards parallelization and concurrency. Nowadays, even entry-level consumer computers are equipped with multicore machines, and any software which does not make use of the hardware’s capabilities is considered substandard. The associated non-deterministic scheduling has, however, brought new challenges into the process of soft- ware engineering, requiring an understanding of locking and synchronisation. When network or protocol latencies are added on top of parallelization, a profound understanding of the system is required for efficient calculations. This module covers both standard and emerging best-practices for parallelization and synchronization. Students examine the design and implementation of distributed computing systems and analyze the limits of a system in this context. Qualification Objectives Students who successfully pass this module have acquired the following knowledge and are able to use it in practice: • design and implement distributed and parallel computing systems, • identify parts of a problem which can be parallelized and implement the necessary algorithm, • understand which types of algorithms and problems are suited to parallelization, • understand the physical and algorithmic limits of parallel processing. Learning Resources Learning resources are announced in advance at the beginning of each semester. Version 1.2.0, updated: 30.06.2020

34 | 59 SE_25 | Data Science SE_25 Semester 2-5 (Core) 5 CPs Contact time/self study: 30/120 hours Lecture, seminar/workshop, project work, case study, prac- Teaching Format tice session Elective Module Type Every semester Frequency • Oral/practical examination Assessment Type • Written examination Graded Grading Dr. Florencia Noriega Module Coordinator OS_01, OS_02, OS_03 Prerequisites • Software Engineering (B.Sc.) Course module is associated with • Interaction Design (B.A.) • Product Management (B.A.) Contents Given the growing production of data, making sense of it has become a paramount need. Data science aims to derive knowl- edge from data through quantitative analysis, critical thinking and domain knowledge. This module covers the foundations of data science, including how to effectively handle data, conduct exploratory data anal- ysis supported with statistics, and create data visualizations. Effective communication of results is also central to this module. Qualification Objectives Students who successfully pass this module understand the following concepts and are able to use them in practice: • Categorical and numerical data • Importing and exporting data • Data cleaning • Data processing • Data visualization • Exploratory data analysis supported of statistics and figures • Hypothesis formulation and hypothesis testing using concepts of probability and statistics • Critical thinking (definition and contextualization of problems) • Written communication supported by scientific methodologies Learning Resources Learning resources are announced in advance at the beginning of each semester. Version 1.2.0, updated: 30.06.2020

35 | 59 SE_26 | Blockchain and Cryptography SE_26 Semester 2-5 (Core) 5 CPs Contact time/self study: 30/120 hours Lecture, seminar/workshop, project work, case study, prac- Teaching Format tice session Elective Module Type Annually Frequency • Oral/practical examination Assessment Type • Written examination Graded Grading Prof. Dr. Peter Ruppel Module Coordinator OS_01, OS_02, OS_03 Prerequisites • Software Engineering (B.Sc.) Course module is associated with • Interaction Design (B.A.) • Product Management (B.A.) Contents The invention of Bitcoin in 2008 and the development of subsequent blockchains have revolutionized the way data can be stored, managed and retrieved in a decentralized fashion by providing global consistent-state information that is protected by a consensus among the participants of the network. On top of that, Web3 has emerged, which is based upon a novel set of protocols and crypto assets that facilitate various decentralized applications. Crypto assets can be considered as exchangeable virtual assets that utilize cryptography and are shared via a distributed led- ger. Within all crypto assets, the native cryptocurrencies have been a major driving force behind developments in the field for several years. At the same time, various token systems have emerged, comprising both fungible tokens (such as ERC20-based tokens) and non-fungible tokens, which can represent, for example, digital collectibles or domain names. Token systems were introduced as custom implementations of smart contracts. Their code is executed upon receipt of a transaction and smart contract accounts can store and modify local state and implement arbitrary computations. Other important aspects of DLTs can include scaling solutions and state channels, wallet solutions for end users, the design of governance processes, as well as IT operations for Blockchains and DLTs. Thereby the field of cryptography is of central importance. Qualification Objectives Students who successfully pass this module have acquired the following knowledge and are able to use it in practice. Stu- dents will apply their learning in a project. • Fundamentals of distributed ledger technologies (DLTs) • Principles of consensus algorithms • Fundamentals of public permission-less ledgers and private permitted ledgers • Smart contract design and implementation • Cryptocurrencies and token systems • Scalability solutions, state channels, and side chains • Digital wallets for DLTs • DLT and blockchain governance • Blockchain operations • Fundamentals of cryptographic algorithms, hash functions, symmetric-key cryptography, public-key cryptography, crypto systems, cryptanalysis Learning Resources Learning resources are announced in advance at the beginning of each semester. Version 1.2.0, updated: 30.06.2020

36 | 59 SE_27 | Big Data SE_27 Semester 2-5 (Core) 5 CPs Contact time/self study: 30/120 hours Lecture, seminar/workshop, project work, case study, prac- Teaching Format tice session Elective Module Type Annually Frequency • Oral/practical examination Assessment Type • Written examination Graded Grading Prof. Dr. Adam Roe Module Coordinator OS_01, OS_02, OS_03 Prerequisites • Software Engineering (B.Sc.) Course module is associated with • Interaction Design (B.A.) • Product Management (B.A.) Contents Data is the global resource of the current century. Since the amount of data grows continuously and computing power, frame- works and algorithms have evolved dramatically, data can now be used to extract complex information. Students in this module will cover architectures, patterns, and techniques to handle huge amounts of data by using distribut- ed persistence and computing approaches that are able to process myriads of datasets in “near real-time”. Qualification Objectives Students who successfully pass this module have acquired the following knowledge and are able to use it in practice. Stu- dents will apply their learning in a project. • The ability to design and build data intelligence applications that can process and store data in amounts that go beyond the physical capacity of any single processor or storage device (“big data”) • Big Data Fundamentals • Architectures and patterns for storing and processing large amounts of data (e.g. distributed persistence, distributed processing, lambda and kappa architectures) • Big Data Frameworks Learning Resources Learning resources are announced in advance at the beginning of each semester. Version 1.2.0, updated: 30.06.2020

37 | 59 SE_28 | Linear Algebra SE_28 Semester 2-5 (Core) 5 CPs Contact time/self study: 30/120 hours Lecture, seminar/workshop, project work, case study, prac- Teaching Format tice session Elective Module Type Every semester Frequency • Oral/practical examination Assessment Type • Written examination Graded Grading Dr. Florencia Noriega Module Coordinator OS_01, OS_02, OS_03 Prerequisites • Software Engineering (B.Sc.) Course module is associated with • Interaction Design (B.A.) • Product Management (B.A.) Contents Linear algebra is at the core of many software engineering applications, including machine learning, data analysis, and image processing. Learning linear algebra notation operations are essential for understanding how math translates into meaning. Students in this module will cover systems of equations, vectors, matrices, and their relevant operations. Linear transforma- tions and vector spaces will also be examined. Qualification Objectives Students who successfully pass this module have acquired the following knowledge: • How to solve systems of equations • Vectors and operations with vectors • Adding a scalar and multiplying by a scalar • Adding vectors • Products with vectors; dot product, cross product • Matrices and operations with matrices • Adding a scalar and multiplying by a scalar • Adding and multiplying matrices • Square matrices - determinant, trace, inverse, identity • Geometric interpretation of the vectors and matrices and their operations • Vector space • Linear independence • Changing basis • Linear transformations • Eigenvalues and eigenvectors Learning Resources Learning resources are announced in advance at the beginning of each semester. Version 1.2.0, updated: 30.06.2020

38 | 59 SE_29 | Multivariate Calculus SE_29 Semester 2-5 (Core) 5 CPs Contact time/self study: 30/120 hours Lecture, seminar/workshop, project work, case study, prac- Teaching Format tice session Elective Module Type Every semester Frequency • Oral/practical examination Assessment Type • Written examination Graded Grading Dr. Florencia Noriega Module Coordinator OS_01, OS_02, OS_03 Prerequisites • Software Engineering (B.Sc.) Course module is associated with • Interaction Design (B.A.) • Product Management (B.A.) Contents Multivariate calculus is central to many machine learning techniques, including regression, optimization and neural net- works. Understanding the mathematics behind such algorithms is essential for its correct application. This module starts with differentiation for one variable. It extends this intuition to multivariate functions and finalizes applying these techniques to common machine learning scenarios, such as the training of neural networks and linear and non-linear regressions. Qualification Objectives Students who successfully pass this module understand the following terminology and can use these concepts in practice: Differentiation with one variable • Definition of differentiation • Geometric interpretation • Differentiation of functions — polynomials, trigonometric, power laws • Chain rule Multivariate calculus • Partial differentiation • Directional derivatives • Calculation and geometric interpretation of vectors and matrices in multivariate calculus - gradient, Jacobian, Hessian • Chain rule for multivariate functions Applications of multivariate calculus • Taylor series approximation • Linearization • Optimization and constrained optimization • Regression • Neural networks Learning Resources Learning resources are announced in advance at the beginning of each semester. Version 1.2.0, updated: 30.06.2020

39 | 59 SE_30 | Probability and Statistics SE_30 Semester 2-5 (Core) 5 CPs Contact time/self study: 30/120 hours Lecture, seminar/workshop, project work, case study, prac- Teaching Format tice session Elective Module Type Annually Frequency • Oral/practical examination Assessment Type • Written examination Graded Grading Prof. Dr. Adam Roe Module Coordinator OS_01, OS_02, OS_03 Prerequisites • Software Engineering (B.Sc.) Course module is associated with • Interaction Design (B.A.) • Product Management (B.A.) Contents Probability and statistics constitute a powerful framework that helps us understand, analyze, and visualize random process- es. Probability helps us quantify uncertainty and thus make informed decisions about what is likely to happen based on the information we have. Statistics help us describe random phenomena and make inferences from data. Students in this module will cover probability, including random variables, probability distributions, central limit theorem; descriptive statistics, including statistical measures such as the mean, standard deviation, quantiles and confidence inter- vals; and inferential statistics, including hypothesis testing. Qualification Objectives Students who successfully pass this module understand the following terminology and can use these concepts in practice: • Combinatorics: permutations and combinations, binomial coefficients, binomial theorem • Probability • Discrete and continuous random variables • Probability distributions (binomial, normal and Poisson distributions) • Conditional probability • Central limit theorem • Statistics • Mean, variance, quantiles • Spread and standard deviation • Confidence intervals • Hypothesis testing Learning Resources Learning resources are announced in advance at the beginning of each semester. Version 1.2.0, updated: 30.06.2020

40 | 59 SE_31 | Applied Scientific Research SE_31 Semester 2-5 (Core) 5 CPs Contact time/self study: 30/120 hours Lecture, seminar/workshop, project work, case study, prac- Teaching Format tice session Elective Module Type Every semester Frequency • Oral/practical examination Assessment Type • Written examination Graded Grading Dr. Florencia Noriega Module Coordinator OS_01, OS_02, OS_03 Prerequisites • Software Engineering (B.Sc.) Course module is associated with • Interaction Design (B.A.) • Product Management (B.A.) Contents Research methods are the bedrock of science and technology and therefore of our modern societies. The scientific method, together with skills such as critical thinking, effective communication, and properly citing sources are essential to scientific activity. Students in this module learn how to apply research techniques used in the sciences to a chosen research topic. Qualification Objectives Students who successfully pass this module have acquired the following knowledge and are able to use it in practice: • apply the scientific method to their own research topic, • practice problem definition and critical thinking, • read scientific literature, • learn how to communicate effectively in the sciences. Learning Resources Learning resources are announced in advance at the beginning of each semester. Version 1.2.0, updated: 30.06.2020

41 | 59 SE_32 | SE Mastery Project SE_32 Semester 2-5 (Core) 15 CPs Contact time/self study: 30/420 hours Lecture, seminar/workshop, project work, case study, prac- Teaching Format tice session Elective Module Type Every semester Frequency • Oral/practical examination Assessment Type • Written examination Graded Grading Prof. Dr. Peter Ruppel Module Coordinator OS_01, OS_02, OS_03 Prerequisites • Software Engineering (B.Sc.) Course module is associated with • Interaction Design (B.A.) • Product Management (B.A.) Contents Defining, running, implementing, and successfully finishing an extensive, large-scale project is among the most challenging tasks within the domain of software engineering. Planning, documenting, defining, and refining the content, doing the un- derlying research, and finally leading the project to success requires specific skills. Students in this module will explore the whole lifecycle of implementing a one-semester “deep dive” project in an unfamiliar (technical) domain. They will learn how to prepare and guide the development process and how to navigate the new domain. Equipped with the skills to run an applied scientific SE project (e.g. gained in SE_31 “Applied Scientific Research”), students continue the journey and apply SE and scientific skills to a full semester project and take a deep dive into a student chosen topic. Qualification Objectives Students who successfully pass this module have acquired the following knowledge and are able to use it in practice. Stu- dents will apply their learning in a project. • find a project idea and define a project outline • prepare and plan a large project • independently research the chosen topic • learn how to explore an unfamiliar domain in depth • apply scientific methods to the implementation process • structure and document the implementation process • document the results and outcome of their research project Learning Resources Learning resources are announced in advance at the beginning of each semester. Version 1.2.0, updated: 30.06.2020

42 | 59 SE_33 | Publishing a Research Paper SE_33 Semester 2-5 (Core) 10 CPs Contact time/self study: 30/270 hours Lecture, seminar/workshop, project work, case study, prac- Teaching Format tice session Elective Module Type Annually Frequency • Oral/practical examination Assessment Type • Written examination Graded Grading Dr. Frank Trollmann Module Coordinator OS_01, OS_02, OS_03 Prerequisites • Software Engineering (B.Sc.) Course module is associated with • Interaction Design (B.A.) • Product Management (B.A.) Contents Publishing a research paper is a challenging task requiring specific skills. This includes knowing how to write a proper paper, follow documentation standards, follow good scientific practices, understand peer reviews, or write a rebuttal. Students in this module will learn how to go through this process for the first time. The basis for the module is prior research and project work. The module can be taken in combination with both SE_31 “Applied Scientific Research” and SE_32 “SE Mastery Proj- ect”. Students will also explore how to find the right journal, understand their specific requirements, what a peer review is, and how to manage the actual publication process. Qualification Objectives Students who successfully pass this module have acquired the following knowledge and are able to use it in practice. Stu- dents will apply their learning in a project. • prepare a publication • find the right journal • follow good scientific practices • follow an accepted documentation guideline • submit the paper • go through a peer review (if applicable) Learning Resources Learning resources are announced in advance at the beginning of each semester. Version 1.2.0, updated: 30.06.2020

43 | 59 SE_34 | SE Speciality SE_34 Semester 2-5 (Core) 5 CPs Contact time/self study: 30/120 hours Lecture, seminar/workshop, project work, case study, prac- Teaching Format tice session Elective Module Type Every semester Frequency • Oral/practical examination Assessment Type • Written examination Graded Grading Prof. Dr. Ulrich von Zadow Module Coordinator OS_01, OS_02, OS_03 Prerequisites • Software Engineering (B.Sc.) Course module is associated with • Interaction Design (B.A.) • Product Management (B.A.) Contents Software Engineering is a both a very broad domain and a domain of rapid change. New technologies evolve fast, others are niche topics only covered by some experts. Students in this module will focus on finding a special SE topic, conduct research on appropriate learning resources, and explore the topic in depth. Furthermore, they will learn the process of understand- ing the requirements derived from implementing their speciality topics, and become familiar with the respective tools and methods related to this project. By applying these in the scope of a project, students learn to gain professional knowledge and application skills in a chosen topic in a self-directed manner. Qualification Objectives Students who successfully pass this module have acquired the following knowledge and are able to use it in practice. Stu- dents will apply their learning in a project. • find a domain of interest • explore appropriate learning resources • implement the respective tools methods and knowledge into their semester project • gain professional knowledge and application skills in the chosen topic Learning Resources Learning resources are announced in advance at the beginning of each semester. Version 1.2.0, updated: 30.06.2020

44 | 59 SE_35 | Software Modeling and Design Patterns SE_35 Semester 2-5 (Core) 5 CPs Contact time/self study: 30/120 hours Lecture, seminar/workshop, project work, case study, prac- Teaching Format tice session Elective Module Type Every semester Frequency • Oral/practical examination Assessment Type • Written examination Graded Grading Prof. Dr. Ulrich von Zadow Module Coordinator OS_01, OS_02, OS_03, SE_08, SE_10 Prerequisites • Software Engineering (B.Sc.) Course module is associated with • Interaction Design (B.A.) • Product Management (B.A.) Contents As software projects get larger, it becomes essential to structure them, and methods for structuring are the subject of this module. In the first part of the module, students will learn solutions to commonly occurring problems, so-called design patterns. These describe typical structures and interactions between objects or other program entities, giving developers a template from which they can build their own solutions. In the second part, students will learn methods used to develop structure in software, known as software modelling: this includes structural principles as well as diagram types (such as UML) that can be used to develop and communicate structure. This module directly builds upon the content of SE_08 “Clean Code”, and therefore, SE_08 and SE_10 are requirements for SE_35. Qualification Objectives Students who successfully pass this module have acquired the following knowledge and are able to use it in practice. • structural principles used in larger software projects • diagram types used to document and communicate the structure of these projects • how to practically use these diagrams • commonly used creational, structural, and behavioral design patterns • how to apply design patterns in a practical project Learning Resources Learning resources are announced in advance at the beginning of each semester. Version 1.2.0, updated: 30.06.2020

45 | 59 SE_36 | Cloud Computing SE_36 Semester 2-5 (Core) 5 CPs Contact time/self study: 30/120 hours Lecture, seminar/workshop, project work, case study, prac- Teaching Format tice session Elective Module Type Every semester Frequency • Oral/practical examination Assessment Type • Written examination Graded Grading Prof. Dr. Adam Roe Module Coordinator OS_01, OS_02, OS_03 Prerequisites • Software Engineering (B.Sc.) Course module is associated with • Interaction Design (B.A.) • Product Management (B.A.) Contents Cloud computing is the practice of using computer infrastructure in a flexible manner, using services as they are needed. This encompasses computational power, storage, and dedicated services. The widespread availability of cloud computing has changed the shape of organizations, impacted software architecture, and changed the software development process. Stu- dents in this module will learn about what cloud computing is and how to use it. The module encompasses the use of typical services offered in a cloud and the ways in which cloud computing can be leveraged to help the software engineering pro- cess. Students will investigate pitfalls such as high cost, compliance issues and vendor lock-in. Together with the availability of programmable infrastructure, containerization and orchestration of containers, software engineering teams can reliably reproduce the state of an application, allowing for streamlined engineering processes and widespread software distribution. Qualification Objectives Students who successfully pass this module have acquired the following knowledge and are able to use it in practice. • design and implement a cloud architecture for software applications • adapt software application for their cloud architecture • leverage programmable infrastructure for application operations and the development process • gain experience managing an organization in a cloud Learning Resources Learning resources are announced in advance at the beginning of each semester. Version 1.2.0, updated: 30.06.2020

46 | 59 SE_37 | Optimization in Artificial Intelligence SE_37 Semester 2-5 (Core) 5 CPs Contact time/self study: 30/120 hours Lecture, seminar/workshop, project work, case study, prac- Teaching Format tice session Elective Module Type Every semester Frequency • Oral/practical examination Assessment Type • Written examination Graded Grading Dr. Frank Trollmann Module Coordinator OS_01, OS_02, OS_03 Prerequisites • Software Engineering (B.Sc.) Course module is associated with • Interaction Design (B.A.) • Product Management (B.A.) Contents Optimization is a search technique that assigns values to a set of parameters such that they optimize the output of a given function. Examples span from microeconomics (e.g. maximizing the utility of a fixed budget or maximizing the revenue of a business) to control engineering (e.g. model predictive control). The task of engineering an optimization system requires an appropriate formalization of the domain constraints and goals into an optimization problem, a formulation of optimization constraints and algorithm quality requirements, the selection of an appropriate optimization algorithm, and the configura- tion and evaluation of that algorithm. In this module, students will prove their optimization proficiency by doing a deep dive into a specific and advanced optimi- zation problem. In the process, students will develop a comprehensive understanding of optimization problems, constraints and quality requirements, optimization algorithms and their configuration. The application of optimization in the context of this deep dive shows the ability to apply this understanding in a complex optimization problem. Qualification Objectives Students who successfully pass this module should have acquired the following knowledge and should be able to use it in practice. Students will apply their learning in a project. • Formulation and analysis of optimization problems • Formulation of optimization goals, side-constraints, and quality requirements • Selection, configuration and evaluation of optimization algorithms • Deep dives on approaches including (but not limited to): • Optimization in microeconomics • Quantum optimization • Genetic and evolutionary optimization algorithms Learning Resources Learning resources are announced in advance at the beginning of each semester. Version 1.2.0, updated: 30.06.2020

47 | 59 SE_38 | Planning in Artificial Intelligence SE_38 Semester 2-5 (Core) 5 CPs Contact time/self study: 30/120 hours Lecture, seminar/workshop, project work, case study, prac- Teaching Format tice session Elective Module Type Every semester Frequency • Oral/practical examination Assessment Type • Written examination Graded Grading Dr. Frank Trollmann Module Coordinator OS_01, OS_02, OS_03 Prerequisites • Software Engineering (B.Sc.) Course module is associated with • Interaction Design (B.A.) • Product Management (B.A.) Contents Planning is a search technique that identifies a sequence of actions that can lead from a start state to a goal state. Examples are: calculating a route in a street graph, selecting moves for a game like chess, or scheduling production processes in a fac- tory. The task of engineering a planning system requires an appropriate formalization of the domain constraints and goals into a planning problem, a formulation of those constraints and goals, the selection of an appropriate planning algorithm, and the configuration and evaluation of that algorithm. In this module, students will prove their planning proficiency by doing a deep dive into a specific and advanced planning problem. In the process, students will develop a deep understanding of planning problems, constraints, and goal formula- tions, as well as planning algorithms and planning heuristics. The application of planning in the context of this deep dive shows the ability to apply this understanding to a complex planning problem. Qualification Objectives Students who successfully pass this module have acquired the following knowledge and are able to use it in practice. Stu- dents will apply their learning in a project. • Formulation and analysis of planning problems • Formulation of planning constraints and goal functions • Selection, configuration and evaluation of planning algorithms • Deep Dives on approaches including (but not limited to): • Transportation route calculation • Automated reasoning and proofing • Robot motion planning • Scheduling Learning Resources Learning resources are announced in advance at the beginning of each semester. Version 1.2.0, updated: 30.06.2020

48 | 59 PM_07 | Agile Process Management PM_07 Semester 2-5 (Core) 5 CPs Contact time/self study: 30/120 hours Lecture, seminar/workshop, project work, case study, prac- Teaching Format tice session Mandatory Module Type Every semester Frequency • Oral/practical examination Assessment Type • Written examination Graded Grading Radoslaw Orszewski Module Coordinator OS_01, OS_02, OS_03 Prerequisites • Software Engineering (B.Sc.) Course module is associated with • Interaction Design (B.A.) • Product Management (B.A.) Contents Over the past decade, the product development landscape has greatly changed. Software development teams must meet customer needs faster and faster, and the shift to more agile forms of software planning and delivery helps teams to achieve that. Applying agile methods such as Scrum or Kanban helps teams and companies to improve product quality, time to mar- ket, and to increase team motivation and identification with the product. Students who study this module will learn about the importance of these agile methods. Qualification Objectives Students who successfully pass this module are able to: • provide an overview of the history and current approach to project and product development practices, • utilize different approaches (deterministic and empirical) depending on the complexity and environment of their project (agile or traditional project management), • benefit from using the visual management methods (i.e.Kanban) in order to organize themselves and their team around their work, increase self-organization, transparency and progress tracking (identifying blockers, internal and external dependencies, etc.), • develop a complex product using the Scrum framework, • explain roles and responsibilities of the Product Owner, Scrum Master and the Development Teams, • perform Scrum ceremonies correctly, • understand the value of Scrum artifacts and additional activities (refinement, establishing meaningful Sprint Goal, etc.), • understand the basics of so-called “scaling” of agile: implementation patterns used in large organizations delivering complex services and products to multiple customers, platforms or markets, • use A3 tool in order to build consensus around things to be improved, implement PDCA cycle approach and execute an improvement experiment related to their project, • explain how lean management principles could help in process optimization, • resolve problems or challenges in a systematic, collaborative way. Tools and Methods • Agile Manifesto and the New New Product Development Game • Kanban Method: familiarity with Change Management Principles, ability to design single team/service Kanban System • Scrum: familiarity with roles, artifacts, events and mechanics • Schemas for commercial and non-commercial scaling frameworks • Lean values and methods, A3 tool Learning Resources Learning resources are announced in advance at the beginning of each semester. Version 1.2.0, updated: 30.06.2020

49 | 59 STS_02 | Academic Reading STS_02 Semester 2-5 (Core) 5 CPs Contact time/self study: 30/120 hours Lecture, seminar/workshop, project work, case study, prac- Teaching Format tice session Mandatory Module Type Every semester Frequency • Oral/practical examination Assessment Type • Written examination Graded Grading Dr. Fabian Geier Module Coordinator OS_01, OS_02, OS_03 Prerequisites • Software Engineering (B.Sc.) Course module is associated with • Interaction Design (B.A.) • Product Management (B.A.) Contents Modules STS_02 (Academic Reading), STS_03 (Research) and STS_04 (Presentation) describe three different forms of engage- ment as well as three different forms of assessment in liberal arts topics offered in STS. The Academic Reading module entails engaging with liberal arts topics by focusing on active reading. Typically this involves the analysis of a single book or several texts of comparable workload. The reading can happen in the context of a suitable STS Learning Unit or as an independent reading project that follows the guidelines laid out in the STS Wiki. The assessment is based on a written task and the overall performance in the course or project. Students demonstrate that they understand and can present the text, apply its contents and place it in a larger context, and examine it critically and independently while doing justice to the text and its context. The exact specification of the assessment format is up to the module coordinator or STS project coach. Qualification Objectives Students who successfully pass this module are able to extract knowledge and understanding from any kind of written cor- pus, particularly in the context of addressing liberal arts questions. This usually includes skills like: active reading (i.e. taking notes, marking excerpts); structural analysis of a text (i.e. function, architecture, theses, arguments); recognizing attitude, premises and implicit messages; analyzing context and style (both historic and rhetoric); reading at different speed levels (i.e. skimming, close reading, etc.). Learning Resources Learning resources are announced in advance at the beginning of each semester. Version 1.2.0, updated: 30.06.2020

50 | 59 STS_03 | Research STS_03 Semester 2-5 (Core) 5 CPs Contact time/self study: 30/120 hours Lecture, seminar/workshop, project work, case study, prac- Teaching Format tice session Mandatory Module Type Every semester Frequency • Oral/practical examination Assessment Type • Written examination Graded Grading Dr. Fabian Geier Module Coordinator OS_01, OS_02, OS_03 Prerequisites • Software Engineering (B.Sc.) Course module is associated with • Interaction Design (B.A.) • Product Management (B.A.) Contents Modules STS_02 (Academic Reading), STS_03 (Research) and STS_04 (Presentation) describe three different forms of en- gagement as well as three different forms of assessment in liberal arts topics offered in STS. The Research module entails engaging with liberal arts topics by focusing on research skills. Students who participate in this module will cover at least one of the two following competencies: a.) Analyzing questions in liberal arts topics through research of relevant themes in academic literature b.) Understanding, applying, and critically assessing methods of quantitative or qualitative research with regard to liberal arts topics. The exact specification of the assessment format is up to the module coordinator or STS project coach. Qualification Objectives Students who successfully pass this module are able to apply rational and professional research principles in the context of liberal arts questions. They are able to find and read research and document the findings in a structured way or conduct research and document the findings in a structured way. Learning Resources Learning resources are announced in advance at the beginning of each semester. Version 1.2.0, updated: 30.06.2020


Like this book? You can publish your book online for free in a few minutes!
Create your own flipbook