mhvit
2004-11-04
IT och Medier
1
Grundläggande datavetenskap 4p
Stefan.Pettersson@mh.se
http://www.itm.mh.se/~stepet
Kursinformation
Planering
Läsanvisningar
Föreläsningsbilder
Övningsuppgifter
Laborationer
mhvit
2004-11-04
IT och Medier
2
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
mhvit
2004-11-04
IT och Medier
3
Grundläggande datavetenskap 4p
Kurslitteratur
Computer science - an overview, J. GlennBrookshear, 8:e upplagan
Kompendium: Introduktion till programmering,Martin Kjellqvist (vaktmästeriet)
Projekt i tal & skrift
Titel med kort beskrivning av projektet skickastill mig för godkännande
mhvit
2004-11-04
IT och Medier
4
Grundläggande datavetenskap 4p
Kursen behandlar grundläggande principerför hur datorer, datakommunikation ochdatorprogram fungerar samt grundprincipernaför konstruktion av datorprogram. Kursen gerbehörighet för kurser i programmering.
mhvit
2004-11-04
IT och Medier
5
Planering
Föreläsning
Moment
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
mhvit
2004-11-04
IT och Medier
6
Grundläggandedatavetenskap, 4p
Kapitel 0
Introduktion och historik
Utgående från boken
Computer Science
av: J. Glenn Brookshear
mhvit
2004-11-04
IT och Medier
7
Innehåll
Vad är Datavetenskap?
Algoritmer
Historik
Abstraktioner
mhvit
2004-11-04
IT och Medier
8
Datavetenskap
Konstruktion av datorer
Programmering av datorer
Kommunikation mellan datorer
Informationsbehandling
Problemlösning med algoritmer
Algoritmutveckling
Ämnesområdet Datavetenskap innehåller:
mhvit
2004-11-04
IT och Medier
9
Algoritmer
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
En algoritm är ett antal steg som definierar
hur en uppgift ska utföras.
mhvit
2004-11-04
IT och Medier
10
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 itvå högar med framsidorna uppåt, de röda i den ena och de svarta iden 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 litenhög av dem, böjer du korten lätt så att de ligger på ”magen” när dulägger ner dem på bordet med framsidan neråt. Säg: ”Här är denröda högen”.
4)Gör på motsvarande sätt med de svarta korten men böj dem så att deligger på ”ändarna” när du lägger dem på bordet med framsidanneråt. Säg: ”Här är den svarta högen”.
mhvit
2004-11-04
IT och Medier
11
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 ärblandade. Förklara för åhörarna att du blandar korten.
6)Upprepa följande steg så länge det finns kort med framsidan motbordet
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ändupp resterande kort av den andra färgen.
mhvit
2004-11-04
IT och Medier
12
Största gemensamma divisorn
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)
Euclides algoritm för att hitta den största gemensammadivisorn till två positiva heltal
mhvit
2004-11-04
IT och Medier
13
Algoritmfunderingar
En algoritm innehåller kunskap, ”intelligens”
Jfr Euklides algoritm
Ett program är en algoritm skriven så att enmaskin förstår den
Ingen maskin är intelligentare än sin algoritm
Mycket inom datavetenskapen hör ihop medutvecklingen av algoritmer
Hur ”upptäcker” man en algoritm?
mhvit
2004-11-04
IT och Medier
14
Program- och hårdvara
Programvara = program (algoritmer)
Software
Hårdvara = maskiner
Hardware
mhvit
2004-11-04
IT och Medier
15
Historik
Abacus
Kulram från Kina 500 f.kr till 1200 e.kr
Pascal (1623 – 1662) – additionsmaskin
Leibniz (1646 – 1716) – aritmetikmaskin
Babbage (1792 – 1871) -  programmerbarmaskin
abacus-photo
mhvit
2004-11-04
IT och Medier
16
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 ochpresentation av algoritmer förbättras?
Hur kan våra kunskaper om algoritmer och teknologianvändas för att förbättra våra maskiner?
Hur kan karaktäristika för olika algoritmeranalyseras och jämföras?
mhvit
2004-11-04
IT och Medier
17
Algoritmers centrala roll
Fig
Figur 0.5
mhvit
2004-11-04
IT och Medier
18
Abstraktioner
Köra en bil utan att veta hur den fungerar idetalj
Använda en dator utan att
veta hur den fungerar elektroniskt
kunna programmera den
Abstraktion = man skiljer på en komponents yttre egenskaperoch på dess inre detaljkonstruktion
mhvit
2004-11-04
IT och Medier
19
Från detaljer till abstraktion
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
Från nollor och ettor till beräkningsteori