Datavetenskaplig introduktionskurs

Grundläggande datavetenskap 4p
• [email protected]
• http://www.itm.mh.se/~stepet
–
–
–
–
–
–
Kursinformation
Planering
Läsanvisningar
Föreläsningsbilder
Övningsuppgifter
Laborationer
2004-11-04
IT och Medier
1
Grundläggande datavetenskap 4p
• Övningsuppgifterna
– Övning inför tentan
– Kan skickas in för rättning
• Laborationer
–
–
–
–
1 maskinkodslab och 3 C++-labbar (just nu)
Arbeta två och två
Ett dokument per laboration med svar och kod
Visa att ni förstått
2004-11-04
IT och Medier
2
Grundläggande datavetenskap 4p
• Kurslitteratur
– Computer science - an overview, J. Glenn
Brookshear, 8:e upplagan
– Kompendium: Introduktion till programmering,
Martin Kjellqvist (vaktmästeriet)
• Projekt i tal & skrift
– Titel med kort beskrivning av projektet skickas
till mig för godkännande
2004-11-04
IT och Medier
3
Grundläggande datavetenskap 4p
Kursen behandlar grundläggande principer
för hur datorer, datakommunikation och
datorprogram fungerar samt grundprinciperna
för konstruktion av datorprogram. Kursen ger
behörighet för kurser i programmering.
2004-11-04
IT och Medier
4
Planering
Föreläsning Moment
2004-11-04
Kapitel
1
Introduktion
0
2
Datarepresentation, datalagring
1
3
Hårdvara, programexekvering
2
4
Operativsystem
3
5
Nätverk & Internet
4
6
Algoritmer
5
7
C++
8
Programmeringsspråk
6
9
Programvaruutveckling
7
10
Dataabstraktioner
8
11
Databaser
9
12
Repetition
IT och Medier
5
Grundläggande
datavetenskap, 4p
Kapitel 0
Introduktion och historik
Utgående från boken
Computer Science
av: J. Glenn Brookshear
2004-11-04
IT och Medier
6
Innehåll
•
•
•
•
2004-11-04
Vad är Datavetenskap?
Algoritmer
Historik
Abstraktioner
IT och Medier
7
Datavetenskap
Ämnesområdet Datavetenskap innehåller:
•
•
•
•
•
•
Konstruktion av datorer
Programmering av datorer
Kommunikation mellan datorer
Informationsbehandling
Problemlösning med algoritmer
Algoritmutveckling
2004-11-04
IT och Medier
8
Algoritmer
En algoritm är ett antal steg som definierar
hur en uppgift ska utföras.
• Exempel på algoritmer:
–
–
–
–
–
Byggbeskrivning för ett modellflygplan
Program som styr en tvättmaskin
Noter att spela musik efter
Noter att köra rallybil efter
Anvisningar för ett korttrick
2004-11-04
IT och Medier
9
Algoritm för ett korttrick
Trick: Magikern placerar några kort från en ordinär kortlek med
framsidan neråt på ett bord. Korten blandas och magikern frågar sedan
om han ska vända upp ett rött eller svart kort, varpå han vänder upp
ett kort med den efterfrågade färgen.
Gör så här:
1) Välj 10 röda och 10 svarta kort från en vanlig kortlek. Lägg korten i
två högar med framsidorna uppåt, de röda i den ena och de svarta i
den andra högen.
2) Tillkännage att du har valt ut några röda och svarta kort.
3) Ta upp de röda korten. Under förevändning att göra en snygg liten
hög av dem, böjer du korten lätt så att de ligger på ”magen” när du
lägger ner dem på bordet med framsidan neråt. Säg: ”Här är den
röda högen”.
4) Gör på motsvarande sätt med de svarta korten men böj dem så att de
ligger på ”ändarna” när du lägger dem på bordet med framsidan
neråt. Säg: ”Här är den svarta högen”.
2004-11-04
IT och Medier
10
Algoritm för ett korttrick II
5)
Blanda korten på bordet genast efter att du lagt dit de svarta korten.
Använd båda händerna och sprid ut korten på bordet sedan de är
blandade. Förklara för åhörarna att du blandar korten.
6) Upprepa följande steg så länge det finns kort med framsidan mot
bordet
i. Be åhörarna fråga om dom vill se ett rött eller ett svart kort.
ii. Om ett rött kort efterfrågas, välj ett kort som ligger ”på
magen”, vänd på det och säg: ”Här är ett rött kort”.
iii. Om ett svart kort efterfrågas, välj ett kort som ligger ”på
ändarna”, vänd på det och säg: ”Här är ett svart kort”.
iv. Om det är slut på den efterfrågade färgen, säg detta och vänd
upp resterande kort av den andra färgen.
2004-11-04
IT och Medier
11
Största gemensamma divisorn
Euclides algoritm för att hitta den största gemensamma
divisorn till två positiva heltal
1) Tilldela det större talet till M och det mindre till N
2) Dividera M med N och tilldela resten till R
3) Om R = 0 är N den största gemensamma divisorn.
Om R 0 sätt M = N och N = R och gå till steg 2)
2004-11-04
IT och Medier
12
Algoritmfunderingar
• En algoritm innehåller kunskap, ”intelligens”
– Jfr Euklides algoritm
• Ett program är en algoritm skriven så att en
maskin förstår den
• Ingen maskin är intelligentare än sin algoritm
• Mycket inom datavetenskapen hör ihop med
utvecklingen av algoritmer
• Hur ”upptäcker” man en algoritm?
2004-11-04
IT och Medier
13
Program- och hårdvara
• Programvara = program (algoritmer)
– Software
• Hårdvara = maskiner
– Hardware
2004-11-04
IT och Medier
14
Historik
• Abacus
– Kulram från Kina 500 f.kr till 1200 e.kr
• Pascal (1623 – 1662) – additionsmaskin
• Leibniz (1646 – 1716) – aritmetikmaskin
• Babbage (1792 – 1871) - programmerbar
maskin
2004-11-04
IT och Medier
15
Hur definieras Datavetenskapen?
• Vilka problem kan lösas med algoritmer?
• Hur kan man göra det lättare att ta fram algoritmer?
• Hur kan tekniken för programmering och
presentation av algoritmer förbättras?
• Hur kan våra kunskaper om algoritmer och teknologi
användas för att förbättra våra maskiner?
• Hur kan karaktäristika för olika algoritmer
analyseras och jämföras?
2004-11-04
IT och Medier
16
Algoritmers centrala roll
Figur 0.5
2004-11-04
IT och Medier
17
Abstraktioner
Abstraktion = man skiljer på en komponents yttre egenskaper
och på dess inre detaljkonstruktion
• Köra en bil utan att veta hur den fungerar i
detalj
• Använda en dator utan att
– veta hur den fungerar elektroniskt
– kunna programmera den
2004-11-04
IT och Medier
18
Från detaljer till abstraktion
Från nollor och ettor till beräkningsteori
•
•
•
•
•
•
•
•
•
•
•
2004-11-04
Kap 1 Datalagring
Kap 2 Datamanipulation
Kap 3 Operativsystem
Kap 4 Nätverk
Kap 5 Algoritmer
Kap 6 Programmeringsspråk
Kap 7 Programvaruutveckling
Kap 8 Dataabstraktioner
Kap 9 Databaser
Kap 10 Artificiell intelligens
Kap 11 Beräkningsteori
IT och Medier
19