Studentportalen http://www.studentportalen.uu.se UNIX-konton (systemansvariga P4118) Lärare: Anna Eckerdal, Anna.Eckerdal@it.uu.se



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

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

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

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

Programmeringsteknik I

Grundkurs i programmering - intro

Introduktion till programmering och Python Grundkurs i programmering med Python

Program & programmering

Föreläsning 1: Introduktion till kursen

Föreläsning 2. Operativsystem och programmering

Föreläsning 1: Introduktion till kursen

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

Föreläsning 1: Introduktion till kursen

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.

OOP Objekt-orienterad programmering

Föreläsning 1 & 2 INTRODUKTION

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

Imperativ programmering

Datorsystemteknik DAV A14 Föreläsning 1

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

Datorarkitektur. Informationsteknologi sommarkurs 5p, Agenda. Slideset 3

Programmeringsteknik II

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

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

Programmering för alla!

Objektorienterad Programmering (TDDC77)

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

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

TDDC77 Objektorienterad Programmering

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

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

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.

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

Introduktion till programmering, hösten 2011

Programmering för alla!

Objektorienterad Programmering (TDDC77)

IT för personligt arbete F5

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

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

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

Introduktion till programmering

Objektorienterad programmering i Java

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

Programmering. Den första datorn hette ENIAC.

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

NetBeans 7. Avsikt. Projektfönster

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

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

Innehålls förteckning

Programmering A. Johan Eliasson

Editering, Kompilering och Exekvering av Javaprogram

F4. programmeringsteknik och Matlab

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

Programmering för språkteknologer I, VT2012. Rum

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

Grundläggande programmering med matematikdidaktisk inriktning för lärare som undervisar i gy eller komvux gy nivå, 7,5 hp

OOP F1:1. Föreläsning 1. Introduktion till kursen OOP Vad är Java? Ett första Java-program Variabler Tilldelning. Marie Olsson

Introduktion till programmering. Programspråk och paradigmer

ITK:P1 Föreläsning 1. Programmering. Programmeringsspråket Java. Stark typning Explicit typning Strukturerat Hög säkerhet

MATLAB-modulen Programmering i MATLAB. Höstterminen hp. Vad är MATLAB

Datorsystemteknik DAV A14 Föreläsning 1

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

Grundläggande datavetenskap, 4p

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

Översikt 732G11 PROGRAMMERING 1. Personal. Kursens mål. Litteratur. Kursens innehåll

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

Objektorienterad Programmering (TDDC77)

HF0010. Introduktionskurs i datateknik 1,5 hp

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

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

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

Felsökande av en Lego Mindstorm robot

[] Arrayer = Indexerad variabel

Grundläggande programmering DVG A08 & ISG A04. Allmän information. Å vem är jag då. Karlstads Universitet, Johan Öfverberg 1

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

Programmering och begrepp

KURSMÅL WINDOWS STARTA KURSEN

NetBeans 5.5. Avsikt. Projektfönster

Programmering i maskinspråk (Maskinassemblering)

Föreläsning 2 Programmeringsteknik och Matlab DD1312. Programspråk. Utskrift på skärmen

Programmering i maskinspråk (Maskinassemblering)

Digital- och datorteknik

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

DD1361 Programmeringsparadigm Föreläsning 1: Intro

Föreläsning 2 Programmeringsteknik DD1310. Programmering. Programspråk

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

Planering Programmering grundkurs HI1024 HT data

Assemblerprogrammering del 1

Objektinteraktion. Objektorienterad programmering Laboration 2. Syfte Att konstruera ett litet objektorienterat program med flera samverkande objekt.

Föreläsning 2 Programmeringsteknik och Matlab DD1312. Programspråk. Utskrift på skärmen

Mer datorarkitektur. En titt I datorn Minnen

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)

Planering Programmering grundkurs HI1024 HT TIDAA

Digital- och datorteknik

Alla filer som bearbetar PHP script ska avslutas med ändelsen.php, exempelvis ska en indexsida till en hemsida heta index.php

TDDE44 Programmering, grundkurs

JAVAUTVECKLING LEKTION 1

Laboration 3 HI1024, Programmering, grundkurs, 8.0 hp

Programmering och begrepp

Transkript:

Föreläsning 1: Intro till kursen och programmering Kursens hemsida http:www.it.uu.se/edu/course/homepage/prog1/mafykht11/ Studentportalen http://www.studentportalen.uu.se UNIX-konton (systemansvariga P4118) Lärare: Anna Eckerdal, Anna.Eckerdal@it.uu.se rum P2415, tel: 471 7893 Torsten Jarkrans (resurs) 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 o Kurshemsida: lektionsmaterial, föreläsningsanteckningar o Studentportalen: KONTROLLERA SJÄLV FRAMSTEG o Dokumentation av programmeringsspråket java 2

Kursupplägg Lektioner i datasal (UNIX-salar Pollax) OK använda egen laptop i datasalarna Arbeta två och två: byts av vid tangentbordet! Kan utföras hemifrån Ingen redovisning men rekommenderas starkt! Gör klart innan nästa föreläsning Mycket tid vid tangentbordet! 1 lektion i klassrum Föreläsningar (9) Obligatoriska uppgifter (5 st): 4 redovisas muntligt i datasal. Uppgift 5 muntligt + skriftligt Börja i tid! Tentamen (obl.) - skriftlig 3

