Grundlagen der Programmierung

Ähnliche Dokumente
1. Was ist Informatik?

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

Praktische Informatik I

11. Rekursion, Komplexität von Algorithmen

Umbuchungen im Bachelor-Studiengang Informatik für den Wechsel von der PO 2009 zur PO 2017

Das Studium im Fach Informatik

Inhalte des Moduls Programmieren 1

Umbuchungen im Bachelor-Studiengang Informatik für den Wechsel von der PO 2009 zur PO 2017

Was ist Informatik? Alexander Lange

Willkommen an der ETH Zürich

Umbuchungen im Bachelor-Studiengang Technische Informatik für den Wechsel von der PO 2010 zur PO 2017

11. Rekursion. - Wiederholung von Anweisungen: durch Iteration und Rekursion - Anwendungsfälle der Rekursion

Kombibachelor Informatik (mit Lehramtsbezug) HU Berlin WS 2018/19. Prof. Niels Pinkwart

Einführung in die Informatik

Studiengang Bachelor Informatik

Umbuchungen im Bachelor-Studiengang Technische Informatik für den Wechsel von der PO 2010 zur PO 2017

Ingenieurinformatik. Einführung in die Programmiersprache C

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

Einführung. Rechnerarchitekturen Entwicklung und Ausführung von Programmen Betriebssysteme

Was ist Informatik? Informatik 1 für Nebenfachstudierende Grundmodul. Kai-Steffen Hielscher Folienversion: 17. Oktober 2017

Die Technische Universität München und die Fakultät für Informatik. Julie Mäding

Klausurtermine Technische Informatik WS 2018/19 (Prüfungszeitraum vom ) Stand: Änderungen rot markiert - vorbehalten!

Lehrveranstaltungen WS 2017/2018

12. Such- und Sortierverfahren mit Arrays

2. Einführung. Informatik II für Verkehrsingenieure

Workload: 150 h ECTS Punkte: 5

Inhaltsverzeichnis. Kurseinheit 1. Kurseinheit 2

Klausurtermine Informatik WS 2017/18 (Prüfungszeitraum vom ) Stand:

Lehrverflechtungsmatrix Praktische Informatik

Polyvalenter Bachelor Lehramt Informatik

INFORMATIK. Reform des Informatik-Studiums (Bachelor) Informationsveranstaltung zur Studienreform

STUDIENGANG INFORMATIK IN DER FAKULTÄT TECHNIK (TI)

Prüfungstermine WS 2017/18 Wirtschaftsinformatik Bachelorstudiengang

Fächer und Prüfungen

Bachelorstudium Informationstechnik

Informatik an der LMU

Erweiterungscurriculum Grundlagen der Informatik

Fakultät für Informatik und Mathematik Fachstudien- und -prüfungsordnung B.Sc. Informatik vom 12. Oktober 2018

INFORMATIK INFORMATIK BACHELOR OF SCIENCE

Das Doppelpack für die Informatik

Programmierung Paradigmen und Konzepte

Organisatorisches und Überblick

Lehrveranstaltungen SS 2019

Logik und diskrete Strukturen

Bachelor Angewandte Informatik Ingenieur- und Medieninformatik (BAI) Grundstudiumseinführung WS 2010/2011. Prof. Dr. Barbara König

War bis 2004 Bakk. rer.soc.oec. Bakkalaureus/Bakkalaurea rerum socialium oeconomicarumque Bakk. der Sozial- und Wirtschaftswissenschaften

Wochen-Stundenplan (Stand ) Informatik 1. Semester Bachelor (PO 2010) (Studienbeginn WiSe) WiSe 2010/2011

Äquivalenzübersicht für den Bachelorstudiengang Technische Informatik

Bachelor Angewandte Informatik Ingenieur- und Medieninformatik (BAI) Einführungsveranstaltung SS 2017 Dr. Werner Otten

Liste MI / Liste I Programmieren in C++

Übersicht über die Einzelveranstaltungen im. B.Ed. Informatik 2+1. oder 2-stündige Klausur Rechnerstrukturen (V+Ü)

Klausurtermine Informatik Herbst 2016 Stand: Änderungen sind rot markiert Wochentag Prüfungstermin: Prüfungsbezeichnung: Raum/Räume:

Bemerkung: Termine und Orte für die einzelnen Lehrveranstaltungen sind dem Stundenplan zu entnehmen.

Das Informatikstudium (an der ETH)

Transkript:

Grundlagen der Programmierung Wintersemester 2015 / 2016 Prof. Klaus Bothe K. Bothe, Institut für Informatik, HU Berlin, GdP, WS 2015/16 Version: 14. Okt. 2015

