Guten Morgen! Programm

Guten Morgen! Mittelschülerinnentage 2005 Frauenförderung am Departement Informatik http://www.frauen.inf.ethz.ch/ ...bald geht‘s los! Programm • Vo...
Author: Laura Kaufman
3 downloads 0 Views 1MB Size
Guten Morgen! Mittelschülerinnentage 2005 Frauenförderung am Departement Informatik http://www.frauen.inf.ethz.ch/

...bald geht‘s los!

Programm • Vortrag „Was ist Informatik“ • Vortrag „Studium Informatik ETH“ • Einführung „einfaches Berechnungsmodell“ • Aufgaben „Rekursive Bilder“

1

Guten Morgen! • Was erwartet euch in diesem Kurs? – – – –

Was ist Informatik? Was tun Informatikerinnen? Was heisst „Programmieren“? Ein/Überblick „Informatik Studium ETH“

• Euer Nutzen? – Überblick Informatik – Hintergrundwissen – Informatik ist überall!

Euer Personal heute morgen Claudia Käppeli, 23 • Informatikstudentin, 8. Semester

Ruedi Arnold, 28 • Dipl. Inf. Ing. ETHZ, Diplom 2002 • Doktorand im D INFK der ETHZ

2

Was ist Informatik?

…für Dich?

Informatik? • • • • • • • •

Word Windows XP Drucken Rechnen Adressen sortieren Serienbriefe E Mail Internet

• • • • • • • •

Viren MP3 Dateien DVD schauen Videos schneiden Datenbank Druckertreiber Spiele Apfelmännchen, Chaos

3

Informatik

Informatik ist vielschichtig

Informatiker lieben es, komplexe Gebilde in Schichten zu zerlegen...

langlebig

Anwendungen System Realisierung Algorithmik Theorie

Praxisbezug

Informatik scheibchenweise: der Informatik Turm!

4

Anwendungen kennt Ihr!

Anwendungen

System Realisierung

• • • • • • •

Algorithmik Theorie

Wo finde ich was in Word? Wie richte ich mein E Mail Konto ein? Installation von Office XP Bedienung des Internet Explorers Windows 98, Windows 2000, Windows XP Doppelklick oder Einfach Klick? Macintosh

Anwendungen kennt Ihr!

Anwendungen

System Realisierung

• Auch Hardware gehört dazu!

Algorithmik Theorie

Prozessor Arbeitsspeicher – RAM Windows XP Festplatte

Monitor, Lautsprecher, Tastatur, Maus & Co.

• Fazit: alles sehr kurzlebig! – Kein Schwerpunkt im ETH Studium

5

System Realisierung Anwendungen

Hier wird Programmiert!

System Realisierung Algorithmik Theorie

Ganz neue Aspekte von Informatik • Projektarbeit • Teamarbeit

Was bedeutet Algorithmik?

Anwendungen

System Realisierung Algorithmik Theorie

Ein Algorithmus ist ein Verfahren zur Lösung eines Problems Algorithmik = „Kunst, möglichst gut Probleme zu lösen“

6

Algorithmik: die Kunst der kleinen, feinen Programme! Es gibt einige „Standard Probleme“ in der Informatik: • • • • •

Verwalten von Daten („Datenstrukturen“) Suche in den Daten Daten sortieren Kürzeste Wege finden ...

Algorithmen und Datenstrukturen: • schnell • kompakt • korrekt • ...

Beispiel Problem: Adressliste sortieren • Möglichst schnell? • Möglichst wenig „umherschieben“? • Möglichst wenig überlegen? • Möglichst einfach zu programmieren

Amrein Andrea Mosimann Primo Andrea Brandenberg RothBruno Andrew Emmenegger Imlach Daniel Bruno Gerber Brandenberg Claudia Christoph Schlachter Hacksteiner Martin Claudia Hartmann Gerber Werner Conny Hugener RohrKarin Daniel Häfliger Emmenegger Sascha Drahu Imlach Kohout Andrew Jasmin Kohout Schleuniger Drahu Karin Kussmaul Hugener Michael Katrin Küng Trachsel Laura Laura Lehmann KüngNatascha Marco Luescher WildiRoger Mark Markwalder Stäheli Stephan Martin Mosimann Hacksteiner Andrea Martin Märki Schmucki Melanie Matthias RohrPatrick Näf Melanie Pedroni MärkiMichela Michael Probst Kussmaul Stefan Michel Rohr Schumacher Conny Michela Rohr Pedroni Matthias Natascha Lehmann Roth Andrea Patrick Schlachter Näf Christoph Primo Schleuniger Amrein Jasmin Reto Schmucki Treier Martin

