Algorithmen und Programmieren II. SoSe 2008
|
|
- Gerrit Herbert Hertz
- vor 7 Jahren
- Abrufe
Transkript
1 Algorithmen und Programmieren II Dozent: SoSe 2008 H. Schweppe hs/ät/inf.fu-berlin.de Sprechstunde Mi , R 169 Sekretariat 168 Übungskoordination: Ingo Dageförde dagefoerd/ät/inf.fu-berlin.de
2 Inhalte im Überblick Entwurf & Implementierung imperativer und objektorientierter Algorithmen - Zentrale syntaktische und semantische Konzepte imperativer Programmiersprachen - Grundkonzepte objektorientierter Programmierung - Systematische Programmentwicklung (Programmiermethodik) Theoretische Grundlagen der imperativen Progr. - Imperatives Berechenbarkeitsmodell: Registermaschine - Spezifikation und Verifikation - Asymptotische Laufzeit hs / fub - alp2-1 2
3 Organisation VL Mo. und Do Tutorien in kleinen Gruppen (zu verschiedene Zeiten) Bis Ende der Woche in elektronische Übungslisten eintragen! hs / fub - alp2-1 3
4 Tutorien Mo 8-10 SR055 Michael Waldvogel (25 Anmeldungen) Di SR051 Michael Waldvogel(16 Anmeldungen) Di SR051 Karima Habassi (25 Anmeldungen) Di SR051 Karima Habassi (16 Anmeldungen) Mi SR055 Patrick Neumann ( 8 Anmeldungen) Mi SR055 Patrick Neumann(25 Anmeldungen) Mi Arnimallee 6 SR009 Maurice Wolter (20 Anmeldungen) Mi SR055 Maurice Wolter (25 Anmeldungen) Stand der Anmeldungen: :00 hs / fub - alp2-1 4
5 Zielgruppe: Bachelorstudiengänge 2. Sem. hs / fub - alp2-1 5
6 Organisation (2) Achtung: Eintrag in CMS für Bachelor zwingend! Abmelden innerhalb von 4 Wochen möglich Übungsblätter in der Regel donnerstags, Abgabe eine Woche später (Do. 16:00) hs / fub - alp2-1 6
7 Scheinkriterien (1) Regelmäßige Teilnahme an VL und Tutorium Anwesenheit in Tutorien 80% der Termine, Liste! (2) Aktive Teilnahme Mindestens eine Lösung vorstellen, n-1 von n Übungsblättern bearbeiten, insgesamt mindestens 50% der Punkte Mindestens 3 von 4 Kurztests erfolgreich. (Schriftlicher 15 min-test zu Beginn von Tutorien) (1) Klausur ( ) Note der Klausur = Gesamtnote Sonderregelung: wer besonders aktiv an Tutorien teilnimmt, kann Gesamtnote um maximal 1 verbessern. Bestnote 1,0 hs / fub - alp2-1 7
8 Lernziele Programmieren "im Kleinen" - "vom Problem zum Programm": Algorithmen entwerfen und in Java implementieren - Grundkonzepte von imperativen und objektorientierten Programmiersprachen beherrschen (Typen, Anweisungen, Unterprogramme und Parameterübergabe, Zeigertypen, Biblotheken) - Korrektheit analysieren, Tests entwerfen und ausführen - Elemente der Objektorientierung: Klassen, Objekte, Vererbung und Datenabstraktion Theoretische Grundlagen kennen - Registermachine als Berechenbarkeitsmodell - Hoare-Kalkül zur Spezifikation / Verifikation hs / fub - alp2-1 8
9 zu beachten: Wichtiges Lernziel ist die Fähigkeit, imperative und objektorientierte Algorithmen in Java zu programmieren aber dies ist kein Java-Programmierkurs Verwendet wird Java Java Development Kit (JDK) ist auf (fast) allen Institutsrechnern installiert Empfehlenswert: auch auf eigenem PC installieren - Java ist Plattform-unabhängig (d.h. hier unabhängig vom Betriebssystem) Gelegentlich andere Beispiele in anderen (imperativen) Sprachen und Haskell Unterschied Algorithmus Programm? hs / fub - alp2-1 9
10 Literatur D. Gries, P. Gries: Multimedia Introduction to Programming Using Java Springer-Verlag 2005 D.Gries: The science of programming, Springer, 3.Auflage, Weiss, Mark A.: Data Structures & Problem Solving using Java, Addison Wesley, 1998 T. Cormen, C. Leiserson, R. Rivest: Introduction to Algorithms MIT Press ; alles über Algorithmen, nichts zu Programmiersprachen Zu Berechenbarkeit: - U. Schöning: Theoretische Informatik kurz gefasst, Spektrum Akad. Vlg., Hdg.; ISBN: , 29,50 hs / fub - alp2-1 10
11 Bücher zu Java Zu Java: Arnold, K./Gosling, J.: The Java Programming Language, Addison Wesley, D. Barnes, M.Kölling: Java lernen mit BlueJ, Eine Einführung in die Objektorientierte Programmierung, 3. Auflage, Pearson R. Morelli, R. Walde: Java, Java, Java - Object-Oriented Problem Solving, 3rd. edition, Prentice Hall / Pearson Sun The Java Tutorial (online) M. Block: Java-Intensivkurs, Springer 2007 B. Eckel: Thinking in Java, Prentice Hall 2006 (Online-Version) C. Ullenboom: Java ist auch eine Insel, Galileo Computing, 5. Auflage 2006 (Online-Version) hs / fub - alp2-1 11
12 Ergänzende Literatur J. Bentley: Programming Pearls, 2nd edition, Addison Wesley / Pearson M. Broy: Informatik. Eine grundlegende Einführung. (Bände 1-4) Springer- Verlag, P. Pepper: Grundlagen der Informatik. Oldenbourg, 1992 H.-J. Appelrath, J. Ludewig: Skriptum Informatik, Teubner 1991 G. Goos: Vorlesungen über Informatik (Band 1-2), Springer- Verlag 95/96. hs / fub - alp2-1 12
13 Java Programmierung Kommandozeile z.b. javac <ProgrammName>.java oder java <ausführbaresprogramm> Entwicklungsumgebungen - Eclipse (sehr komplex, aber nützlich) - BlueJ (einfach, nur für Java-Programme) - Netbeans (sun) -... und viele andere hs / fub - alp2-1 13
14 1 Einführung 1.1 Programmiersprachen Programmierparadigmen deklarativ imperativ funktional z.b. Haskell f 0 = 1 f x = x*f(x-1) relational ("logisch") z.b. Prolog prozedural z.b. C oder Pascal y = 1; while (x>1){ y = x * y; x = x 1; } objektorientiert z.b. Java, C++, C# Ich verwende Konzepte, Definitionen, Folien, Algorithmen von K.P. Löhr aus dem SoSe Für Fehler bin ich allein verantwortlich. hs / fub - alp2-1 14
15 Ausdrücke, Anweisungen, Variablen f 0 = 1 f x = x*f(x-1) y = 1; while (x>1){ y = x * y; x = x 1;} Funktionale Programme: Definition von Ausdrücken (expresssions). Berechnung: Auswertung von Ausdrücken (liefern Wert). Variablen: Namen für Ausdrücke oder Werte. f 3 hat den Wert 6 (und f 2 = 2 ) Imperative Programme: Anweisungsfolgen (Befehl, statement). Berechnung: Ausführung von Anweisung (haben Effekt). Variablen: Namen von Behältern für Werte (d.h. Speicherzellen). y nimmt für x=3 während der Ausführung die Werte 1, 3, 6 an. hs / fub - alp2-1 15
16 f 3 x=3 f (x-1) Wert: 2*3 Funktional: vier unterschiedliche Werte mit dem Namen x x = 2 f (x-1) 2*1 x=1 f (x-1) 1*1 x=0 f (0)=1 x=3 Warum braucht man hier kein "y"? Imperativ: systematische Veränderung von zwei Speicherzellen y = 1; while (x>1) { y=x*y; x=x-1; } x 32 1 y 31 6 Speicherzellen mit Namen x und y hs / fub - alp2-1 16
17 Berechnungsmodelle Funktionale Programmierung Funktionen berechnen durch Reduktion Was kann man berechnen? λ-kalkül oder rekursive Funktionen als Berechnungsmodell Imperative Programmierung Berechnung durch Folgen von Anweisungen (Befehlen) Berechnungsmodell ähnlich Universalrechnern (Speicher, Anweisungsfolge als Programm, Befehlszähler) Registermaschine als Rechnermodell (siehe Abschnitt 2) hs / fub - alp2-1 17
18 Zustände und Universalrechner Imperative Sprachen sind eng mit dem Universalrechnerkonzept verwandt: benannte Speicherzelle = Variable Maschinenbefehle: load, store, add, count Hauptspeicher 46 load $r1,count add $r1,53,$r1 store $r1,count... neuer Wert: 99 CPU PENTIUM warum Haupt? Central Proc. Unit? Aktuelle Werte im Speicher und aktueller Wert des Befehlszählers definieren Zustand der Berechnung. hs / fub - alp2-1 18
19 Traditioneller Algorithmusbegriff Algorithmus (algorithm) benannt nach AlKhwarizmi (arab. Mathematiker, 9.Jhd.) abstrahiert von Rechnerhardware und konkreter Programmiersprache ist imperativ (!) Ein Algorithmus ist ein schrittweises Verfahren zur Lösung einer Klasse gleichartiger Problemen mit den Eigenschaften: 1. Jeder Einzelschritt ist für die ausführenden Instanz eindeutig verständlich und ausführbar 2. Das Verfahren ist endlich beschreibbar [3. Der nächste auszuführende Schritt ist eindeutig bestimmt] [4. Das Verfahren terminiert] hs / fub - alp2-1 19
20 Termination? y=0; x=3; while (x>1) { y=y*x } Eindeutiger nächster Befehl? y=11; x=3; m=0; while (y>=x) { y=y-x; m=m+1; } Reihenfolge beliebig! hs / fub - alp2-1 20
21 Klassen von Algorithmen Sequentiell (sequential ) Eigenschaft 3. gilt nächster Befehl eindeutig bestimmt Nichtsequentiell (concurrent) Ausführungsreihenfolge bleibt teilweise offen Deterministisch Ausführungsreihenfolge und Effekte für jeden Schritt eindeutig festgelegt ( sequentiell) Nichtdeterministisch / stochastisch sonst hs / fub - alp2-1 21
22 Nichtdeterministisch / nichtdeterminiert Gegeben Menge von 3 Klassen von Punkten. Algorithmus zur Klassifikation: klassifiziere (punkt p) { Punktmenge M = bestimmenächstenachbarn(p); Wenn M = 1 : klasse(p) = Klasse des Punktes Sonst: wähle beliebigen aus M und gib p dessen Klasse Nichtdeterministischer Algorithmus, hier Ergebnis nicht determiniert. Dagegen determiniert: Ergebnis ist bei gleichen Anfangsbedingungen eindeutig auch wenn "gewürfelt" wird. hs / fub - alp2-1 22
23 1.2 Programmiersprachen - Übersicht Programmierung in Maschinen- bzw. Assemblersprache Nachteil: geringes Abstraktionsniveau, maschinenabhängig Entwicklung problemorientierter Sprachen: Abstraktion von der Maschine, Sprachelemente für typische höhere Operationen und Datentypen: Zahlen, Zeichen, Vektoren ; Wiederholungsanweisung, ; für wissenschaftlich-technische Aufgaben für kommerzielle Anwendungen für algorithmisches Problemlösen Was berechnet f?? abs $t0, $t0 # Argum. in abs $t1, $t1 # $t0, $t1 beq $t0, $t1, ex rp:sub $t0, $t0, $t1 # $t0 <- $t0-$t1 bgt $t0, $t1, rp bgtz $t0, sw neg $t0, $t0 sw:move $t2, $t0 # $t2<-$t0 move $t0, $t1 move $t1, $t2 bne $t1, $t0, rp ex:move $a0, $t0 # Ausgabe li $v0, 1 # $t0 syscall hs / fub - alp2-1 23
24 Höhere Programmiersprachen: die Anfänge Formula Translator (FORTRAN) ab 1954, John Backus (IBM) für numerisch-wiss. Anwendungen. beachte: Sprachübersetzung erforderlich! Common Business Oriented Language (COBOL) ab 1960, firmenunabhängige Standardisierung besondere Berücksichtigung von Datei-Ein-/Ausgabe, hohe sprachliche Redundanz (230 reservierte Wörter!) Algorithmic Language (Algol) ab 1958, Blockstrukturen, Anweisungen / Ausdrücke, Typkonzepte firmenunabhängige Entwicklung durch Hochschulen, großer Einfluß auf Programmiersprachentwicklung, geringe praktische Bedeutung Programming Language I (PL/I) Versuch der Verbindung von numerisch und kommerziell orientierten Programmiersprachen und ALGOL-Konzepten (IBM 1966) erste Sprache mit formaler Semantik Breitbandsprache hs / fub - alp2-1 24
25 Weitere Programmiersprachen List Processing Language (Lisp) Rückbesinnung auf λ-kalkül, funktionale Programmiersprache mit großer Bedeutung in der Künstlichen Intelligenz (MIT 1960) Programme als Daten - Daten als Programme, higher order functions, Speicherverwaltung und -Speicherbereinigung (garbage collection) noch heute viel benutzt (Emacs!) C als Implementierungsprache für UNIX entwickelt (Kernighan, Ritchie, ATT Labs, 1970), ursprünglich reine Systemimplementierungssprache, Bedeutung erst durch Verbreitung UNIX PASCAL ab 1970, von Nikolaus Wirth (ETH Zürich) als Schulungssprache entworfen, viele ALGOL-Elemente, aber viel einfacher als ALGOL 68, weiterentwickelt unter Softwaretechnikaspekten (Modularisierung!) zu MODULA-2 hs / fub - alp2-1 25
26 Die Geschichte von C? hs / fub - alp2-1 26
27 Moderne Sprachkonzepte und Sprachen Simula 67 der Zeit weit voraus! (Nygaard, Dahl u.a. 1972), erste objektorientierte Programmiersprache, baut direkt auf ALGOL 60 auf. class als neues Konstrukt, Konstruktion von Systemen als Motivation Programming in Logic (PROLOG) Tendenz: Deklarative Formulierung von Algorithmen ( was statt wie ) Programm: Menge von logischen Formeln. A. Colmerauer, ca Verbreitet in der KI, sonstige Bedeutung gering Ironie des Schicksals: Vorgeschlagen in seiner Rede anläßlich Verleihung des Turing Award für seine FORTRAN -Verdienste (...aber nicht nur die) Functional Programming (FP) 1978 John Backus (IBM),funktionales Sprachkonzept, Plädoyer gegen anweisungsorientiertes Programmieren, Grundlage für moderne funktionale Sprachen hs / fub - alp2-1 27
28 Heutige Sprachkonzepte und Sprachen Einflüsse auf Programmiersprachentwicklung UNIX - Verbreitung C Softwareentwicklung Objektorientierung: C++, Java, C#, Delphi, Eiffel (nur im akademischen Umfeld) Vernetzung Plattformunabhängigkeit, verteilte Systeme Java Produktivitätsaspekte Programmierumgebung /-sprache Visual C / Visual Basic / Java Spezifikation / Verifikation funktionale Sprachen Haskell, Erlang, MatLab, R Skriptsprachen? hs / fub - alp2-1 28
29 1.3 Vom Algorithmus zum ausführbaren Programm Algorithmus Codierung Programm in höherer Sprache Übersetzung Ausführbares Programm Binden mit anderen (Hilfs-)Programmen Programm in Maschinensprache hs / fub - alp2-1 29
30 Interpretation von Programmen Algorithmus Codierung Programm in höherer Sprache Interpretation Interpretierer-Programm Die Welt von heute: Keine klare Trennung mehr zwischen Übersetzung und Interpretation z.b. Java hs / fub - alp2-1 30
31 Java: Quell-, Byte- und Maschinencode Quellcode class xyz { }... Java Quellcodeübersetzer Aufruf: javac Java - Bytecode bnc.. sto..... Das ist maschinenunabhängiger Maschinencode?! Bibliothek, selbst geschriebene Programme (~ Klassen) Ausgabe Java Virtuelle Maschine Aufruf: java Plattformabhängiger Maschinencode: Intel, Sun Sparc,..., Win / Solaris / Linux, interpretiert Java Bytecode hs / fub - alp2-1 31
32 Skriptsprachen Eigenschaften - interpretiert - liberale Typen, oft kein Zwang zur Deklaration von Variablen - implizite Typwandlung - automatische Speicherverwaltung Anwendungen - einfache Aufgaben - Prototyp erstellen (rapid prototyping) - Betriebssystemkommandosprache Beispiele - Python, PHP, Javascript ( Java!), Tcl, Bash, C-Shell, Basic,, Lisp (?) hs / fub - alp2-1 32
33 Zusammenfassung Klassen von Programmiersprachen Funktionale und imperative Algorithmen Werte, Variablen, Definitionen, Anweisungen Berechnungsmodelle: Rekursive Funktionen, λ-kalkül, Registermaschine (nächste Stunde) Arten von Programmiersprachen Algorithmen, Programm, Ausführung Übersetzung, Interpretation Skriptsprachen hs / fub - alp2-1 33
1 Programmiersprachen 1.1 1
1 Programmiersprachen 1.1 1 Meilensteine imperativer Programmiersprachen (teilweise objektorientiert) Fortran 1960 Cobol Algol 60 PL/I Algol W Simula 67 Algol 68 1970 Pascal C Smalltalk Modula 1980 Ada
Mehrn 1. Der Begriff Informatik n 2. Syntax und Semantik von Programmiersprachen - 1 -
n 1. Der Begriff Informatik n 2. Syntax und Semantik von Programmiersprachen I.2. I.2. Grundlagen von von Programmiersprachen. - 1 - 1. Der Begriff Informatik n "Informatik" = Kunstwort aus Information
Mehr2. JAVA-Programmierung. Informatik II für Verkehrsingenieure
2. JAVA-Programmierung Informatik II für Verkehrsingenieure Problem-Algorithmus-Umsetzung Problemstellung Algorithmus Umsetzung 2 Beispiele für Algorithmen 3 Definitionsversuch Algorithmus Anleitung, wie
MehrIII.1 Prinzipien der funktionalen Programmierung - 1 -
1. Prinzipien der funktionalen Programmierung 2. Deklarationen 3. Ausdrücke 4. Muster (Patterns) 5. Typen und Datenstrukturen 6. Funktionale Programmiertechniken III.1 Prinzipien der funktionalen Programmierung
MehrInhalt. n Algorithmus. n Euklidscher Algorithmus. n Sortieren. n Programmiersprachen. n Entwicklungsschritte eines Programms.
Inhalt Algorithmus Euklidscher Algorithmus Sortieren Programmiersprachen Entwicklungsschritte eines Programms Algorithmen 1 Algorithmus Eindeutige Beschreibung eines allgemeinen Verfahrens unter Verwendung
Mehr1. Der Begriff Informatik 2. Syntax und Semantik von Programmiersprachen - 1 -
1. Der Begriff Informatik 2. Syntax und Semantik von Programmiersprachen I.2. I.2. Grundlagen von von Programmiersprachen. - 1 - 1. Der Begriff Informatik "Informatik" = Kunstwort aus Information und Mathematik
Mehr1. Der Begriff Informatik 2. Syntax und Semantik von Programmiersprachen - 1 -
1. Der Begriff Informatik 2. Syntax und Semantik von Programmiersprachen I.2. I.2. Grundlagen von von Programmiersprachen. - 1 - 1. Der Begriff Informatik "Informatik" = Kunstwort aus Information und Mathematik
Mehr4 Ausklang. ALP 2, Hannes Federrath, Sommersemester 2001
ALP 2, Hannes Federrath, Sommersemester 2001 4 Ausklang Inhalt des Kapitels im Überblick: In diesem Kapitel sollen zum Ausklang der Vorlesung folgende Schwerpunkte behandelt werden: Software-Entwicklungsprozess
MehrVorlesung Programmieren
Vorlesung Programmieren Organisation Dr. Dennis Pfisterer Institut für Telematik, Universität zu Lübeck http://www.itm.uni-luebeck.de/people/pfisterer Ziele dieser Veranstaltung Ziel: Wissen, wie man Computerprogramme
Mehr2. Einführung. Informatik II für Verkehrsingenieure
2. Einführung Informatik II für Verkehrsingenieure Überblick ZIEL DER EINFÜHRUNG Was ist Informatik Historische Entwicklung von Programmiersprachen 2 Was ist Informatik? 3 Was ist Informatik? FRANZÖSISCH
MehrProgrammiersprachen. Organisation und Einführung. Berthold Hoffmann. Studiengang Informatik Universität Bremen
Organisation und Einführung Studiengang Informatik Universität Bremen Sommersemester 2010 (Vorlesung am Montag, der 12. April 2010) (Montag, der 12. April 2008) 1 Vorstellung 2 Organisation 3 Einführung
MehrAlgorithmen versus Programmiersprachen
Coma I Einleitung Computer und Algorithmen Programmiersprachen Algorithmen versus Programmiersprachen Literaturhinweise Computer und Algorithmen Programmiersprachen Algorithmen versus Programmiersprachen
MehrGliederung. n Teil I: Einleitung und Grundbegriffe. n Teil II: Imperative und objektorientierte Programmierung
Gliederung n Teil I: Einleitung und Grundbegriffe l 1. Organisatorisches l 2. Grundlagen von Programmiersprachen n Teil II: Imperative und objektorientierte Programmierung l 1. Grundelemente der Programmierung
Mehr1. Grundkonzepte der logischen Programmierung 2. Syntax von Prolog 3. Rechnen in Prolog. IV.1 Grundkonzepte der logischen Programmierung - 1 -
1. Grundkonzepte der logischen Programmierung 2. Syntax von Prolog 3. Rechnen in Prolog IV.1 Grundkonzepte der logischen Programmierung - 1 - Übersicht Imperative Sprachen Deklarative Sprachen Folge von
Mehrn 1. Grundkonzepte der logischen Programmierung n 2. Syntax von Prolog n 3. Rechnen in Prolog IV.1 Grundkonzepte der logischen Programmierung - 1 -
n 1. Grundkonzepte der logischen Programmierung n 2. Syntax von Prolog n 3. Rechnen in Prolog IV.1 Grundkonzepte der logischen Programmierung - 1 - Übersicht Imperative Sprachen Deklarative Sprachen l
Mehr1.3 Geschichte der Programmiersprachen
50er Jahre erste Definition höherer Programmiersprachen Effizienz maßgebliches Designziel FORTRAN (Backus) als Sprache für wissenschaftliches Rechnen (komplexe Berechnungen, einfachen Daten), Arrays, Schleifen,
MehrSecurity - 04 Cryptology #1
Security - 04 Cryptology #1 Wer ist das da vorne? Für was? (Was mache ich hier?) WTF? Thema? (Was will der von mir?) Security - 04 Cryptology #2 Vorlesung Programmieren Organisation Prof. Dr. Stefan Fischer
MehrAlgorithmen und Datenstrukturen
Lehrstuhl für Informatik I Algorithmen und Datenstrukturen Wintersemester 2013/14 Organisatorisches Vorlesung: Übungsbetreuung: Übungen: Programmiertutorium: Alexander Wolff (E29) Krzysztof Fleszar (E13)
MehrEs gibt keinen Algorithmus zum Schreiben eines Programms bzw. Algorithmus.
1 Einführung Programmiersprachen: Ermöglichen formale Beschreibung von Problemlösungsverfahren, die auf einem Computer oder Computersystemen ausführbar sind. Bilden die Basis zur Entwicklung von Software
MehrGrundlagen der Programmiersprachen
GPS-0-1 Grundlagen der Programmiersprachen Prof. Dr. Uwe Kastens Sommersemester 2016 Vorlesung Grundlagen der Programmiersprachen SS 2016 / Folie 001 Anfang Begrüßung Ziele GPS-0-2 Die Vorlesung soll Studierende
MehrEinführung in die Programmierung Wintersemester 2016/17
Einführung in die Programmierung Wintersemester 2016/17 Prof. Dr. Günter Rudolph Lehrstuhl für Algorithm Engineering Fakultät für Informatik TU Dortmund Einleitung Gliederung Zum Begriff Informatik Zum
Mehr1. Einführung Programmieren / Algorithmen und Datenstrukturen 1 Prof. Dr. Bernhard Humm FB Informatik, Hochschule Darmstadt
1. Einführung Programmieren / Algorithmen und Datenstrukturen 1 Prof. Dr. Bernhard Humm FB Informatik, Hochschule Darmstadt 1 Ein Zitat zu Beginn Vor der Wahl, ein theoretischer Physiker oder ein Programmierer
MehrEinführung in die Programmierung
Einleitung Gliederung Einführung in die Programmierung Wintersemester 2017/18 Zum Begriff Informatik Zum Begriff Algorithmus Zum Begriff Programmieren Prof. Dr. Günter Rudolph Lehrstuhl für Algorithm Engineering
MehrEinführung in die Programmierung
Einleitung Gliederung Einführung in die Programmierung Wintersemester 08/09 Zum Begriff Informatik Zum Begriff Algorithmus Zum Begriff Programmieren Prof. Dr. Günter Rudolph Lehrstuhl für Algorithm Engineering
MehrProgrammieren in C. Eine Einführung in die Programmiersprache C. Prof. Dr. Nikolaus Wulff
Programmieren in C Eine Einführung in die Programmiersprache C Prof. Dr. Nikolaus Wulff Agenda Elementare Einführung C Programm Syntax Datentypen, Variablen und Konstanten Operatoren und Ausdrücke Kontrollstrukturen
MehrPraktische Informatik I
Praktische Informatik I WS 2005/2005 Prof. Dr. Wolfgang Effelsberg Lehrstuhl für Praktische Informatik IV Universität Mannheim 1. Einführung 1-1 Inhaltsverzeichnis (1) 1. Einführung 1.1 Was ist Informatik?
MehrKapitel 1: Einleitung. Gliederung. Zum Begriff Informatik Zum Begriff Algorithmus Zum Begriff Programmieren
Kapitel 1: Einleitung Wintersemester 2006/07 Einführung in die Informatik für Naturwissenschaftler und Ingenieure (alias Einführung in die Programmierung) (Vorlesung) Gliederung Zum Begriff Informatik
MehrGrundlagen der Modellierung und Programmierung, Übung
Grundlagen der Modellierung und Programmierung Übung Prof. Wolfram Amme LS Softwaretechnik Prof. Klaus Küspert LS Datenbanksysteme Prof. Birgitta König-Ries LS Verteilte Systeme Prof. Dr. Wilhelm Rossak
Mehr2. Programmierung in C
2. Programmierung in C Inhalt: Überblick über Programmiersprachen, Allgemeines zur Sprache C C: Basisdatentypen, Variablen, Konstanten, Operatoren und Ausdrücke Anweisungen und Kontrollstrukturen (Steuerfluss)
Mehr2. Programmierung in C
2. Programmierung in C Inhalt: Überblick über Programmiersprachen, Allgemeines zur Sprache C C: Basisdatentypen, Variablen, Konstanten, Operatoren und Ausdrücke Anweisungen und Kontrollstrukturen (Steuerfluss)
MehrProgrammieren 2 - Java
Programmieren 2 - Java Fachhochschule Wiesbaden, FB Informatik Studiengang Medieninformatik Vorlesung im SS 2002 1 Ziele Ausbau der bisherigen Fertigkeiten und Techniken des Programmierens in Java mit
MehrVorkurs Informatik WiSe 17/18
Java Einführung Dr. Werner Struckmann / Stephan Mielke, Nicole Naczk, 04.10.2017 Technische Universität Braunschweig, IPS Überblick Organisatorisches Arbeitsablauf Hello World 04.10.2017 Dr. Werner Struckmann
MehrWintersemester Maschinenbau und Kunststofftechnik. Informatik. Tobias Wolf Seite 1 von 37
Skript Informatik Seite 1 von 37 Was ist Informatik? - Informatik ist die Wissenschaft von der systematischen Verarbeitung von Informationen, insbesondere deren automatisierte Verarbeitung mit Hilfe von
MehrKonzepte der Programmiersprachen
Konzepte der Programmiersprachen Lehrstuhl Prof. Plödereder Eduard Wiebe Institut für Softwaretechnologie Abteilung Programmiersprachen und Übersetzerbau Sommersemester 2007 Programm-Ausführung Programmiersprachen
MehrProgrammiersprachen: Klassifizierung und Methoden. Programmier-Paradigmen. Grundlagen der Programmierung 2 (1.C) - 1 -
Programmiersprachen: Klassifizierung und Methoden Programmier-Paradigmen Grundlagen der Programmierung 2 (1.C) - 1 - Programmiersprachen: Begriffe Syntax Beschreibung der Programme als Texte let xyz =
Mehr6. Programmiersprachen im Überblick. K. Bothe, Institut für Informatik, HU Berlin, GdP, WS 2015/16
6. Programmiersprachen im Überblick K. Bothe, Institut für Informatik, HU Berlin, GdP, WS 2015/16 Version: 21. Okt. 2015 2 Was ist das: eine Programmiersprache? Formale Sprache *), die zur Beschreibung
MehrTheoretische Informatik: Berechenbarkeit und Formale Sprachen
Theoretische Informatik: Berechenbarkeit und Formale Sprachen Prof. Dr. F. Otto Fachbereich Elektrotechnik/Informatik, Universität Kassel 34109 Kassel, Germany E-mail: otto@theory.informatik.uni-kassel.de
MehrTheoretische Informatik: Berechenbarkeit und Formale Sprachen
Theoretische Informatik: Berechenbarkeit und Formale Sprachen Prof. Dr. F. Otto Fachbereich Elektrotechnik/Informatik, Universität Kassel 34109 Kassel, Germany E-mail: otto@theory.informatik.uni-kassel.de
MehrInhalt. Java-Programmierkurs SS Steinzeit der Programmiersprachen. Vor den Steinzeit. Erste Programmiersprachen.
Java-Programmierkurs Einführung in die Objektorientierte Programmierung mit Java SS 2003 Inhalt Geschichtliche Einführung Grundlagen der Imperativen Programmierung Objektorientiertes Programmieren in Java
MehrHistorischer Abriss Fortran Backus (IBM) Formula Translator Algol 60 Naur et al. Algorithmic Language
Vorbemerkungen Dozent Veranstaltung Inhalt Spann (Rechenzentrum des Mathematischen Instituts) Systemadministration der Linux-Netze der Mathematik wissenschaftl. Arbeitsgebiet: Numerische Mathematik 1.
Mehr2. Programmierung in C
2. Programmierung in C Inhalt: Überblick über Programmiersprachen, Allgemeines zur Sprache C C: Basisdatentypen, Variablen, Konstanten, Operatoren und Ausdrücke Anweisungen und Kontrollstrukturen (Steuerfluss)
MehrEinführung in die Theoretische Informatik
Einführung in die Theoretische Informatik Stefan Rass System Security Research Group (syssec), Institute of Applied Informatics Alpen-Adria Universität Klagenfurt {stefan.rass}@aau.at 2017 WS 2017-09-29
MehrADS. 1. Vorlesung. Techniken der Programmentwicklung Prof. Dr. Wolfgang Schramm
ADS 1. Vorlesung Techniken der Programmentwicklung Prof. Dr. Wolfgang Schramm 6.10.2016 ORGANISATORISCHES Algorithmen & Datenstrukturen Prof. Dr. Wolfgang Schramm Der Dozent 2 Prof. Dr. Wolfgang Schramm
Mehr... sind (wohldefinierte, endliche) Folgen von Anweisungen, die aus einer Eingabe eine Ausgabe produzieren. Algorithmus.
3-4 Algorithmen...... sind (wohldefinierte, endliche) Folgen von Anweisungen, die aus einer Eingabe eine Ausgabe produzieren. Algorithmus Eingabe Ausgabe Beispiele: Kochrezepte Algorithmen zur Verknüpfung
MehrAllgemeines. Verschiedene Sprachkonzepte C-Sprachfamilie C-ähnliche Programmiersprachen Allgemeines zu C. #include <stdio.h>
Allgemeines Verschiedene Sprachkonzepte C-Sprachfamilie C-ähnliche Programmiersprachen Allgemeines zu C #include int main() { printf( hello world\n ); return 0; } Peter Sobe 1 Verschiedene Sprachkonzepte
MehrTeil 3 - Java. Grundlagen Klassen, Attribute Methoden
Teil 3 - Java Grundlagen Klassen, Attribute Methoden 1 Java 2 - Geschichte Ursprung: Green -Project bei der Firma Sun Microsystems 1991 Entwicklung eines Systems mit folgenden Eigenschaften: hardwareunabhängig
MehrDefinitionen/Vorarbeit zum Thema Java
Definitionen/Vorarbeit zum Thema Java Programmiersprachen: System von Wörtern und Symbolen, die zur Formulierung von Programmen für die elektronische Datenverarbeitung verwendet werden. Arten: z.b. Javascript
MehrAlgorithmen und Datenstrukturen
1 Lehrstuhl für Informatik I Algorithmen und Datenstrukturen Wintersemester 2015/16 Organisatorisches Vorlesung: Übungsbetreuung: Übungen: Alexander Wolff (E29) Krzysztof Fleszar (E16) Anna Aumann Johannes
MehrVorlesung Programmierung
- 1 - Vorlesung Programmierung Inhalt der Vorlesung Was ist ein Programm? Was sind grundlegende Programmierkonzepte? Wie konstruiert (entwickelt) man ein Programm? Welche Programmier-Paradigmen gibt es?
MehrVorkurs Informatik WiSe 16/17
Java Einführung Dr. Werner Struckmann / Stephan Mielke, Jakob Garbe, 04.10.2016 Technische Universität Braunschweig, IPS Überblick Organisatorisches Hello! 04.10.2016 Dr. Werner Struckmann / Stephan Mielke,
MehrVorlesung Programmierung
- 1 - Vorlesung Programmierung Inhalt der Vorlesung Was ist ein Programm? Was sind grundlegende Programmierkonzepte? Wie konstruiert (entwickelt) man ein Programm? Welche Programmier-Paradigmen gibt es?
MehrEinführung in die Informatik: Programmierung und Software-Entwicklung, WS 16/17. Kapitel 1. Einführung und Grundbegriffe
1 Kapitel 1 2 Ziele Begriffsbildungen: Informatik, Algorithmus, Programm, Compiler, Einordnung von Java Ein einfaches Java-Programm erstellen, übersetzen und ausführen Java-Programme dokumentieren 3 Informatik
MehrGrundlagen der Programmierung
Grundlagen der Programmierung Dr. Tom Kamphans 1. Vorlesung 12.10.2016 1 Organisatorisches Vorlesung: Mittwochs 14:00 15:30, Raum F 201 Übung: Mittwochs 15:45 19:00, Raum F 225 Übung: alle zwei Wochen
MehrInformatik II Algorithmen & Datenstrukturen
lausthal Informatik II Algorithmen & Datenstrukturen Organisatorisches. Zachmann lausthal University, ermany zach@in.tu-clausthal.de Ziel der Vorlesung 1. Eine (kleine) Anzahl von sehr grundlegenden Algorithmen
MehrInstitut für Programmierung und Reaktive Systeme. Java 1. Markus Reschke
Java 1 Markus Reschke 06.10.2014 Überblick Einführung in die Programmierung zur Vereinfachung des Einstiegs ins Studium Erstellung von ausführbaren Programmen für den Computer Denk- und Vorgehensweisen
MehrEinführung in die Informatik
Einführung in die Informatik Christian Rössl Wintersemester 2017/18 Einführung in die Informatik Christian Rössl EinfInf 2017: Übersicht 2 Berechenbarkeit Rekursion Java Analyse Theoretische Grundlagen
MehrProgrammierkurs II. Prof. Dr. Wolfgang Effelsberg. Universität Mannheim. Sommersemester Wolfgang Effelsberg Programmiersprachen
Prof. Dr. Wolfgang Effelsberg Universität Mannheim Sommersemester 2005 1-1 Inhalt (1) Teil I: Die Programmiersprache C 2. Datentypen und Deklarationen 3. Operatoren und Ausdrücke 4. Ablaufsteuerung (Kontrollstrukturen)
MehrProgrammierkurs II. Prof. Dr. Wolfgang Effelsberg. Universität Mannheim. Sommersemester Wolfgang Effelsberg Programmiersprachen
Prof. Dr. Wolfgang Effelsberg Universität Mannheim Sommersemester 2005 1-1 Inhalt (1) Teil I: Die Programmiersprache C 2. Datentypen und Deklarationen 3. Operatoren und Ausdrücke 4. Ablaufsteuerung (Kontrollstrukturen)
MehrInhalte des Moduls Programmieren 1
Inhalte des Moduls Programmieren 1 Einführung: Algorithmus und Programm, Programmiersprache Erste Schritte in Java Grundlagen der Sprache: Datentypen, Ausdrücke und Anweisungen, imperative Programmierung
MehrListe MI / Liste I Programmieren in C++
Liste MI / Liste I Programmieren in C++ Fachhochschule Wiesbaden, FB Design Informatik Medien Studiengang Medieninformatik WS 2007/2008 Kapitel 1-4 1 Ziele Kennenlernen einer weiteren objektorientierten
MehrProgrammiersprachen. Marco Block. Folieninhalte teilweise übernommen von Prof. Heinz Schweppe (ALP II, SoSe 2008) und Prof. Löhr (ALP II, SoSe 2004)
Programmiersprachen Inhalt: Geschichte der Programmiersprachen Programmierparadigma Programmiersprachen im Studium Funktionale Programmierung mit Haskell Funktionale versus Imperative Programmierung Logische
MehrTheoretische Informatik: Berechenbarkeit und Formale Sprachen
Theoretische Informatik: Berechenbarkeit und Formale Sprachen Prof. Dr. F. Otto Fachbereich Elektrotechnik/Informatik, Universität Kassel 34109 Kassel, Germany E-mail: otto@theory.informatik.uni-kassel.de
MehrWorkload: 150 h ECTS Punkte: 5
Modulbezeichnung: Grundlagen der objektorientierten Programmierung mit Java Modulnummer: DLBINGOPJ Modultyp: Pflicht Semester: -- Dauer: Minimaldauer 1 Semester Regulär angeboten im: WS, SS Workload: 150
MehrGeschichte der Programmiersprachen
Erster Vorläufer: das Plankalkül, 1942 von K. Zuse, erst 1975 erstmals vollständig beschrieben und implementiert, keine praktische Relevanz Sprachen der 1. Generation (1.GL): Maschinensprachen: binär,
MehrComputergrundlagen Programmiersprachen, Interpreter, Compiler, Linker
Computergrundlagen Programmiersprachen, Interpreter, Compiler, Linker Axel Arnold Institut für Computerphysik Universität Stuttgart Wintersemester 2010/11 Was sind Programme? In dieser Vorlesung: Python,
MehrWintersemester 2007/2008 Helmut Seidl Institut für Informatik TU München
Informatik 1 Wintersemester 2007/2008 Helmut Seidl Institut für Informatik TU München 1 0 Allgemeines Inhalt dieser Vorlesung: Einführung in Grundkonzepte der Informatik; Einführung in Denkweisen der Informatik;
MehrAlgorithmen und Datenstrukturen
Lehrstuhl für Informatik I Algorithmen und Datenstrukturen Wintersemester 2016/17 Organisatorisches Vorlesung: Übungsbetreuung: Übungen: Alexander Wolff (E29) Fabian Lipp (E14) André Löffler (E15) Johannes
MehrEinführung in die Informatik Turing Machines
Einführung in die Informatik Turing Machines Eine abstrakte Maschine zur Präzisierung des Algorithmenbegriffs Wolfram Burgard Cyrill Stachniss 1/14 Motivation und Einleitung Bisher haben wir verschiedene
MehrPropädeutikum Programmiersprache C und Mathematik 2014
Propädeutikum Programmiersprache C und Mathematik 2014 Fakultät für Mathematik und Informatik Universität Leipzig Dipl.-Inf. Stefan Freitag, URZ & UBL Stefan Freitag Einführungsveranstaltung Ziel und Zweck
MehrInformatik 1 (WS 2018/2019)
Informatik 1 (WS 2018/2019) Klaus Berberich (klaus.berberich@htwsaar.de) Wolfgang Braun (wolfgang.braun@htwsaar.de) 0. Organisatorisches Dozenten Klaus Berberich (klaus.berberich@htwsaar.de) Sprechstunde
MehrÜbersicht Formale Semantik. Übersicht Axiomatische Semantik. Inhaltsübersicht HPS WS 2003/04. Vorlesung Höhere Programmiersprachen,
Vorlesung Höhere Programmiersprachen, WS 2003/04 Teil 2: Formale Semantik Axiomatische Semantik Inhaltsübersicht - Grundlagen (1,2) - Konzepte imperativer Programmiersprachen (2,3) - Deklarative Programmiersprachen
Mehr2. Computer (Hardware) K. Bothe, Institut für Informatik, HU Berlin, GdP, WS 2015/16
2. Computer (Hardware) K. Bothe, Institut für Informatik, HU Berlin, GdP, WS 2015/16 Version: 14. Okt. 2015 Computeraufbau: nur ein Überblick Genauer: Modul Digitale Systeme (2. Semester) Jetzt: Grundverständnis
MehrVorlesung Programmierung
- 1 - Vorlesung Programmierung Inhalt der Vorlesung Was ist ein Programm? Was sind grundlegende Programmierkonzepte? Wie konstruiert (entwickelt) man ein Programm? Welche Programmier-Paradigmen gibt es?
MehrProgrammieren lernen mit Perl
Xpert.press Programmieren lernen mit Perl Bearbeitet von Joachim Ziegler 1. Auflage 2002. Buch. XIV, 400 S. Hardcover ISBN 978 3 540 42685 1 Format (B x L): 15,5 x 23,5 cm Gewicht: 783 g Weitere Fachgebiete
MehrInformatik I. Grundlagen der systematischen Programmierung. Peter Thiemann WS 2007/08. Universität Freiburg, Germany
Informatik I Grundlagen der systematischen Programmierung Peter Thiemann Universität Freiburg, Germany WS 2007/08 Literatur Herbert Klaeren, Michael Sperber. Die Macht der Abstraktion. Teubner Verlag,
MehrProgrammierung 1 für Wirtschaftsinformatik Wintersemester 2017/18
Programmierung 1 für Wirtschaftsinformatik Wintersemester 2017/18 Prof. Dr.-Ing. habil. Peter Sobe Fakultät Informatik / Mathematik Programmierung 1: Programmierung 1 - Ziele Vermittlung von Grundkenntnissen
MehrComputergrundlagen Programmiersprachen, Interpreter, Compiler, Linker
Computergrundlagen Programmiersprachen, Interpreter, Compiler, Linker Axel Arnold Institut für Computerphysik Universität Stuttgart Wintersemester 2010/11 Was sind Programme? In dieser Vorlesung: Python,
MehrEinführung in die Informatik Turing Machines
Einführung in die Informatik Turing Machines Eine abstrakte Maschine zur Präzisierung des Algorithmenbegriffs Wolfram Burgard 1 Motivation und Einleitung Bisher haben wir verschiedene Programmiersprachen
MehrInformatikgrundlagen (WS 2016/2017)
Informatikgrundlagen (WS 2016/2017) Klaus Berberich (klaus.berberich@htwsaar.de) Wolfgang Braun (wolfgang.braun@htwsaar.de) 0. Organisatorisches Dozenten Klaus Berberich (klaus.berberich@htwsaar.de) Sprechstunde
MehrBeispiel: Hamming-Folge Erzeuge eine Folge X = x 0,x 2,... mit folgenden Eigenschaften: 1. x i+1 > x i für alle i
Beispiel: Hamming-Folge Erzeuge eine Folge X = x 0,x 2,... mit folgenden Eigenschaften: 1. x i+1 > x i für alle i FP-8.7 2. x 0 = 1 3. Falls x in der Folge X auftritt, dann auch 2x, 3x und 5x. 4. Nur die
MehrEIGENSCHAFTEN VON SPRACHEN
Vorlesung und Übung Universität Paderborn Wintersemester 2016/2017 Dr. Peter Pfahler EIGENSCHAFTEN VON SPRACHEN EWS, WS 2016/17, Pfahler C-1 Einführung Sprachen in der Informatik werden für bestimmte Zwecke
MehrEinführung in die Informatik
Einführung in die Informatik Einleitung Organisatorisches, Motivation, Herangehensweise Wolfram Burgard 1.1 Vorlesung Zeit und Ort: Mittwochs 14.00 16.00 Uhr Gebäude 101 HS 00-026 Informationen zur Vorlesung,
Mehr1. Einführung Einführung in die Programmierung (fbw) Sommersemester 2008 Prof. Dr. Bernhard Humm Hochschule Darmstadt, fbi
1. Einführung Einführung in die Programmierung (fbw) Sommersemester 2008 Prof. Dr. Bernhard Humm Hochschule Darmstadt, fbi 1 Prof. Dr. Bernhard Humm, Hochschule Darmstadt, FB Informatik: Einführung in
MehrProgrammieren 3. Programmieren in C und Python. Prof. Dr. Peter Barth. Hochschule RheinMain. Fachbereich Design Informatik Medien.
Programmieren 3 Programmieren in C und Python Prof. Dr. Peter Barth Hochschule RheinMain Fachbereich Design Informatik Medien Medieninformatik 10. Dezember 2015 Prof. Dr. Peter Barth (HS-RheinMain) Programmieren
MehrI.1. Organisatorisches - 1 -
- 1 - Vorlesung "Programmierung" Inhalt der Vorlesung Was ist ein Programm? Was sind grundlegende Programmierkonzepte? Wie konstruiert (entwickelt) man ein Programm? Welche Programmier-Paradigmen gibt
Mehr1 Funktionale vs. Imperative Programmierung
1 Funktionale vs. Imperative Programmierung 1.1 Einführung Programme einer funktionalen Programmiersprache (functional programming language, FPL) bestehen ausschließlich aus Funktionsdefinitionen und Funktionsaufrufen.
MehrEinführung in die Informatik
Einführung in die Informatik Einleitung Organisatorisches, Motivation, Herangehensweise Wolfram Burgard 1.1 Vorlesung Zeit und Ort: Mittwochs 14.00 16.00 Uhr Gebäude 101 HS 00-026 Informationen zur Vorlesung,
MehrEinführung in die Programmierung
Prof. Dr. Rudolf Berrendorf Fachbereich Informatik Fachhochschule Bonn-Rhein-Sieg URM - Programmierung Dipl.-Inf. Sigrid Weil Fachbereich Informatik Fachhochschule Bonn-Rhein-Sieg Einordnung Programmier-Paradigma:
MehrEinführung in Datenbanksysteme ++ Datenbanken für Bioinformatiker
Einführung in Datenbanksysteme ++ Datenbanken für Bioinformatiker H. Schweppe FU Berlin, SS 2005 hs@inf.fu-berlin.de Infos Zielgruppen Studierende in den Studiengängen Diplom Informatik ab 4 Semester /
MehrFunktionale Programmiersprachen
Funktionale Programmiersprachen An den Beispielen Haskell und Erlang Übersicht Programmiersprachen λ-kalkül Syntax, Definitionen Besonderheiten von funktionalen Programmiersprache, bzw. Haskell Objektorientierte
MehrFunktionale Programmierung Einführung
Einführung Prof. Dr. Oliver Braun Fakultät für Informatik und Mathematik Hochschule München Letzte Änderung: 13.09.2017 15:29 Inhaltsverzeichnis Was ist imperative Programmierung.......................
Mehr