Gliederung der Vorlesung Teil I: Grundlagen Teil II: Konzepte imperativer Sprachen Teil III: Objektorientierung und SW-Entwicklung 2

Teil I: Grundlagen 1. Was ist Informatik? 2. Computer (Hardware) 3. Grundlagen der Rechnernutzung 4. Algorithmen 5. Daten 6. Programmiersprachen 7. Syntax 8. Softwareentwicklung 3

1. Was ist Informatik? Arbeitsmarktsituation, Gegenstand, Teilgebiete, Anwendungen, Berufsbild, Aufgabenfelder Warum wollen Sie Informatik studieren? - mit dem Computer arbeiten macht Spaß - Interesse wurde in der Schule geweckt - keinen Studienplatz in der Medizin bekommen - Berufschancen / Arbeitsmarktsituation 4

Arbeitsmarktsituation 5

6

7

8

Quelle: Computerzeitung, 4. 10. 2001, 11. 10. 2001, 9

Auch SAP kämpft mit Finanzkrise - Aktie im freien Fall Montag, 6. Oktober 2008, 19:49 Uhr Stuttgart (Reuters) - Der Softwarekonzern SAP hat die Auswirkungen der weltweiten Finanzkrise zu spüren bekommen und einen deutlichen Nachfragerückgang verbucht. Die Entwicklung an den Finanzmärkten habe unmittelbar vor Ende des dritten Quartals zu einem "abrupten und unerwarteten Abschwung unseres Geschäfts" geführt, teilte SAP am Montag überraschend mit. Daher seien die Zuwächse bei Software-Lizenzen und Wartung schwächer ausgefallen als erwartet, räumte SAP- Co-Chef Henning Kagermann ein. Die SAP-Aktie verlor daraufhin zeitweise knapp 20 Prozent an Wert. 10

Quelle: http://www.informatik-aktuell.de/aktuelle-meldungen/2015/oktober/arbeitsmarkt-fuer-it-spezialisten-43000-stellen- unbesetzt.html 11

Prognosen "Meines Erachtens gibt es einen Weltmarkt für vielleicht fünf Computer" (IBM Präsident T. Watson, 1943). "Computer der Zukunft werden vielleicht einmal nicht mehr als 1,5 Tonnen wiegen" (Popular Mechanics, 1949). "Es gibt keinen Grund, warum Menschen zu Hause einen Computer haben sollten" (K. Olson, Gründer von DEC, 1977). "640.000 Bytes Speicherkapazität sollten jedem genügen" (Bill Gates, Microsoft, 1981). 12

Krisenjahr Akademikeranteil ca. 1/3 (mit Studium) 13

Quelle: Der Arbeitsmarkt für IT-Fachleute in Deutschland, Bundesagentur für Arbeit, Mai 2015 14

Gegenstand der Informatik 15

Was ist Informatik? Begriffsbestimmung (Gegenstand): "Informatik ist die Wissenschaft... der maschinellen Verarbeitung, Speicherung und Übertragung von Information." (Broy, Informatik, Teil I, Springer 1992). Information verarbeiten (Algorithmen) Information repräsentieren (Daten... Datenbanken) Informationen übertragen (Internet... Kontoauszugsdrucker) Programme = Daten + Algorithmen 16

Anwendungsgebiete Medizin: OP-Roboter, Patientenverwaltung Ökonomie: Börse (Kursberechnung) Handel: Electronic Commerce Telekommunikation: Telefonnetze Dokumentenerstellung: Textverarbeitung Arbeitsabläufe: Produktionssteuerung Technik: Airbag-Steuerung, Raketen / Flugzeuge Naturwissenschaften: physikalische Anlagen Schach: Computer siegt gegen Weltmeister Fußball: - Roboterfußball: jährliche Weltmeisterschaften - Roboter sollen 2050 ein menschliches Team besiegen 17

RoboCup Weltmeisterschaft 18

Steuerung einer physikalischen Anlage Messplatz Röngtentopografie- Kamera 19

Teilgebiete der Informatik und ihr Verhältnis 20

Teilgebiete der Informatik Praktische Informatik: - Datenbanken - Software Engineering - Programmiersprachen - Compilerbau - Betriebssysteme - Systemanalyse - Digitale Medien... Theoretische Informatik: - Algorithmentheorie - Automatentheorie - Berechnungstheorie - formale Sprachen - Codierungstheorie - Komplexitätstheorie - Logik - Programmverifikation - Graphentheorie... Technische Informatik: Angewandte Informatik: - Rechnerarchitektur - Rechnernetze - Signalverarbeitung... - Wirtschaftsinformatik - Medizinische Informatik - Bioinformatik... 21

