Course Overview
Heute ist die ganze Welt computergesteuert. Ohne Software jedoch sind Computer lediglich tote, nutzlose Materie. Die Geschichte der Programmierung ist spannend, Software-Erstellung selbst jedoch komplex, anspruchsvoll und oftmals mehr als nur verwirrend.
Dieses Seminar erläutert Ihnen zunächst auf unterhaltsame und zugleich hochinformative Weise, wie Software funktioniert, welchen Anforderungen sie standhalten muss und wie sich ihre einzelnen Entwicklungsstufen darstellen. Zudem erleben Sie hautnah, welches Wissen und welche Kompetenzen erforderlich sind, um fremde Software im Projektfall kompetent einschätzen zu können. Dies stärkt ihre Position in alle Richtungen deutlich.
Tag 1 vermittelt Ihnen spannend, unterhaltsam und allgemeinverständlich Funktionsweise, Unterschiede und Anwendung aktueller Software-Technologien sowie alle relevanten Zusammenhänge. Spontane Fragen sind ausdrücklich erwünscht. Eingeflochtene Quizfragen lockern das Seminar auf. Per Online-Compiler werden von Beginn an Algorithmen zu kleineren Aufgabenstellungen in handfeste Programme gegossen. Diese werden sofort gestartet, getestet, analysiert und sukzessive gemeinsam optimiert.
Tag 2 erläutert weiterhin anschaulich zentrale Prinzipien und Fachbegriffe im Software- und Programmierbezug, dabei wird flexibel auf alle individuellen Fragen eingegangen. Großen Wert legt der Dozent auf wichtige Hinweise zu typischen Fehlern, Mythen und Missverständnissen im Software-Bereich. Im Verlauf des Seminars erstellen Sie gemeinsam Programme steigenden Anspruchs auf Basis unterschiedlichster Programmiersprachen, deren Unterschiede, Philosophien und Vor- bzw. Nachteile Ihnen so plastisch und praxisnah deutlich werden. Folgende Inhalte werden in diesem Seminar behandelt:
- Aufbau, Arbeitsweise und Erstellungsprozess von SW
- SW-Qualitätsanforderungen im Detail, „1000 Hürden"
- SW-Projekte planen, Tools wählen, Code schreiben
- „Werkzeugkasten": Frameworks, Toolkits, APIs, SDKs
- Hochsprachen: Evolution, Stammbaum, Syntax, Typisierung
- Algorithmus-/Programm-Effizienz, Komplexität, Robustheit
- Plattformübergreifend Mobile und Web Apps entwickeln
- Compiler, Debugger, Testing- und Upgrading-Strategien
Who should attend
Das zweitägige Seminar richtet sich an alle Mitarbeitenden und Führungskräfte mit leichten IT-Grundkenntnissen. Ideal ist das Seminar zum Beispiel für Quereinsteiger, die sich aufgrund neuer Herausforderungen im Unternehmen mit Software-Auswahl oder gar -Programmierung befassen wollen oder müssen.
Course Objectives
- Sie finden sich schnell und sicher in die Welt moderner Software ein und verschaffen sich so ein Fundament für weitere Spezialisierungen.
- Sie erfahren auf den Punkt die jeweilige zündende Idee hinter modernen Schlagworten aus dem Reich der Programmierung. Ob für Windows-, Android- oder Apple-Endgeräte ‒ Software-Entwicklung wird entmystifiziert, Programm-Strukturelemente werden klar und zugehörige Programmier-Tools nachvollziehbar.
- Nach Besuch unseres Seminars sind Sie in der Lage, Software-Anforderungen zu formulieren, Programm-Pakete kompetent einzuschätzen sowie sogar selbst erste Programme zu erstellen.
Course Content
Tag 1 & 2
Einführung in die Software-Entwicklung
- Evolution, Klassifizierung, Philosophien, Verwandtschaften und Anwendungsgebiete von Programmiersprachen
- Grundlegende SW-Funktionsweise, Aufbau, Strukturelemente, Abstraktionsprinzip, Syntax und Semantik
- Die einzelnen Schritte und Architektur-Entscheidungen vom Algorithmen-Set zum lauffähigen Gesamtprogramm
- Wie schreibt man robuste, performante, reaktive, flexible, fehlertolerante und anpassungsfähige Programme?
- Wie SW die HW steuert, wie IT-Komplexität beherrschbar wird, das wichtige 3-Schichten-Modell, Illusion Grafik
Prozesse und Werkzeuge der Programmierung
- Wahl von Entwicklungsumgebung (IDE), Frameworks, APIs, SDKs, OOP-Klassenbibliotheken, Drittkomponenten
- Sukzessive Quellcode-Eingabe, alternierend mit mehrstufigen Testvorgängen und Fehlersuche /-behebung
- Systematisches Debugging im Detail: Einblick in Tausende von Variablen und Objekte zur Laufzeit erhalten
- Compiler, Linker, Monitor, Profiler: die wichtigsten Tools bei der Erstellung von Desktop bzw. Mobile Apps
- Lösungskonzepte zur Überwindung spezifischer Endgeräte-Hardware und Betriebssystem-Abhängigkeiten
Philosophien und Methoden der Software-Erstellung
- U.a. prozedurale, funktionale, objektorientierte, rekursive Programmierung: Merkmale und Einsatztechniken
- Programmier-Methoden und -Paradigmen im Vergleich: u.a. Scrum, agile SW-Entwicklung, klassische Modelle
- SW-Leistungsparameter schon bei der Algorithmus-Wahl berücksichtigen: KPIs der Performanz, Latenz, O(n) etc.
- Asynchron und parallel laufende Programmstränge realisieren, resiliente SW: was ist alles zu berücksichtigen?
- Bsp. Such- und Sortier-Algorithmen: warum sich die Skalierungsperformanz oft in Zehnerpotenzen unterscheidet
Moderne Software-Problemstellungen
- Programme Plattform-übergreifend konzipieren u.a. für Windows, Android, iOS und verschiedenste Device-Typen
- Herausforderungen mobiler Endgeräte: flexible Bedienoberflächen, Hardware-Abhängigkeit, Leistungsparameter
- Ergonomie-Ansprüche, Internet-Konnektivität, Cloud-basierte Datenbank-Anbindung, attraktive Bedienelemente
- Fatale Fehler und Missverständnisse bei der SW-Planung und -Erstellung, u.a. Unterschätzung von Komplexitäten
- Lösung des Dokumentationsdilemmas, SW-Wartung /-Internationalisierung, "Parallelwelt" Web-App-Erstellung
Weitere Software-Themen und -Begriffe (AUSZUG)
- .NET/C#: ein starkes Team, neuartige Hochsprachen ('D', F#, Carbon), Unterschiede populärer OS-Frameworks
- IT-Systemarchitekturen: auf welche bewährte Standards sich Ihr Programm stützen kann (OSI, JSON, XML usw.)
- Datentypen-Vergleich zwischen diversen HLLs, OOP "unter der Haube", Algorithmen zur String-Verarbeitung
- Lokale und Cloud-basierte DB-Anbindung, SQL- bzw. LINQ-Integration, UML-Klassendefinition /-Notation
- Analogien: u.a. Programmier- vs. natürliche Sprachen, OOP vs. Biologie, Software- Unternehmensprozesse