Föreläsning 1 i Programmeringsparadigm

Storlek: px
Starta visningen från sidan:

Download "Föreläsning 1 i Programmeringsparadigm"

Transkript

1 Föreläsning 1 i Programmeringsparadigm Programmeringsparadigm : Vad menas med programmeringsparadigm? Två definitioner från Webster s New World dictonary : paradigm n. [< Gr. para-, besides + deigma, example] 1. an example or modell I vetenskapasteori: Bakomliggande tankemodell för samhörande teorier. Ex i fysiken. I datalogi: Bakomliggande tankemodell för olika sätt att skriva och utforma dator-program. Olika programmeringsspråk kan grupperas i olika paradigmer. program, programme n. [< Gr. pro-, before + graphein, skriva] 1. A list of events, pieces, performers, etc, as of an entertainment 2. A plan of procedure v.t to schedule in a program I datalogi : föreskrift, en beskrivning av vad en dator skall göra. När använder man olika paradigm i datalogi? Vid konstruktion av programmeringspråk. Ett visst programmeringsspråk tillhör ett visst paradigm. Vissa språk (säger sig vara) multi-paradigm-språk. När man "kodar". Även när man "designar" (utfomar) program (metoder som "Vattenfallsmetoden" och UML är rätt knutna till olika paradigm). När man studerar algoritmer spelar kanske paradigm mindre roll. Olika paradigm kan ofta användas för att beskriva samma algoritm, men det kan vara olika "bekvämt". Datalogins paradigm? Hur många paradigm finns det? Olika författare har olika definitioner. T ex i boken Tucker, Noonan: Programming languages Principles and paradigms talar man om imperativ, OO (objekt-oriented, objekt-inriktad), funktionell, logisk, händelsestyrd (event-driven) och jämlöpande (concurrent) paradigm. Medan Ravi Sethi : Programming Languages mest betonar de fyra första. Gränserna är ej skarpa, element från flera paradigmer kan finnas i samma språk. Ett modernt språk som Java är ett OO-språk, men man kan om man envisas användas som ett imperativt språk (men man har då ringa glädje av bibliotekten) och de flesta Java-program är händelsestyrda och jämlöpande programmering är möjlig i Java. Vilka paradigmer används? Ända fram till 1980-talet var imperativ programmering helt dominerande, på 1990-talet slog OO igenom (30 år efter det att OO uppfanns).

2 Varför kunna olika paradigm? KTH credo : Vetenskap och konst. TH ska förvalta och förnya (varifrån?) tekniken. För att kunna förmedla detta detta måste studierna syssla med teori och vetenskap och hämta ideer från forskning, inte bara syssla med "hur man gör för närvarande". Paradigmen ej helt oberoende. Kunskap i t ex Haskell leder till bättre Java-program. Paradigm ger perspektiv. Kanske blir det ett paradigmskifte? Ex från datalogins historia: OO, kalkylblad, 5:e generationes datorer (flopp) från biologin : Darwin, DNA från fysiken : Gallilei och Newton, relativitesteorin och kvantmekaniken från lingvistik : Chomsky generativ grammatik, inne på 50-talet, numera lite ute. Icke-paradigm-aspekter på programmeringsspråk: Hårt typade språk: Pekare (referenser): I princip oberoende av paradigm. Oberoende av paradigm? Hårt typade språk : Man "tvingas" tänka Osynligt? sig in i olika typer, kompilatorn Halvautomatiskt (Java)? hittar många fel. Explicit (Pascal, C)? Otypade språk: Full frihet Vad är programmering? Tre aspekter ( inspirerat av Sten Henriksson, Lund): Programmering är en sorts matematik och logik. Acceptabla språk börjar väl med bättre funktionella språk? Körbara specifikation? Körbar Design? Bevis att programmen är korrekta. Passar bra med funktionella paradigmen och den logiska. Programmering är algoritmer. Vad är beräkningsbart? Går allt att göra? O(n). Turing maskiner mm. Programspråk (t o m paradigmer? ) sekundärt? Numerisk analys. Ganska paradimoberoende? Programmering är klassik ingenjörskonst. Nedbrytning av moduler. Gränsnitt, Design och implementation. Implementation, programspråk (t o m paradigmer? ) sekundärt? Programmering är bara en del av ett system. Design av systemet det viktiga. Design och implementation av programmet sekundärt. Att vara systemerare är "finare" (och mer välavlönat) än att vara programmerare. "ADB". Användargränssnittet, samverkan med hela systemet det viktiga.

3 Översikt paradigmhistoria, se häftes baksida (endast i pappersupplagan). Denna kurs: Imperativa paradigmen : ~0.4 p C-programmering i lp 2. Java som imperativt språk. Objektinriktade paradigmen : Återblick på OO och Java Funktionella paradigmen : ~1.8 p Haskell Logik paradigmen : ~1.4 p Prolog Syntaxanalys av programspråk : ~1 pteori, viss metod formulerad i tre olika paradigm Internetprogrammering : ~0.4 p i lp 2. Delar av kursstartsidan Kursbunt (preliminärt) : Finns till försäljning på Nadas studieexpedition. Del av Graham Hutton: Programming in Haskell. Ännu ej publiserad. Kommer att finnas som särtyck genom tillmötesgående av författaren. Paul Brna : Prolog Programmingkursbok i logikprogrammering. Laborationer i 2D1350 Programmeringsparadigm. Kompletterande material i 2D1350 Programmeringsparadigm Alternativa böcker för kursdelen om funktionell programmering : Jeroen Fokker: Functional Programming. (Finns till försäljning på Nadas studieexpedition). 144 sidor varav ca 60 ingår i kursen Unix. M.M.T.Chakravarty, G. C. Keller : An Introduction to Computing ISBN Trevlig, elemntär,lätt bok på 144 sidor, inte så dyr. Använder Haskell för att intoducera datalogi. Även en del om Unix. Laborationer : (I kursbunten, dock ej lab i C och i internet.): * Introduktion till Haskell. * Ett program för schack. * Att komma igång med Prolog redovisas ej * Släktrelationer (Prolog) * Listprogram, pargenerering (Prolog) * Tidernas knepigaste problem (Prolog) * Stabila äktenskap (Prolog) Gör vecka ==42 redovisa senast 12 oktober * Danska räkneord (läsperiod 2) * Lab i C (läsperiod 2) * Lab i internet( läsperiod 2) Tentamina : Skriftlig i läsperiod 2, tisdagen den 8 november Godkänt på kursen <= Godkänd tentamen och godkända redovisade labbar. Extentor feån 4p-kursen... Planerade föresläsningar...

4 paradigm Imperativ ide och semantik Simulering av vonneuman-dator CPU styrning ALU Beräkning (evaluering) av uttryck Primärminne Kod (funktioner, procedurer, subrutiner..) Variabler, aggregat av variabler, lokala / statiska /på heapen Tilldelning := Flödeskontroll Sekvens ; Snurror Alternativ OO Imperativ med objekt och arv CPU styrning ALU Primärminne Beräkning (evaluering) av uttryck Variabler Objekt, aggregat med variabler OCH metoder Kod (funktioner, procedurer, subrutiner..) Tilldelning := Flödeskontroll Sekvens ; Snurror Alternativ Funktionell Logisk Händelsestyrd Jämnlöpande Matte (funktioner) som programmeringsspråk A -> B Beräkning (evaluering) av uttryck, ofta med funktioner Kod (def av funktioner och typer) Logik (predikat, funktioner -> Bool) som programmeringsspråk -> Bool Beräkning (evaluering) av predikat, ofta med förslag hur logiska varaibler skall instansieras Kod (def av predikat) Användarprocess som styr Programexekveringen ( lyssnare i java) Flera process eller trådar (Thread i Java) som styr varandra, synkronisering, moniorer mm

