Informatik-I 9/20/10! Ziele dieser LV. Praktische Informationen. Einführung in das Programmieren Technische Grundlagen der Informatik

Ähnliche Dokumente
Informatik-I. Einführung in das Programmieren Technische Grundlagen der Informatik

Einführung in die Programmierung. Deutsche Version der Folien. Sprache. Bertrand Meyer

LINUX Schulung. FrauenComputerZentrum Berlin. Jutta Horstmann, Mai 2006

Universität Stuttgart Vorstellung der Studiengänge Informatik und Softwaretechnik

Technische Voraussetzungen

Vorlesung: von Montag, , bis Mittwoch, , Uhr. Emil-Figge-Straße 50, HS 1, Campus Nord Hörsaalgbäude I, Hörsaal 6, Campus Süd

Informatik I Felix Friedrich

Technische Voraussetzungen

Inhaltsangabe zu den Systemvoraussetzungen:

Was ist Informatik? Alexander Lange

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

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

Informatik I, Teil 2 Technische Grundlagen der Informatik: Rechnerstrukturen und -organisation

Grundlagen der Programmierung UE

Systemanforderungen Verlage & Akzidenzdruck

Einführung in die Technische Informatik [TI]

Grundlagen der Programmierung UE

0. Einführung. C und C++ (CPP)

Systemanforderungen Verlage & Akzidenzdruck

Vorlesung Objektorientierte Softwareentwicklung. Kapitel 0. Java-Überblick

Deutsch Version der Folien. Programmierung im Grossen. Bertrand Meyer. Ziele der Vorlesung. Wähle deine Sprache. Themen.

Problemorientierte Programmiersprachen Nachteile von Programmen in Maschinensprache sehr aufwendig bei komplexeren Aufgabenstellungen fehleranfällig

Assembler - Einleitung

Programmieren I. Administratives / Java Installation. Thomas Vetter, Brian Amberg, Andreas Forster. 21. September 2010 UNIVERSITÄT BASEL

Hardware- und Softwareanforderungen für die Installation von California.pro

Jürg Gutknecht, SI und ETH Zürich, April 2015

Einführung Praktische Informatik

Systemanforderungen Verlage & Akzidenzdruck

Python Programmierung. Dipl.-Ing.(FH) Volker Schepper

CHARON-AXP Alpha Hardwarevirtualisierung

INDEX. Netzwerk Überblick. Benötigte Komponenten für: Windows Server Windows Server 2008 R2. Windows Server 2012

2.1 Lightning herunterladen Lightning können Sie herunterladen über:

Aufbau und Funktionsweise eines Computers

World of Warcraft. Mindestvoraussetzungen

Grundlagen der Informatik

Einführung in die Programmierung

Auf jeden Fall Novell und NT. Dateisperrung und Berechtigungen müssen unter NFS funktionieren.

cytan Systemvoraussetzungen

Operating System Design - Now and Then. Christian Behnert Proseminar Technische Informatik FU Berlin

Java Kurs für Anfänger LMU SS09 Einheit 1 Javaumgebung

Energiesparmechanismen des

Einführung in Betriebssysteme

Persona-SVS e-sync GUI/Client Installation

Programmieren was ist das genau?

MAXDATA b.drive. Externe Festplatte mit integrierter Backup Software

VIRTUALISIERUNG IN MIKROKERN BASIERTEN SYSTEMEN

Konzepte und Methoden der Systemsoftware Organisation & Allgemeines. Holger Karl. Computer Networks Group Universität Paderborn

Infovorkurs, Teil III: Maschinenabstraktion & Ausblick

Wissenschaftliches Rechnen I

Einführung in die Systemprogrammierung

Einleitung. Einführung in die Technische Informatik Falko Dressler und Stefan Podlipnig Universität Innsbruck

Systemanforderungen Verlage & Akzidenzdruck

Parallels Transporter Read Me

Algorithmen und Datenstrukturen

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

Quip Trade Business Manager GUI/Client Installation

Programmier-Projekt (cs108)

Modul InfB-RS: Rechnerstrukturen

moderne Prozessoren Jan Krüger

A1 Desktop Security Installationshilfe. Symantec Endpoint Protection 12.1 für Windows/Mac

