Programmeringsteknisk översiktskurs för yrkeshögskoleprogram Föreläsning 1 Våren 2006! Introduktion till kursen! En dators delar! Vad är ett program? Innehåll " Hur fungerar ett program när det körs! Programvaruutvecklingens olika delar, från specifikation till underhåll.! Introduktion till Visual Basic-miljön! Läsanvisningar: Kapitel 1-2 F1 2 Inblandade personer! Föreläsare " Oscar Appelgren (kursansvarig, oscara@cs.umu.se, B423)! Handledare " Oscar Appelgren " Erik Andersson (ean@cs.umu.se, NAdv103) " Erik Schlyter (schlyter@cs.umu.se, NAdv102) Institutionen för datavetenskap! 2 + 2 utbildningsprogram Datavetenskap Teknisk datavetenskap! Forskning inom många olika ämnen Teknisk-vetenskapliga o parallella beräkningar Medicinsk informatik Kognitionsvetenskap! Flera forskningscentra Kognitionsvetenskap Interaktion och design Programvaruteknik Teoretisk datalogi MDI Emergenta System HPC2N VR-Lab UCIT F1 3 F1 4 Datorsupport på datavetenskap! Vid problem försök lösa själv eller med kamrat.! Om inte det går, kontakta support.! Support sitter i MB439, MIT-huset 4:e våningen, skylt i taket.! Skicka mail till support@cs.umu.se (eller ring 786 9950) " information om datorns namn, labsal, problem, vem du är! Se även http://support.cs.umu.se/ Studentexpeditionen! Passerkort! Betalning för utskrifter! Försäljning av kompendier! Utlämning av tentor! Utskrift av studieintyg, registreringsintyg...! Registrering! Anmälan till tentamen (via webben!)! Yvonne Löwstedt (studentexp@cs.umu.se, 5598) F1 5 F1 6
Studievägledare! Allmän studievägledning " Kurser på datavetenskap " Intyg " Registrering " Speciella behov! Peter Stenberg, peter@cs.umu.se, 786 69 85 Datorlab! MA316/326/336 (MIT-huset plan 3) " Reserverad för kursen alla förmiddagar 8-12 µ alltid tillgängliga via kort! µ finns det lediga datorer så utnyttja dem! µ Under bokad tid får ni be andra studenter som inte hör till kursen att flytta på sig. µ Lunchen är alltid obokad! µ Ni blir automatiskt utloggad efter 40 minuter och datorn låser sig efter 10. µ Glöm inte att ALLTID låsa datorn om ni lämnar den.! Handledning " I labben µ Alla lablektioner/ou µ Andra schemalagda tider " Via mail F1 7 F1 8! Kortaccess Administration av användare " Ni som inte har passerkort, kontakta studentexp.! Personer som inte haft en datoranvändare (xxxxyyy@cs.umu.se) på datavetenskap tidigare: " Jag har en lapp med ert nya användarnamn och tillfälligt lösenord " Fyll i vit blankett och lämna till mig Kursens mål! Målet med kursen är att den studerande skall förvärva grundläggande förståelse för/om " hur datorer är uppbyggda och fungerar. " hur man skriver enklare program och insikter i vad som händer när programmet kompileras och exekveras. " vad ett operativsystem är och vilka olika slags operativsystem som är vanliga " grunderna i datorkommunikation, hur information skickas mellan datorer och förståelse för vissa säkerhetsaspekter som exempelvis virus.! Dessutom innehåller kursen en översikt över olika programspråk och familjer av programspråk samt en introduktion till hur databaser fungerar. F1 9 F1 10 Kursens upplägg! Föreläsningar (17 st)! Lektioner i lab (4 st)! Gruppövningar (3 st)! Individuell handledning (i princip alla förmiddagar)! Examination " Labbdel: 4 obligatoriska uppgifter = 3p µ En utförs i grupp och tre ska lämnas in enskilt µ Läs Hederskodex och Riktlinjer för labgenomförande! " Teoretisk del: Skriftlig tentamen, 6 timmar = 2p µ OBS! Tentamen 1 går 9-15 den 18/3 F1 11 Obligatoriska uppgifter! Ordinarie sista redovisningsdag står på varje uppgifts webbsida. " Uppgiften bedöms med G, K, O eller U! Kompletteringsdag innebär att studenten ges 5 arbetsdagar att komplettera med det som saknas om man fått O. Dessa 5 arbetsdagar beräknas från den dag då studenten getts tillfälle att hämta uppgiften. " Kompletteringen resulterar i G eller U.! Om man inte är klar med alla 4 OU måste man komplettera vid ett uppsamlingstillfälle (augusti). " Måste göra om alla uppgifter " Kan vara nya uppgifter F1 12
Kursmaterial! Jonsson, Torsten, Visual Basic i focus, Studentlitteratur ISBN: 9144042523, 2003, 442 sidor! Föreläsningsunderlag (finns på websidan)! Ev. ytterligare material som delas ut under kursen Kursutvärdering! Utvärderingen görs via www i slutet av kursen.! Sammanfattningen görs av en kursutvärderingsamanuens.! Alltid viktigt med era synpunkter! Hemsidan: http://www.cs.umu.se/kurser/tdba75/vt05 Mail: Mycket information skickas via mail. Läs dina cs-mail minst en gång om dagen! F1 13 F1 14! Lablektionerna Gruppindelningar " Lablektion 2 = OU2 måste ske i två grupper, en på måndag och en på tisdag förmiddag.! Gruppövningarna " 2 grupper, samma som under lablektion 2. Registrering till tentamen! Man måste anmäla sig för att få skriva tentamen i datavetenskap " Man går till sidan https://www.cs.umu.se/information/tenta/ och fyller i sin användare och lösenord. " Sen letar man reda på rätt kurs (kurskod TDBA75) och registrerar sig. " Man måste anmäla sig senast 10 dagar innan tentan ges, på denna kurs absolut senast tisdag 7 mars. F1 15 F1 16 Vad är en dator?! En dator består av hårdvara och mjukvara.! Hårdvaran består av " CPU central processing unit µ Den del av datorn som utför beräkningar/instruktioner " In- och utdataenheter µ Tangentbord, mus, bildskärm etc µ Den del som gör det enklare för en människa att interagera med datorn " Lagringsenheter µ Korttidsminne, håller det data som CPUn arbetar med just nu. Datat försvinner om strömmen slås av, snabb åtkomst. Ex: RAM, cache µ Långtidsminne,datat finns kvar även om strömmen slås av, långsammare åtkomst. Ex: Hårddisk, CD, diskett, DVD etc, F1 17 Vad är en dator? forts! Ett datorsystem består av en dator, externa enheter och mjukvara.! En dator är en enhet som tar input/indata, bearbetar data, lagrar data och producerar output/utdata.! Input är informationen som kommer in till en dator, det kan vara " Ord och symboler i ett dokument, siffror för en beräkning, bilder! Output/utdata från en dator kan vara " Textfiler, musik, bilder, grafer F1 18
Vad är en dator? forts! Mjukvara kan klassifieras på många sätt, ett sätt är: " Operativsystem, den grundläggande programvaran som fungerar som en tolk mellan människan och maskinen. µ Har ett användargränssnitt (User interface) som kan vara grafiskt (GUI) eller textbaserat. µ Hanterar systemresurser som internminne och CPU bestämmer när program får köras och hur hårdvaruenheter pratar med varandra " Applikationer, all annan programvara som inte är operativsystem µ ordbehandlare, mailläsare, webbrowsers, spel, kompilatorer, µ alla applikationer har ett eget gränssnitt som sköter interaktionen med användaren Olika sätt att få hjälp med mjukvara! Meddelanden, " om det kommer upp en ruta på skärmen, läs meddelandet!! Manualen, " innehåller ofta både en kort komma-igång-beskrivning och mer detaljer! Hjälpmenyn, " här finns ofta (delar av) manualen i datorformat, sökfunktioner för att hitta information etc! interaktiv hjälpmeny " kan ibland komma med egna tips och råd utifrån det du gör F1 19 F1 20 Bits och bytes! En bit (b) är ett binärt tal antingen 0 eller 1! En byte (B) består av 8 bits tex 0010 0100! Kilo- betyder tusen, Mega- betyder miljon, Gigabetyder miljard! Kilobit (Kb) är 1,024 bits! Kilobyte (KB) är 1, 024 bytes! Megabyte (MB) är 1,048,576 bytes! Gigabyte (GB) är 1,073,741,824 bytes F1 21 Kort historik! ca 1200-talet Abacus en manuell miniräknare! 1600-talet mekaniska miniräknare " tex 1642 The Pascaline, räknare som kunde de enklaste räknesätten! 1822 The Difference Engine av Charles Babbage " den första datorn (hade minne, processor, in- och utenheter samt program (i form av hålkort!) " Ada Augusta var den som skrev ned Charles Babbages arbete och brukar räknas som den första programmeraren! 1946: ENIAC en av de första datorerna (30 ton!)! 1975, den första persondatorn Apple I! 1981, IBM PC! 1984, Apple Macintosh! 1992 blev WWW ett begrepp (Internet uppfanns redan på 60- talet) F1 22 Kan en dator lösa alla typer av problem?! Problemet måste gå att beskriva för datorn. " Man måste kunna skriva en algoritm.! Vissa problem kan inte lösas inom ändlig tid. " Satser som varken kan bevisas eller motbevisas! Vissa problem kan inte lösas exakt. " Numeriska problem Hur löser man problem med hjälp av en dator?! Förstå problemet Problemspecifikation! Utveckla en algoritm Problemlösning! Implementera algoritmen.! Testa och debugga programmet.! Dokumentera och underhålla programmet F1 23 F1 24
Problemspecifikation! Vilket är problemet som ska lösas?! Finns det något tvetydigt med uppgiften?! Samla in så mycket information som möjligt.! Strukturera information i indata, utdata och omgivning.! Skriv ned tankegångarna! Tänk ut kritiska situationer för senare testning Problemlösning! När man formulerar en lösning på ett problem så skapar man en algoritm.! Algoritm är en plan, en metod att utföra något. Krav på en algoritm: " Ändlighet " Bestämdhet " Indata " Utdata " Effektivitet! Man ska kunna följa algoritmen oavsett vilket programspråk man använder sig av.! Testa algoritmen! Försök hitta liknande problem och se hur de har lösts F1 25 F1 26 Implementation! Välj ett lämpligt programmeringsspråk att använda.! Kriterier: " Egna kunskaper " Problemets natur " Lösningens natur " Tillgången Vad är ett datorprogram?! Instruktioner som talar om hur ett problem ska lösas.! Måste skrivas i ett speciellt språk - programspråk.! Maskinkod eller lågnivåspråk " Lätt att förstå för datorn. " Lämpligt för maskinnära tillämpningar. " Ofta snabbare exekvering (körning).! Högninvåspråk " Lätt att förstå för människan. " Måste oftast kompileras till maskinkod för att datorn ska kunna köra programmet. " Lämpligt för mer komplicerade algoritmer F1 27 F1 28 Testning! Testa delarna allt eftersom de blir klara.! Fungerar programmet som det ska?! Validering - Löser programmet den uppgift som specades? Underhåll &dokumentation! Krav och andra förhållanden kan förändras.! Sammanställ all information som de övriga punkterna gett.! Dokumentationen bör innehålla: " Inledning " Problemspecifikation " Systembeskrivning " Algoritmbeskrivning " Användarbeskrivning " Förslag på förändringar och förbättringar. F1 29 F1 30
67% Programmerandet är en liten del i processen! 6% 1% 6% 5% 7% 8% Analys Planering Design Kodning Testning Integration Underhåll F1 31 Visual Basic-miljön! Visual Basic skapades av Microsoft och bygger på språket Basic " Beginner s All-purpose Symbolic Instruction Code. 1964 " MS Basic 2.0 1975 " Visual Basic 1.0 1991 " Visual Basic 6.0 1998 " Visual Basic.NET 2000! Visual Basic används för att enkelt bygga applikationer med en grafisk användaryta under Windows.! Vi kommer att använda Visual Basic 6 och det finns installerat i datorsalarna.! Visual Basic.NET är den senaste utvecklingen av Basic " Objektorienterat fullt ut och har mer stöd för nätverksapplikationer " http://msdn.microsoft.com/vbasic/ F1 32 Visual Basic-miljön! När man programmerar så ritar man först upp användarytan och bestämmer sedan vad som ska hända när användaren t.ex. trycker på en knapp.! Man får mycket gratis " I andra språk måste man själv skriva programkod för att rita upp knappar och placera dem på rätt ställe etc. " Man får automatiskt ett program som ser ut som alla andra och det finns stöd för kommunikation mellan olika slags program. F1 33