Kursupplägg. Examination. Föreläsning 1: Intro till kursen och. Kursmaterial. programmering. Kursboken: Programmera med a multimedia approach



Relevanta dokument
Studentportalen UNIX-konton (systemansvariga P4118) Lärare: Anna Eckerdal,

Föreläsning 1: Intro till kursen och programmering

Föreläsning 1: Intro till kursen och programmering

Studentportalen UNIX-konton (systemansvariga P4118) Lärare: Tom Smedsaas,

Grundkurs i programmering - intro

Introduktion till programmering och Python Grundkurs i programmering med Python

Föreläsning 2. Operativsystem och programmering

Program & programmering

Per Holm Lågnivåprogrammering 2014/15 24 / 177. int och double = = 2, 147, 483, 647

Inledning. Vad är ett datorprogram, egentligen? Olika språk. Problemlösning och algoritmer. 1DV433 Strukturerad programmering med C Mats Loock

Datorarkitektur. Informationsteknologi sommarkurs 5p, Agenda. Slideset 3

OOP Objekt-orienterad programmering

Datorsystemteknik DAV A14 Föreläsning 1

Lågnivåprogrammering. Föreläsning 2 Lågnivåprogrammering. Binära tal. En enkel modell av datorns inre

Föreläsning 1 & 2 INTRODUKTION

EDAA20 Programmering och databaser. Mål komprimerat se kursplanen för detaljer. Checklista. Föreläsning 1-2 Innehåll. Programmering.

Föreläsning 1 & 2 INTRODUKTION

System S. Datorarkitektur - en inledning. Organisation av datorsystem: olika abstraktionsnivåer. den mest abstrakta synen på systemet

TDDC77 Objektorienterad Programmering

Imperativ programmering

Programmering, grundkurs, 8.0 hp, Elektro, KTH, hösten Programmering: att instruera en maskin att utföra en uppgift, kräver olika språk:

TDIU01 (725G67) - Programmering i C++, grundkurs

Inledande programmering med C# (1DV402) Introduktion till programmering

Objektorienterad Programmering (TDDC77)

Programmering för alla!

IT för personligt arbete F5

Introduktion till programmering

Programmeringsteknik I

Boken?!?! Vad är ett program? Kompilerande-Interpreterande Programmeringsmiljö Hello World! Att programmera och ett enkelt program Variabler printf

F2: Motorola Arkitektur. Assembler vs. Maskinkod Exekvering av instruktioner i Instruktionsformat MOVE instruktionen

Innehålls förteckning

NetBeans 7. Avsikt. Projektfönster

Datorhistorik. Föreläsning 3 Datorns hårdvara EDSAC. Eniac. I think there is a world market for maybe five computers. Thomas Watson, IBM, 1943

Grundläggande datavetenskap, 4p

Viktiga begrepp. Algoritm. Array. Binärkod. Blockprogrammering. Bugg / fel och felsökning. Dataspel. Dator

Objektorienterad Programmering (TDDC77)

Programmering för alla!

Outline. Objektorienterad Programmering (TDDC77) Kursinfo. Outline. Hemsida. Organization. Ahmed Rezine Examination. Webreg.

Programmering. Den första datorn hette ENIAC.

Introduktion till programmering, hösten 2011

Editering, Kompilering och Exekvering av Javaprogram

Elektroteknik MF1016 föreläsning 9 MF1017 föreläsning 7 Mikrodatorteknik

Assemblerprogrammering del 1

HF0010. Introduktionskurs i datateknik 1,5 hp

Lektion Java Grunder. Javas historia. Programmeringsspråket Java. Skillnaderna mellan Java och C++ JVM (Javas Virtuella Maskin)

Programmering i C++ En manual för kursen Datavetenskaplig introduktionskurs 5p

En Von Neumann-arkitektur ( Von Neumann-principen i föreläsning 1) innebär:

Objektorienterad Programmering (TDDC77)

Datorsystemteknik DAV A14 Föreläsning 1

I Skapa Hej.java och skriv programmet. I Kompilera med javac Hej.java. I Rätta fel och repetera tills du lyckas kompilera ditt program

Digital- och datorteknik

Objektorienterad programmering i Java

EDAA20 Programmering och databaser. Mål komprimerat se kursplanen för detaljer. Om att lära sig programmera. Föreläsning 1-2 Innehåll.

Mer datorarkitektur. En titt I datorn Minnen

Definition DVG A06. Varför operativsystem? Operativsystem. Översikt. - Vad är ett operativsystem?