Informatik I. Vorlesung an der Universität Bonn im Wintersemester 2001/02. Prof. Dr. Rainer Manthey Prof. Dr. Rainer Manthey Informatik I 1

Excel beschleunigen mit dem mit Windows HPC Server 2008 R2

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

ADS. 1. Vorlesung. Techniken der Programmentwicklung Prof. Dr. Wolfgang Schramm

Systemvoraussetzungen für Autodesk Revit Produkte (gemäß Angaben von Autodesk)

Systemvoraussetzungen

Staatlich geprüfter EDV-Führerschein

BERNINA ArtLink V7.0N Installationsanleitung der Sticksoftware

Einführung in PHP. (mit Aufgaben)

Einführung in die Programmierung

8. Softwareentwicklung

Java für C++ Programmierer

1. Java Grundbegriffe

BERNINA ArtLink 6 Installationsanleitung der Sticksoftware

Kapitel 02. Java was, wann, warum, wieso. Fachgebiet Knowledge Engineering Prof. Dr. Johannes Fürnkranz

B.SC. INFORMATIK TIM JUNGNICKEL

Inhalt. Prozessoren. Curriculum Manfred Wilfling. 28. November HTBLA Kaindorf. M. Wilfling (HTBLA Kaindorf) CPUs 28. November / 9

C C. Hochleistungsrechnen (HPC) auf dem Windows Compute Cluster des RZ der RWTH Aachen. 1 WinHPC Einführung Center. 31.

Computerorientiertes Problemlösen

Byte-Taxi. Bedienungsanleitung. Seite 1 von 8

Einführung in die Informatik

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

Betriebssysteme SS 2009 VO (2) [+ PR (2) + TU (2)]

001 Gibt es einen roten Faden, den man aus der Beobachtung der letzten Jahrzehnte aus der Open Source Kultur ableiten kann?

Informatik 1 Tutorial

Willkommen an der ETH Zürich

Einführung in die Technische Informatik [TI]

Einführung in die Programmierung 1

Informatik I Tutorial

Versuch 3: Routing und Firewall

Übung Softwareentwicklung 1, WS0910 Gemeinsame Einführung

Formale Methoden der Ökonomik: Einführung in die empirische Wirtschaftsforschung

Einführung in JAVA. Viele Höhen und Tiefen Java war schon einmal nahezu tot. Heute extrem weit verbreitet vom Supercomputer bis hin zum Handy.

So"ware Voraussetzungen und Spezifika5on für Eurotalk SCORM E Learning Inhalte. Version

Systemanforderungen. Design Suite. AutoCAD Standard AutoCAD AutoCAD Raster Design Autodesk SketchBook Designer Autodesk Showcase Autodesk Mudbox

Zuletzt geändert durch Satzung vom 6. August 2015

Entwicklungsmethoden

Einführung in die Informatik I (autip)

Einführung in die Programmierung

Einführung in die Praktische Informatik WS 09/10

Transkript:

Informatik-I Einführung in das Programmieren Technische Grundlagen der Informatik Harald Gall, Burkhard Stiller Institut für Informatik seal.ifi.uzh.ch/info1 Ziele dieser LV! Die wichtigsten Konzepte des Programmierens kennen! Die erste Programmiersprache beherrschen: Java! Grundlegende Konzepte von Design, Implementation und Evolution von Software-Systemen kennen! Software und Hardware näher verstehen! Computer Architekturen, Rechnerstrukturen, Rechnerorganisation kennen! Grundlagen fürs Informatik-Studium 2 Praktische Informationen 1!

Organisation Dozierende Prof. Harald Gall Prof. Burkhard Stiller Assistierende Michael Würsch Fabio Hecht Tutoren Teaching Assistants Zeit und Ort Di 12-14 und Mi 12-15 AP/ECTS 9 Anmeldung Übung 1. Modulanmeldung via Assessment-Buchung 2. Anmeldung in eine Übungsgruppe via OLAT Details siehe Web-Seite der Übungen 4 Unterlagen zur LV! Web-Seite für Vorlesung und Übungen http://seal.ifi.uzh.ch/info1/! Vorlesungsmaterial:! Vorlesungsfolien und 2 Bücher:! Walter Savitch, Frank M. Carrano, Java: An Introduction to Problem Solving & Programming, 5/e, Pearson, 2008! H. Herold, B. Lurz, J. Wohlrab, Grundlagen der Informatik, Pearson, 2007! Übungsmaterial:! Übungsblätter, Beispiel-Lösungen 5 Übungen! Wöchentliche Übungen! Lösung und Besprechung von Übungsbeispielen mit Teaching Assistants! Ablegen von Zwischentests! Übungen und Tests am Computer 6 2!

