Bachelor of Science in Software Engineering
Software engineers make the world better by crafting code in a multitude of environments, disciplines and languages – on their own and in teams.
Software engineering is the systematic application of engineering principles to the development of software systems. Our study program covers the ability to solve complex tasks programmatically by designing the software architecture, producing clean and well-documented code and following best practices from various domains, such as automated testing and security. The Software Engineering Bachelor’s program is fully taught in English.
In these topics we always aim for a deeper understanding that transcends the properties and abilities of a specific framework, tool or programming language. This knowledge is complemented by practical experience in organizing and collaborating in interdisciplinary teams.
Competent software engineers are excellent problem solvers and combine abstract thinking skills with a hands-on mentality. The Software Engineering Bachelor’s program provides you with comprehensive scientific and practically applicable competencies you need to become an expert in the field of software development.
We also provide the ability to specialize in various fields of software engineering, to develop your professional profile.
Software engineers make the world better by crafting code in a multitude of environments, disciplines, and languages – on their own and in teams. We challenge our students every day, helping them to see the depth of topics they are interested in.
A computer program does what you tell it to do, not what you want it to do.Unknown
The most effective way to learn is not by passively absorbing selected facts and ready-made content to reproduce for the next exam.
Instead of the traditional curriculum, here at CODE, we moved things around to always give you the ability to learn based on interesting practical problems. Information is best remembered when it is embedded in the context of practical meaning. That’s where curiosity-driven education, project-based, and challenge-based learning comes into play and resonates the best.
At CODE, the role of professors is different. Professors are there to share their knowledge, walk your team through interesting challenges, provide mentorship and encourage you to strive and shape your profile. They accompany your learning journey at CODE while you are establishing what kind of software engineer you want to become in your professional life. Unlike other traditional universities, we value interdisciplinary understanding. All three parts of digital product development (namely interaction designers, product managers and, you, the software engineers) intersect during studies, not only afterward in your professional life.
The program is focused on a set of modules that explore the range of the discipline software engineering. As a future software engineer, you will choose the modules you want to explore.
The basic concepts of computer programming will be covered here, as well as the configuration and use of a computer for software development, including the command-line interface and integrated development environment along with the process of iterative development, the use of version control, debugging, and the documentation process.
Students who study this module will learn about the analysis of algorithms, algorithm time complexity and
searching and sorting algorithms. Important data structures such as linked list, array, hash tables, trees and graphs are also part of this module.
Students who study this module will learn about the concepts found in programming languages and compiler operations. They will focus on understanding those concepts and on similarities and differences between languages. This is supplemented by knowledge of compilers and their operations.
The module covers the basics of operating relational database systems, the theoretical foundations with relational algebra and practical usages such as creating tables, storing data in normalised format and manipulating information. Students will learn about data handling and manipulation techniques like aggregation, indexing, joining and handling huge amounts of data and appropriate frameworks like an ORM.
Understanding NoSQL Databases includes understanding different flavors of NoSQL Databases including document databases, key-value database or graph databases. Students learn how to set up a data model for these databases and adapt it to their business entity. They learn how to optimize efficiency and performance of the databases and how to access it through application code in an optimal way including the usage of plain db code and frameworks.
Students who study this module will learn the technical
and procedural aspects of collaboration: Version control software, bug tracking systems, and code review
systems, all of which help development teams to work together seamlessly. Further, they will learn how to
write clear technical documentation.
Students who study this module will learn about clean code principles such as well-structured functions, classes, and modules. They will also cover 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.
Security breaches can happen in many dimensions from transport to persistence of data. Understanding
attack vector and knowing architectural patterns to achieve security are the principles of security.
In this module, students need to demonstrate understanding and application of these principles, show that they are able to detect fraud and security breaches within their software
Students who study this module will learn about automated testing in its different forms, including unit testing, integration testing and system testing. They will also cover the practical ability to write tests for a piece of software and to judge whether these tests are sufficient or not.
These Modules are the skills that every good Software Engineer needs to have.
But the mandatory modules are only a small part of your studies, you can complement your studies through deepening your skills in Software Engineering, but also Product Management and Interaction Design.
You can find the Module Handbook with all available modules on the bottom of the study program pages.
Our professors and lectures focus on enabling our students to have meaningful firsthand experiences, guiding them to reflect on these experiences critically, and empowering them to master our challenging interdisciplinary projects.
Head of Software Engineering
As part of an interdisciplinary learning experience, many modules offered by the
Interaction Design and Product Management departments are
also credited towards the Software Engineering Bachelor degree.
After graduation, you will be able to tailor, implement and evaluate software solutions, processes and metrics as part of interdisciplinary teams. The core semesters will give you enough freedom and challenges to specialize in a variety of backend-, frontend- or mobile development languages and frameworks. The continuous input from CODE’s cutting-edge industry partners guarantees intensive engagement with the most advanced technologies. The scientific reasoning and problem solving tools as well as the communication and collaboration skills you acquired during your projects, seminars and lectures will help you to successfully tackle all challenges you set yourself.
We will not tell you, what (or who) you will be after graduating at CODE – this decision will be totally up to you. But to give you an idea, we recommend you head over to Digitale-leute.de for some very interesting interviews with software engineers from the digital economy.
We know that some of you are very curious about the details of our Modules. We have published the module handbooks to give prospective students insights into our courses.
If you have more questions about the modules, don’t hesitate to reach out to firstname.lastname@example.org.