Grundlagen der Programmierung

Ähnliche Dokumente
Grundlagen der Programmierung

Tutorial zum Umgang mit Scratch

SCRATCH. Beispiel 1. "Pong"

Autor: Michael Spahn Version: 1.0 1/10 Vertraulichkeit: öffentlich Status: Final Metaways Infosystems GmbH

Projekt: Python Programmierung

Programmieren mit Python

Programmierung für Mathematik (HS13)

Informatikgrundlagen (WS 2015/2016)

1 Karol stellt sich vor

1. Einführung Einführung in die Programmierung (fbw) Sommersemester 2008 Prof. Dr. Bernhard Humm Hochschule Darmstadt, fbi

Probeklausur: Programmierung WS04/05

Einführung in die Programmierung

3.4 Ablaufsteuerung (Kontrollstrukturen)

Programmieren. Hexenwerk oder Zauberspuk? Kinderuniversität Mittwoch, 16. März 2016 Kinder-Akademie Fulda & Hochschule Fulda

Programmierkurs Python I

Übung 00 Einrichten der Entwicklungsumgebung

1. LPC - Lehmanns Programmier Contest - Lehmanns Logo

Vorlesung Berechenbarkeit und Komplexität. Motivation, Übersicht und Organisatorisches

Greenfoot: Schleifen. 1. Die for-schleife

Programmiersprachen. Organisation und Einführung. Berthold Hoffmann. Studiengang Informatik Universität Bremen

Rechnerische Komplexität

Einführung in die Informatik für Hörer aller Fakultäten II. Andreas Podelski Stephan Diehl Uwe Waldmann

Berechenbarkeitstheorie 17. Vorlesung

Grundlagen der Informatik I (Studiengang Medieninformatik)

Kontrollstrukturen - Universität Köln

1 Vom Problem zum Programm

12. Rekursion Grundlagen der Programmierung 1 (Java)

Institut für Telematik Universität zu Lübeck. Programmieren. Kapitel 0: Organisatorisches. Wintersemester 2008/2009. Prof. Dr.

Breiten- und Tiefensuche in Graphen

Praktische Informatik I

Entwurf von Algorithmen - Kontrollstrukturen

Inhaltsverzeichnis. Was ist Informatik? 5. Programmierung 13. Einleitung. 1 Informatik Was ist Informatik? Teilgebiete der Informatik 8

Java 8. Elmar Fuchs Grundlagen Programmierung. 1. Ausgabe, Oktober 2014 JAV8

Übungen zu Grundlagen der Informatik I WS 2004/05

Algorithmen und Datenstrukturen

Übersicht. Wo lebt die Schildkröte? Wie programmiert man die Schildkröte? Wo lebt die Schildkröte? Wie programmiert man die Schildkröte?

Algorithmik II. SS 2003 Prof. Dr. H. Stoyan Lehrstuhl für Informatik 8 ( Künstliche Intelligenz) stoyan@informatik.uni-erlangen.

FB Informatik Prof. Dr. R.Nitsch. Programmieren 1. Reiner Nitsch 06151/ Homepage: Raum: D14/0.

Webbasierte Programmierung

DEUTSCHE SCHULE COLEGIO ALEMÁN

Technische Universität Braunschweig Institut für Programmierung und Reaktive Systeme

Einführung in die Informatik 1

Kapitel 3. Mein erstes C-Programm

1 Vom Problem zum Programm

Algorithmen und Datenstrukturen CS1017

Programmiertechnik. Prof. Dr. Oliver Haase Raum G124 Tel: 07531/ Oliver Haase Hochschule Konstanz 1

Einführung in PHP. (mit Aufgaben)

Übung zur Vorlesung Strukturiertes Programmieren WS 2014/15. Übungsblatt 1: JAVA - Erste Schritte Abgabe: Besprechung:

EndTermTest PROGALGO WS1516 A

Programmiervorkurs. Organisation: Steffen Gebert, Alexander Wolff. Tutoren: Jürgen Zöller, Jonathan Stoll. Wintersemester 2012/2013

Erste Schritte am Rechner

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