Examination Obligatoriska uppgifter (3hp) Tentamen (2hp) Lektionerna är frivilliga, men vi rekommenderar starkt att ni gör dem, och gör dem färdiga innan nästa föreläsning 4

Kursmål Redogöra för de grundläggande begreppen klass, objekt, inkapsling och därtill hörande underbegrepp; Analysera problem och designa lösningar genom att använda ovanstående begrepp; Använda programmeringsspråk Java genom att förklara vad ett givet program utför skriva och använda klasser som innehåller instansvariabler, metoder och konstruktorer Skriva program med flera samverkande klasser; Använda en programutvecklingsmiljö; Testa och felsöka program. 5

Lektion 1 Innehåller mycket material, men med kunskaper i Matlab kan man hoppa över mycket och komma igenom det mesta (utom de avslutande övningsuppgifter) Inställningar av DrJava i UNIX-lab Intro till DrJava och intro till Java Java: Utskrift av variabelvärden och inläsning av värden till variabler Övningsuppgifter 6

Kursboken: Programmera med a multimedia approach Grafik Bilder Ljud Video (kursen) (kursen) (kursen) (inget i kursen) Demo av några exempel: Turtle, Picture, Sound 7

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<5) { t.forward(move); t.turn(2); Thread.sleep(1); i=i+1; move=move+1; } 8

Ex. bilder import java.awt.*; String filename = FileChooser.pickAFile(); // jenny2-green-small.jpg Picture p = new Picture(filename); p.show(); 9

Ex. bilder forts int x=2; int y=3; while (x<3) { Pixel pix; for (int i=; i<=3; i++) { pix = p.getpixel(x,y+i); pix.setcolor(color.red); } x=x+1; } p.repaint(); 1

Ex. bilder medelvärdesfiltrera pixelisera 11

Ex. ljud String filename = FileChooser.pickAFile(); //croak.wav Sound s = new Sound(filename); s.play(); int i=1; while (i<4) { s.play(); Thread.sleep(1); i++; } 12

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! 13

Datorer och datorprogram finns överallt Datorer finns i många apparater 14

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,...) 15

Hur... Övningstillfällen: Labbar 11 st Lektion 1 st Inlämningsuppgifter, 5 st, 7 tillfällen Föreläsningar: 9 st Litteratur Sitt mycket vid tangentbordet, dela tiden! 16

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. 17

För att programmera behövs ett språk som instruktionerna skall skrivas i 18

Varför inte använda engelska som språk? Engelska bra för kommunikation mellan (intelligenta) människor Datorer är begränsade De kan bara +,-,*,/ och jämföra, lagra samt hämta data i minnet. Behöver ett språk som är enkelt och entydigt. 19

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 :or Instruktionerna måste egentligen alltså ges på ett språk som består av enbart av nollor och ettor 2

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 or. Programmeringsspråket bestod alltså av strömbrytare/kablar 21

Därefter kom datorer som programmerades med hålkort. 1 or och or var hål resp. icke hål på kortet Hålkortsläsare Hålkortstans 22

På korten (7 rader ggr 8 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 kodade 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 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 x = 1 6 23

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 24

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 11 1 11 1111 1 11 111 1 11 11 111 1 Knöligt att prata med datorn via ett sådant (lågnivå)språk! 25

Assemblerspråk Lite högre nivå Enkla ord som motsvarar några maskinkodinstruktioner Ex. assemblerkod Lagra värdet 1 i datorregistret R (LD=load) LD #1, LD #12, ADD R, MOV R1, R R1 R1 45 Lagra värdet 12 i datorregistret R1 (LD=load) Addera R 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. 26

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. 27

Högnivåspråk exempel y = a*x*x + b*x + c z = {1,2,3,4}; sum = ; tal = 1; while (tal<=99) { sum = sum+tal; tal = tal+2; } print(sum); Picture p = new Picture( jenny.jpg ); p.show(); p.blur(5); p.show(); 28

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. 29

Vilket högnivåspråk? Det finns många olika programmeringsspråk Se t ex http://en.wikipedia.org/wiki/programming_language 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? 3

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 31

Ä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 32

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. 33

Hårdvaran i datorn In- och utenheter Skärm, mus, tangentbord, skrivare Hjärnan - Central Processing Unit (CPU) Kan göra matematiska och logiska beräkningar Minnen Primärminnet RAM Sekundärminnen: Hårddisk, CD, DVD, USB 34

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. 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 345 B 263 C 68 Addera register A med register B. Lagra summan i register C. 35

En modell av en dator CPU ALU Primärminne Styrenhet Här finns program (instruktioner) och data (värden) Register 36

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 eller 1. Minnet är organiserat i 8-bits grupper som kallas byte. 1 byte = 8 bit. En megabyte (MB) = 1 miljon byte. 1 1 1 37

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. 38

Lite datorhistoria Jag tror det finns en marknad i världen för kanske fem datorer. IBMs styrelseordförande Thomas Watson, 1943 Datorer behöver i framtiden inte väga mer än 1,5 ton. Popular Machines 1949 Det finns inget skäl till att någon skulle vilja ha en dator i sitt hem. Ken Olsen, Digital, 1977 39