Das Team! Professoren! Harald Gall (EPROG)! Burkhard Stiller (TGI)! Assistenten! Michael Würsch (EPROG)! Fabio Hecht, Martin Waldburger (TGI)! Teaching Assistants & Tutoren! Markus Cadonau, Yves Bilgerig! Stefan Hiltebrand, Johanna Gaudenz, Manuel Gugger, Christoph Moser, Marc Tobler, Pascal Muther 7 Anmeldung! Web-Seite der LV genau studieren und entsprechend anmelden! 2 Anmeldungen erforderlich! Für das Modul Informatik-I (ECTS Punkte)! und für die Übung via OLAT (Übungsgruppe und -zeit)! Mathematiker buchen Programmierung für Mathematik 8 Übungen! Wöchentliche Übungen! Einzelarbeit in Übungsgruppen! Zwischentests! Endklausur = Assessmentprüfung! Übungsstunden mit Teaching Assistants/Tutoren! für Fragen,! Vor- und Nachbesprechungen der Beispiele,! sowie für zusätzliche Beispiele! Tipp: Nutzen Sie die Übungsstunden aktiv! 9 3!

Computer und Software Software Ingenieure bauen Maschinen! Unsere Maschinen kann man nicht berühren sie sind immateriell! Sie sind aber trotzdem Maschinen! Wir nennen sie Programme oder Systeme! Um ein Programm auszuführen braucht man eine physikalische Maschine: einen Computer! Computer und Peripherie: Hardware! Programme und der damit verbundene Intellektuelle Wert: Software (c) Bertrand Meyer, ETH! 11 Software überall! Banken: Verwalten Millionen von Konten! Handel: Entscheidet über Kauf oder Verkauf! Transport: Kontrolliert Züge, Flugzeuge...! Moderne Autos enthalten in ihren Systemen Millionen Zeilen von Programm-Code! Reisen: Luftfahrt, Eisenbahn, Hotel-Reservationen! Staat: Steuerverwaltung, Verwaltung von Gesetzen...! Medizin: Patientenverwaltung! Schule! Unterhaltung! Information! etc. 12 4!

Computer! Computer sind universelle Machinen. Sie führen das Programm, das man ihnen eingibt, aus.! Die Vorstellungskraft ist die einzige Grenze! Die guten Neuigkeiten:! Der Computer wird genau das tun, was das Programm sagt (c) Bertrand Meyer, ETH! 13 Size of Operating Systems (LOC) Windows Vista: > 50 M Lines of code (millions) Windows XP: > 40 M 40 Windows 2000: 30 M 30 Red Hat 7.1 30 M 20 Unix V7: 10,000 10 Windows 98: 18 M Windows 95: 15 M Solaris 7: 12 M Windows NT: 11 M Red Hat 6.2 17 M 2 Windows 3.1: 3 M 1990 Linux: 10,000 1992 1995 1998 2000 14 Moore s Law Geschwindigkeit von Intel Prozessoren 1 GHz 100 MHz = Ungefähre Verdoppelung der Power der Prozessoren, bei vergleichbarem Preis, alle 18 Monate (1 Hertz = 1 Clock Zyklus pro Sekunde) Pentium: 133 MHz Pentium IV: 1.3 GHz 10 MHz 80486: 50 MHz 80386: 33 MHz 1 MHz 8008: < 1 MHz zu 1 GHz: in 26 Jahren von 1 zu 2 GHz: 8 Monate (c) Bertrand 1970 Meyer! 1980 1990 2000 15 5!