Module (Monobachelor Informatik, ab 2015) 1. Semester Einführung in die Theoretische Informatik (9 SP) Grundlagen der Programmierung (12 SP) Lineare Algebra (10 SP) 2. Semester Algorithmen und Datenstrukturen (9 SP) Digitale Systeme (10 SP) Analysis (10 SP) Logik in der Informatik (9 SP) Software Engineering (8 SP) 3. Semester Kommunikationssysteme (8 SP) SQ Schlüsselqualifikation (5 SP) 4. Semester Grundlagen von Datenbanksystemen *) (5 SP) Betriebssysteme *) (5 SP) Compilerbau *) (5 SP) Wahlpflicht (26 LP) Angewandte Mathematik für Informatiker (6 SP) 5. Semester Semesterprojekt (12 SP) Wahlpflicht (21 LP) 6. Semester Bachelorarbeit und -verteidigung (12 + 3 SP) Wahlpflicht (10 LP) *) 2 aus 3-Regelung 22

23 Praktische - Theoretische - Technische Informatik 1. Semester Einführung in die Theoretische Informatik (9 SP) Praktische Informatik Grundlagen der Programmierung (12 SP) Lineare Algebra (10 SP) 2. Semester Algorithmen und Datenstrukturen (9 SP) Digitale Systeme (10 SP) Analysis (10 SP) Logik in der Informatik (9 SP) Software Engineering (8 SP) 3. Semester Kommunikationssysteme (8 SP) SQ Schlüsselqualifikation (5 SP) 4. Semester Grundlagen von Datenbanksystemen *) (5 SP) Betriebssysteme *) (5 SP) Compilerbau *) (5 SP) Wahlpflicht (26 LP) Angewandte Mathematik für Informatiker (6 SP) 5. Semester Semesterprojekt (12 SP) Wahlpflicht (21 LP) 6. Semester Bachelorarbeit und -verteidigung (12 + 3 SP) Wahlpflicht (10 LP)

24 Module der Praktischen Informatik 1. Semester Einführung in die Theoretische Informatik (9 SP) Grundlagen der Programmierung (12 SP) Lineare Algebra (10 SP) 2. Semester Algorithmen und Datenstrukturen (9 SP) Digitale Systeme (10 SP) Analysis (10 SP) Logik in der Informatik (9 SP) Software Engineering (8 SP) 3. Semester Kommunikationssysteme (8 SP) SQ Schlüsselqualifikation (5 SP) 4. Semester Grundlagen von Datenbanksystemen *) (5 SP) Betriebssysteme *) (5 SP) Compilerbau *) (5 SP) Wahlpflicht (26 LP) Angewandte Mathematik für Informatiker (6 SP) 5. Semester Semesterprojekt (12 SP) Wahlpflicht (21 LP) 6. Semester Bachelorarbeit und -verteidigung (12 + 3 SP) Wahlpflicht (10 LP)

Was ist Praktische Informatik? Programmierung P (imperative, objektorientierte u.a.) Compilerbau C Betriebssysteme B Datenbanken D Software Engineering Praktische Informatik SE Weitere: - Künstliche Intelligenz, KI - Eingebettete Systeme usw. - Bioinformatik B E Entwicklung von Softwaresystemen: - Grundlagen / Handwerkszeug P - spezielle Klassen von Software C D - Entwicklungsmethodik SE E B KI 25

Verhältnis: Praktische - Theoretische - Technische Informatik Gibt es eine klare Abgrenzung? Software-Entwicklung ohne Theorie? Beispiel: Compiler ist ein Programm Quellsprache z. B. Java, C++, Pascal Compiler Maschinen- Sprache Software / Programm = 'reine' PI? 26

Java C++ Pascal Compiler Maschinen- Sprache Software / Programm = 'reine' PI? Aufbau der Quellsprache: Syntax (Grammatiken) Compilerkomponenten: Scanner: endliche deterministische Automaten Parser: LL/LR-Grammatiken semantische Analyse: attributierte Grammatiken Codegenerierung, Codeoptimierung: Graphentheorie Rechnerarchitektur: Speicheraufbau Maschinenbefehle 27

Schlussfolgerungen: Trennung in der Ausbildung aus methodischen Gründen Praktische Informatik bedeutet immer: Kenntnisse der theoretischen und technischen Grundlagen als Voraussetzung der Software- Entwicklung 28

