Grundläggande datavetenskap 4p Stefan.Pettersson@mh.se 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 attnifö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 1 2 3 4 5 6 7 8 9 10 11 12 Moment Introduktion Datarepresentation, datalagring Hårdvara, programexekvering Operativsystem Nätverk & Internet Algoritmer C++ Programmeringsspråk Programvaruutveckling Dataabstraktioner Databaser Repetition Kapitel 0 1 2 3 4 5 6 7 8 9 2004-11-04 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 Vad är Datavetenskap? Algoritmer Historik Abstraktioner 2004-11-04 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 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 2004-11-04 IT och Medier 19