Von NetBurst zu Multi-Core! Taktfrequenz-Wettrüsten Ende der 1990er! AMD Ur-Athlon vs. Intel (hohe Taktfrequenzen - und geringere Effizienz )! Pentium 4 (1,5 GHz in 2000, 4 GHz in 2002)! 2004 Ende vom NetBurst - stattdessen hohe Rechenkraft pro Taktzyklus! Hyper-Threading! Dual-Kern-Prozessoren ( Conroe -Kern, bis 2,93 GHz) Intel Xeon vs. AMD Opteron! Quad-Kern-Prozessoren Quelle: c t 16/2006! 16 Allgegenwärtige Vorurteile & Ausreden! Computer sind intelligent Fakt: Computer sind weder intelligent noch dumm. Sie führen nur Programme aus, die von Menschen geschrieben werden. Diese Programme reflektieren die Intelligenz ihrer Autoren. Die Grundoperationen eines Computers sind sehr elementar (speichere diesen Wert, addiere diese beiden Zahlen).! Der Computer ist abgestürzt! Der Computer erlaubt das nicht! Der Computer hat die Datei verloren! Der Computer hat die Datei kaputt gemacht 17 Computer machen keine Fehler*...! Programme machen auch keine Fehler! Programmierer machen Fehler! * In der Tat: Hardware kann Fehler haben, aber das ist viel seltener als Programm-Fehler 18 6!

Computer! Computer sind universelle Machinen. Sie führen das Programm, das man ihnen eingibt, aus.! Die Vorstellungskraft ist die einzige Grenze! Die guten Neuigkeiten:! Der Computer wird genau das tun, was das Programm sagt! Er wird es sehr schnell tun! Die schlechten Neuigkeiten:! Der Computer wird genau das tun, was das Programm sagt! Er wird es sehr schnell tun 19 Software schreiben ist schwer! Programme stürzen ab! Programme, die nicht abstürzen, funktionieren aber auch nicht unbedingt richtig! Schlecht funktionierende Programme haben bereits Opfer gefordert (Medizinbereich)! Ariane 5, am 4. Juni 1996: Millionen Dollar Schaden wegen einem einfachen Programmfehler (Konvertierung 64-bit float auf 16-bit integer)! Programmierer sind verantwortlich fürs korrekte Funktionieren ihrer Programme! Das Ziel diese Kurses ist nicht Ihnen Programmieren beizubringen, das Ziel ist dass jede/r gut programmieren lernt! 20 Wo ist das Programm?! Gespeichertes Programm: das Programm ist im Speicher. Ausführbare Daten! Der Computer kann, mit Hilfe von einigen grundliegenden Programmen (dem Betriebssystem) das Programm im Speicher finden und es ausführen! Ein Programm kann in verschiedenen Formen im Speicher erscheinen:! Source Code: in menschen-lesbarer Form (in der Programmiersprache geschrieben)! Ziel Form, Maschinen Code, Objekt Form: vom Computer ausführbare Form! Compiler verwandeln Quelltext in Maschinen-Code (c) Bertrand 2007, H.Gall! Meyer! 21 7!

Software Engineering Software, die! korrekt ist, tut was sie soll!! erweiterbar ist, ist einfach zu ändern!! lesbar ist, kann von anderen Programmierern einfacher verstanden werden!! wiederverwendbar ist, muss nicht das Rad neu erfinden!! robust ist, reagiert angemessen auf Fehler! 22 Grösse von Betriebssystemen (Quellcode) Windows 7: > 50 M Windows XP: > 40 M Lines of code (millions) 40 Windows 2000: 40 M 30 Red Hat 7.1 30 M 20 Unix V7: 10,000 10 2 (c) 2007, Bertrand H.Gall! Meyer, ETH! Windows NT: 4 M Windows 3.1: 3 M 1990 Windows 98: 18 M Windows 95: 15 M Solaris 7: 12 M Linux: 10,000 1992 1995 1998 2000 Red Hat 6.2 17 M 23 Software schreiben ist schwierig! Umsetzen eines Problems in Anweisungen für die Maschine! Verarbeiten der Informationen als Daten! Berechnungen durchführen! Spezifizieren, Codieren, Testen, Debuggen 24 8!

Software schreiben macht Spass Man designed und baut eigene Maschinen Man kann kreativ sein und seine Vorstellungskraft gebrauchen Die Erfahrung des Gefühls wenn eines der eigenen Programme läuft und funktioniert 25 Ausblick! Konzepte, Algorithmen! Modelle, Programme! Java 26 FAQ - Frequently Asked Questions! Fragen zum Informatik Studium! http://www.ifi.uzh.ch/teaching/faq/! Fragen zu Studium, Organisation, UZH! http://www.uzh.ch/studium/faq/ 27 9!