7

Möglichst wenig überlegen Amrein Claudia Gerber Primo Küng Laura Amrein Gerber Claudia Primo Wildi Marco Amrein Küng Laura Primo Amrein Wildi Marco Primo

Möglichst wenig schieben

Gerber Claudia Küng Laura Wildi Marco Amrein Primo

Amrein Primo Gerber Claudia Küng Laura Wildi Marco

Fertig!

8

Theorie

Anwendungen System Realisierung Algorithmik Theorie

• Welche Probleme können überhaupt gelöst werden? • Wie schnell kann das Problem gelöst werden? (Bester Fall / Durchschnitt / dümmster Fall) • Das ist sehr eng an Mathematik geknüpft!

Willst Du mich heiraten?

9

Stabile „Verheiratung“?

Oder eher so?

10

Das ist Informatik! Anwendungen: das „Gesicht“ der Informatik System Realisierung: Programmierung Algorithmik: Taktiken Theorie: Was ist möglich?

Programmieren? > Viele Informatiker Programmieren

?



Was heisst das?



Wie geht man vor beim Programmieren?



Was tun Informatikerinnen/Programmiererinnen?



Programmieren ist nur ein (kleiner?) Teil

11

Programmieren… 1. Backofen ca. 10 Minuten vorheizen (wenn Umluftherd dann 200 °C, wenn Elektroherd dann 220 °C) 2. Brötchen aus dem Beutel nehmen. 3. Brötchen auf den Rost legen und in die Mitte des Backofens schieben 4. Je nach gewünschter Bräunung ca. 7 bis 9 Minuten backen, bei Tiefkühlung ca. 3 Minuten länger. Guten Appetit!

Apropos Programmieren… • Normale Software hat 25 Fehler pro 1000 Programmzeilen. • Gute Software hat 2 Fehler pro 1000 Zeilen. • Space Shuttle Software hat weniger als einen Fehler pro 1000 Zeilen. Anzahl Programmzeilen: • Handy: 200 000 Zeilen Programm 5000 Fehler

bis zu

• Windows 95 10 Millionen Zeilen Programm und geschätzte 200 000 Fehler

12

Was tun Programmierer? Programmieren heisst: Probleme lösen!

„MEMO: Es ist mir aufgefallen, dass wir jedes Mal wenn wir ein Problem lösen, zwei neue kreieren. Von jetzt an ist das Lösen von Problemen verboten.“

Vorgehen beim „Probleme lösen“ 1. Die Probleme analysieren -

2.

Um was geht es? Wie sehen die Rahmenbedingungen aus? Was ist das Ziel?

Lösungen entwerfen -

Mögliche Vorgehensweisen? Alternativen? Vor- und Nachteile?

3. Die Lösung in Programme umsetzen! -

Praktische Ausführung der gewählten Lösungsidee

13

Beispiel Problem Calvin hat noch 5 Franken von seinem Taschengeld. Einen Drittel hat er für Süssigkeiten und einen Viertel für Wasserballone ausgegeben. Wie viel Taschengeld hat Calvin insgesamt erhalten?

Vorgehen: 1. Die Probleme analysieren 2. Lösungen entwerfen 3. Die Lösung in Programme umsetzen!

1. Problem analysieren Calvin hat noch 5 Franken von seinem Taschengeld. Einen Drittel hat er für Süssigkeiten und einen Viertel für Wasserballone ausgegeben. Wie viel Taschengeld hat Calvin insgesamt erhalten? Süssigkeiten: Wasserballone: Rest:

?? Franken ?? Franken 5 Franken

= 1/3 = 1/4 = ??

TOTAL:

?? Franken

= 1

Problem analysieren

14

2. Lösung entwerfen Süssigkeiten: Wasserballone: Rest:

?? Franken ?? Franken 5 Franken

= 1/3 = 4/12 = 1/4 = 3/12 = ... = x/12

TOTAL:

?? Franken

= 1

= 12/12

4/12 + 3/12 + x/12 = 12/12 x/12 = 5 Franken

12/12 = ?? Franken

• Alternative Lösung? (zB „durchprobieren“) Lösung entwerfen

3. Lösung umsetzten Süssigkeiten: Wasserballone: Rest:

?? Franken ?? Franken 5 Franken

= 1/3 = 4/12 = 1/4 = 3/12 = ... = x/12

TOTAL:

?? Franken

= 1

= 12/12