NetBeans 5.5. Avsikt. Projektfönster

Programmering i maskinspråk (Maskinassemblering)

Eclipse. Avsikt. Nu ska ett fönster liknande figuren till höger synas.

Program kan beskrivas på olika abstrak3onsnivåer. Högnivåprogram: läsbart (för människor), hög abstrak3onsnivå, enkelt a> porta (fly>a 3ll en annan ar

Programmering i maskinspråk (Maskinassemblering)

Digital- och datorteknik

Programmering A. Johan Eliasson

Introduktion till programmering. Programspråk och paradigmer

Välkomna till kursen i grundläggande programmering DVGA08, ISGA04

Vem är vem på kursen. Objektorienterad programvaruutveckling GU (DIT011) Kursbok Cay Horstmann: Big Java 3rd edition.

DVG A06. Operativsystem, mm. Karlstads universitet Datavetenskap. DVG A06 Johan Eklund. Datavetenskap, Karlstads universitet 1

Övningar i 2D2050. Per-Anders Staav (kallas Pa) Epost: eller

Digitalteknik EIT020. Lecture 15: Design av digitala kretsar

KURSMÅL WINDOWS STARTA KURSEN

Programutveckling med Java 7.5 p, ht 2007 (D0019N) STUDIEHANDLEDNING - ALLMÄN INFORMATION

Varmt välkommen till en helt ny värld.

Föreläsning 3. Programmering, C och programmeringsmiljö

Programmeringsteknik II

Digitalitet. Kontinuerlig. Direkt proportionerlig mot källan. Ex. sprittermometer. Elektrisk signal som representerar ljud.

Grundläggande datorteknik

Datorsystem 2 CPU. Förra gången: Datorns historia Denna gång: Byggstenar i en dators arkitektur. Visning av Akka (för de som är intresserade)

Programmering från början

Digital- och datorteknik

Tentamen den 18 mars svar Datorteknik, EIT070

Programmering och begrepp

Kompilering och exekvering. Föreläsning 1 Objektorienterad programmering DD1332. En kompilerbar och körbar java-kod. Kompilering och exekvering

Föreläsning 5 5DV086 - Programspråk

32 Bitar Blir 64 Sammanfattning

Digitalt lärande och programmering i klassrummet

6. Ge korta beskrivningar av följande begrepp a) texteditor b) kompilator c) länkare d) interpretator e) korskompilator f) formatterare ( pretty-print

F4. programmeringsteknik och Matlab

Vad är en dator? Introduktion till datorer och nätverk. Pontus Haglund Institutionen för datavetenskap (IDA) 21 augusti 2018

Introduktion till programmering D0009E. Föreläsning 1: Programmets väg

Föreläsning 2 Programmeringsteknik och C DD1316. Mikael Djurfeldt

Inledande programmering med C# (1DV402) Introduktion till C#

Operativsystem DVG A06. Definition. Varför operativsystem? - Vad är ett operativsystem?

IT-GUIDE Version 1.0 Författare: Juha Söderqvist

Digital- och datorteknik

[] Arrayer = Indexerad variabel

IT för personligt arbete F6

SKAPA DET FÖRSTA PROJEKTET I mikrobasic PRO for AVR

Att komma igång. Föreläsning 1

Föreläsning 1: Introduktion till kursen

Föreläsning 2 Programmeringsteknik och C DD1316. Programmering. Programspråk

Programmering. Hur, var, när och varför. 22 November. Lars Ohlén Tieto

Transkript:

Föreläsning 1: Intro till kursen och Kursens hemsida http://www.it.uu.se/edu/course/homepage/prog1/esvt10 Studentportalen http://www.studentportalen.uu.se Kursmaterial Kursbok Kursprogramvara Tips: Installera på egen dator Rekommenderas att arbeta med egen laptop Material på webben, t.ex o Kurshemsida o Portalen o Dokumentation av sspråket java 1 2 Kursupplägg Examination Lektioner i datasal (PC-lab Pollax) Stationära PC i PC-lab OK använda egen laptop i PC-lab Arbeta två och två i PC-lab Kan utföras hemifrån Föreläsningar Inlämningsuppgifter (obl.) Tentamen (obl.) Inlämningsuppgifter (3hp) Tentamen (2hp) 3 4 Lektion 0 och lektion 1 Lektion 0: Inställningar av DrJava i PC-lab Lektion 1: Intro till DrJava och intro till Java Innehåller mycket material, men med kunskaper i Matlab kan man hoppa över mycket och komma igenom det mesta (utom de avslutande övningsuppgifter) Kursboken: Programmera med a multimedia approach Grafik (kursen) Bilder (kursen) Ljud (lite i kursen) Video (inget i kursen) Demo av några exempel: Turtle, Picture, Sound 5 6 1

Ex. grafik/turtles World w = new World(); Turtle t = new Turtle(w); t.turn(5); t.forward(8); int i=1; int move=3; while (i<50) { t.forward(move); t.turn(20); Thread.sleep(100); i=i+1; move=move+1; 7 Ex. bilder import java.awt.*; String filename = FileChooser.pickAFile(); // jenny2-green-small.jpg Picture p = new Picture(filename); int x=200; int y=300; while (x<300) { Pixel pix = p.getpixel(x,y); pix.setcolor(color.red); pix = p.getpixel(x,y+1); pix.setcolor(color.red); x=x+1; 8 Ex. bilder Ex. ljud String filename = FileChooser.pickAFile(); //always.wav Sound s = new Sound(filename); s.play(); medelvärdesfiltrera pixelisera int i=1; while (i<4) { s.play(); Thread.sleep(1000); i++; 9 10 Datorer och datorprogram finns överallt Programmering handlar om kommunikation Datorer finns i många apparater Hur få datorn att göra det vi vill? 11 12 2

Vad är? 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 För att programmera behövs ett språk som instruktionerna skall skrivas i Eller ge en vägvisning till ditt hem. Eller få en robot att göra det du vill. 13 14 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. 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 15 16 Programmering i begynnelsen De första datorerna (instruerades) programmerades genom att ställa in strömbrytare och koppla ihop kablar. Detta representerade sekvenser av 1 or och 0 or. Programmeringsspråket bestod alltså av strömbrytare/kablar Därefter kom datorer som programmerades med hålkort. 1 or och 0 or var hål resp. icke hål på kortet 17 Hålkortstans Hålkortsläsare 18 3

På korten (7 rader ggr 80 kolumner) kunde man lagra instruktioner (programsatser), t.ex. ett kort med instruktionen (högnivåspråk): x=16 Instruktionen består av fyra tecken. Man konstruerade ett sätt att koda tecken till binära tal (7-bit). De fyra tecknen i exemplet lagras som binära tal (7 bit) i kolumn 1-4 på kortet. I första kolumnen lagras tecknet x, i 2:a tecknet =, i 3:e tecknet 1 och i 4:e tecknet 6 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 x = 1 6 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 19 20 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! Assemblerspråk 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 Lagra värdet 10 i datorregistret R0 (LD=load) Addera R0 med R1, lägg resultatet 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. 21 22 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. Högnivåspråk exempel y = a*x*x + b*x + c z = [1,2,3,4]; sum = 0; tal = 1; while (tal<=99) { sum = sum+tal; tal = tal+2; print(sum); Picture p = new Picture( jenny.jpg ); p.blur(5); 23 24 4

Mer om högnivåspråk Finns inbyggda funktioner/metoder, bibliotek Språk stöder olika sorters sprinciper: 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. Vilket högnivåspråk? Det finns många olika ssprå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? 25 26 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 Är datorn smart? Nej, datorn är egentligen ganska korkad Datorn kan bara göra väldigt enkla saker, men väldigt snabbt. Det är programmen som får datorn som får den att bete sig smart. Datorn blir intelligent genom att människan skrivit ett program: Att sätta samman enkla instruktioner på ett fiffigt sätt 27 28 En dator består av Hårdvaran i datorn 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. 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 29 30 5

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 Addera register A med register B. Lagra summan i register C. 31 En modell av en dator CPU ALU Styrenhet Register Primärminne Här finns program (instruktioner) och data (värden) 32 Minnen Datorns minne används för att lagra data. Data kan vara instruktioner (program) eller värden. Den minsta minnesenheten är en bit (Binary digit) En bit kan vara av (ingen spänning) eller på (har spänning), vilket kan tolkas som 0 eller 1. Minnet är organiserat i 8-bits grupper som kallas byte. 1 byte = 8 bit. En megabyte (MB) = 1 miljon byte. 0 0 0 0 1 1 1 0 OK, då vet vi att det finns hårdvara som gör' det hela men för att det ska finnas något att göra så måste det finnas programinstruktioner och det är det vi ska gå igenom på den här kursen, hur man skapar mjukvaran. Givetvis kommer ni inte bli färdigutbildade programmerare men ni kommer att lära er filosofin i mjukvaruutveckling och praktisera den. 33 34 6