Ausbildungsplan für die betriebliche Ausbildung des Studiengangs Informatik in der Fakultät Technik der Dualen Hochschule Baden-Württemberg Mannheim Ausbildungsbetrieb: Verantwortlicher Ausbilder: Fakultät: Studiengang: Studienrichtung: Spezialisierung: sandstorm media GmbH Bastian Heist Technik Informatik Angewandte Informatik International Business Competence oder Betriebliches Informationsmanagement
Inhaltsverzeichnis Table of Contents 1 EINLEITUNG...3 2 AUSBILDUNGSPLAN... 3 2.1 HALBJAHR 1 (WINTERSEMESTER)...3 2.1.1 Arbeitsplatz des Informatikers... 3 2.1.2 Arbeitsabläufe in der sandstorm media GmbH...3 2.1.3 Softwareentwicklung...4 2.2 HALBJAHR 2 (SOMMERSEMESTER)... 4 2.2.1 Design Patterns und Programmierparadigmen... 4 2.2.2 Webdesign und Webentwicklung... 4 2.2.3 User Interface und User Experience Design...4 2.2.4 Mitarbeit in Kundenprojekten...5 2.3 HALBJAHR 3 (WINTERSEMESTER)...5 2.3.1 Anforderungsmodellierung... 5 2.3.2 Projektmanagement...5 2.3.3 Qualitätskontrolle und Qualitätssicherung...5 2.3.4 Mitarbeit in einem Projekt... 5 2.4 HALBJAHR 4 (WINTERSEMESTER)...6 INHALTSVERZEICHNIS...2 2.4.2 Betriebssysteme... 6 2.5 HALBJAHR 5 (WINTERSEMESTER)...6 2.5.1 Big Data und Data Science... 6 2.5.2 Software-Architektur...6 2.5.3 Produktive Mitarbeit in Kundenprojekten... 6 2.6 HALBJAHR 6 (SOMMERSEMESTER)... 6 2.6.1 Erstellen der Bachelorarbeit...6
1 Einleitung Dieser Ausbildungsplan stellt einen zeitlichen und sachlichen Rahmen für die betriebliche Ausbildung des Studiengangs Informatik der Dualen Hochschule Baden-Württemberg dar. Der Ausbildungsplan ist als Leitfaden zu verstehen und wurde zeitlich so strukturiert, dass möglichst eine Vertiefung der vorangegangenen theoretischen Studieninhalte in der Praxis erreicht wird. Diesbezüglich sollte die Ausbildung auch flexibel den Studieninhalten und den praktischen Gegebenheiten angepasst werden, wobei aber darauf zu achten ist, dass der praktische Lerninhalt dieses Ausbildungsplanes umfassend vermittelt wird. Zu jedem Halbjahr werden mehrere Möglichkeiten für Lerninhalte und Aufgabengebiete aufgezeigt von denen mindestens ein Schwerpunkt zu wählen ist. Kerngeschäft der sandstorm media GmbH ist die Entwicklung von webbasierten Anwendungen, die individuell auf Kundenbedürfnisse zugeschnitten sind. Zum Portfolio zählen aber auch Dienstleistungen wie IT- und Strategieberatung sowie die Planung, Konzeption und Durchführung von Schulungen bei Kunden. Sandstorm beschäftigt zum Stichtag 1.1.2016 insgesamt 8 Mitarbeiter, die an den Standorten Dresden und Darmstadt arbeiten. sandstorm legt sehr großen Wert auf eine eigenverantwortliche und flexible Arbeitsweise, die sich auch in der Organisation des Unternehmens sowie den Kommunikationsstrukturen widerspiegelt. Es wird ein hohes Maß an Teamfähigkeit und Verantwortung erwartet und gefördert. Eigenverantwortliches Handeln soll für die Auszubildenden von sandstorm von Anfang an über die Unternehmenskultur vermittelt werden. 2 Ausbildungsplan Der Ausbildungsplan enthält folgende, phasenübergreifende Inhalte: - Kennenlernen des Ausbildungsbetriebes und seiner IT-Infrastruktur; dazu gehören insbesondere die Werkzeuge für die unternehmensinterne Koordination und Zusammenarbeit - Kennenlernen der Mitarbeiter und Standorte - Kommunikation und Kooperation im Rahmen der Unternehmenskultur von sandstorm, aber auch mit den Kunden des Unternehmens - Teamarbeit und verantwortliches Handeln in Projekten - Erstellen von Berichten und Dokumenten - Lern- und Präsentationstechniken 2.1 Halbjahr 1 (Wintersemester) 2.1.1 Arbeitsplatz des Informatikers - MacOS und die darunter liegende Unix-Infrastruktur - Datenschutz und Datensicherheit - Kennenlernen der Anwendungssoftware ( Office Produkte / Datenbanken / Programmierumgebung / Kollaborationstools ) - Aufnahme von Kundenkontakten / Kooperation mit Kollegen und Projektteams - Einrichtung des Arbeitsrechners mittels Ansible
2.1.2 Arbeitsabläufe in der sandstorm media GmbH - Kommunikationsstrukturen, regelmäßige Onlinemeetings und asynchrone Kommunikationstools - Erwartungen und Richtlinien für die Zusammenarbeit und Kommunikation - Vorstellung der Unternehmensprozesse - Einarbeitung in die verwendeten Werkzeuge der Softwareentwicklung 2.1.3 Softwareentwicklung - Software-Entwicklungsumgebung des Unternehmens - Unterstützende Entwicklungswerkzeuge und Entwicklungsprozesse (Quellcodeversionierung mit git, Continuous Integration, Build- und Deploymentwerkzeuge, Code Reviews) - Erlernen von mindestens einer Programmiersprache (z.b. PHP, Java, JavaScript, Groovy) - Kennenlernen der Programmierrichtlinien des Unternehmens - Kennenlernen von Programmierframeworks wie z.b. EmberJS als Baustein der prototypengetriebenen Anwendungsentwicklung 2.2 Halbjahr 2 (Sommersemester) 2.2.1 Design Patterns und Programmierparadigmen - Objektorientierte Programmierung anhand von z.b. Java, PHP - Funktionale Programmierung z.b. mit Groovy und JavaScript - Typische Entwurfsmuster der objektorientierten und funktionalen Programmierung 2.2.2 Webdesign und Webentwicklung - Client-/Serverkommunikation mit TCP und HTTP - Frontend-Entwicklung mit HTML, CSS und JavaScript - CSS-Präprozessoren (SASS, LESS) - JavaScript-Frameworks - Grundlagen des responsiven Webdesigns - Security von Webanwendungen, typische Angriffe und Absicherungstechniken, Verschlüsselungsalgorithmen - Serverseitige Anwendungsentwicklung - REST & SOAP - Typische Architekturmuster - Kommunikations- und Markupformate wie JSON, YAML, XML - Content-Management-Systeme - Webserver 2.2.3 User Interface und User Experience Design - Grundlagen des User Interface Design - UI-Konzeption, Wireframing, Prototypenentwicklung / Clickdummys - Prozess- und Interaktionsmodelle in Anwendungen - Benutzerführung
- Grundlagen der Typografie - Prinzipien der Barrierefreiheit 2.2.4 Mitarbeit in Kundenprojekten - Praktische Vertiefung der Punkte 2.2.1 bis 2.2.3 in der Praxis 2.3 Halbjahr 3 (Wintersemester) 2.3.1 Anforderungsmodellierung - Anforderungsanalyse und Erstellen von Use-Cases - ER-Modellierung - Erstellen von Anforderungsspezifikationen - Erstellen von Realisierungskonzepten / Pflichtenheften - Erstellen von Aufwandsabschätzungen - Erstellen und Kontrollieren von Projektplänen - Domänengetriebenes Design - Objektorientiertes Design 2.3.2 Projektmanagement - Klassische Projektmanagementmethoden - Agile Methoden (z.b. SCRUM) - Projektmanagementtools und -methodiken - Projektkontrolle - Lean Software Development 2.3.3 Qualitätskontrolle und Qualitätssicherung - Grundlagen von Anwendungstests - Automatisierte Funktions- und Unittests - Integrationstests - Behavioral Testing - Testgetriebene Softwareentwicklung (TDD) - Testwerkzeuge und -frameworks - Scoring, Linting und Code Climate - Dokumentationstools, -techniken und -formate (z.b. MD, RST) 2.3.4 Mitarbeit in einem Projekt - Vertiefung der Punkte 2.3.1 2.3.3 und der Inhalte des 2. Halbjahres in der Praxis - Dokumentation - Projektplanung - Projektverfolgung
2.4 Halbjahr 4 (Wintersemester) 2.4.1 Datenbanken - SQL - Kennenlernen verschiedener Datenbanken (zb. MySQL, MariaDB, ElasticSearch) - Datenbankdesign mit Hilfe eines Tools - Object Relational Mapping (z.b. Doctrine, Propel) 2.4.2 Betriebssysteme - OSX / Unix - Windows - Mobilbetriebssysteme (ios, Android) - Virtualisierung und Containering von Betriebsumgebungen (z.b. Docker, VirtualBox) 2.5 Halbjahr 5 (Wintersemester) 2.5.1 Big Data und Data Science - Erlernen der Grundprinzipien von Big Data - Mitarbeit an einem Produkt der sandstorm media GmbH im Bereich Big Data 2.5.2 Software-Architektur - Entwurfsmuster der Software-Architektur - Typische Überlegungen bei der Architekturplanung - Performance und Skalierbarkeit - Rapid Prototyping und Kickstarting - Caching-Lösungen wie z.b. Redis - Clustering und Plattformservices - Cloud-Lösungen und SaaS/PaaS/IaaS 2.5.3 Produktive Mitarbeit in Kundenprojekten 2.6 Halbjahr 6 (Sommersemester) 2.6.1 Erstellen der Bachelorarbeit - Anfertigen der Bachelorarbeit (Bearbeitungszeit 12 Wochen) - Das Thema der Bachelorarbeit wird vom Betrieb gestellt und vom Prüfungsausschuss genehmigt; es kann von theoretischer oder praktischer Art sein 2.6.2 Produktive Mitarbeit in Kundenprojekten