Software Design and Application

In the minor software design and application, you get an introduction on how modern software development is being done. You will learn to program in Python, apply algorithms and data structures on a variety of problems in domains such as big data, graphics and artificial intelligence and work in teams using modern development and collaboration tools.

The minor is composed of a fixed core (15 ECTS) and a free selection of topics: Data Science, Gaming or Software Engineering (15 ECTS).

In the core courses, you learn about core computer science topics. Specifically, you will learn how to program in Python, how to design and evaluate algorithms and data structures to handle general computation problems and how to create quality code using modern software engineering techniques.

In the free selection of topics, you can customize the minor yourself: you can deepen your knowledge in software engineering by selecting a course such as Web and Databases, focus on modern data science by selecting Big Data processing and Computational Intelligence or explore game development by choosing Computer Graphics and a related project.

Important: For 2017, a cap of 50 (randomly selected) students is in effect.

This minor is for all TU Delft undergraduate students except students of the Bachelor Computer Science and Engineering. Programming knowledge is not required. However, knowledge of university-level mathematics (calculus, linear algebra, probability and statistics) is recommended.

Study goals 

  • Acquire competences in programming
  • Understand, apply and adapt core computer science algorithms and data structures
  • Acquire experience in software development process in teams
  • Apply software engineering principles in various fields, such as the web, data analysis, artificial intelligence and computer graphics

The minor is composed of a fixed core (15 ECTS) and a free selection of topics: Data Science, Gaming or Software Engineering (15 ECTS).

Core courses

Introduction to Python Programming, (TI3105TU), 5 ECTS
This is an introductory programming course. You will learn how to program in Python, the programming language behind many widely known systems (e.g. YouTube and DropBox). After the end of the course, you will be able to think about problems like a computer scientist and solve them like a hacker.

Algorithms and Data Structures, (TI3110TU), 5 ECTS
This course will teach you how organise data in in-memory data structures and how to apply basic CS algorithms to perform tasks such as sorting, searching, ranking and traversing data. After the end of the course, you will be able to solve problems such as finding shortest paths on graphs and searching through millions of items in milliseconds.

Software Engineering Methods, TI2206, 5 ECTS
This course will teach you how to apply best practices in software production. You will learn about software design, design patterns and smells, software quality and software development methodologies. After the end of the course, you will be able to design high quality software and work in/with software engineering teams.

Elective: Data Science, 15 ECTS

Computational Intelligence, TI2736-A, 5 ECTS
This course will teach you an introduction to artificial intelligence techniques. You will learn about bayesian and neural networks (the tools behind systems such as Google Translate) and evolutionary algorithms. After the end of the course, you will be able to reason for and build basic AI applications.

Big data processing and analysis, TI2735-B, 5 ECTS
This course will teach you how to collect and analyse large volumes of data using modern big data frameworks. You will learn about systems to ingest, transform and process data in both a batch and a streaming fashion. You will also get a short introduction in applied data analysis. After the end of the course, you will be able to create efficient data processing pipelines.

Project Big Data/Artificial Intelligence, EWI3615TU, 5 ECTS
In this practical course you will apply the topics learned in previous courses on a group project within the context of the students’ specialisation.

Elective: Gaming development, 15 ECTS

Computer graphics, EWI3610TU, 5 ECTS
This course will teach you how to implement applications using computer graphics. You will learn the basic techniques for representing surfaces and manipulating them on screen as well as implementing those techniques in OpenGL, the graphics framework behind games such as Doom and Quake. After the end of the course, you will be able to build your own graphics-driven applications.

Project Games development , EWI3620TU, 10 ECTS
In this practical course you will apply the topics learned in previous courses on a group project within the context of the students’ specialisation (Data Science, Software Engineering or Game Programming).

Elective: Software Engineering, 15 ECTS

Web & Databases, TI1506, 5 ECTS
This course will teach you how to be a web developer. You will learn practical web programming (HTML, CSS and JavaScript), along with relational database theory and applications (SQL). After the end of the course, you will be able to design and build functional data-driven web sites.

Project Software Engineering, EWI3620TU, 10 ECTS
In this practical course you will apply the topics learned in previous courses on a group project within the context of the students’ specialisation.

How to enroll?

 

If the content of the course is comparable with courses out of the major, you have to consult the minor coordinator how to adjust the minor. This is especially the case for students of the BSc EE and TW. 

More information

Georgios Gousios
Electrical Engineering, Mathematics and Computer Science
Web Information  Systems
G.Gousios@tudelft.nl