4/12 + 3/12 + x/12 = 12/12 12/12 - 4/12 - 3/12 = x/12 x=5 5/12 = 5 Franken

12/12 = 12 Franken Lösung umsetzen

15

So arbeiten Programmierer! • Problem Analyse – Gespräche mit Kunden/ Auftraggeber – Anforderungen an Endprodukt festhalten

• Lösungen entwerfen – Ideen entwickeln/ Kreativität – Know-how/ Erfahrung: Was ist möglich/ machbar?

• Lösungen umsetzten – Ausführung der „besten„ Idee – Eigentliches Programmieren am Computer!

Analyse: Kooperation • Analyse: – Anforderungen – Möglichkeiten – Wünsche

• Beteiligte Personen – Endbenutzer – Informatiker – Chefs... Sichtweise? gemeinsame Sprache? Missverständnisse?...

16

Programmierung = Grossbaustelle Hier wird programmiert! • Teamarbeit: Kommunikation! – Gemeinsame Sprache – zB: UML Zustandsdiagramme!

• Projektarbeit • Viele Vorgehens Methoden, Management Ansätze, die alle relativ kurzlebig sind • Hauptproblem: Komplexität!

Was tun Informatiker? Programmieren, Projekte leiten, managen, beraten... Standardsoftware

„Spezialanfertigungen“

Einige grosse, inter nationale Firmen dominant

Typische Projektarbeit in kleinen, mittleren und grossen Unternehmen

17

Wie arbeiten Informatiker? Arbeit nur vor dem Computer – Kein Kontakt mit Menschen

„Du hast gesagt, ich soll mehr Zeit mit unseren Kindern verbringen. Deshalb hab ich sie als Hintergrundbild gespeichert.“

Nein: Teamwork!

