Vorlesung Programmieren

Ähnliche Dokumente
Vorlesung Programmieren

Vorlesung Programmieren

Vorlesung Programmieren

Vorlesung Programmieren

Willkommen zum Studium an der Informatik-Fakultät des KIT

Java-Programmierung mit NetBeans

Vorlesung Programmieren

Einführung in die Programmierung

Vorlesung Programmieren

Vorlesung Programmieren

Kombinatorische Optimierung Vorlesung für den Bereich Diplom/Master Informatik

Einführung in die Programmierung

Kapitel 1: Einleitung. Gliederung. Zum Begriff Informatik Zum Begriff Algorithmus Zum Begriff Programmieren

Einführung in die Programmierung

Einführung in die Programmierung Wintersemester 2016/17

Einführung in die Programmierung

Vorlesung Programmieren

Vorlesung Programmieren

Programmieren I. Überblick. Institut für Angewandte Informatik. KIT Die Forschungsuniversität in der Helmholtz-Gemeinschaft

Programmieren I. Überblick. Institut für Angewandte Informatik. KIT Die Forschungsuniversität in der Helmholtz-Gemeinschaft

Datenstrukturen und Algorithmen

Programmieren I. Überblick. Institut für Angewandte Informatik. KIT Die Forschungsuniversität in der Helmholtz-Gemeinschaft

Algorithmische Methoden zur Netzwerkanalyse

Informatik I: Einführung in die Programmierung

Java Referenzdatentypen genauer betrachtet

EIDI 1 Einführung in die Informatik 1. PGdP Praktikum Grundlagen der Programmierung. Harald Räcke 2/217

Teil II: Konzepte imperativer Sprachen

Informatik II Datenstrukturen und Algorithmen

Modelling in the Wild Domains and Abstraction in Model-Driven Software Development

Praktische Informatik I

Definitionen/Vorarbeit zum Thema Java

Einführung in die Programmierung mit BlueJ

Programmieren I. Überblick. Institut für Angewandte Informatik

Einführung in die Programmierung. Organisatorisches. Skript zur Vorlesung Einführung in die Programmierung

1 Einführung: Algorithmen. Algorithmen und Datenstrukturen WS 2012/13. Pro f. Dr. Sán do r Fe k e te

Abschnitt 10: Datenstrukturen

Modul Softwareentwicklung

Vorlesung Informatik, Teil 1. Organisatorisches

Programmieren I + II Regeln der Code-Formatierung

Eckpunkte der Informatik-Geschichte

Liste MI / Liste I Programmieren in C++

Einführung in die Informatik Turing Machines

12. Rekursion Grundlagen der Programmierung 1 (Java)

Programmieren I + II Regeln der Code-Formatierung

Vorlesung Programmieren

Algorithmen und Datenstrukturen

Programmierung 1 für Wirtschaftsinformatik Wintersemester 2017/18

Software Engineering

Kapitel 4 - Die Implementierungsphase

Einführung in die Informatik Turing Machines

Technologische Grundlagen zu Regenerativen Energien

Grundkurs Programmieren in Java

OOSE 01 JAVA MIT BLUEJ UND UML-BY-EXAMPLE

Grundkurs Programmieren in Java Band 1: Der Einstieg in Programmierung und Objektorientierung

Programmiertechnik II WS 2017/18

Grundlagen der Programmierung (Vorlesung 24)

Programmiertechnik II SS Fakultät Informatik Bachelor Angewandte Informatik

Einführung in die Informatik Algorithmen und Datenstrukturen. Thema 17 Sortieren

Grundlagen der Programmierung II (GP 2)

Objektorientiertes Programmieren

Algorithmen und Datenstrukturen

Informatik 1 für Studiengang Elektrotechnik/Kommunikationstechnik

Algorithmen und Datenstrukturen

Grundkurs Programmieren in Java

Vorlesung Programmieren

systematischen Verarbeitung von Informationen Was ist Informatik?

Vorlesung Programmieren

Programmierung 1 für Wirtschaftsinformatik Wintersemester 2015/16

Die Wissenschaft der systematischen Verarbeitung von Informationen,... insbesondere der automatischen Verarbeitung mit Hilfe von Digitalrechnern.

Programmieren 2 - Java

Software-Engineering Grundlagen des Software-Engineering 7 Implementierungsphase (Programming Phase)

Prof. Dr. Detlef Krömker Carsten Heep. Institut für Informatik. Johann Wolfgang Goethe-Universität

Digitale Bildverarbeitung in BA/MA

Informatik I. Einführung in Java. Begrüßung. Zusatzveranstaltung

Grundlagen der Programmierung

Einführung in die Programmierung

Stand: Semester: Dauer: Modulnummer: Minimaldauer 1 Semester IOBP. Regulär angeboten im: Modultyp: Pflicht WS, SS

Willkommen im Studium!

Transkript:

Vorlesung Programmieren Einführung 20.10.2014 Prof. Dr. Ralf H. Reussner Version 1.0 LEHRSTUHL FÜR SOFTWARE-DESIGN UND QUALITÄT (SDQ) INSTITUT FÜR PROGRAMMSTRUKTUREN UND DATENORGANISATION (IPD), FAKULTÄT FÜR INFORMATIK sdq.ipd.kit.edu KIT Universität des Landes Baden-Württemberg und nationales Forschungszentrum in der Helmholtz-Gemeinschaft www.kit.edu

Was ist Programmieren? 2 20.10.2014 Vorlesung Programmieren: Einführung

Anfänge der Programmierung 1840er Jahre: Ada Lovelace (1815-1852) beschreibt Lösungsverfahren für ein mathematisches Problem auf einem mechanischen Rechenapparat Erstes Programm Ada Lovelace gilt als erste Programmiererin 1940er Jahre: Konrad Zuse (1910-1995) entwickelt den Plankalkül Erste höhere Programmiersprache Abstrahiert von Maschinensprache P1 max3 (V0[:8.0],V1[:8.0],V2[:8.0]) R0[:8.0] max(v0[:8.0],v1[:8.0]) Z1[:8.0] max(z1[:8.0],v2[:8.0]) R0[:8.0] END (...) Quelle: http://de.wikipedia.org/wiki/plankalkül 3 20.10.2014 Vorlesung Programmieren: Einführung

Rückblick: Ferranti Mark 1 (1951) Alan Turing (1912-1954) 4

Ferranti Mk. 1 Manual Elektronische Computer sind dazu gedacht, jeden präzise festgelegten Berechnungsprozess auszuführen, der auch durch einen menschlichen Operator in einer disziplinierten, aber stupiden Weise bewerkstelligt werden könnte. Alan Turing (1912-1954) 5

Programmierung Wie kann nun ein Computer dazu gebracht werden, jeden präzise festgelegten Berechnungsprozess auszuführen? Durch Programmierung! 6

Programmierung illustriert Aufgabe: Aufstellung der Personen der Größe nach Verfügbare Instruktionen: 1. nach links oder rechts weitergeben 2. nach links oder rechts weitergeben 3. Personen, die oder halten, wechseln den Platz Beispielablauf: 1. nach rechts 2. Platz wechseln 3. nach links 4. Platz wechseln 7

War das nun Programmieren? Zum Teil ja: Präzise festgelegter Prozess Eindeutige Instruktionen Aber nicht:... in stupider Weise bewerkstelligt... Es fehlt: Ein allgemeiner Plan, der angibt, welcher Schritt als nächstes zu tun ist Allgemein: für beliebige Anzahl von Personen Möglichst abstrakt, d.h. (z.b.) nicht nur auf Personen bezogen Dies wäre dann ein Programm! 8

Unsere Programmiersprache: Java Java Designziele: Einfach, objekt-orientiert und vertraut (familiar) Robust und sicher Hardware-architekturneutral und portabel Performant Nebenläufigkeit (parallele Ausführbarkeit angebbar) und dynamische Bindung Warum Java als Programmiersprache? Warum nicht Maschinensprache? Warum nicht Umgangssprache? 9

Warum nicht Umgangssprache? mehrdeutig! 10

Was Sie in dieser Vorlesung lernen Umsetzen von Verfahren (Algorithmen) zur Lösung einfacher Probleme in eine Programmiersprache Problem-Modellierung in einer Programmiersprache Fähigkeit zur Abstraktion Sauber zu programmieren! Lesbare, verständliche, leicht wartbare Programme Sie schrieben nicht für den Computer, sondern für den nächsten Menschen, der es lesen muss. Nachvollziehbare Modellierung Gute Strukturierung, gute Dokumentation 11

Rolle der Programmierung Für die Software-Technik Programmcode nur eine von vielen Sichten auf ein Software-System Weitere zentrale Sichten... Software-Architektur Anforderungen Programmcode Fokus dieser Vorlesung Für das weitere Studium Grundlegende Programmierfähigkeiten unerlässlich! Fördert strukturiertes und algorithmisches Denken. 12 20.10.2014 Vorlesung Programmieren: Einführung

Was kann ich mit guten Programmierkenntnissen anfangen? Mitarbeit in Open-Source-Projekten Mitarbeit an interessanten Projekten in einem Unternehmen Selbständig machen Gesellschaftiche Probleme lösen: neue Mobilitätskonzepte Energieversorgung Fabrik der Zukunft Neue medizinische Geräte Hilfsdienste für alte Menschen... 13

Literaturhinweis Es gibt viele Bücher und online-materialen Einziger Tip: Dietmar Ratz, Jens Scheffler, Detlef Seese und Jan Wiesenberger Grundkurs Programmieren in Java, 7. Auflage, 2014 (mit Java 8), Hansa-Verlag 14 20.10.2014 Vorlesung Programmieren: Einführung

Wohin geht die Reise? Alan Turing über den Ferranti Mark I Computer: This is only a foretaste of what is to come (...). (...) I do not see why it should not enter any of the fields normally covered by the human intellect and eventually compete on equal terms. 15