5 Kort (personlig) karaktärisik, något om kursinnehåll: Imperativ : 1990: Så har man alltid gjort och alla andra gör så här! Dessutom kan jag redan! "Självklart" att man instruerar datorn i vilken ordning saker skall göras. Programmering som simulering. I verkliga livet går tiden, i datorn programmet. Avspeglar datorns konstruktion. I denna kurs ~0.4 p i språket C i lp 2 och internetprogrammering( kan ses som egen paradigm) ~0.4 p i lp 2. OO (objektorienterad, objekt inriktad) : Simuleringsynen ännu mer betonad. Utveckling av imperativa pardigmen, men delvis inkompatibelt. Nära hur "vanliga" männsikor ser på värden, värden består av objekt av olika sorter (klasser) med både egenskaper (attribut) och ofta egna sätt att göra saker (metoder). Klasserna kan ordnas i hirarkier, där vissa gemensamma attribut och metoder kan ärvas. Funktionell: Ung = matte; Varför lära sig programmera när man redan kan matte/funktioner? Matematik har mångahundraåriga traditioner, mycket är redan klart. Välgjorda språk, generella och ortogonala konstruktioner, "Hög nivå", korta "program", inga sidoeffekter. dvs svaret på frågan får man? / kan man? är i regel JA! Men går det inte lite väl sakta? Används det? Man börjar på detta sätt i Göteborg, Luleå, Umeå, Linköping, KTH före ca 1995, SU (mat-datalogisk), Oxford, m fl ställen. I denna kurs ~1.6 p i språket Haskell Logik: Ung =logik; Varför lära sig programmera när man redan kan logik/relationer? Logik har hundraåriga traditioner, "hög nivå". Ren logik programmering nog en utopi, i praktiken tillgrips kompromisser. "Hög nivå", mycket korta "program" Men fattar man vad som händer igentligen? Men går det inte lite väl sakta? Prolog populärt i AI (artificiell intellegens). I denna kurs ~1.4 p i språket Prolog. Händelsestyrd: Många program skall ju göra nåt annat än bara "räkna ut nåt", dvs samverka med verkligheten. Egen paradigm? Ex: Grafiska användargränssnitt (GUI). Jämlöpande : "Naturligt" att saker och ting kan ske parallellt. CPU : kostar ju litet, varför inte använda hundratals, så man slipper vänta? Egen paradigm? Samma sak som händelsestyrd? Synkronisering och utbyte av data, hur? "Ju flera kockar ju sämre soppa"?

