Course Description
In this onsite course, you develop mobile applications in the context of a larger system architecture. Depending on the project, you work with application servers, machine learning algorithms, smart sensors, intelligent clothing, wearables like the Apple Watch or micro-controllers.
You get to know workflows, activities and tools of state-of-the-art agile software engineering, in particular agile hardware/software co-development, from requirements engineering to system delivery. You learn Apple’s programming language Swift, UI frameworks such as SwiftUI, and modern paradigms for asynchronous programming. You gain hands-on knowledge in the fields of system modeling, usability engineering and continuous integration and delivery.
Industry partners provide real problem statements. You get real team and project experience while working tightly together with a real client towards a real deadline.
„My iPraktikum journey was a big step forward, turning challenges into opportunities and sharpening my skills while making lasting professional connections. It highlights how hands-on learning can make a difference. And collaborating on interesting projects with real industry partners made it more rewarding.”
„Students go through the ABCs of software development, mastering practical skills along the way. This is hands-on experience, not just theory.”
„And yet another motivated ipraktikum generation enabled us on our internal journey of developing a tool that supports mentorship and personal development. The level of creativity and dedication was beyond expectations. Always nice to get fresh and challenging thoughts in, to share networks, and, most and foremost, to have fun together.”
„From hesitant beginnings to confident steps forward, my journey in iPraktikum marked a progression from student to team coach and project leader. Each semester was a chapter of growth, learning, and leadership.”
„I'm really proud about what the team has achieved. Having a fully-running production deployment running on our own infrastructure within 30 minutes from receiving their server codebase felt great!”
„Great to see the impact of this fantastic university course. This course combines theory with practice and crafting valuable products.”
Prerequisites
Students should be able to apply object-oriented programming principles, including designing class hierarchies, establishing relationships, and implementing maintainable, reusable code. They must be able to use design patterns to solve common problems and create and interpret UML diagrams (e.g., use case, class, and activity diagrams) to model system functionality, structure and dynamic behavior. They are able to grasp core system design concepts and address key challenges in software architecture including subsystem decomposition and deployment diagrams.
Furthermore, students should be able to apply fundamental software development skills by using version control (Git), producing clear documentation, adhering to coding standards, and conducting code reviews to ensure quality. They can elicit and analyze requirements, apply scenario-based design, and distinguish between functional and nonfunctional requirements. Students are able to understand and apply key architectural styles (e.g., layered, client-server, and REST) and recognize the principles of coupling and cohesion to support modular, maintainable design.
Learning Objectives
Students work closely with real industry customers, addressing authentic problems using real data to create impactful, user-centered software solutions. They develop a system in a mobile context, specifically for Apple’s iOS platform, which may involve integrating application servers, sensors, wearables, and micro-controllers. Throughout the project, students gain hands-on experience in an agile environment with continuous integration and continuous delivery. They become proficient in industry-relevant tools such as Gitlab for version control, Confluence for documentation, Slack for team communication, and Testflight for app testing and deployment, which support efficient collaboration and quality assurance. By regularly delivering app iterations to customers and users, students learn to understand, prioritize, and act on feedback, ensuring their work aligns with real-world expectations and needs.
Students improve their teamwork, communication, meeting, and project management skills as they collaborate to meet real deadlines and deliver a functional product that fulfills client requirements. They focus on strengthening their object-oriented programming abilities by designing class hierarchies and relationships, implementing reusable, maintainable code, and applying architectural styles and design patterns to solve common software problems. Students use object-oriented modeling and system design techniques to create UML diagrams, model system structure and functionality, and design dynamic behaviors, preparing them to handle complex software development tasks with a professional approach.
Students deepen their understanding of essential software development practices and engineering techniques. They become proficient in version control (Git), improve their documentation skills, adhere to coding standards, and conduct code reviews to maintain high code quality. Students also gain expertise in Swift and SwiftUI, essential for creating robust, performant iOS applications. By working with Swift, they learn to build modular, efficient code, while SwiftUI enables them to design dynamic, responsive user interfaces. They focus on user interface design, usability, and user experience, ensuring their applications are not only functional but also intuitive and engaging. They apply user-centered design principles to create seamless, accessible apps, balancing visual appeal with usability. Throughout the course, students also practice presenting their software in an engaging way, culminating in an engaging live demonstration and a project trailer that communicates the vision, functionality, and impact of their app.
At a glance
- Credits: 10 ECTS
- Course type: Bachelor/Master Practical Course
- Possible module numbers: IN0012, IN2106, IN2128
- Participants: 50 - 70 students
Info meeting
Monday, 01.07.24 at 13:00 in ITüpferl FMI or (Online)
Application
- Attend the Info Meeting (See above) - Slides
- Fill in our Application Form (Will be opened by 01.07.24) by 16.07.24
- Complete our Technical Challenge on Artemis (Will be opened by 01.07.24) by 16.07.24 - (self-register for the course “iPraktikum Technical Challenge (WS24/25)”)
- Prioritize the Practical Course “iPraktikum” in the matching system.
We can only consider your application as a developer for the iPraktikum if you submit the application, complete the technical challenge and prioritize the practical course iPraktikum in the matching system.
We are dedicated to promoting diversity and inclusivity in our courses. Our selection process is designed to ensure fairness and identify the most qualified candidates based on experience, motivation, communication skills, and management capabilities.
We believe in the value of a diverse applicant pool and aim to support talented individuals from all demographics, fostering an inclusive environment where every student can thrive. While we actively encourage women to apply and highlight female role models, we wish to emphasize that gender is only considered when candidates have identical qualifications, ensuring that all selections are merit-based.
Schedule
Event | Date | Time | Place | Comments |
---|---|---|---|---|
Intro Course | 07.10.24 - 16.10.24 | Large Computer Lab, MI | You get an introduction into Apple’s programming language Swift. You will join our sessions in person and complete exercises with the help of your tutors. | |
Project Kickoff | 17.10.24 | 17:00 | Interims I, 101 | Customers present the problems they want you to solve. You can then prioritize the projects. |
Design Review | 12.12.24 | 17:00 | Interims I, 101 | Your team presents the current status of your system to the whole course and the customers. |
Client Acceptance Test | 06.02.25 | 17:00 | Interims I, 101 | Show off your finished applications to the whole course and the customers. |
Related Courses
Results of previous semesters
- iPraktikum 2024
- iPraktikum 2023/24
- iPraktikum 2023
- iPraktikum 2022/23
- iPraktikum 2022
- iPraktikum 2021/22
- iPraktikum 2021
- iPraktikum 2020/21
- iPraktikum 2020
- iPraktikum 2019/20
- iPraktikum 2019
- iPraktikum 2018/19
- iPraktikum 2018
- iPraktikum 2017/18
- iPraktikum 2017
Contact
Please send an email to ipraktikum.ase (at) xcit.tum.de and do not contact us individually.