Welche Programmiersprache? Programmiersprache lernen – aber welche? 2.PAK 20 GATE 3 LISP 473L Query 9PAC *LISP *MOD A# A+ A0 or A 0 AACC AADL ABC ABC ALGOL ABCL/1 ABCL/c+ ABCL/R ABCL/R2 Abel ABLE ABSET ABSYS 1 Accent Access ACL ACOM ACOS ACP ACT++ ACT ONE Act1 Act2 Act3 Actalk Active Language I Actor Actors Actra Actus Ada Ada 83 Ada 9X Ada++ Ada' ADAM Ada O Adaplex ADAPT AdaTran ADELE ADES ADL AdLog ADM ADS ADVSYS AE AED Aeolus AESOP AFAC AGORA AHDL AHPL AID AIDA AIMACO AGP L AKCL AKL AL ALADIN ALAM A language ALC Alcool 90 ALCOR Aldat ALDES ALDiSP ALEC ALEF ALEPH Alex Alexis ALF Alfl ALGEBRAIC ALGOL 58 ALGOL 60 ALGOL 60 Modified ALGOL 60 Revised ALGOL 68 ALGOL 68 R ALGOL 68 Revised ALGOL 68C ALGOL 68RS ALGOL 68S ALGOL C ALGOL D ALGOL N ALGOL W ALGOL X ALGOL Y ALGY ALIAS ALJABR ALLOY ALM ALP ALPAK ALPHA Alphard ALPS ALTAC ALTRAN Amber AMBIT AMBIT/G AMBIT/L AMBIT/S AMBUSH AML AML/E AMP AMPL AMPLE AMPPL II AMTRAN ANCP ANDF Andorra I Andorra Prolog Animus Anna ANTLR APAL APAREL APDL APESE APL APL2 APLGOL APPLE AppleScript Applesoft BASIC APPLOG APT APX III AQL ARCHI Arctic ARES Ariel Argus Ariel ARITH MATIC ART ARTSPEAK ASDIMPL ASDL ASF Ashmedai ASIS ASF ASL ASM ASN.1 ASP ASpecT ASPOL ASPEN ASPIK Aspirin ASPLE ASSEMBLY ASTAP Astral AT 3 ATLAS Atlas Autocode Atlas Commercial Language ATOLL A'UM Aurora Autocode AUTOGRAF AUTOGRP Autolisp AUTOMATH Autopass AUTO PROMPT Autostat AVA Avalon/C++ Avalon/Common LISP Avon AXIOM AXIS AXLE AWK B B 0 Babbage BABEL BABYLON BACAIC BAL BALGOL BALITAC BALM BAP Baroque BASCMP bash BASIC BASIC AUTOCODER Basic COBOL Basic FORTRAN Basic JOVIAL bawk bc BC NELIAC BCL BCPL BDL BeBOP BEGL BELL BER Bertrand BETA BIOR BLAZE BLAZE 2 Blazon B LINE BLISS BlooP Blosim BLOX Blue BMASF BMDP BMF BNF BNR Pascal BNR Prolog Bob BOEING Booster BOPL BOSS Boxer BRAVE BRIDGE Bridgetalk Brilliant BRUIN bs BSL BUGSYS Burge's Language Butterfly Common LISP Butterfly Scheme byacc C C* C++ C++Linda C+@ C 10 C with Classes CADET CAFE CAGE CAJOLE CAL Caliban Calico CAMAL Camelot Library CAMIL CAML CAML Light Candle Cantor CASE SOAP III CAT CATO C/ATLAS CAYLEY CBASIC cc CC++ CCalc CCL CCLU CCP CCS CCSP CDIF CDL Cecil Cedar CEEMAC+ CELIP CELLAS CELLSIM CELP CESP CESSL CFD CFP CGGL CGOL CHAMIL CHARITY CHARM CHARM++ Charme CHARYBDIS CHASM CHI CHILI CHILL CHIP CHIP 48 CHIP 8 CHISEL CHOCS CIAL CIEL CIF Cigale CIL CIMS PL/I CIP L CIRCAL CITRAN CL CLAM Clarion CLASP Classic Ada Clean CLEAR CLEO C Linda CLIP Clipper CLIPS CLISP CLIX Clock CLOS CLP CLP(R) CLP* CLP(sigma*) CLU Cluster 86 CMAY CML Cmm CMS 2 CO2 COALA COBOL COBOL 1961 Extended CoCoA Cocol Code 2.0 CODIL COFF COGENT COGO Coherent Parallel C COIF COLASL COLD COLD K COLINGO COMAL COMIT COMIT II Comma COMMEN Commercial Translator Common LISP CommonLoops Common Objects Compact COBOL Compas Pascal COMPASS Compel Compiler Compiler COMPL COMPREHENSIVE COMPROSL Computer Animation Movie Language Computer Compiler Computer Design Language COMSL COMTRAN ConC Concert/C CONCUR Concurrent Aggregates (CA) Concurrent C Concurrent C++ Concurrent Clean Concurrent CLU Concurrent Euclid Concurrent LISP Concurent Oberon Concurrent Pascal Concurrent Prolog Concurrent Scheme ConcurrentSmalltalk condela CONIC Connection Machine LISP CONNIVER ConstraintLisp CONSTRAINTS Consul CONVERT cooC COOL CORAL CORBIE CORC Coroutine Pascal CORREGATE Correlatives and Conversions CORTL Coursewriter III COWSEL CP CParaOps5 CPL CPS C Refine CRISP CRL CROSSTABS Crystal CS 4 CS Prolog C Scheme csh CSL CSM CSMP CSP CSP/80 CS/PCode CSP/k CSP S CSPS CS/QCode CSS/II CSSA CSSL CSTools CTL Cube CUCH Culler Fried System CUPID CuPit CUPL CWIC CYBIL CYCL CypherText D DACAPO DACTL DAD Daisy DAISY 201 DAP 16 DAP Fortran DAPLEX DARE Darms Dartmouth BASIC DAS DASL Data/BASIC DATABUS DATACODE I Dataparallel C Data Parallel Haskell Data Structures Language DATA TEXT DataVis dBASE DBC dBFAST DBPL dBXL dc DCALGOL DCDL DCG DCL DDL DDM DEACON Delirium Delta Delta Prolog DEMON Design System language DETAB DETOL Deva DEX DFC DG/L DIALECT DIALOG DIAMAG Diamond DIANA DIBOL Dictionary APL Dijkstra's guarded command language DIMATE DinnerBell DINO Disiple Dislang Distributed Eiffel Distributed Processes Distributed Smalltalk DL/1 DLG DLP DLX DMAD DMALGOL DML Doc DOCUS DoD 1 DOUGLAS DOL DOVPA DOW COMPILER DOWL d Prolog DPL DPL 82 DPS dpSather draco DRAGON DRAGOON DROOL DRUCO I DSL DSM DSP/C DSP32 Assembly Language DSPL DTALGOL DUAL 607 Dual FCP DuoTalk Durra DYANA Dylan Dynace DYNAMO DYSAC DYSTAL E Eagle Ease EASE II EASIAC EASY FOX EBASIC EBNF ECAP II Echidna ECL ECMA ECP ECRC Prolog ECSL ECSP ECSS II ECSSL Eden EDIF Edinburgh Prolog Edison EDL EFL Eh Eiffel Eiffel 3 EL1 el(alpha) Elan