Teilgebiete der Informatik - und ihre Beziehungen (Beispiel: Compilerbau) Praktische Informatik: - Datenbanken - Software Engineering - Programmiersprachen - Compilerbau - Betriebssysteme - Systemanalyse - Digitale Medien... Technische Informatik: Theoretische Informatik: (Teilbereiche:) - Algorithmentheorie - Automatentheorie - Berechnungstheorie - formale Sprachen - Codierungstheorie - Komplexitätstheorie - Logik - Programmverifikation - Graphentheorie... Angewandte Informatik: - Rechnerarchitektur - Rechnernetze - Signalverarbeitung... - Wirtschaftsinformatik - Medizinische Informatik - Bioinformatik... 29

Berufsbild: Aufgabenfelder von Informatikern Wo arbeitet man? Was macht man dort? 30

In Berlin: PSI Capgemini Berner & Mattner In D / weltweit: SAP, IBM, Google In IT-Abteilungen der Unternehmen 31

Tätigkeiten eines Informatikers? Haupttätigkeit: Programmieren? Zeitlicher Anteil der Programmierung an der Entwicklung eines Systems? Kapitel 8 32

Kostenverteilung im Software Life-Cycle Anforderungsanalyse; 3% Spezifikation; 3% Design; 5% Kodierung; Programmierung 7% 7% Modultest; 8% Wartung; 67% Integrationstest; 7% Quelle: Klösch, Gall, 1995, S.3 33

34

BOSCH, Stuttgart 19. Mai 2011 http://www.it-jobs.stepstone.de/ 35

Organisationen GI: Gesellschaft für Informatik (24.500 Mitglieder) IEEE: Institute of Electrical and Electronics Engineers (375.000 Mitglieder aus 160 Ländern) ACM: Association for Computing Machinery (78.000 Mitglieder) IFIP: International Federation for Information Processing ( Dachorganisaton nationaler GIs u.a. mit GI) 36

GI Gesellschaft für Informatik Die Berufsorganisation der Informatik/ Quelle: http://www.gi.de/ Stand 11. Okt. 2015 37

GI: informaticup für Studierende Quelle: http://www.gi.de/ Stand 11. Okt. 2015 38

Grundlagen der Programmierung: Anmerkungen zum Inhalt 39

Vorkenntnisse Schule: unterschiedliche Informatik-Kurse "Private" Weiterbildung: SW Entwicklung, Programmiersprachen, eigene Rechner Die "richtige" Vorlesung für alle unmöglich! Vorlesungsinhalt: (internationaler) Standard Fragebögen zu Vorkenntnissen (in Ü) 40

Ziele der Vorlesung Vorhandenes Wissen ergänzen und systematisieren Unterschiede in den Vorkenntnissen ausgleichen (betreute Rechnereinführung in den Praktikumsräumen) Unterschiedliche Voraussetzungen unvermeidlich! (Eigeninitiative: Literatur...) 41

GdP: angesprochene Bereiche Grundlagen Grammatiken, Datendarstellung, von-neumann-rechner,... Programmiersprachen: Klassifikation... Datenstrukturen und Algorithmen Listen, Bäume, Sortieren und Suchen Komplexität O(n) v. Alg. Softwareentwicklung SW-Qualitätsmerkmale Phasen und Dokumente Abstraktion + Dekomposition SW-Architektur: UML Komponentenarten Programmierfertigkeiten Sammlung von typischen Programmbeispielen ( Muster + bekannte Beispiele: Hanoi, Stack, Quicksort,...) Praktikum, Übungen Konzepte von (imperativen) Programmiersprachen Variablen: Sichtbarkeit, Lebensdauer Datentypen (einfach, strukturiert) Ausdrücke: Prioritäten, cast... Anweisungen (einfach, strukturiert) Methoden als Abstraktion Parameter: value ref Rekursion Iteration Sprachvergleiche + Kritik Konzepte der OO ADT - Objekte - Klassen, Vererbung, Sichtbarkeit, Klassenvariablen, ~methoden abstrakte Klassen, Überladung, Polymorphie, dynamisches Binden, Ausnahmebehandlung Ereignisse, API (ausgewählte Klassen) Applets, Parallelität (Threads) 42

Informationen im Internet zu GdP Zu allen Teilen von GdP Literatur Vorlesung: Folien Praktikum Übungen Java-Beispielprogramme Prüfungen Organisatorisches https://www2.informatik.hu-berlin.de/swt/lehre/gdp-ws-15/ Eine Bitte: Erst auf unserer Webseite bzw. des Instituts nachsehen, dann Übungsleiter / studentische Tutoren fragen! 43