Starte Greenfoot und öffne das Szenario krabbe1. Es erscheint das Hauptfenster von Greenfoot mit dem geöffneten Szenario.

Gliederung. Algorithmen und Datenstrukturen II. Problem: Längste gemeinsame Teilsequenz. Problem: Längste gemeinsame Teilsequenz

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

Mächtigkeit von WHILE-Programmen

Einführung in die Programmierung

Übung zur Vorlesung Multimedia im Netz

PROGRAMMIEREN MIT LOGO

Natur und Technik - Informatik 7 Grundwissenskatalog

Inhalt: Version 1.7.5

Algorithmen mit Python

Programmiertechnik II

Lektion 6: Prozeduren mit Parametern Übergabe von Werten

Das wichtigste zu logo (ucblogo)

Lagemaße Übung. Zentrale Methodenlehre, Europa Universität - Flensburg

Technische Universität Wien Institut für Computergraphik und Algorithmen Arbeitsbereich für Algorithmen und Datenstrukturen

Algorithmen & Datenstrukturen 1. Klausur

Algorithmen und ihre Programmierung

Programmieren was ist das genau?

Reihungen. Martin Wirsing. in Zusammenarbeit mit Matthias Hölzl und Nora Koch 11/03

Coma I. Einleitung. Computer und Algorithmen. Programmiersprachen. Algorithmen versus Programmiersprachen. Literaturhinweise

PROGRAMMIEREN MIT LOGO. Kadervernetzung, Kantonsschule Wil Samstag,

Lohntabelle gültig ab 1. Januar 2016

Lohntabelle gültig ab 1. Januar 2015

Softwareentwicklung Allgemeines und prozedurale Konstrukte

Kontrollstrukturen, Pseudocode und Modulo-Rechnung

Propädeutikum. Dipl.-Inf. Frank Güttler

Uebersicht. Webpage & Ilias. Administratives. Lehrbuch. Vorkenntnisse. Datenstrukturen & Algorithmen

1) Farbsteuergerät in der Nikobus-Software unter Modul zufügen hinzufügen.

Übersicht. Schleifen. Schleifeninvarianten. Referenztypen, Wrapperklassen und API. 9. November 2009 CoMa I WS 08/09 1/15

Eine Einführung in C-Funktionen

Übersicht Datenstrukturen und Algorithmen. Literatur. Algorithmus: Wikipedia Definition. Vorlesung 1: Einführung. Prof. Dr.

Ein Stundenentwurf zur graphische Darstellung der Baumrekursion

Grundlagen des Software Engineering

WebQuests. Eine WebQuest erstellen und publizieren. Mit PowerPoint geht es besonders einfach. Seite 1. WebQuests erstellen und publizieren

Vorlesung Programmieren

Logik und diskrete Strukturen

Am Dienstag, den 16. Dezember, ist Eulenfest. 1/48

Dynamisches Programmieren - Problemstruktur

Neben dem Hauptspeicher der Zentraleinheit (Arbeitsspeicher) benötigt man Speicher, mit deren Hilfe man Informationen (Daten) sichern kann:

Prof. Dr. Heinrich Müller. Informatik VII Universität Dortmund. Organisatorisches zum Vorkurs Informatik

Lektion 1: Erste Befehle zur Turtle-Geometrie

CAD-Gruppen. 1. Inhaltsverzeichnis. 1. Inhaltsverzeichnis 1 2. Was ist eine CAD-Gruppe? Erstellen von CAD-Gruppen 5

Datenbanken erstellen Liste von Datenbanken anzeigen Datenbanken löschen. MySQL 4, 5. Kapitel 06: Datenbanken. Marcel Noe

Kap. 8: Speziell gewählte Kurven

SS / 16 schrittweise Verfeinerung -> Wirth, 1971, Programm Development by Stepwise Refinement

Kapitel 2: Programmfluss steuern

ConUti GmbH - Ihr starker Partner eai@conuti.de l ConUti Ihr starker Partner. B2B Schulungen

Transkript:

Grundlagen der Programmierung Dr. Tom Kamphans 1. Vorlesung 04.04.2018 1

