Research Group for Applied Software Engineering
Forschungsgruppe für Angewandte Softwaretechnik

Practical Course: Server-Side Swift WS 2020/21

At a glance

Credits: 10 ECTS (Practical Course)
Possible module numbers: IN0012, IN2106, IN2128
Participants: Limited to up to 10 students
Info Meeting: Tuesday, July 7, 4:00pm - 5:00pm, (info meeting slides)

Course description

Swift is a modern, type save, and expressive open source programming language. The Swift programming language targets a wide variety of operating systems ranging from various Linux distributions to Windows, Android, and Apple platforms. It can be used to develop server-side applications, applications for Apple platforms, build robust machine learning models using TensorFlow, and a lot more.
You get the chance to contribute to the emerging field of server-side Swift development. You will learn about the bases of server-side development using, e.g., SwiftNIO, and apply it to a project that you will work on during the semester. You will learn about best practices when designing a framework potentially used by thousands of developers. You will have the possibility to learn from and gain input as part of weekly stand and work meetings.
The practical course is structured as follows:

  • Follow the application instructions found below to apply for the course.
  • Once you are successfully matched, you will have the chance to choose a project until the start of the semester. We will provide guidance and a list of possible topics after you have been matched to the course. To already get an insight into possible topics, feel free to join the information meeting about the content of this practical course and possible topics you can work on.
  • As part of the weekly standup and work meetings, you will get the chance to discuss your project, share your progress, and get hands-on insights from your fellow students and supervisors.
  • In the intermediate presentation, you will showcase your current progress in the form of a short presentation and demo. Share your first results and motivate the API design decisions you have made.
  • In your final presentation, you will share your final project. Showcase a small demo of the framework or tool you have worked on and share your work with the broader server-side Swift community.

Important Dates

Event Date & Time Description
Info Meeting Tuesday, July 7, 2020, 4:00pm - 5:00pm Information meeting about the content of this practical course and possible topics you can work on. You will have the chance to ask questions after the meeting. The meeting is not mandatory to participate in the course. (info meeting slides)
Kickoff Tuesday, November 3, 2020, 1:00pm - 2:30pm The first course meeting. This is also the deadline to make your final decision about your project.
Weekly Standup Meeting Every Tuesday, 1:00pm - 2:30pm Share your progress and gain insights into each other's work.
Weekly Work Meeting Every Tuesday, 2:30pm - 6:00pm Possibility to work together and help each other with problems. Brainstorm in smaller groups and have a reserved room for discussions and prototyping sessions.
Intermediate Presentation Tuesday, December 15, 2020, 1:00pm - 5:00pm Present your current progress, what you have learned so far, and how you plan to finish the project by the end of the semester.
Final Presentation Tuesday, February 9, 2020, 1:00pm - 5:00pm Present your final work and summarize the project you have done as part of the practical course.

The meetings and presentation will either take place at the TUM Department of Informatics, via Zoom, or in a hybrid model depending on the current health situation and travel restrictions.


  • Experience in Swift is highly recommended. If you have no prior Swift knowledge, you should be a skilled programmer and should be willing to learn Swift before the practical course starts.
  • Ideally, you have experience of using, e.g., REST, GraphQL, gRPC, WebSockets, …
  • As a preparation feel free to refresh your Swift knowledge by reading the Swift programming language guide
  • Check out Swift NIO, an event-driven network application framework for high-performance protocol servers & clients (examples)
  • Explore Vapor, a server-side Swift web framework (example)


The application process is structured as follows:

  • Feel free to attend the info meeting (Tuesday, July 7, 2020, 4:00pm - 5:00pm) for information about the course. You will have the chance to ask questions after the meeting. The meeting is not mandatory to participate in the course (info meeting slides).
  • Fill out the application form by Wednesday, July 15, 11:59pm
  • We invite you to a short personal interview by end of Friday, July 17, 2020 - pick a time slot that works for you. Interviews take place on Monday, July 20, 2020.
  • After we have accepted you, prioritize the Practical Course "Practical Course - Server-Side Swift (IN0012, IN2106, IN2128)" in the matching system of the faculty by Tuesday, July 21, 2020, 11:30 pm)

The application period is now closed.

Instructors & Contact

If you have any questions related to the course contact Paul Schmiedmayer.

Paul Schmiedmayer

Prof. Dr. Bernd Brügge