Föreläsning 1: Intro till kursen och programmering Kursens hemsida http:www.it.uu.se/edu/course/homepage/prog1/vt11 Studentportalen http://www.studentportalen.uu.se Lärare: Tom Smedsaas, Tom.Smedsaas@it.uu.se rum P2411, tel: 471 2989 Olle Eriksson, Olle.Eriksson@it.uu.se rum P2407, tel: 471 2983 Anna Eckerdal, Anna.Eckerdal@it.uu.se rum P2415, tel: 471 7893 Programmeringsteknik I: F1 1
Kursmaterial Kursbok: Introduction to computing & programming with JAVA. Guzdial and Ericson Kursprogramvara: Java och drjava (eller motsvarande) Tips: Installera på egen dator, se kurshemsidan Rekommenderas att arbeta med egen laptop Material på webben, t.ex Kurshemsida: lektionsmaterial, föreläsningsanteckningar Portalen (framsteg, filarea att lämna in uppgift 4) Dokumentation av programmeringsspråket java Programmeringsteknik I: F1 2
Kursupplägg Lektioner i datasal (UNIX-salar Pollax) OK använda egen laptop i datasalarna Arbeta två och två i datasalarna Kan utföras hemifrån Ingen redovisning Föreläsningar (9) Obligatoriska uppgifter (3 hp) redovisas muntligt i datasal. Uppgift 4 lämnas även skriftligt Tentamen (2 hp.) - skriftlig Programmeringsteknik I: F1 3
Kursmål Redogöra för grundläggande begrepp inom objektorienterad analys och design Använda dessa begrepp för att analysera enklare problem och designa lösningar Använda ett objektorienterat språk, t ex Java Skriva enklare program med flera samverkande klasser förklara vad ett givet program utför använda ett programmeringssystem för att utveckla program Programmeringsteknik I: F1 4
Varför ska man lära sig programmera? Datorer och program finns överallt Programmering = problemlösningsverktyg Användbart i utbildning och yrkesliv Java: en bra grund OOP: spritt på universitet och industri Kul! Programmeringsteknik I: F1 5
Vad man lär sig... λ λ Analysera och strukturera problem Modellera översätta problemet till datorn Få en bild av: Vad innebär programmering? Programmeringstänk Vad menas med objektorienterad programmering? Programmeringsbegrepp: objekt, klass, metod... Syntax: språkets byggstenar (if, while,...) Programmeringsteknik I: F1 6
Hur... Labbar: Övningstillfällen, 11 st Obligatoriska uppgifter, 4 st, 6 tillfällen Föreläsningar: 9 st Litteratur Sitt mycket vid tangentbordet, dela tiden! Programmeringsteknik I: F1 7
Vad är programmering? Skapa en detaljerad instruktion som en dator kan utföra/förstå för att lösa en uppgift. Som att skriva ett recept till din favoriträtt Eller ge en vägvisning till ditt hem. Eller få en robot att göra det du vill. Programmeringsteknik I: F1 8
Varför inte använda engelska som språk? Engelska bra för kommunikation mellan (intelligenta) människor Datorer är dumma De kan bara +,-,*,/ och jämföra, lagra samt hämta data i minnet. Behöver ett språk som är enkelt och entydigt. Programmeringsteknik I: F1 9
Vad är ett program? En samlad ordning instruktioner som talar om för datorn vad vi vill att den skall göra. Datorn förstår bara 1:or och 0:or Instruktionerna måste egentligen alltså ges på ett språk som består av enbart av nollor och ettor Programmeringsteknik I: F1 10
För att programmera behövs ett språk Tre olika typer av språk Maskinspråk (maskinkod) språket man programmerade i datorns begynnelse. Assemblerspråk Högnivåspråk Programmeringsteknik I: F1 11
Maskinspråk Datorns eget språk Språket består bara av nollor och ettor Olika sorters datorer har olika språk Ex. på 3 st maskinkodsinstruktioner 1100 1000 1001 1111 0100 0011 1011 0001 0110 0011 1011 1000 Knöligt att prata med datorn via ett sådant (lågnivå)språk! Programmeringsteknik I: F1 12
Lite högre nivå Enkla ord som motsvarar några maskinkodinstruktioner Ex. assemblerkod LD #10, R0 LD #12, R1 ADD R0, R1 MOV R1, 45 Assemblerspråk Lagra värdet 10 i datorregistret R0 (LD=load) Lagra värdet 12 i datorregistret R1 (LD=load) Addera R0 med R1, lägg resultatet i R1 Innehållet i R1 minnet med adress 45 Översättning från assemblerkod till maskinkod måste göras. Programmet som översätter kallas assemblatorn. Assemblerspråk är specifik för en viss datortyp. Programmeringsteknik I: F1 13
Högnivåspråk Instruktioner av ord och fraser Lättare att läsa/förstå för människan, men ej för datorn. Instruktionerna måste översättas till maskinkod Översättningen kallas kompilering och görs med ett program kompilatorn. Instruktionerna kan fungera på olika datortyper, men måste kompileras till rätt maskinkod. Programmeringsteknik I: F1 14
Mer om högnivåspråk Finns inbyggda funktioner/metoder, bibliotek Språk stöder olika sorters programmeringsprinciper: exvis ett objektorienterat språk Källkod och kompilator Ett språk har en syntax, dvs en grammatik Instruktionerna kan fungera på olika datortyper, men måste kompileras till rätt maskinkod. Programmeringsteknik I: F1 15
Vilket högnivåspråk? Det finns många olika programmeringsspråk Kan skriva program i vilket du vill Datorn bryr sig inte om vilket, eftersom det översätts till maskinkod. Språket har däremot betydelse för programmeraren. Hur lång tid tar det att skriva programmet? Hur svårt är det att ändra programmet? Hur lång tid tar det att köra programmet? Programmeringsteknik I: F1 16
Vad är en dator bra på? Kan mycket snabbt utföra matematiska (+,-,*,/) och/eller logiska (>,<,or,and) beräkningar samla in, lagra och bearbeta stora informationsmängder (t.ex. söka/sortera). Och: Producerar samma svar varje gång Programmeringsteknik I: F1 17
En dator består av Hårdvara och mjukvara. Hårdvaran är just det som är hårt, det som går att ta på Mjukvaran är program och data som behandlas av hårdvaran. Ett program är de instruktioner som får all hårdvara att fungera tillsammans. Programmeringsteknik I: F1 18
Hårdvaran i datorn In- och utenheter Skärm, mus, tangentbord, skrivare Hjärnan - Central Processing Unit (CPU) Kan göra göra matematiska och logiska beräkningar Minnen Primärminnet RAM Sekundärminnen: Hårddisk, CD, DVD, USB Programmeringsteknik I: F1 19
CPU Datorns hjärna består av tre delar Aritmetisk Logisk enhet (ALU) Datorns kalkylator gör aritmetik och logik på tal lagrade i register. Styrenheten Läser instruktioner från primärminnet och tolkar dem och utför instruktionerna mha ALU. Därefter läses nästa instruktion. A B C Register 345 263 608 Programmeringsteknik I: F1 20 Addera register A med register B. Lagra summan i register C.