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