6 Ett tentamensproblem löst i imperativ Java, OOJava, i funktionella språket Haskell och i logikspråket Prolog: En kurs har två moment, tentamen på vilket ges betyg 0.. 5, och laborationer med tre laborationer vilka kan ges betyget G eller _. Slutbetyg ges till de personer som har G på alla tre labbarna och minst betyg 3 på tentan. Slutbetyget blir då lika med tentabetyget. Skriv ett program som ger som resultat en betygslista med betyg för de personer som är godkända. Indata en sträng "<namn>,<betyg tenta>.>g/_ för varje godkänd labb>" Utdata : Trycks på std.out Exempel på körning:..>java SlutbetygShort "Per,5.G_G" "Siv,5.GGG" "Eva,3.GGG" Siv 5 Eva 3 */ Imperativa paradigmen: Imperativ Java, kort version: public class SlutbetygShort { // Java as an (almost) imperative language: main static, no objekts, // but substring, indexof, equals are OO-methods; // call of static procedure would be indexof(arg[i]),. ) // instead of arg[i].indexof(. ) etc. public static void main (String [] arg) { for (int i = 0; i < arg.length; i = i+1 ) { String name = (arg[i]).substring(0,(arg[i]).indexof(, )); int egrad = Integer.parseInt( (arg[i]).substring((arg[i]).indexof(, )+1, (arg[i]).indexof(. ))); String labs = (arg[i]).substring((arg[i]).indexof(. )+1); if ( (labs.equals("ggg")) && (egrad >= 3)) { System.out.println(name + " " + egrad); Primärminne i name egrad labs public static main lokala variabler på "stacken" allokeras när main kör variabler på "heapen" allokeras när main kör med new

7 Version med poster = "records " = "structures" = klasser utan instansmetoder. Java som imperativt språk i ett något större program: class Student { // "imperative record/structure" NB. no methods!! String name ; int egrad; // grade on examination String labs;// G is passed laboration, examples GGG, G_G class Grade { // "imperative record/structure" NB. no methods!! String name; int grade; public class Slutbetyg { // Java as an imperative language // all methods static, no instance methods // But; // Java arrays and strings has been used for convenience; // arrays and string in Java must be treated as objects // In Pascal and other imperative languages you donot have to do // lines marked by // not in Pascal // also standard methods for strings have been used for convenience; // in an imperative language // (arg[i]).indexof(, ) would have looked as indexof(arg[i],, ) // static Student [] student; static Grade [] grade; public static void main (String [] arg) { student = new Student [arg.length]; // not in Pascal grade = new Grade [arg.length]; // not in Pascal // More functional style : makestudents(arg, student); // student = students(arg); makegrades(student, grade); // grade = grade(student); printgrades(grade); static void makestudents(string [] arg, Student [] st) { for (int i = 0; i < arg.length; i = i+1 ) { st[i] = new Student(); // not in Pascal (st[i]).name = (arg[i]).substring(0,(arg[i]).indexof(, )); (st[i]).egrad = Integer.parseInt( (arg[i]).substring((arg[i]).indexof(, )+1, (arg[i]).indexof(. ))); (st[i]).labs = (arg[i]).substring((arg[i]).indexof(. )+1);

8 static void makegrades(student [] st, Grade [] gr) { for (int i = 0; i < st.length; i = i+1 ) { gr[i] = new Grade(); // not in Pascal gr[i].name = new String (st[i].name); // newstring not in Pascal if ( (((st[i]).labs).equals("ggg")) && ((st[i]).egrad >= 3)) { gr[i].grade = st[i].egrad; else { gr[i].grade = -1; static void printgrades(grade [] gr) { for (int i = 0; i < gr.length; i = i+1 ) { if ((gr[i]).grade > 2) { System.out.println((gr[i]).name + " " + (gr[i]).grade); Primärminne stacken statiska heapen koden variabler student grade name egrad labs name grade main makestudent makegrades printgrades "metoder" dvs procedurer, alla static void lokala variabler, som finns när en viss procedur kör statiska variabler student grade med refererade variabler som skapas med new under körningen

9 Objektorienterade paradigmen: Objektorienterad Java: public class SlutbetygOO { // Java as an OO language // Objects of type Student has instance methods. static Student [] student; public static void main (String [] arg) { student = new Student [arg.length]; for (int i = 0; i < arg.length; i = i+1 ) { student[i] = new Student(arg[i]); if (student[i].ispassed()) { System.out.println(student[i].getName() + " " + student[i].getfinalgrade()); class Student { String name ; int egrad; // grade on examination String labs; // G is passed laboration, examples GGG, G_G boolean passed; // passed course public Student(String input) { name = input.substring(0,(input).indexof(, )); egrad = Integer.parseInt( input.substring(input.indexof(, )+1, input.indexof(. ))); labs =input.substring(input.indexof(. )+1); passed = (labs.equals("ggg")) && (egrad >= 3); public String getname() { return name; public int getfinalgrade() { if (passed) { return egrad; else { return -1; public boolean ispassed() { return passed;

10 Primärminne stacken statiska heapen statisk variabler kod student name egrad labs passed Student getname getfinalgrade ispassed main "metod" procedurer, static void lokala variabler, som finns när en viss procedur kör statisk variabel student med refererade variabler som skapas med new under körningen VARJE Student-objekt innehåller nu både "data" och (begreppsmässigt) metoder (kod) Varför är OO ett framsteg jämfört med traditionell imperativ programmering? Jo, antag att programmet skall generaliseras för flera olika sorters studenter, t ex teknologer som skall ha betyg och universitetsstudenter med betyg G VG och.. I den traditionella imperativa lösningen måste vi då på en massa ställen stoppa in if- eller case-satser eftersom metoderna skall fungera olika, olika sorters variabler skall finnas osv: if student == Teknolog... else if student == Universitetsstudent.. else if... Detta är jobbigt och svårt och måste i större program göras på en massa ställen varje gång vi anpassar programmet för ytterligare en ny sorts studenter. Med OO skriver vi en Student-super-klass som innehåller det som är gemensamt för alla sorters studenter, döper om vår gamla Student klass till Teknolog (som ärver nya Student) och en ny klass Universitetsstudent (som ärver nya Student) osv. De gamla programmet behöver inte ändras alls! För varje ny studentsort behöver vi bara skriva en ny sub-klass, som innehåller allt nytt på ett och samma ställe. Mycket bekvämt. Detta är finessen med arv och dynamisk bindning, dvs att alla gör en viss metod "på sitt sätt".

11 Funktionella paradigmen: Problemformulering : Skriv ett program slutbetyg :: [(String, Int,[Char])] -> [(String, Int)] som givet en lista av typ [(String, Int,[Char])] med personers namn, tentamensbetyg och labresultat retunerar slutbetyg för de personer som skall ha godkänt på kursen. Exempel : res = [("Per", 5, [ G, _, G ]), ("Siv", 5, [ G, G, G ]), ("Eva", 3, [ G, G, G ])]...> slutbetyg res [("Siv",5),("Eva",3)] Version a : Elementär Haskell utan användning några högre ordningens funktioner eller listomfattning. slutbetyg [] = [] slutbetyg ((namn, tenta, lablista):ntls) lablista == [ G, G, G ] && tenta >= 3 = (namn, tenta) : slutbetyg ntls otherwise = slutbetyg ntls Version b : Haskell med inbyggda funktionerna map och filter slutbetyg lista = map f (filter p lista) where f (namn, tenta, _ ) = (namn, tenta) p (_, tenta, lablista) = lablista == [ G, G, G ] && tenta >= 3 Version c : Haskell med listomfattning (hela programmet är på 1-2 rader!!) slutbetyg lista = [ (namn,tenta) (namn,tenta,[ G, G, G ])<- lista, tenta>=3] Logiska paradigmen: En Prolog -lösning : Exempel på körning : slutbetyg([r(per,5,[g,n,g]),r(siv,5,[g,g,g]),r(eva,3,[g,g,g])], Slubs). Slubs = [slutbetyg(siv,5),slutbetyg(eva,3)]? ; no. slutbetyg([], []). slutbetyg([r(namn, Tenta, [g, g, g]) Ntls ], [slutbetyg(namn, Tenta) Ntls1]) :- Tenta >=3, slutbetyg( Ntls, Ntls1). slutbetyg([r(_, _, Lablista) Ntls ], Ntls1) :- % Om man inte testar member(n, Lablista), % för underkänt får man slutbetyg( Ntls, Ntls1). % ytterligare felaktiga svar % vid backtracking -1 poäng slutbetyg([r(_, Tenta, _) Ntls ], Ntls1) :- % Ingen rekursion för underkända Tenta <3,slutbetyg( Ntls, Ntls1) % - 5 päng

Föreläsning 1 i Programmeringsparadigm

Föreläsning 1 i Programmeringsparadigm Föreläsning 1 i Programmeringsparadigm Programmeringsparadigm : Vad menas med programmeringsparadigm? I datalogi : föreskrift, en beskrivning av vad en dator skall göra. Två definitioner från Webster s

Läs mer

Föreläsning 1 i Programmeringsparadigm

Föreläsning 1 i Programmeringsparadigm Föreläsning 1 i Programmeringsparadigm Programmeringsparadigm : Vad menas med programmeringsparadigm? Webster s New World dictonary : paradigm n. [< Gr. para-, besides + deigma, example] 1. an example

Läs mer

Kursanalys för Programmeringsparadigm 2D1361, läsperiod 1 och 2 läsåret 2005/2006

Kursanalys för Programmeringsparadigm 2D1361, läsperiod 1 och 2 läsåret 2005/2006 Leif Kusoffsky 2005 - dec - 07 Nada KTH Kursanalys för Programmeringsparadigm 2D1361, läsperiod 1 och 2 läsåret 2005/2006 Kursdata Momentindelning Kursen genomförd Kursledare Kurslitteratur Antal studenter

Läs mer

Del : Paradigmer allmänt.

Del : Paradigmer allmänt. Nada Tentamensdag 2003 jan 13 Tentamen Programmeringsparadigm Skrivtid 5 h Antalet uppgifter : 1 (allmänt)+ 3 (Haskell) + 4 (Prolog) = 5p +(15p + 15p +20p) + (10p +12p + 15p +8p) = 5p + 50p + 45 p = 100p

Läs mer

Tentamen. Datalogi I, grundkurs med Java 10p, 2D4112, Lördagen den 30 november 2002 kl , salar E33, E34

Tentamen. Datalogi I, grundkurs med Java 10p, 2D4112, Lördagen den 30 november 2002 kl , salar E33, E34 Tentamen Datalogi I, grundkurs med Java 10p, 2D4112, 2002-2003 Lördagen den 30 november 2002 kl 9.00 14.00, salar E33, E34 Inga hjälpmedel 30 poäng ger säkert godkänt, 40 poäng ger betyg 4 50 poäng ger

Läs mer

Objektorienterade programmeringsspråk. Objektorienterade språk. Den objekt-orienterade modellen. Jämför med icke-oo

Objektorienterade programmeringsspråk. Objektorienterade språk. Den objekt-orienterade modellen. Jämför med icke-oo Objektorienterade språk Historik Simula 67 Smalltalk 80 Procedurorienterad programmering Subprogram Programbibliotek Dataorienterad programmering Abstrakta datatyper Objektbaserade språk, föregångare till

Läs mer

Programmering för språkteknologer II, HT2011. Rum

Programmering för språkteknologer II, HT2011. Rum Programmering för språkteknologer II, HT2011 evelina.andersson@lingfil.uu.se Rum 9-2035 http://stp.ling.uu.se/~evelina/uv/uv11/pst2/ Kursplan Mål Efter avslutad kurs skall studenten för att förtjäna betyget

Läs mer

Grundläggande programmering, STS 1, VT Sven Sandberg. Föreläsning 14

Grundläggande programmering, STS 1, VT Sven Sandberg. Föreläsning 14 Grundläggande programmering, STS 1, VT 2007. Sven Sandberg Föreläsning 14 I torsdags & fredags: arrayer Deklaration, initiering, åtkomst Arrayer är referenser Arrayer som parametrar och returvärden Exempel

Läs mer

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

ITK:P1 Föreläsning 1. Programmering. Programmeringsspråket Java. Stark typning Explicit typning Strukturerat Hög säkerhet ITK:P1 Föreläsning 1 Att programmera i språket Java DSV Peter Mozelius Programmering Olika typer av programmering som t ex: o Imperativ programmering (C, Pascal m fl) o Funktionell programmering (Lisp,

Läs mer

EDAA01 Programmeringsteknik - fördjupningskurs

EDAA01 Programmeringsteknik - fördjupningskurs EDAA01 Programmeringsteknik - fördjupningskurs Läsperiod lp 1+2 (Ges även lp 3) 7.5 hp anna.axelsson@cs.lth.se sandra.nilsson@cs.lth.se http://cs.lth.se/edaa01ht Förkunskapskrav: Godkänd på obligatoriska

Läs mer

Introduktion till Datalogi DD1339. Föreläsning 1 8 sept 2014

Introduktion till Datalogi DD1339. Föreläsning 1 8 sept 2014 Introduktion till Datalogi DD1339 Föreläsning 1 8 sept 2014 Kontaktuppgifter & Info: Kurskod: DD1339, 19hp Kursomgång: inda14 Kursansvarig: Christian Smith, ccs@kth.se Michael Minock, minock@kth.se Dilian

Läs mer

729G75: Programmering och algoritmiskt tänkande. Tema 1. Föreläsning 1 Jody Foo

729G75: Programmering och algoritmiskt tänkande. Tema 1. Föreläsning 1 Jody Foo 729G75: Programmering och algoritmiskt tänkande Tema 1. Föreläsning 1 Jody Foo Föreläsningsöversikt Kursinfo / Om kursen Algoritmer Objektorienterad programmering i praktiken terminologi använda objekt

Läs mer

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

Introduktion till programmering D0009E. Föreläsning 1: Programmets väg Introduktion till programmering D0009E Föreläsning 1: Programmets väg 1 Vad är en dator? En maskin vars beteende styrs av de innehållet (bitmönster) som finns lagrade i datorns minne (inte helt olikt förra

Läs mer

729G75: Programmering och algoritmiskt tänkande. Tema 1, föreläsning 1 Jody Foo

729G75: Programmering och algoritmiskt tänkande. Tema 1, föreläsning 1 Jody Foo 729G75: Programmering och algoritmiskt tänkande Tema 1, föreläsning 1 Jody Foo Föreläsningsöversikt Kursinfo / Om kursen Algoritmer Objektorienterad programmering i praktiken terminologi använda objekt

Läs mer

Tentamen ID1004 Objektorienterad programmering October 29, 2013

Tentamen ID1004 Objektorienterad programmering October 29, 2013 Tentamen för ID1004 Objektorienterad programmering (vilande kurs), 29 oktober 2013, 9-13 Denna tentamen examinerar 3.5 högskolepoäng av kursen. Inga hjälpmedel är tillåtna. Tentamen består av tre sektioner.

Läs mer

Tentamen. 2D4135 vt 2005 Objektorienterad programmering, design och analys med Java Lördagen den 28 maj 2005 kl 9.00 14.

Tentamen. 2D4135 vt 2005 Objektorienterad programmering, design och analys med Java Lördagen den 28 maj 2005 kl 9.00 14. Tentamen 2D4135 vt 2005 Objektorienterad programmering, design och analys med Java Lördagen den 28 maj 2005 kl 9.00 14.00, sal E33 Tentan har en teoridel och en problemdel. På teoridelen är inga hjälpmedel

Läs mer

729G06 Föreläsning 1 Objektorienterad programmering

729G06 Föreläsning 1 Objektorienterad programmering Översikt Formalia Vad är objektorienterad programmering 729G06 Föreläsning 1 Objektorienterad programmering Definieria klasser Skapa och använda objekt Annika Silvervarg Ciltab, IDA, Linköpings universitet

Läs mer

DD1361 Programmeringsparadigm Föreläsning 1: Intro

DD1361 Programmeringsparadigm Föreläsning 1: Intro DD1361 Programmeringsparadigm Föreläsning 1: Intro Per Austrin KTH 2015-08-31 https://www.kth.se/social/course/dd1361/ Dagens föreläsning Översikt om: 1. Ämnet 2. Lärarna 3. Kursformalia (betyg etc) Dagens

Läs mer

Objektorienterad programmering

Objektorienterad programmering Objektorienterad programmering Aletta Nylén http://user.it.uu.se/~aletta Epost: aletta.nylen@it.uu.se Rum: 1216 Kursinfo Lärare: Aletta Nylén Jesper Wilhelmsson Litteratur: Object-Oriented Software Development

Läs mer

Föreläsning 1 & 2 INTRODUKTION

Föreläsning 1 & 2 INTRODUKTION Föreläsning 1 & 2 INTRODUKTION Denna föreläsning Vad händer under kursen? praktisk information Kursens mål vad är programmering? Skriva små program i programspråket Java Skriva program som använder färdiga

Läs mer

Imperativ programmering

Imperativ programmering Imperativ programmering 1DL126 3p Imperativ programmering Jesper Wilhelmsson ICQ: 20328079 Yahoo: amigajoppe MSN / epost: jesperw@it.uu.se Rum: 1335 Tel: 471 1046 Imperativ programmering Vilka programmeringsspråk

Läs mer

Översikt. Programmering tillämpningar och datastrukturer. Vad kursen täcker. Lärare. Rekommenderad litteratur. Kursmål 729G58 (HKGBB7)

Översikt. Programmering tillämpningar och datastrukturer. Vad kursen täcker. Lärare. Rekommenderad litteratur. Kursmål 729G58 (HKGBB7) Översikt Programmering tillämpningar och datastrukturer 729G58 (HKGBB7) Kursinformation Objektorienterad programmering: Klasser och objekt Arv Polymorfism Metoder Programexempel Programmering tillämpningar

Läs mer

Föreläsning 3: Booleans, if, switch

Föreläsning 3: Booleans, if, switch TDA 545: Objektorienterad programmering Föreläsning 3: Booleans, if, switch Magnus Myréen Chalmers, läsperiod 1, 2015-2016 Påminnelse om klasser och objekt Boll boll1 = new Boll(5,12); skapar ett nytt

Läs mer

TDDC30. Kursledning Kursledare: Jonas Lindgren. Labassistent: Jonas Lindgren Labassistent: Niklas Holma Labassistent: Erik Nilsson

TDDC30. Kursledning Kursledare: Jonas Lindgren. Labassistent: Jonas Lindgren Labassistent: Niklas Holma Labassistent: Erik Nilsson TDDC30 Objektorienterad programmering i Java, datastrukturer och algoritmer. Föreläsning 1 Jonas Lindgren, Institutionen för Datavetenskap, LiU På denna föreläsning: Kursinformation Imperativa delen av

Läs mer

TDDE10 m.fl. Objektorienterad programmering i Java Föreläsning 6 Erik Nilsson, Institutionen för Datavetenskap, LiU

TDDE10 m.fl. Objektorienterad programmering i Java Föreläsning 6 Erik Nilsson, Institutionen för Datavetenskap, LiU TDDE10 m.fl. Objektorienterad programmering i Java Föreläsning 6 Erik Nilsson, Institutionen för Datavetenskap, LiU På denna föreläsning: Mer om Interface Generiska klasser Undantag Nästlade klasser 1

Läs mer

Introduktionsmöte Innehåll

Introduktionsmöte Innehåll Introduktionsmöte Innehåll Introduktion till kursen Kursens mål och innehåll Undervisning Datavetenskap (LTH) Introduktionsmöte ST 2019 1 / 14 EDAA01 Programmeringsteknik - fördjupningskurs Ingen sommarkurs

Läs mer

Del : Funktionell programmering. I alla deluppgifterna, använd Haskell och skriv typen för de identifierare du definierar.

Del : Funktionell programmering. I alla deluppgifterna, använd Haskell och skriv typen för de identifierare du definierar. Nada Tentamensdag 2004 aug 23 Tentamen Programmeringsparadigm Skrivtid 5 h Antalet uppgifter : 1 (allmänt)+ 4 (Haskell) + 4 (Prolog) = 10p +(5p + 20p +5p+ 20p) + (10p +12p + 8p +10p) = 10p + 50p + 40 p

Läs mer

Imperativ programmering. Föreläsning 2

Imperativ programmering. Föreläsning 2 Imperativ programmering 1DL126 3p Föreläsning 2 Imperativ programmering Kännetecken för imperativa språk: Programmet består av en serie instruktioner. Olika språk har olika uppsättningar av instruktioner.

Läs mer

Grundläggande programmering, STS 1, VT Sven Sandberg. Föreläsning 12

Grundläggande programmering, STS 1, VT Sven Sandberg. Föreläsning 12 Grundläggande programmering, STS 1, VT 2007. Sven Sandberg Föreläsning 12 I torsdags: Klassen TelefonKostnad Exemplifierar objektorienterad design, metoder, konstruktorer static Standardklassen Math Matematiska

Läs mer

Kurs-PM HI2011, Programutveckling i funktionella och objektorienterande spra k, P3 VT17

Kurs-PM HI2011, Programutveckling i funktionella och objektorienterande spra k, P3 VT17 Kurs-PM HI2011, Programutveckling i funktionella och objektorienterande spra k, P3 VT17 Bakgrund och kursmål Kursens mål är att ge kunskaper inom funktionell programmering, fördjupade kunskaper inom objektorienterad

Läs mer

Tentamen i Programmering

Tentamen i Programmering LUNDS TEKNISKA HÖGSKOLA 1(5) Institutionen för datavetenskap Tentamen i Programmering EDAA65/EDA501/EDAA20 M MD W BK L 2018 05 30, 8.00 13.00 Preliminärt ger uppgifterna 7 + 14 + 6 + 9 + 4 = 40 poäng.

Läs mer

Program & programmering

Program & programmering Program & programmering Vad är program? Satser och instruktioner, toggla igenom exempel Program på olika nivåer, för olika maskiner, för olika saker Tolka program; kompilator, intepretator, binärbytekod,

Läs mer

TDDC30. Objektorienterad programmering i Java, datastrukturer och algoritmer. Föreläsning 4 Erik Nilsson, Institutionen för Datavetenskap, LiU

TDDC30. Objektorienterad programmering i Java, datastrukturer och algoritmer. Föreläsning 4 Erik Nilsson, Institutionen för Datavetenskap, LiU TDDC30 Objektorienterad programmering i Java, datastrukturer och algoritmer. Föreläsning 4 Erik Nilsson, Institutionen för Datavetenskap, LiU På denna föreläsning: Interface Generiska klasser Undantag

Läs mer

Vad handlar kursen om? Algoritmer och datastrukturer. Vad handlar kursen om? Vad handlar kursen om?

Vad handlar kursen om? Algoritmer och datastrukturer. Vad handlar kursen om? Vad handlar kursen om? Algoritmer och datastrukturer Allmänt om kursen Kort javagrund repetition - Klasser, metoder, objekt och referensvariabler, - Hierarkiska klass strukturer - Arrayer och arrayer av objekt - Collection ramverket

Läs mer

Föreläsning 17 UTBLICK: FORTSÄTTNINGSKURSER I DATAVETENSKAP + ANDROID

Föreläsning 17 UTBLICK: FORTSÄTTNINGSKURSER I DATAVETENSKAP + ANDROID Föreläsning 17 UTBLICK: FORTSÄTTNINGSKURSER I DATAVETENSKAP + ANDROID Vad gör vi här? Programmeringsteknik fördjupningskurs (EDAA01; 7,5hp) Valfri för F, N & BME (kan läsas från åk 2 eller i sommar!) Avancerad

Läs mer

Föreläsning 8: Exempel och problemlösning

Föreläsning 8: Exempel och problemlösning TDA 545: Objektorienterad programmering Föreläsning 8: Exempel och problemlösning Magnus Myréen Chalmers, läsperiod 1, 2015-2016 De tre senaste föreläsningarna Läsanvisning: kap 2 & 13 meddelanden och

Läs mer

Objektorienterad Programmering (TDDC77)

Objektorienterad Programmering (TDDC77) Objektorienterad Programmering (TDDC77) Föreläsning I: kursinfo, att programmera datorer, första programmet Ahmed Rezine IDA, Linköpings Universitet Hösttermin 2015 Outline Hemsida Organization Examination

Läs mer

Lite om felhantering och Exceptions Mer om variabler och parametrar Fält (eng array) och klassen ArrayList.

Lite om felhantering och Exceptions Mer om variabler och parametrar Fält (eng array) och klassen ArrayList. Institutionen för Datavetenskap Göteborgs universitet HT2009 DIT011 Objektorienterad programvaruutveckling GU (DIT011) Föreläsning 3 Innehåll Lite om felhantering och Exceptions Mer om variabler och parametrar

Läs mer

Tentamen i Grundläggande programmering STS, åk 1 fredag

Tentamen i Grundläggande programmering STS, åk 1 fredag Tentamen i Grundläggande programmering STS, åk 1 fredag 2002-08-23 Skrivtid: 09.00 14.00 Hjälpmedel: Inga Lärare: Anders Berglund. Anders besöker tentan vid två tillfällen: cirka kl. 10.30 samt cirka kl.

Läs mer

DAT043 Objektorienterad Programmering

DAT043 Objektorienterad Programmering DAT043 Objektorienterad Programmering Detta är en exempeltenta som innehåller gamla tentauppgifter av ungefär liknande slag som ni kan förvänta er se på ordinarie tenta i Del 1 respektive Del 2. Dock är

Läs mer

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

Kompilering och exekvering. Föreläsning 1 Objektorienterad programmering DD1332. En kompilerbar och körbar java-kod. Kompilering och exekvering Föreläsning 1 Objektorienterad programmering DD1332 Introduktion till Java Kompilering, exekvering, variabler, styrstrukturer Kompilering och exekvering Ett program måste översättas till datorns språk

Läs mer

Välkomna till DIT012 IPGO. Tyvärr en bug i Google Docs: Sidnummer stämmer inte alltid. Alla anteckningar börjar på sidan 1.

Välkomna till DIT012 IPGO. Tyvärr en bug i Google Docs: Sidnummer stämmer inte alltid. Alla anteckningar börjar på sidan 1. Välkomna till DIT012 IPGO 1 Tyvärr en bug i Google Docs: Sidnummer stämmer inte alltid. Alla anteckningar börjar på sidan 1. Lärare och Handledare Kursansvariga, examinatorer, föreläsare och handledare

Läs mer

TDDD78, TDDE30, 729A Introduktion till Java -- för Pythonprogrammerare

TDDD78, TDDE30, 729A Introduktion till Java -- för Pythonprogrammerare TDDD78, TDDE30, 729A85 jonas.kvarnstrom@liu.se 2019 Introduktion till Java -- för Pythonprogrammerare Historia: C, C++ 3 Historia: Oak 1 4 1990: Sun Microsystems påbörjade projekt StarSeven Avancerad

Läs mer

Datavetenskapligt program, 180 högskolepoäng

Datavetenskapligt program, 180 högskolepoäng GÖTEBORGS UNIVERSITET UTBILDNINGSPLAN IT-fakultetsstyrelsen 2013-02-14 Datavetenskapligt program, 180 högskolepoäng (Computer Science, Bachelor s Programme, 180 credits) Grundnivå/First level 1. Fastställande

Läs mer

Tentamen i Grundläggande programmering STS, åk 1 fredag

Tentamen i Grundläggande programmering STS, åk 1 fredag Tentamen i Grundläggande programmering STS, åk 1 fredag 2003-05-23 Skrivtid: 09.00 14.00 Hjälpmedel: Inga Lärare: Anders Berglund. Anders besöker tentan vid två tillfällen: cirka kl. 10.30 samt cirka kl.

Läs mer

Objektorientering. Objekt och metoder. Objektorientering. Viktiga begrepp. Klass. Objekt. Deklarativ programmering

Objektorientering. Objekt och metoder. Objektorientering. Viktiga begrepp. Klass. Objekt. Deklarativ programmering och metoder Introduktion till objektorienterad programmering Markus Saers markus.saers@lingfil.uu.se orientering Deklarativ programmering Beskriver förutsättningarna för något Prolog Imperativ programmering

Läs mer

TDDE10 TDDE11, 725G90. Objektorienterad programmering i Java, Föreläsning 3 Erik Nilsson, Institutionen för Datavetenskap, LiU

TDDE10 TDDE11, 725G90. Objektorienterad programmering i Java, Föreläsning 3 Erik Nilsson, Institutionen för Datavetenskap, LiU TDDE10 TDDE11, 725G90 Objektorienterad programmering i Java, Föreläsning 3 Erik Nilsson, Institutionen för Datavetenskap, LiU På denna föreläsning: Arv Polymorf UML (klassdiagram) 1 Arv Möt tre studenter

Läs mer

Tentamen i Grundläggande programmering STS, åk 1 lördag 2002-05-25

Tentamen i Grundläggande programmering STS, åk 1 lördag 2002-05-25 Tentamen i Grundläggande programmering STS, åk 1 lördag 2002-0-2 Skrivtid: 09.00 14.00 Hjälpmedel: Inga Lärare: Anders Berglund. Elena Fersman besöker tentan vid två tillfällen: cirka kl. 10.30 samt cirka

Läs mer

Algoritmer. Två gränssnitt

Algoritmer. Två gränssnitt Objektorienterad programmering E Algoritmer Sökning Linjär sökning Binär sökning Tidsuppskattningar Sortering Insättningssortering Föreläsning 9 Vad behöver en programmerare kunna? (Minst) ett programspråk;

Läs mer

OMTENTAMEN I PROGRAMSPRÅK -- DVG C kl. 08:15-13: 15

OMTENTAMEN I PROGRAMSPRÅK -- DVG C kl. 08:15-13: 15 OMTENTAMEN I PROGRAMSPRÅK -- DVG C01 130823 kl. 08:15-13: 15 Ansvarig Lärare: Donald F. Ross Hjälpmedel: Bilaga A: BNF-definition Betygsgräns: Kurs: Max 60p, Med beröm godkänd 50p, Icke utan beröm godkänd

Läs mer

Föreläsning 2 Objektorienterad programmering DD1332. Typomvandling

Föreläsning 2 Objektorienterad programmering DD1332. Typomvandling metoder Föreläsning 2 Objektorienterad programmering DD1332 Array [modifierare] String metodnamn (String parameter) Returtyp (utdata typ) i detta fall String Indata typ i detta fall String 1 De får man

Läs mer

Software Technology. Josef Svenningsson

Software Technology. Josef Svenningsson Software Technology Josef Svenningsson Software Technology Software Technology Området Software Technology handlar i mångt och mycket om följande frågeställning: Hur designar man programmeringsspråk för

Läs mer

2I1049 Föreläsning 5. Objektorientering. Objektorientering. Klasserna ordnas i en hierarki som motsvarar deras inbördes ordning

2I1049 Föreläsning 5. Objektorientering. Objektorientering. Klasserna ordnas i en hierarki som motsvarar deras inbördes ordning 2I1049 Föreläsning 5 Objektorienterad programmering i Java KTH-MI Peter Mozelius Objektorientering Världar uppbyggda av objekt Inte helt olikt vår egen värld Ett sätt att modularisera våra system Objekten

Läs mer

OOP Tenta

OOP Tenta Stockholms universitet sid 1 OOP OOP Tenta 2012-01-14 10.00 15.00 Avser kurserna DSK1:OOP och GES:OOP Anvisningar Påbörja varje ny uppgift på nytt blad. Skriv endast på ena sidan av bladen. Skriv tydligt

Läs mer

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

Vem är vem på kursen. Objektorienterad programvaruutveckling GU (DIT011) Kursbok Cay Horstmann: Big Java 3rd edition. Institutionen för Datavetenskap Göteborgs universitet HT2009 DIT011 Vem är vem på kursen Objektorienterad programvaruutveckling GU (DIT011) Kursansvarig : Katarina Blom, tel 772 10 60 Rum: 6126 (E-huset)

Läs mer

Tentamen. DD2385 Programutvecklingsteknik vt 2013 Onsdagen den 22 maj 2013 kl Hjälpmedel: penna, suddgummi, linjal

Tentamen. DD2385 Programutvecklingsteknik vt 2013 Onsdagen den 22 maj 2013 kl Hjälpmedel: penna, suddgummi, linjal Tentamen DD2385 Programutvecklingsteknik vt 2013 Onsdagen den 22 maj 2013 kl 14.00 17.00 Hjälpmedel: penna, suddgummi, linjal Tentan har två delar om vardera 30 poäng Maximala betygsgränser (gränserna

Läs mer

Kursplanering Objektorienterad programmering

Kursplanering Objektorienterad programmering Kursplanering Objektorienterad programmering Fakta Ämne Programmering Poäng 40 Yh-poäng Kurskod YSYS-OOP Klass Systemutvecklare.NET 2 Syfte och koppling till yrkesrollen Syftet är att få en stabil grund

Läs mer

Föreläsning 5 i programmeringsparadigm.

Föreläsning 5 i programmeringsparadigm. Föreläsning 5 i programmeringsparadigm. λ-notation (lamda-notation, anonyma funktioner). Hutton 4.5. (Fokker 2.3.4.) Vi kan om vi vill definiera hjälpkonstanter, t ex i denna funktiondefinition : kommunalskatt

Läs mer

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

Föreläsning 1: Intro till kursen och programmering 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

Läs mer

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

Föreläsning 1: Intro till kursen och programmering 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

Läs mer

Introduktion till objektorientering. Vad är objektorientering egentligen? Hur relaterar det till datatyper? Hur relaterar det till verkligheten?

Introduktion till objektorientering. Vad är objektorientering egentligen? Hur relaterar det till datatyper? Hur relaterar det till verkligheten? Introduktion till objektorientering Vad är objektorientering egentligen? Hur relaterar det till datatyper? Hur relaterar det till verkligheten? TDDD78, TDDE30, jonas.kvarnstrom@liu.se 729A85 jonas.kvarnstrom@liu.se

Läs mer

PROGRAMMERING. Ämnets syfte. Kurser i ämnet

PROGRAMMERING. Ämnets syfte. Kurser i ämnet PROGRAMMERING Ämnet programmering behandlar programmeringens roll i informationstekniska sammanhang som datorsimulering, animerad grafik, praktisk datoriserad problemlösning och användaranpassad konfiguration

Läs mer

Programmering A. Johan Eliasson johane@cs.umu.se

Programmering A. Johan Eliasson johane@cs.umu.se Programmering A Johan Eliasson johane@cs.umu.se 1 Jag Undervisar mest grundläggande programmering på Institutionen för datavetensakap Applikationsutveckling för iphone Applikationsutveckling i Java Datastrukturer

Läs mer

Arv. Objektorienterad och komponentbaserad programmering

Arv. Objektorienterad och komponentbaserad programmering Arv Objektorienterad och komponentbaserad programmering Arv Regel nr 1: Ett objektorienterat språk ska tillåta inkapsling av data Regel nr 2: Ett objektorienterat språk ska tillåta arv Regel nr 3: Ett

Läs mer

Tentamen i TDP004 Objektorienterad Programmering Lösningsförslag

Tentamen i TDP004 Objektorienterad Programmering Lösningsförslag Tentamen i TDP004 Objektorienterad Programmering Lösningsförslag Datum: 2008-08-14 Tid: 08-12 Plats: PC6-PC7 i E-huset. Jour: Per-Magnus Olsson, tel 285607 Jourhavande kommer att besöka skrivsalarna varje

Läs mer

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

EDAA20 Programmering och databaser. Mål komprimerat se kursplanen för detaljer. Checklista. Föreläsning 1-2 Innehåll. Programmering. EDAA20 Programmering och databaser Mål komprimerat se kursplanen för detaljer Läsperiod 1 7.5 hp anna.aelsson@cs.lth.se http://cs.lth.se/edaa20 Mer information finns på kursens webbsida samt på det utdelade

Läs mer

DD1361 Programmeringsparadigm Föreläsning 1: Intro

DD1361 Programmeringsparadigm Föreläsning 1: Intro DD1361 Programmeringsparadigm Föreläsning 1: Intro Per Austrin KTH 2016-08-30 https://www.kth.se/social/course/dd1361/ Dagens föreläsning Översikt om: 1. Ämnet 2. Lärarna 3. Kursformalia (betyg etc) Dagens

Läs mer

TDDE10 m.fl. Objektorienterad programmering i Java Föreläsning 6 Erik Nilsson, Institutionen för Datavetenskap, LiU

TDDE10 m.fl. Objektorienterad programmering i Java Föreläsning 6 Erik Nilsson, Institutionen för Datavetenskap, LiU TDDE10 m.fl. Objektorienterad programmering i Java Föreläsning 6 Erik Nilsson, Institutionen för Datavetenskap, LiU På denna föreläsning Generiska klasser Undantag Interface Nästlade klasser 1 Problem:

Läs mer

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

Programmering för språkteknologer I, VT2012. Rum Programmering för språkteknologer I, VT2012 evelina.andersson@lingfil.uu.se Rum 9-2035 http://stp.lingfil.uu.se/~evelina/uv/uv12/pst1/ Idag - Kursplan - Börja programmera - Lokala variabler - aritmetiska

Läs mer

TDDC30. Objektorienterad programmering i Java, datastrukturer och algoritmer. Föreläsning 3 Jonas Lindgren, Institutionen för Datavetenskap, LiU

TDDC30. Objektorienterad programmering i Java, datastrukturer och algoritmer. Föreläsning 3 Jonas Lindgren, Institutionen för Datavetenskap, LiU TDDC30 Objektorienterad programmering i Java, datastrukturer och algoritmer. Föreläsning 3 Jonas Lindgren, Institutionen för Datavetenskap, LiU På denna föreläsning: Abstrakta datatyper Listor Stackar

Läs mer

Hitta k största bland n element. Föreläsning 13 Innehåll. Histogramproblemet

Hitta k största bland n element. Föreläsning 13 Innehåll. Histogramproblemet Föreläsning 13 Innehåll Algoritm 1: Sortera Exempel på problem där materialet i kursen används Histogramproblemet Schemaläggning Abstrakta datatyper Datastrukturer Att jämföra objekt Om tentamen Skriftlig

Läs mer

Objektorienterad programmering i Java, datastrukturer och algoritmer. Föreläsning 4 Jonas Lindgren, Institutionen för Datavetenskap, LiU

Objektorienterad programmering i Java, datastrukturer och algoritmer. Föreläsning 4 Jonas Lindgren, Institutionen för Datavetenskap, LiU TDDC30 Objektorienterad programmering i Java, datastrukturer och algoritmer. Föreläsning 4 Jonas Lindgren, Institutionen för Datavetenskap, LiU På denna föreläsning: Interface Generiska klasser Undantag

Läs mer

Programmeringsteknik II

Programmeringsteknik II Programmeringteknik II Kursintroduktion http://www.it.uu.se/edu/course/homepage/prog2/vt18/ 2018-03-19 Programmeringsteknik II 2018-03-19 1 / 9 Lärare Carl Nettelblad (kursansvarig) Anna Eckerdal Biträdande

Läs mer

Outline. Objektorienterad Programmering (TDDC77) En frukt har ett namn. Man kan lägga en frukt i en korg... Hashing. Undantag. Ahmed Rezine.

Outline. Objektorienterad Programmering (TDDC77) En frukt har ett namn. Man kan lägga en frukt i en korg... Hashing. Undantag. Ahmed Rezine. Outline Objektorienterad Programmering (TDDC77) Föreläsning XIV: Undantag, Design Ahmed Rezine IDA, Linköpings Universitet Undantag Design Hösttermin 2017 En frukt har ett namn Man kan lägga en frukt i

Läs mer

Objektorienterad Programmering (TDDC77)

Objektorienterad Programmering (TDDC77) Objektorienterad Programmering (TDDC77) Föreläsning XIV: Undantag, Design Ahmed Rezine IDA, Linköpings Universitet Hösttermin 2017 Outline Hashing Undantag Design Outline Hashing Undantag Design En frukt

Läs mer

Objektorienterad programmering E. Algoritmer. Telefonboken, påminnelse (och litet tillägg), 1. Telefonboken, påminnelse (och litet tillägg), 2

Objektorienterad programmering E. Algoritmer. Telefonboken, påminnelse (och litet tillägg), 1. Telefonboken, påminnelse (och litet tillägg), 2 Objektorienterad programmering E Algoritmer Linjär sökning Binär sökning Tidsuppskattningar Föreläsning 9 Vad behöver en programmerare kunna? (Minst) ett programspråk; dess syntax och semantik, bibliotek

Läs mer

TDDC30. Objektorienterad programmering i Java, datastrukturer och algoritmer. Föreläsning 1 Jonas Lindgren, Institutionen för Datavetenskap, LiU

TDDC30. Objektorienterad programmering i Java, datastrukturer och algoritmer. Föreläsning 1 Jonas Lindgren, Institutionen för Datavetenskap, LiU TDDC30 Objektorienterad programmering i Java, datastrukturer och algoritmer. Föreläsning 1 Jonas Lindgren, Institutionen för Datavetenskap, LiU På denna föreläsning: Kursinformation Imperativa delen av

Läs mer

Föreläsning 8 - del 2: Objektorienterad programmering - avancerat

Föreläsning 8 - del 2: Objektorienterad programmering - avancerat Föreläsning 8 - del 2: Objektorienterad programmering - avancerat Johan Falkenjack johan.falkenjack@liu.se Linköpings universitet Sweden December 4, 2013 1 Innehåll Arv och andra viktiga begrepp Abstrakta

Läs mer

DIAGNOSTISKT PROV. Tid. Hjälpmedel. Antaganden. Rättning. Övrigt. Diagnostiskt Prov. Klockan Inga

DIAGNOSTISKT PROV. Tid. Hjälpmedel. Antaganden. Rättning. Övrigt. Diagnostiskt Prov. Klockan Inga 203-03-9 203-03-9 DIAGNOSTISKT PROV Tid Klockan 09.00-2.00 Hjälpmedel Inga Antaganden Om förutsättningar saknas I en uppgift skall rimliga antaganden göras och nedtecknas. Rättning Tentamen omfattar 6

Läs mer

Grundkurs i programmering, 6 hp (725G61) Dugga 2 tillfälle 2

Grundkurs i programmering, 6 hp (725G61) Dugga 2 tillfälle 2 AID-nummer: Datum: 2014-12-18 Kurskod: 725G61 Provkod: LAB1 Grundkurs i programmering, 6 hp (725G61) Dugga 2 tillfälle 2 Skrivningstid: 2014-12-18 klockan 8.00-10.00. Hjälpmedel: Inga. För varje fråga

Läs mer

String [] argv. Dagens Agenda. Mer om arrayer. Mer om arrayer forts. String [] argv. argv är variabelnamnet. Arrayer och Strängar fortsättning

String [] argv. Dagens Agenda. Mer om arrayer. Mer om arrayer forts. String [] argv. argv är variabelnamnet. Arrayer och Strängar fortsättning Dagens Agenda String [] argv String [] argv Arrayer och Strängar fortsättning Booleska operatorer if, for, while satser Introduktion till algoritmer public static void main(string [] argv) argv är variabelnamnet

Läs mer

Command line argumenter. Objektorienterad Programmering (TDDC77) Vad blir resultatet? Nu då? Ahmed Rezine. Hösttermin 2016

Command line argumenter. Objektorienterad Programmering (TDDC77) Vad blir resultatet? Nu då? Ahmed Rezine. Hösttermin 2016 Command line argumenter Objektorienterad Programmering (TDDC77) Föreläsning VI: eclipse, felsökning, felhantering Ahmed Rezine IDA, Linköpings Universitet Hösttermin 2016 /* Cla. java * Programmet illustrerar

Läs mer

Objektorienterad Programmering (TDDC77)

Objektorienterad Programmering (TDDC77) Objektorienterad Programmering (TDDC77) Föreläsning VI: eclipse, felsökning, felhantering Ahmed Rezine IDA, Linköpings Universitet Hösttermin 2016 Outline Felhantering Eclipse Felsökning Command line argumenter

Läs mer

Programmering för språkteknologer II, HT2014. evelina.andersson@lingfil.uu.se Rum 9-2035 http://stp.ling.uu.se/~evelina/uv/uv14/pst2/

Programmering för språkteknologer II, HT2014. evelina.andersson@lingfil.uu.se Rum 9-2035 http://stp.ling.uu.se/~evelina/uv/uv14/pst2/ Programmering för språkteknologer II, HT2014 Avancerad programmering för språkteknologer, HT2014 evelina.andersson@lingfil.uu.se Rum 9-2035 http://stp.ling.uu.se/~evelina/uv/uv14/pst2/ Idag - Hashtabeller

Läs mer

Introduktion till programmering. Programspråk och paradigmer

Introduktion till programmering. Programspråk och paradigmer Introduktion till programmering Programspråk och paradigmer Vad är ett programspråk? Aprogramming languageis a formal constructedlanguagedesigned to communicate instructions to a machine, particularly

Läs mer

Typkonvertering. Java versus C

Typkonvertering. Java versus C Typer Objektorienterad programmering E Typkonvertering Typkonvertering Satser: while, for, if Objekt Föreläsning 2 Implicit konvertering Antag att vi i ett program deklarerat int n=3; double x = 5.2; Då

Läs mer

Högskolan Dalarna sid 1 av 7 DI-institutionen Hans-Edy Mårtensson Sten Sundin

Högskolan Dalarna sid 1 av 7 DI-institutionen Hans-Edy Mårtensson Sten Sundin Högskolan Dalarna sid 1 av 7 DI-institutionen Hans-Edy Mårtensson Sten Sundin TENTAMEN I IKB007 INTERNETPROGRAMMERING MED JAVA, 5p för SY2 2001-03-16, kl 14.00-18.00 Hjälpmedel: Inga hjälpmedel är tillåtna

Läs mer

Föreläsning 6: Metoder och fält (arrays)

Föreläsning 6: Metoder och fält (arrays) TDA 545: Objektorienterad programmering Föreläsning 6: Metoder och fält (arrays) Magnus Myréen Chalmers, läsperiod 1, 2015-2016 I (föregående och) denna föreläsning Läsanvisning: kap 2 & 13 meddelanden

Läs mer

TENTAMEN I PROGRAMSPRÅK -- DVG C kl. 08:15-13:15

TENTAMEN I PROGRAMSPRÅK -- DVG C kl. 08:15-13:15 TENTAMEN I PROGRAMSPRÅK -- DVG C01 140605 kl. 08:15-13:15 Ansvarig Lärare: Donald F. Ross Hjälpmedel: Bilaga A: BNF-definition Betygsgräns: Kurs: Max 60p, Med beröm godkänd 50p, Icke utan beröm godkänd

Läs mer

Kurs-PM fo r HI1027, Objektorienterad programmering, period 1 HT15

Kurs-PM fo r HI1027, Objektorienterad programmering, period 1 HT15 Kurs-PM fo r HI1027, Objektorienterad programmering, period 1 HT15 Aktuell kursplan finns på studentwebben, http://www.kth.se/student/kurser/kurs/hi1027. Lärare och examinator Anders Lindström, anders.lindstrom@sth.kth.se,

Läs mer

Objektorienterad programmering, analys och design med Java, 5p 2D4135, vt 2004. Kursprogram

Objektorienterad programmering, analys och design med Java, 5p 2D4135, vt 2004. Kursprogram Objektorienterad programmering, analys och design med Java, 5p 2D4135, vt 2004 Kursprogram Kursens mål är att ge dig kunskaper om begreppen och principerna inom objektorienterad programmering och design

Läs mer

Tentamen, EDA501/EDAA20 Programmering M MD W BK L

Tentamen, EDA501/EDAA20 Programmering M MD W BK L LUNDS TEKNISKA HÖGSKOLA 1(6) Institutionen för datavetenskap Tentamen, EDA501/EDAA20 Programmering M MD W BK L 2017 05 31, 8.00 13.00 Anvisningar: Preliminärt ger uppgifterna 9 + 12 + 10 + 9 = 40 poäng.

Läs mer

Bakgrund och motivation. Definition av algoritmer Beskrivningssätt Algoritmanalys. Algoritmer. Lars Larsson VT 2007. Lars Larsson Algoritmer 1

Bakgrund och motivation. Definition av algoritmer Beskrivningssätt Algoritmanalys. Algoritmer. Lars Larsson VT 2007. Lars Larsson Algoritmer 1 Algoritmer Lars Larsson VT 2007 Lars Larsson Algoritmer 1 1 2 3 4 5 Lars Larsson Algoritmer 2 Ni som går denna kurs är framtidens projektledare inom mjukvaruutveckling. Som ledare måste ni göra svåra beslut

Läs mer

Föreläsning REPETITION & EXTENTA

Föreläsning REPETITION & EXTENTA Föreläsning 18 19 REPETITION & EXTENTA Programmeringsteknik på 45 minuter Klasser och objekt Variabler: attribut, lokala variabler, parametrar Datastrukturer Algoritmer Dessa bilder är inte repetitionsbilder

Läs mer

Objektorienterad programmering

Objektorienterad programmering 1(5) Objektorienterad programmering och Java Programkurs 7 hp Object Oriented Programming and Java TDDE30 Gäller från: 2018 VT Fastställd av Programnämnden för data- och medieteknik, DM Fastställandedatum

Läs mer

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

Föreläsning 2 Programmeringsteknik och C DD1316. Programmering. Programspråk Föreläsning 2 steknik och C DD1316 python introduktion Variabler Datatyp Aritmetiska operatorer av typer Reserverade ord logiska operatorer If-sats kommentarer betyder att instruera en dator Ett program

Läs mer

UML. Klassdiagr. Abstraktion. Relationer. Överskugg. Överlagr. Aktivitetsdiagram Typomv. Typomv. Klassdiagr. Abstraktion. Relationer.

UML. Klassdiagr. Abstraktion. Relationer. Överskugg. Överlagr. Aktivitetsdiagram Typomv. Typomv. Klassdiagr. Abstraktion. Relationer. Översikt Klasshierarkier UML klassdiagram Relation mellan klasser mellan klasser och objekt Association ning ing andling Programmering tillämpningar och datastrukturer 2 UML UML Unified Modeling Language

Läs mer

DI-institutionen Sid 1 av 6 Hans-Edy Mårtensson Sten Sundin

DI-institutionen Sid 1 av 6 Hans-Edy Mårtensson Sten Sundin DI-institutionen Sid 1 av 6 Hans-Edy Mårtensson Sten Sundin TENTAMEN I IKB007 INTERNETPROGRAMMERING MED JAVA för SY2 1999-03-17, kl 14.00-18.00 Hjälpmedel: En lärobok i Java programmering Återlämningstillfälle:

Läs mer

Objektorienterad Programmering (TDDC77)

Objektorienterad Programmering (TDDC77) Objektorienterad Programmering (TDDC77) Föreläsning X: Klass diagram, inkapsling, arv Ahmed Rezine IDA, Linköpings Universitet Hösttermin 2016 Outline Introduktion HT2 Åtkomst Abstrakt datatyp UML Överlagring

Läs mer

Malmö högskola 2007/2008 Teknik och samhälle

Malmö högskola 2007/2008 Teknik och samhälle Laboration 8 Avsikten med denna laboration är att du lära dig skapa objekt med hjälp av klasser. Detta är en introduktion till ett objektorienterat tankesätt. Med hjälp av detta tankesätt kan du så småningom

Läs mer