Organisatorisches Vorlesung: Mittwochs 14:00 15:30, Raum F 201 Übung: Mittwochs 15:45 19:00, Raum F 225 Übung: alle zwei Wochen Folien: http://home.htw-berlin.de/~kamphans Email: tom.kamphans@htw-berlin.de 2

Organisatorisches Bestehen des Moduls: Erfolgreiche Teilnahme an den Übungen Anwesenheit Mitarbeit / Aufgaben erfolgreich absolviert KLAUSUR 1. Zeitraum: Vorschlag: 25.07.2018 2. Zeitraum: 24.09. bis 08.10.2018 3

Fragen Wer hat noch NIE...... Email benutzt?... einen Computer bedient?... im Web gesurft?... eine Textverarbeitung benutzt?... mit Windows 10 gearbeitet?... mit MacOS gearbeitet?... mit Linux gearbeitet? 4

Fragen Wer hat schon einmal programmiert?... in C?... in Matlab?... in C++ oder Java? weiß, was ein Algorithmus ist? kennt das P/NP Problem? 5

Was heißt Programmieren? 6

Programmieren Problem Algorithmus Implementierung Programm 7

Algorithmus Ein Algorithmus ist eine aus endlich vielen Schritten bestehende eindeutige Handlungsvorschrift zur Lösung eines Problems oder einer Klasse von Problemen. (Wikipedia) Beispiel: nimm Bockwurst aus der Dose koche Wasser lasse Bockwurst 5 Minuten im Wasser ziehen 8

Vom Problem zum Algorithmus ein Problem Was heißt berechenbar? berechenbar? Was heißt effizient? JA effizient berechenbar? JA NEIN Was können wir tun? Wie gut ist unsere Lösung? Geht es besser? 9

Effizienz Gegeben ein Graph (z.b.: Straßennetz mit Orten und Entfernungen) Finde kürzeste Rundtour, die alle Orte besucht 8 7 9 2 5 2 2 3 3 5 5 4 6 7 10

Effizienz Lösung: berechne alle möglichen Touren wähle die billigste aus kann sehr lange dauern nicht effizient! nicht effizient berechenbar? man weiß nicht, ob eine effiziente Lösung existiert! Vermutung: existiert nicht 11

Wie beschreibt man Algorithmen? Programmcode: max=0; for(i=0; i<n; i++) if ( a[i] > max ) max=a[i]; Pseudocode: durchlaufe Array a, bestimme das maximale Element auch möglich: Flußdiagramme Einzige Regel: es muss klar werden, was gemacht werden soll Technik für Algorithmenentwurf: Schrittweise Verfeinerung 12

Vom Algorithmus zum Programm Elemente von Programmiersprachen Operatoren Kontrollstrukturen Bibliotheksfunktionen 13

Beispiel: Turtlegraphik Turtlegraphik: bewegt Zeiger ("Turtle") über den Bildschirm, zeichnet Spur des Zeigers Befehle: Bewege Zeiger (MOVE schrittweite) Drehe Zeiger (TURN winkel) Problem: Zeichne Quadrat mit Kantenlänge 100 Erstmal Snap (https://snap.berkeley.edu/) oder Scratch (http://scratch.mit.edu) 14

Quadrat mit Turtlegraphik MOVE 100 TURN 90 MOVE 100 TURN 90 MOVE 100 TURN 90 MOVE 100 TURN 90 Befehl Parameter 15

Geht es einfacher? Wiederhole 4 mal: MOVE 100 TURN 90 16

Kontrollstruktur! "Klammer" für Befehle auch selbst Befehl! 17

Neue Befehle Snap: Scratch: definiert neuen Befehl Anwendung: 18

Neue Befehle (in Snap) 1 2 3 4 19

Neue Befehle Ziel: Befehl zum Zeichnen eines Quadrates definieren, unabhängig von der Seitenlänge Die Seitenlänge ist ein Parameter des neuen Befehls Quadrat Neuer Befehl kann genau wie geg. Befehl verwendet werden 20

Neue Befehle mit Parameter Hinteres + klicken Ändern: rechte Maustaste 21