2.PAK 20 GATE 3 LISP 473L Query 9PAC *LISP *MOD A# A+ A0 or A 0 AACC

2.PAK 20 GATE 3 LISP 473L Query 9PAC

AADL ABC ABC ALGOL ABCL/1 ABCL/c+ ABCL/R ABCL/R2 Abel ABLE ABSET C++ 2.PAK 20 3ONE Act1AADL ABSYS 1 Accent AccessA# ACL ACOM ACOS or ACP ACT++ ACT Act2 C++ *LISP *MOD A+GATE A0 A 0 AACC Act3 Actalk Active Language I Actor Actors Actra Actus Ada Ada 83 Ada

ABC ABC ALGOL ABCL/1 ABCL/c+ ABCL/R ABCL/R2 Abel ABLE ABSET ABSYS 1 Accent Access ACL ACOM ACOS ACP ACT++ ACT ONE Act1 Act2 Act3 Actalk Active Language I Actor Actors Actra Actus Ada Ada 83 Ada 9X Ada++ Ada' ADAM Ada O Adaplex ADAPT AdaTran Java Java ADELE ADES ADL

LISP 473L Query 9PAC *LISP *MOD A# A+ A0 or A 0 AACC AADL ABC

9X Ada++ Ada' ADAM Ada O Adaplex ADAPT AdaTran ADELE ADES ADL AdLog ADM ADS ADVSYS AE AED Aeolus AESOP AFAC AGORA AHDL AHPL AID AIDA AIMACO AGP L AKCL AKL AL ALADIN ALAM A language ALC Alcool 90 ALCOR Aldat ALDES ALDiSP ALEC ALEF ALEPH Alex Alexis ALF Alfl ALGEBRAIC ALGOL 58 ALGOL 60 ALGOL 60 Modified ALGOL 60 Revised ALGOL 68 ALGOL 68 R ALGOL 68 Revised ALGOL 68C ALGOL 68RS ALGOL 68S ALGOL C ALGOL D ALGOL N ALGOL W ALGOL X ALGOL Y ALGY ALIAS ALJABR ALLOY ALM ALP ALPAK ALPHA Alphard ALPS ALTAC ALTRAN Amber AMBIT AMBIT/G AMBIT/L AMBIT/S AMBUSH AML AML/E AMP AMPL AMPLE AMPPL II AMTRAN ANCP ANDF Andorra I Andorra Prolog Animus Anna ANTLR APAL APAREL APDL APESE APL APL2 APLGOL APPLE AppleScript Applesoft BASIC APPLOG APT APX III AQL ARCHI Arctic ARES Ariel Argus Ariel ARITH MATIC ART ARTSPEAK ASDIMPL ASDL ASF Ashmedai ASIS ASF ASL

Perl Perl

18

Kurzlebigkeit Kurzlebiges Geschäft! Man muss immer up to date sein!

„Mein Computer sagt, ich müsse mein Gehirn aufrüsten um mit seiner neuen Software kompatibel zu sein.“

Aber: Konzeptwissen ist langlebig! ☺

Vielen Dank • Hinweis: „Schnupperstudium Informatik“ für Frauen • nächstes mal: 19.-23. September 2005 • Einwöchige Einführung „Informatik & ETH“ • Infos: www.frauen.inf.ethz.ch

THE END

19

Was ich so tue... • Studium – Kurzabriss

• Jetzt – Doktorand ETH – Möglichkeiten & Perspektiven

• Informatik Didaktik – Lernumgebung

dipl. Inf. Ing ETH • 4.5 Jahre Studium – Fixes Grundstudium: 2 Vordiplome – Freieres Fachstudium: Breites Spektrum

• Austauschjahr in Glasgow • Diplomarbeit 2002 „CreatureBrain“ – Künstliche Intelligenz für virtuelle Kreaturen

• Nebenfach: Didaktik – Abschluss: Höheres Lehramt

20

Doktorat • Dauer 3-6 Jahre • Angestellt bei einem Professor • 2 Teile: – Doktorarbeit: „Forschung“ – Lehrbetrieb: Studenten betreuen

• Möglichkeit: Akademische Laufbahn – „Forscher“, Professor

• Titel: Dr. sc. techn.

Ausblick • Job langfristig?... • Fragen zu Studium/ Doktorat/ ETH...? – In der Pause an mich ☺ – Oder Email: [email protected]

21