Bachelor of Science – Software Engineering

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, disci­plines, and lang­uages – 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

Chat with our students.
Ask them everything around their studies, the student life at CODE and living in Berlin.

At CODE you will experience a new way of learning

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.

Apply now!

By registering for our application process, you will receive an email from us with an invitation to set up your personal account.

If you don’t confirm your account, we will delete the account after three weeks and you would need to signup again.


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.

Software Engineering Basics

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.

Algorithms and Data Structures

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.

Concepts of Programming Languages

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.

Relational Databases

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.

NoSQL Databases

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.

Clean Code

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.

Cyber Security

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

Automated Software Testing

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.

  • Web Technologies Basics
  • Web Frontend Technologies
  • Native Mobile Development
  • Web & Mobile Backend Development
  • Continuous Integration, Delivery and Deployment
  • Software Modeling and Design Patterns
  • Internet Of Things
  • Autonomous Systems
  • Artificial Intelligence Basics
  • Advanced Machine Learning
  • Natural Language Processing
  • 3D Rendering
  • Image Processing
  • Network Programming
  • Cloud Computing
  • Hardware and OS
  • Distributed and Parallel Computing
  • Data Science
  • BlockChain & Cryptography
  • Big Data
  • Linear Algebra
  • Multivarite Calculus
  • Probability and Statistics
  • Applied Scientific Research
  • Publishing a Research Paper

Meet the SE team

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.

Permanent faculty members

Freelance faculty members

Abdiel Ramirez Torres

Hendrik Niemann

Martin Dreher

Maximilian Walz

Monika Furler

Osvaldo Jiḿenez Farias

Learn more about our application process

At CODE we want to attract the most talented and passionate students, not the most privileged. In our admission process, we aim to challenge your drive and curiosity.

Intersection with other study programs

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.

Three Bachelor programs for young talents

Decide within your orientation semester, whether you are a developer, designer or an entrepreneur and choose the focus, that fits best for you.

Bachelor of Arts in Interaction Design

Bachelor of Arts in Product Management

Your career choices

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 for some very interesting interviews with software engineers from the digital economy.

Our Software Engineering Module Handbook

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