Präsentation herunterladen
Die Präsentation wird geladen. Bitte warten
Veröffentlicht von:Christina Hummel Geändert vor über 8 Jahren
1
Einführung in die Informatik 1. Computational Thinking Institut für Informatik und angewandte Mathematik
2
© Oscar Nierstrasz 2 Roadmap What is Computer Science? Computational Thinking Modeling Software Engineering Computational Thinking
3
© Oscar Nierstrasz 3 Roadmap What is Computer Science? Computational Thinking Modeling Software Engineering Computational Thinking
4
Schedule DatumThemaDozent 9-17-2009Computational ThinkingNierstrasz 9-24-2009Programmiersprachen, -paradigmen und -technologieNierstrasz 10-1-2009Endliche Automaten, reguläre AusdrückeStuder 10-8-2009Syntax und SemantikJäger 10-15-2009Diskretisierung/SignalverarbeitungZwicker 10-22-2009SimulationZwicker 10-29-2009ComputernetzeBraun 11-5-2009Programme und BeweiseJäger 11-12-2009BerechenbarkeitStrahm 11-19-2009KomplexitätStrahm 11-26-2009BetriebssystemeBraun 12-3-2009TBA 12-10-2009Datenbanken und PrivacyStuder 12-17-2009Prüfung © Oscar Nierstrasz Computational Thinking 4
5
What is Computer Science … not © Oscar Nierstrasz Computational Thinking 5 Computer Science is not hacking programming technology Hacking for Dummies
6
What is Computer Science? © Oscar Nierstrasz Computational Thinking 6 Computer Science is about building bridges between user problems and technological solutions Real-world domain Technology domain
7
© Oscar Nierstrasz Computational Thinking 7 Übersicht Informatik Theorie (Automaten und formale Sprachen, Berechenbarkeit, Komplexität, Logik, Algorithmen) Praxis (Programmiersprachen, Betriebssysteme, Netzwerke &Verteilte Systeme, Software Engineering, Datenbanken, Rechnerarchitektur) Schnittstellen zur Aussenwelt (Mensch-Maschine Schnittstelle, Computer- vision, Computergrafik, Sensornetze, Künstliche Intelligenz, Computerlinguistik) Wirtschaftsinformatik Anwendungs- software Wissenschaftliche Anwendungen (Modellierung und Simulation, Biologie, Physik, Chemie, Sozialwissenschaften, etc.) Informatikstudium Andere Studiengänge Mathematik
8
© Oscar Nierstrasz 8 Roadmap What is Computer Science? Computational Thinking Modeling Software Engineering Computational Thinking
9
© Oscar Nierstrasz Computational Thinking 9 “Computational thinking is a way of solving problems, designing systems, and understanding human behavior that draws on concepts fundamental to computer science” — Jeannette M. Wing, CACM 2006 “Computational thinking is a way of solving problems, designing systems, and understanding human behavior that draws on concepts fundamental to computer science” — Jeannette M. Wing, CACM 2006
10
Abstraction © Oscar Nierstrasz Computational Thinking 10 Abstractions strip away details to help us cope with complexity
11
Decomposition & Separation of concerns © Oscar Nierstrasz Computational Thinking 11 We decompose complex tasks by separating concerns
12
Parallel algorithms © Oscar Nierstrasz Computational Thinking 12 By distributing tasks to many workers, we get more done in the same amount of time
13
Recursion © Oscar Nierstrasz Computational Thinking 13 Many navigation problems can be effectively solved using recursion.
14
Backtracking © Oscar Nierstrasz Computational Thinking 14 Many search problems can be solved with the help of backtracking
15
Prefetching and cacheing © Oscar Nierstrasz Computational Thinking 15 Prefetching = get what you need before you need it Cacheing = keep handy whatever you will need again
16
Planning and optimization © Oscar Nierstrasz Computational Thinking 16 Planning may require sophisticated analysis of multiple scenarios
17
Pipelining © Oscar Nierstrasz Computational Thinking 17 Pipelining makes efficient use of expensive resources
18
Interpreting data as code and code as data © Oscar Nierstrasz Computational Thinking 18 We process instructions before acting on them
19
Distinguishing humans from computers © Oscar Nierstrasz Computational Thinking 19 Certain tasks are known to be difficult for computers to solve
20
Concurrency control © Oscar Nierstrasz Computational Thinking 20 Contention for shared resources can lead to both safety problems and liveness problems.
21
Simulation © Oscar Nierstrasz Computational Thinking 21 Expensive experiments can be replaced by inexpensive simulations
22
© Oscar Nierstrasz 22 Roadmap What is Computer Science? Computational Thinking Modeling Software Engineering Computational Thinking
23
Modeling © Oscar Nierstrasz Computational Thinking 23 A model captures certain properties of interest of a subject
24
Human models capture how clothes might look on us (or not) © Oscar Nierstrasz Computational Thinking 24 Models only stand in for the real thing
25
Blueprints specify a design © Oscar Nierstrasz Computational Thinking 25 Models as specifications allow us to reason about a thing before we have built it.
26
Physical models let us test feasibility of designs © Oscar Nierstrasz Computational Thinking 26 Scale models only capture some aspects of reality.
27
Finite state models express states and transitions of a process © Oscar Nierstrasz Computational Thinking 27
28
Turing machines model computability © Oscar Nierstrasz Computational Thinking 28 We use mathematical models to reason about computability and complexity
29
Computer graphics models capture visual aspects of real (or imagined) objects © Oscar Nierstrasz Computational Thinking 29 Different models express different properties
30
Business models support decision making © Oscar Nierstrasz Computational Thinking 30 A business model expresses the core values of a business
31
Software models express architecture and design © Oscar Nierstrasz Computational Thinking 31 The Unified Modeling Language (UML) consists of several different types diagrams to describe software designs, architectures, and requirements models.
32
Programming is modeling © Oscar Nierstrasz Computational Thinking 32
33
© Oscar Nierstrasz 33 Roadmap What is Computer Science? Computational Thinking Modeling Software Engineering Computational Thinking
34
Software Engineering © Oscar Nierstrasz Computational Thinking 34 Software Engineering consists of processes and techniques to develop software products within a given budget and deadline and satisfying functional and quality requirements Software Engineering consists of processes and techniques to develop software products within a given budget and deadline and satisfying functional and quality requirements € €
35
How Software Engineering bridges domains © Oscar Nierstrasz Computational Thinking 35 capture and model requirements architecture, design, implementation quality assurance and testing Real-world domain Technology domain
36
Conclusion © Oscar Nierstrasz Computational Thinking 36 Software Engineering builds bridges between users and technology Programming is modeling Computer science requires computational thinking
Ähnliche Präsentationen
© 2024 SlidePlayer.org Inc.
All rights reserved.