Grundläggande datavetenskap 4p (rev. Stefan Pettersson) 2004-11-04 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
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
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
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
Planering Föreläsning Moment Kapitel 1 Introduktion 2 2 Datarepresentation, datalagring 3 Hårdvara, programexekvering 4 Operativsystem 5 Nätverk & Internet 6 Algoritmer 7 C++ 8 Programmeringsspråk 9 Programvaruutveckling 10 Dataabstraktioner 11 Databaser 12 Repetition 2004-11-04 IT och Medier
Grundläggande datavetenskap, 4p (rev. Stefan Pettersson) 2004-11-04 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
Innehåll Vad är Datavetenskap? Algoritmer Historik Abstraktioner 2004-11-04 IT och Medier
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
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
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: 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. Tillkännage att du har valt ut några röda och svarta kort. 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”. 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
Algoritm för ett korttrick II 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. Upprepa följande steg så länge det finns kort med framsidan mot bordet Be åhörarna fråga om dom vill se ett rött eller ett svart kort. 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”. 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”. 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
Största gemensamma divisorn Euclides algoritm för att hitta den största gemensamma divisorn till två positiva heltal Tilldela det större talet till M och det mindre till N Dividera M med N och tilldela resten till R 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
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
Program- och hårdvara Programvara = program (algoritmer) Software Hårdvara = maskiner Hardware 2004-11-04 IT och Medier
Historik Abacus Pascal (1623 – 1662) – additionsmaskin 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
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
Algoritmers centrala roll Figur 0.5 2004-11-04 IT och Medier
Abstraktioner Köra en bil utan att veta hur den fungerar i detalj 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
Från detaljer till abstraktion (rev. Stefan Pettersson) 2004-11-04 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