Stabsstelle Career Center & Wissenschaftliche Weiterbildung

Programmieren verstehen – Einstieg in Software Design mit modernem C++

Referent: Philipp Lenk
Leistungspunkte: 5

"Everybody [...] should learn how to program a computer, should learn a computer language, because it teaches you how to think" - Steve Jobs, 1995


Computer – und die Programme, die sie steuern – sind in unterschiedlichsten Formen allgegenwärtig. Praktisch kein modernes Berufsfeld funktioniert noch ohne sie und unser Alltag wird zunehmend von Handys, Tablets, Smartwatches, Smart-TVs und persönlichen Assistenten wie Alexa bestimmt.
Sie durchdringen unser Leben und auch in allen wissenschaftlichen Fachbereichen sind Programme ein nicht-wegzudenkendes Werkzeug: Physiker:innen simulieren komplexe Prozesse oder werten massive Datenmengen aus Experimenten aus, Mediziner:innen lassen sich bei Diagnose und Medikamentenentwicklung unterstützen und selbst Sozialwissenschaftler:innen verlassen sich auf Anwendungen zur statistischen Analyse und erstellen Webseiten oder Apps zur schnellen und einfachen Durchführung von Experimenten und Meinungsumfragen in einem ohne diese Mittel schwer erreichbaren Umfang.

Obwohl ein zumindest rudimentäres Verständnis ihrer Funktionsweise – ihrer Sprachen – den zielgerichteten Umgang mit und die Optimierung dieser Prozesse signifikant erleichtern würde, bleibt Programmierung für viele weiterhin ein Mysterium oder eine abschreckende, undurchdringliche Tätigkeit, die Expert:innen vorbehalten ist.

Das müsste sie nicht sein. Natürlich muss nicht jeder Mensch professionelle Software-Entwickler:in werden. Jedoch ist einfaches Programmieren – ähnlich wie Lesen, Schreiben und Rechnen – eine essentielle Grundlage des modernen Lebens und darüber hinaus ist die Denkweise, die man durch eine solche Beschäftigung erlernt, eine Bereicherung für *alle* Lebensentwürfe.

Im Kern handelt es sich bei Programmierung um strukturiertes Problemlösen. Es ist die Fähigkeit, komplexe Sachverhalte und Prozesse zu analysieren, zu abstrahieren und große, unüberschaubare Aufgaben in kleine, überschaubare Teilprobleme zu zerlegen. Es ist die Fähigkeit, mit Rechnern – aber auch mit anderen Menschen – klar und präzise zu kommunizieren, sich unmissverständlich auszudrücken und die eigenen Annahmen und Vorstellungen wiederholt zu hinterfragen und zu prüfen.

Zur Softwareentwicklung gehört jedoch mehr als "einfach nur programmieren". Es ist ein komplexer, kollaborativer, kreativer Prozess der aktive, zielgerichtete Kommunikation, Planung und Strukturierung erfordert – sowohl mit Code als auch mit Worten!

Inhalte und Ziele des Kurses:
Ziel dieses Kurses ist es Ihnen Mittel an die Hand zu geben um dieser Komplexität gerecht zu werden.

Nach einer kurzen Wiederholung der Grundlagen der Programmierung und beschleunigten Einführung in die multiparadigmatische Sprache C++, lernen sie Sprachfunktionen und Konstrukte der Standardbibliothek kennen, die sich als besonders nützlich dafür herausgestellt haben, große Systeme aus vielen ineinander greifenden Bestandteilen übersichtlich zu gestalten.

Anschließend werden Sie mit dem vielseitigen Ökosystem vertraut gemacht, in dem Ihr Code lebt, und lernen externe Bibliotheken, Build-Systeme und Versionskontrolle kennen.

Sobald Sie sich in dieser Umgebung einigermaßen zurechtfinden, werden Sie ermutigt, Ihre Fähigkeit wartbaren Code zu schreiben in kleinen Gruppen zu erproben, indem Sie gemeinsam ein größeres Projekt entwickeln.

Am Ende dieses Kurses haben Sie erste Erfahrungen mit Software-Design gesammelt, verfügen über Kenntnisse der Werkzeuge und Techniken, die zur Erstellung lesbarer, wartbarer Programme erforderlich sind, und sind dadurch in der Lage, sich aktiv an gemeinsamen Entwicklungsbemühungen zu beteiligen. Sie haben gelernt, komplexe Systeme zu überschauen, zielgerichtet über deren Interaktion zu kommunizieren und kollaborativ Schnittstellen zu entwerfen. Diese übertragbaren Fähigkeiten sind in allen Gruppenprojekten relevant und bereichern Ihr Leben weit über Softwareentwicklung hinaus.

Voraussetzungen:
Dieser Kurs setzt grundlegende Kenntnisse in *einer beliebigen* Programmiersprache voraus.

 

Voraussetzungen für den Erwerb von Leistungspunkten: regelmäßige und aktive Teilnahme sowie das Erledigen der Aufgaben.



Studierende des Studienganges Rechtswissenschaft: Bitte informieren Sie sich ab sofort über die für das Modul BZQ I für die juristische Ausbildung anerkannten Kurse des Career Centers ausschließlich über folgende Website: https://www.rewi.hu-berlin.de/de/sp/2015/anerkennungen/sq

 

Modul 9856
Termin: 23./30.04., 07./14./21./28.05., 04./11./18./25., 02./09./ 16.07.2024
Alle aufgeführten Termine gehören zu einem Modul!
Zeit:

16:00 - 20:00 Uhr

Ort: Ziegelstr. 10, Eingang B, Raum 037
hier anmelden