Forelæsning Uge 15. Design af applikationer Designmønstre Computerspil 5 Exceptions og filhåndtering

Størrelse: px
Starte visningen fra side:

Download "Forelæsning Uge 15. Design af applikationer Designmønstre Computerspil 5 Exceptions og filhåndtering"

Transkript

1 Forelæsning Uge 15 Design af applikationer Designmønstre Computerspil 5 Exceptions og filhåndtering Mundtlig eksamen Kursusevaluering Fraktaler og Mandelbrotmængden Smukke computergenererede billeder

2 Design af applikationer I dette kursus har vi primært beskæftiget og med, hvordan man laver gode klasser Skal være lette at bruge, forstå og vedligeholde I alle vores eksempler har vi på forhånd vidst, hvilke klasser der skulle være i vores system Men sådan er det selvfølgelig ikke i virkeligheden De faser, hvor systemets overordnede opbygning fastlægges kaldes analyse og design I analysefasen undersøger vi det kommende system I design fasen fastlægger vi dets arkitektur dvs. hvilke klasser, der skal være, og hvordan de interagerer med hinanden Stort og komplekst problemområde Vi vil kun se på nogle af de helt grundlæggende principper og teknikker I store systemudviklingsprojekter bruger man mere tid på analyse og design end man bruger på implementation Tid brugt på omhyggelig analyse og godt design, spares (mange gange), når man senere skal programmere, afteste og vedligeholde systemet 2

3 Navneord og udsagnsord For små systemer kan det være en hjælp at gennemse tekstuelle beskrivelser af systemet Navneord vil så ofte svare til klasser og objekter (eller feltvariabler) Tilsvarende vil udsagnsord svare til interaktion mellem objekter, dvs. metoder Eksempel: Reservationssystem til biograf Navneord Udsagnsord The cinema booking system should store seat seat bookings for for multiple theaters. Each Each theater has seats arranged in rows. Customers can reserve seats and are given a a row number and seat number. They may request bookings of of several adjoining seats. Each booking is for a particular show (i.e., the screening of a given movieat at a certain time). Shows are at an assigned date and time, and scheduled in a theater where they are screened. The system stores the customer s phone number. The cinema booking system should store seat bookings for multiple theaters. Each theater has seats arranged in rows. Customers can reserve seats and are given a row number and seat number. They may request bookings of several adjoining seats. Each booking is for a particular show (i.e., the screening of a given movie at a certain time). Shows are at an assigned date and time, and scheduled in a theater where they are screened. The system stores the customer s phone number. 3

4 Klasser og metoder Klasser og metoder Simple typer Cinema booking system stores (seat bookings) stores (phone numbers) Movie Time Date Theater has (seats) Customer reserves (seats) is given (row number, seat number) requests (seat booking) Seat number Row number Phone number Show is scheduled (in theater) Teknikken er forbavsende effektiv Hjælper os til at komme i gang Vi kan så lave justeringer og tilpasninger undervejs 4

5 Ansvarsområder og samarbejdspartnere Næste skridt er at identificere de enkelte klassers ansvarsområder og samarbejdspartnere Til dette formål bruges såkaldte CRC-kort, hvor vi har et kort for hver klasse (CRC Class + Responsibilities + Collaborators) Klassens samarbejdspartnere (de klasser den interagerer med) Klassens navn Klassens ansvarsområder (bliver til metoder) CinemaBookingSystem Can find shows by title and day Stores collection of shows Retrieves/displays show details... Collaborators Show Collection CRC-kortene laves ved at gennemgå en række scenarier dvs. eksempler på handlingssekvenser, der kan forekomme i systemet Reservation af plads til "Godfarther i aften" 5 pladser ved siden af hinanden Oplysning om, hvilke pladser en kunde har reserveret Tilføjelse af 2 ekstra pladser til eksisterende reservation Afbestilling, osv. Se Taxi Company eksemplet i kapitel 16 5

6 Designmønstre Tidligere i kurset er vi stødt på algoritmeskabeloner De hjalp os til hurtigt at kunne programmere metoder for diverse søgninger, ved at genbruge eksisterende mønstre fastlagt i skabelonerne Ideen i designmønstre (design patterns) er den samme Men nu arbejder vi ikke på enkelte metoder Et designmønster beskriver, hvordan et antal klasser arbejder sammen om at løse et komplekst problem Beskrivelsen af et designmønster består af Mønsterets navn Beskrivelse af problemet Beskrivelse af løsning ofte i form af et UML klassediagram Konsekvenser dvs. fordele og ulemper ved at anvende mønsteret 6

7 Anvendelse af desingmønstre Designmønstre anviser gode løsninger på problemer, der er så generelle, at vi støder på dem igen og igen Vi genbruger ikke specifik Java kode, men mønsteret, dvs. idéen om, hvordan klasserne arbejder sammen om at løse det givne problem Designmønstre giver os desuden et fagsprog, hvormed vi kan beskrive vores design Hvis en udvikler, f.eks. siger: "Her bør vi bruge en Singleton" vil de andre systemudviklere straks vide, hvad han mener Singleton er nemlig navnet på et meget kendt og udbredt designmønster (som vi skal stifte nærmere bekendtskab med om et øjeblik) Designmønstre blev for alvor kendt via bogen "Design Patterns: Elements of Reusable Object-Oriented Software" fra 1995 Den beskriver ca. 50 forskellige designmønstre En god software designer vil kende (og bruge) mange af disse Prøv at Google "design pattern" 7

8 Singleton mønsteret Problemet Vi har en klasse, hvor vi ønsker, at der kun skal kunne instansieres et enkelt objekt som mange forskellige har adgang til Løsningen Erklær en klassevariabel, som peger på et objekt af den ønskede type Erklær en klassemetode, som returnerer ovenstående objekt Klassens konstruktør er private, og dermed kan der ikke skabes andre objekter end det, som klassevariablen peget på Eksempel World-of-zuul objektet har én parser til inputtekst Klassevariabel, som peger på objekt af den ønskede type Klassemetode, som returnerer objektet Konstruktøren er private public class Parser { private static Parser instance = new Parser(); } public static Parser getinstance() { return instance; } private Parser() {... } I Skildpadde opgaverne var Canvas objektet implementeret via Singleton mønsteret 8

9 Decorator mønsteret Problemet Vi ønsker at udvide funktionaliteten af en eksisterende klasse uden at ændre dens interface (eksisterende metoder) Løsningen Der laves en ny klasse, der set fra brugerens synspunkt, erstatter den gamle Kald af en metode i et objekt af den nye klasse sendes videre til et objekt af den gamle klasse. Herudover udføres, der eventuelt noget ekstra (dekorationen) Eksempel BufferedReader har de samme metoder som FileReader, men tilføjer en metode til at læse en hel linje ad gangen Ethvert BufferedReader objekt "indeholder" et FileReader objekt, som alle metodekald sendes videre til BufferedReader in = new BufferedReader(new FileReader("System.in")); 9

10 Decorator mønsteret (fortsat) Andet eksempel Klassen JScrollPane kan forsyne et vilkårligt Component objekt (i en GUI) med scrollbarer For et JTextArea objekt gøres dette som følger JTextArea area = new JTetxArea(10, 25); JScrollPane scrollarea = new JScrollPane(area); UML diagram JScrollPane objektet "indeholder" det oprindelige Component objekt JScrollPane objektet er selv et Component objekt og kan derfor bruges i stedet for det oprindelige projekt Component 1 Rombeformet pilehoved angiver, at et objekt "indeholder" andre objekter JScroolPane objektet indeholder ét Component objekt JTextArea JScrollPane Gamle klasse Nye klasse 10

11 Factory method mønsteret Problemet Vi ønsker et interface med en factory metode, der kan skabe nye objekter Typen på de skabte objekter, afhænger af typen på det objekt, der kalder factory metoden Eksempel Alle Collection typer har en iterator metode, der returnerer en iterator for den pågældende Collection type public void process(colletion<type> coll) { Iterator<Type> it = coll.iterator();... } Andet eksempel factory metode Returnerer en iterator Iteratorens type afhænger af typen på objektsamlingen coll I kapitel 12 skabte vi et antal ræve og et antal kaniner Vi kan definere et ActorFactory interface og tilhørende klasser FoxFactory og RabbitFactory, som implementerer interfacet (en klasse for hver Actor) Simulator objektet gemmer en liste af ActorFactory objekter, og kan bede disse om at skabe et antal objekter 11

12 Observer mønsteret Problemet Vi ønsker at adskille et systems interne operationer og tilstand fra dets repræsentation på skærmen (model/view separation) Dette vil gøre det lettere, at tilknytte flere forskellige repræsentationer Observatørerne gemmer intet om systemets tilstand. Denne information får de fra modellen 2-dimensional grid Tre forskellige Observers observatører Funktioner af tid Søjlediagram Rabbits Foxes Empty Model 12

13 Observer mønsteret (fortsat) Løsningen Den abstrakte klasse Observable har en attach metode, som tillader de forskellige observatører at tilmelde sig <<abstract>> Observable attach(observer) detach(observer) notify() <<abstract>> Observer update() Model getstate() ModelView update() Når modellens tilstand ændres, kalder Model klassen den nedarvede notify metode fra Observable klassen Kaldet af notify metoden bevirker, at update metoderne i de tilmeldte observatører kaldes (via dynamic method binding) update metoden (i en given observatør) bruger getstate metoden til at opdatere observatørens repræsentation af tilstanden 13

14 Afleveringsopgave: Computerspil 5 I den femte og sidste delaflevering skal I bruge nogle af de ting, som I har lært om exceptions og fil-baseret input/output I skal lave en Log klasse, der kan gemme de valg som brugeren laver under et spil seed-værdien for det Random objekt, der styrer de automatiske spillere de optionsværdier der gælder under spillet Dernæst skal I skrive kode, som kan gemme et Log objekt i fil systemet og senere genindlæses filen, hvorpå det optagne spil kan afspilles De fejl, der kan opstå, når I gemmer og genindlæser en fil, skal håndteres ved hjælp af exceptions Herudover skal I (som sædvanlig) rette gamle fejl og mangler holde jeres dokumentation opdateret, herunder tilføje dokumentation for nye programdele I behøver ikke at lave regressiontests for Log klassen Den testes via en testmetode, som vi har udviklet til jer Genaflevering af Computerspil 4 og 5 skal ske senest 1 uge efter den oprindelige afleveringsfrist 14

15 Mundtlig eksamen Ved den mundtlige eksamen forventer vi, at I demonstrerer Kendskab til de vigtigste begreber inden for det trukne emneområde Evne til at programmere i Java ved at præsentere små velvalgte programstumper indenfor emneområdet Evne til at svare på spørgsmål inden for emneområdet, herunder relatere kursets projektopgaver til emneområdet Varighed I er "på scenen" i ca. 15 minutter De næste 3-5 minutter bruges til votering, meddelelse og forklaring af jeres karakter samt skift til næste eksaminand En af de mest effektive måder at træne til eksamen, er at høre andre studerende (og lære af deres gode og dårlige ting) Vi opfordrer derfor kraftigt til, at I går ind og hører nogle af jeres medstuderende Nogle synes, at det er "upassende" men faktisk vil det for langt de fleste eksaminander være betryggende, at der er "neutrale" tilhørere tilstede under eksaminationen 15

16 Forløbet af eksamen Præsentationen De første 3-4 minutter får I lov til at skrive jeres disposition på tavlen og snakke uforstyrret (indtil den værste nervøsitet har lagt sig) Derefter vil eksaminator/censor afbryde med forskellige spørgsmål for at hjælpe jer med at rette eventuelle småfejl at få dækket de vigtigste ting indenfor emneområdet Jo bedre I har forberedt jer og jo mere initiativ I selv udviser jo bedre har I styr på, hvor I "kommer hen" under eksamen (f.eks. hvilke programmeringseksempler I skal gennemgå) Der gives karakter efter 12-skalaen Pointene fra køreprøven og computerspilsopgaven tæller med i fastlæggelsen af den endelig karakter for kurset Høje point kan trække en karakter op, mens lave point kan trække en karakter ned Uanset pointtal kan man dumpe, hvis den mundtlige præstation er uacceptabel 16

17 Forberedelse til mundtlig eksamen Disposition For hvert af de 9 spørgsmål laves en kort velgennemtænkt disposition A4-ark med ord (ingen figurer, formler, programstumper, eller lignende) Opremser de begreber og eksempler, som I vil bruge Til eksamen starter I med at skrive dispositionen op i et hjørne af tavlen Dulmer ofte den værste nervøsitet Herefter lægges dispositionen helt væk (eller med bagsiden opad) I får ikke point for at kunne læse op af dispositionen Derfor skal den være så kort som overhovedet mulig Den er blot en huskeliste over, hvad I vil præsentere og i hvilken rækkefølge Valg af eksempler Det er vigtigt, at I på forhånd, for hvert af de 9 spørgsmål, har valgt nogle gode eksempler på Java kode, som I vil præsentere De skal være korte og tydeligt vise de ting, som I vil illustrere med dem Eksemplerne kan være "stjålet" fra lærebogen, mine slides eller nogle af de opgaver, som I har lavet på kurset eller de kan være opfundet til lejligheden Brug tid på at finde gode eksempler, og tid på at træne i at præsentere dem Hvis I ikke selv præsenterer små velvalgte Java eksempler, finder vi nogle, som I skal præsentere og det gør jo bestemt ikke opgaven lettere 17

18 Træning gør mester Hvert spørgsmål bør trænes mindst 5 gange Træningen skal være så realistisk som overhovedet muligt Det er ikke nok at tænke på, hvad I vil sige og skrive I skal formulere sætningerne og sige dem højt I skal skrive tingene på et whiteboard eller et stykke papir I skal gennemgå alle de ting, som I har på jeres disposition Eksamen er ikke en test i skønskrift men det er oplagt en fordel at eksaminator og censor kan læse det, som I skriver Hold fornuftig tavleorden I må gerne forkorte lange navne og lignende og bruge gentagelsestegn/streger (øv jer I at gøre det på en god måde) Det kan være svært at skrive læseligt på et whiteboard (øv jer i det) Visk ikke noget ud (bortset fra smårettelser) Eksaminator og censor tæller alt det med, som I har skrevet og sagt Hold jer til dispositionen Lad være med at improvisere undervejs Opfind ikke nye eksempler, som I ikke har gennemtænkt Under de sidste træninger bør I ved hjælp af et ur tjekke, at I har stof nok til 10 minutter hverken mere eller mindre De resterende 5 minutter (af de 15 minutter som eksaminationen varer) bruges til at besvare spørgsmål fra eksaminator og censor 18

19 Gode råd omkring eksamen Det er tilladt at lave sine egne eksempler eller finde dem på nettet Dette anbefales dog ikke. Dels skal man bruge længere tid på at forklare dem (da eksaminator og censor ikke kender dem i forvejen) Dels kan man ikke så godt få hjælp (fra eksaminator og censor), hvis der opstår problemer under præsentationen Husk at præsentere de overordnede begreber inden du kaster dig ud i detaljeret Java kode Fx vil det for spørgsmålet om grafiske brugergrænseflader være rimeligt at starte med at snakke om AWT, Swing og JavaFX, og at man vil bruge en kombination af de to første Analogt vil det for exceptions være en god ide at opridse figuren, der viser forskellige exception typer, og bruge figuren til at beskrive, hvordan compileren skelner mellem checked og unchecked exceptions. Throwable sta us Error Exception MyCheckedException RuntimeException MyUncheckedException 19

20 Gode råd omkring eksamen (fortsat) Vis at du forstår, hvad der ligger bag de navne vi bruger i bogen / på kurset Sig fx, at det er compileren, der tjekker en checked exception, og at det den tjekker er, at man på kaldsstedet håndterer den rejste exception (enten ved at placere metodekaldet i en try-catch statement eller ved at propagere den rejste exception til omgivelserne ved at tilføje throws i metodens header) Analogt bør man sige, at regression tests er automatiske tests, der let kan gentages når man har ændret sin kode for at undersøge om der skulle være sket regression (tilbageslag/forringelse) i form af, at man har introduceret nye fejl under ændringerne Man må gerne inddrage relevante ting fra andre spørgsmål Fx vil det være helt relevant at nævne, at brug af en superklasser er fortrinlig til at undgå kodeduplikering Analogt kan man, når man snakker om ArrayList og HashMap, bruge List og Map som de statiske typer for sine variable, og fortælle at dette gør det lettere at skifte mellem forskellige implementationer af de to interfaces (ArrayList, LinkedList, HashMap, TreeMap, osv.) 20

21 Gode råd omkring eksamen (fortsat) Brug ikke for megen tid på ting, der primært hører til andre spørgsmål Fx er det faktum, at man i en subklasses konstruktør, som det allerførste skal kalde superklassen konstruktør noget, der er generelt for nedarvning mellem klasser Det hører derfor naturligt til spørgsmålet om nedarvning, mens det er mindre relevant, hvis det præsenteres under spørgsmålet om abstrakte klasser og interfaces Her vil det være bedre at have lidt tid til at snakke om funktionelle interface (hvad de er og hvordan I har brugt dem) samt at snakke om, hvordan interfaces og abstrakte klasser bruges i Collection hierarkiet. Husk, at se / gense de to videoer om den perfekte mundtlige eksamen og følg de råd, som de giver Studerende, der ønsker det, kan blive eksamineret i Introduktion til programmering inden jul. Hvis du ønsker det, skal du hurtigst muligt bede om det, via en tråd i forummet Mundtlig eksamen 21

22 Kursusevaluering (70% har svaret) Samlet udbytte af undervisningsforløbet (90%) Meget stort Stort Noget Kurset har været relevant for mit studium (97%) Enig Delvist enig Hverken eller Gode muligheder for at få tilbagemelding/vejledning vedrørende faglige præstationer (82%) Enig Delvist enig Hverken eller Delvist uenig Har kunnet få faglig hjælp/støtte fra mine medstuderende (95%) Kurset er hensigtsmæssigt tilrettelagt (90%) Enig Delvist enig Hverken eller Enig Delvist enig Hverken eller Instruktoren formidlede stoffet på en måde, der støttede min læring (90%) Arbejdsbyrden på kurset (74%) Enig Delvist enig Hverken eller Ej svaret For stor Passende For lille Tidsforbrug (undervisning + forberedelse) pr uge > <8

23 Tekstuelle kommentarer Stor forskel i belastningen i første og anden halvdel Sådan er kurseret designet Nødvendigt, hvis de studerende, der ikke kan programmere i forvejen, skal have en rimelig chance for at komme med på toget Det forklarer også, hvorfor det gennemsnitlige tidsforbrug er en del under de normale 15 timer for et 10 ETCS kursus Nogle fysikere vil hellere have et Python kursus Instituttet for Datalogi tilbyder et introducerende Python kursus, men jeres studieordning gør det vanskelig at tage dette kursus, som ligger i forårssemesteret Stor tilfredshed med de enkelte instruktorer 23

24 Clicker evaluering Supplement til den officielle kursusevaluering Hvilke undervisningsformer/materialer har været særligt udbytterige? Øvelserne Har øvelserne (med instruktorer) været udbytterige? Har de små projekter i kursets første halvdel været udbytterige? Har træningen til køreprøven været udbytterig? Har studieteknikopgaverne været udbytterige? Har computerspilsprojektet været udbytterigt? Har debuggeren været nyttig? Har det været en fordel, at I ved øvelserne har programmeret parvis? Har træningen i mundtlig præsentation været udbytterig? Forelæsninger Har forelæsningerne været udbytterige? Har brugen af clickere bidraget til at holde dig mere koncentreret under forelæsningerne? Har videooptagelserne af forelæsningerne været nyttige? 1. Ikke brugt 2. Slet ikke 3. Lidt 4. Noget 5. Meget Ikke brugt/ deltaget i Forsøgt brugt, men uden udbytte 24

25 Clicker evaluering (fortsat) Videonoter Har videoerne til BlueJ-bogen været nyttige? Har videoerne med løsninger af tidligere køreprøveopgaver været nyttige? Har de to videoer om mundtlig præsentation været nyttige? Blackboard hjemmesiden Har ugeoversigterne været nyttige? Har webboardet været nyttigt? Har ugebrevene været nyttige? Generelt Har kurset, som helhed, været udbytterigt? 1. Ikke brugt 2. Slet ikke 3. Lidt 4. Noget 5. Meget 25

26 Læringsmål og interesse Er der sammenhæng mellem kursets læringsmål, undervisningens tilrettelæggelse og eksamensformen? 1. Ved ikke 2. Slet ikke 3. Lidt 4. Noget 5. Meget Efter kurset vil deltagerne have kendskab til principper og teknikker for systematisk konstruktion af programmer Deltagerne skal ved afslutning af kurset kunne anvende grundlæggende konstruktioner i et almindeligt programmeringssprog udvikle velstrukturerede programmer og afteste/debugge disse forklare arkitekturen af programmer, herunder nedarvning, abstrakte klasser og interfaces forklare simple specifikationsmodeller og realisere disse i programmer anvende standardklasser ved realisering af programmer 26

27 Fraktaler og Mandelbrotmængden Benoit B. Mandelbrot Matematiker fra Yale University i USA 27

28 Definition af Mandelbrotmængden Mandelbrotmængden er en mængde af punkter For et punkt (a,b) defineres en talfølge ved hjælp af nedenstående rekursive definition n= 0 x 0 = 0 y 0 = 0 n 0 x n+1 = x n2 y n2 + a y n+1 = 2 x n y n + b Punktet (a,b) tilhører mandelbrotmængden, hvis og kun hvis punkternes afstand fra (0,0) ikke går mod uendelig, når n vokser 28

29 Følgen for (a,b) = (0, 1) n= 0 n 0 y 2 x 0 = 0 y 0 = 0 x n+1 = x n2 y n2 + a y n+1 = 2 x n y n + b 1 x 1 2 Afstanden fra (0,0) går ikke mod uendelig Punktet (0,1) er med i Mandelbrotmængden (x 0, y 0 ) = (0, 0) (x 1, y 1 ) = (0, 1) (x 2, y 2 ) = (-1, 1) (x 3, y 3 ) = (0, -1) (x 4, y 4 ) = (-1, 1) (x 5, y 5 ) = (0, -1) (x 6, y 6 ) = (-1, 1) 29

30 Følgen for (a,b) = (0, 1.01) y 2 n= 0 x 0 = 0 y 0 = 0 n 0 x n+1 = x n2 y n2 + a y n+1 = 2 x n y n + b Afstanden fra (0,0) går mod uendelig Punktet (0,1.01) er ikke med i Mandelbrotmængden x (x 0, y 0 ) = (0, 0) (x 1, y 1 ) = (0, 1.01) (x 2, y 2 ) = (-1.02, 1.01) (x 3, y 3 ) = (0.02, -1.05) (x 4, y 4 ) = (-1.10, 0.97) (x 5, y 5 ) = (0.28, -1.12) (x 6, y 6 ) = (-1.18, 0.38) (x 7, y 7 ) = (1.26, 0.12) (x 8, y 8 ) = (1.57, 1.32) (x 9, y 9 ) = (0.72, 5.14)... 30

31 Beregning af Mandelbrotmængden Approximativ beregning af Mandelbrotmængden Man kan vise, at hvis talfølgen en gang kommer uden for cirklen (med radius 2) vil afstande til (0,0) gå mod uendelig Det er umuligt at beregne alle elementer i en uendelig talfølge på endelig tid Derfor vælger vi et forudbestemt, maksimalt antal iterationer max Hvis talfølgen ikke kommer uden for cirklen indenfor max iterationer, antager vi, at den aldrig kommer udenfor, og at (a,b) dermed tilhører mandelbrotmængden Jo større vi sætter max, jo mere præcist beregnes Mandelbrot mængden (og jo mere tid skal der bruges på beregningen) 31

32 Sort/hvid algoritme (pseudokode) for each point (a,b) { n = 0; (x,y) = (0,0); while( (x,y) 2 && n < max) { beregn næste punkt i talfølgen; n++; } } if(n = max) { color(a,b) = black; // Member } else { color(a,b) = white; // Not member } 32

33 Mandelbrotmængdens egenskaber Mandelbrotmængden har en "flosset" kant nogle punkter er oplagt med og nogle punkter er oplagt ikke med Langs kanten sker der noget uhyre interessant der på samme tid er guddommeligt smukt og djævelsk svært at fatte Det vil vi om et øjeblik studere nærmere 33

34 Algoritme med farver for each point (a,b) { n = 0; (x,y) = (0,0); while( (x,y) 2 && n < max) { beregn næste punkt i talfølgen; n++; } } if(n = max) { color(a,b) = black; // Member } else { color(a,b) = white; col(n); // Not member } Farven bestemmes af antal skridt inden vi kummer uden for cirklen (via en kompleks funktion) 34

35 35

36 36

37 37

38 38

39 39

40 40

41 41

42 42

43 Slut 43

44 Undersøgelse af halsen Vi vil vise, at der ikke er nogen hals mellem hovedet og kroppen Der er hvidt helt ind til x-aksen Lad os betragte (x, y) = ( 0.75, ) for gående mod 0 Iterationer Krop Hoved Hals 44

45 Tak for nu! Held og lykke til eksamen! 45

Forelæsning Uge 15 Mandag

Forelæsning Uge 15 Mandag Forelæsning Uge 15 Mandag Design af applikationer Design mønstre Mundtlig eksamen Kursusevaluering Fraktaler og Mandelbrotmængden smukke computergenererede billeder Design af applikationer I dette kursus

Læs mere

Forelæsning Uge 15 Mandag

Forelæsning Uge 15 Mandag Forelæsning Uge 15 Mandag Design af applikationer Design mønstre Mundtlig eksamen Kursusevaluering Fraktaler og Mandelbrotmængden smukke computergenererede billeder Design af applikationer I dette kursus

Læs mere

Forelæsning Uge 7 Torsdag

Forelæsning Uge 7 Torsdag Forelæsning Uge 7 Torsdag Eksamen Kursusevaluering Præmiering af de bedste projekter Smukke computer genererede billeder Eksamen Du kan kun gå til eksamen hvis du har fået godkendt alle afleveringsopgaver

Læs mere

Forelæsning Uge 7 Torsdag

Forelæsning Uge 7 Torsdag Forelæsning Uge 7 Torsdag Eksamen Kursusevaluering Præmiering af de bedste projekter Smukke computergenererede billeder Eksamen Du kan kun gå til eksamen hvis du har fået godkendt alle afleveringsopgaver

Læs mere

Programmering 2. dprog2 E2013. http://www.cs.au.dk/dprog2/

Programmering 2. dprog2 E2013. http://www.cs.au.dk/dprog2/ Programmering 2 dprog2 E2013 http://www.cs.au.dk/dprog2/ Læringsmål Deltagerne skal ved afslutningen af kurset kunne: forklare og anvende både basale og videregående elementer af et moderne programmeringssprog,

Læs mere

Forelæsning Uge 2 Torsdag

Forelæsning Uge 2 Torsdag Forelæsning Uge 2 Torsdag Niveauer af programbeskrivelser Statiske / dynamiske beskrivelser Klassevariabler og klassemetoder Variabler og metoder der et tilknyttet klassen (i stedet for at være tilknyttet

Læs mere

Forelæsning Uge 5 Mandag

Forelæsning Uge 5 Mandag Forelæsning Uge 5 Mandag Algoritmeskabeloner findone, findall, findnoof, findsumof (sidste mandag) findbest Brug af klassen Collections og interfacet Comparable BlueJ s Debugger Nyttig til at inspicere

Læs mere

Forelæsning Uge 2 Torsdag

Forelæsning Uge 2 Torsdag Forelæsning Uge 2 Torsdag Niveauer af programbeskrivelser Statiske / dynamiske beskrivelser Klassevariabler og klassemetoder Variabler og metoder der et tilknyttet klassen (i stedet for at være tilknyttet

Læs mere

Objektsamlinger med et fast (på forhånd kendt) antal elementer Velkendt fra mange andre programmeringssprog

Objektsamlinger med et fast (på forhånd kendt) antal elementer Velkendt fra mange andre programmeringssprog Forelæsning Uge 9 Arrays Objektsamlinger med et fast (på forhånd kendt) antal elementer Velkendt fra mange andre programmeringssprog Principper for design af klasser Undgå f.eks. at have den samme kode

Læs mere

Programmering 2. dprog2 E2012. http://www.cs.au.dk/dprog2/

Programmering 2. dprog2 E2012. http://www.cs.au.dk/dprog2/ Programmering 2 dprog2 E2012 http://www.cs.au.dk/dprog2/ Læringsmål Deltagerne skal ved afslutningen af kurset kunne: forklare og anvende både basale og videregående elementer af et moderne programmeringssprog,

Læs mere

Forelæsning Uge 2 Torsdag

Forelæsning Uge 2 Torsdag Forelæsning Uge 2 Torsdag Niveauer af programbeskrivelser Statiske / dynamiske beskrivelser Klassevariabler og klassemetoder Variabler og metoder der et tilknyttet klassen (i stedet for at være tilknyttet

Læs mere

Forelæsning Uge 9 Mandag

Forelæsning Uge 9 Mandag Forelæsning Uge 9 Mandag Arrays Objektsamlinger med et fast (på forhånd kendt) antal elementer Velkendt fra mange andre programmeringssprog Principper for design af klasser Undgå f.eks. at have den samme

Læs mere

Software Construction 1 semester (SWC) Spørgsmål 1

Software Construction 1 semester (SWC) Spørgsmål 1 Spørgsmål 1 Objekter #1 Giv en kort præsentation af begrebet objekt, samt hvorledes du erklærer(declare), opretter(create) og bruger objekter Du kan beskrive o Datatyper o Variable / Instans variable /

Læs mere

Grundlæggende Algoritmer og Datastrukturer

Grundlæggende Algoritmer og Datastrukturer Grundlæggende Algoritmer og Datastrukturer Om kurset Grundlæggende Algoritmer og Datastrukturer Undervisningsformer Forelæsninger: 4 timer/uge (2+2). Øvelser: 3 timer/uge. Café. Obligatorisk program 13

Læs mere

DM507 Algoritmer og datastrukturer

DM507 Algoritmer og datastrukturer DM507 Algoritmer og datastrukturer Forår 2016 Projekt, del I Institut for matematik og datalogi Syddansk Universitet 29. februar, 2016 Dette projekt udleveres i tre dele. Hver del har sin deadline, således

Læs mere

Forelæsning Uge 12 Torsdag

Forelæsning Uge 12 Torsdag Forelæsning Uge 12 Torsdag Protected access Alternativ til public og private Abstrakte klasser og interfaces En abstrakt klasse er en klasse, som man ikke kan lave instanser (objekter) af En abstrakt klasse

Læs mere

Forelæsning Uge 2 Mandag

Forelæsning Uge 2 Mandag Forelæsning Uge 2 Mandag Objekters tilstand og opførsel BlueJ og Greenfoot Java Skabelse af objekter (via new-operatoren) Iteration (gentagelser) og parametrisering Forskellige slags variabler Afleveringsopgave:

Læs mere

DM507 Algoritmer og datastrukturer

DM507 Algoritmer og datastrukturer DM507 Algoritmer og datastrukturer Forår 2018 Projekt, del II Institut for matematik og datalogi Syddansk Universitet 20. marts, 2019 Dette projekt udleveres i tre dele. Hver del har sin deadline, således

Læs mere

Fraktaler Mandelbrots Mængde

Fraktaler Mandelbrots Mængde Fraktaler Mandelbrots Mængde Foredragsnoter Af Jonas Lindstrøm Jensen Institut For Matematiske Fag Århus Universitet Indhold Indhold 1 1 Indledning 3 2 Komplekse tal 5 2.1 Definition.......................................

Læs mere

DM507 Algoritmer og datastrukturer

DM507 Algoritmer og datastrukturer DM507 Algoritmer og datastrukturer Forår 2018 Projekt, del II Institut for matematik og datalogi Syddansk Universitet 13. marts, 2018 Dette projekt udleveres i tre dele. Hver del har sin deadline, således

Læs mere

COMPUTERSPIL 1. Opgave 1. Opgave 2

COMPUTERSPIL 1. Opgave 1. Opgave 2 COMPUTERSPIL 1 I løbet af de kommende fem uger skal I programmere et computerspil, hvor spillerne rejser rundt mellem byer i forskellige lande og indsamler point. Der er en delaflevering hver uge, hvor

Læs mere

SWC eksamens-spørgsmål. Oversigt

SWC eksamens-spørgsmål. Oversigt SWC eksamens-spørgsmål Oversigt #1 Typer og variable #2 Aritmetik og logik #3 Klasser (definition, objekter) #4 Klasser (metoder) #5 Klasser (nedarvning, polymorfi) #6 Conditional statements #7 Repetition

Læs mere

Forelæsning Uge 9 Mandag

Forelæsning Uge 9 Mandag Forelæsning Uge 9 Mandag Arrays Objektsamlinger med et fast (på forhånd kendt) antal elementer Velkendt fra mange andre programmeringssprog Principper for design af klasser Undgå f.eks. at have den samme

Læs mere

Singleton pattern i Java

Singleton pattern i Java Denne guide er oprindeligt udgivet på Eksperten.dk Singleton pattern i Java Denne artikel beskriver Singleton pattern og implementation i Java. Den forudsætter kendskab til Java men ikke til Singleton.

Læs mere

Forelæsning Uge 4 Torsdag

Forelæsning Uge 4 Torsdag Forelæsning Uge 4 Torsdag Klassevariabler og klassemetoder Levetid for variabler og parametre Virkefeltsregler Projektopgave Kaninjagt Lommeregner (for MAT studerende) Klassevariabler og klassemetoder

Læs mere

Forelæsning Uge 2 Torsdag

Forelæsning Uge 2 Torsdag Forelæsning Uge 2 Torsdag Java syntax og style guide Sætninger Simple sætninger (assignment, interne og eksterne metodekald) Sammensatte sætninger (blok, selektion, gentagelse) Udtryk og operatorer Brug

Læs mere

Forelæsning Uge 12 Mandag

Forelæsning Uge 12 Mandag Forelæsning Uge 12 Mandag Protected access Alternativ til public og private Abstrakte klasser og interfaces En abstrakt klasse er en klasse, som man ikke kan lave instanser (objekter) af En abstrakt klasse

Læs mere

Abstrakte datatyper C#-version

Abstrakte datatyper C#-version Note til Programmeringsteknologi Akademiuddannelsen i Informationsteknologi Abstrakte datatyper C#-version Finn Nordbjerg 1/9 Abstrakte Datatyper Denne note introducerer kort begrebet abstrakt datatype

Læs mere

DM507 Algoritmer og datastrukturer

DM507 Algoritmer og datastrukturer DM507 Algoritmer og datastrukturer Forår 2019 Projekt, del I Institut for matematik og datalogi Syddansk Universitet 27. februar, 2019 Dette projekt udleveres i tre dele. Hver del har sin deadline, således

Læs mere

Om at gå til mundtlig eksamen en manual for studerende

Om at gå til mundtlig eksamen en manual for studerende Om at gå til mundtlig eksamen en manual for studerende Hans Hüttel 14. juni 2005 Folk ytrer tit en meget forståelig utryghed ved det at gå til mundtlig eksamen. Eksamen er en unormal situation og som eksaminand

Læs mere

Forelæsning Uge 4 Torsdag

Forelæsning Uge 4 Torsdag Forelæsning Uge 4 Torsdag Algoritmeskabeloner findone, findall, findnoof, findsumof (i mandags) findbest Levetid for variabler og parametre Virkefeltsregler Hvor kan man bruge de forskellige variabler?

Læs mere

Forelæsning Uge 6 Mandag

Forelæsning Uge 6 Mandag Forelæsning Uge 6 Mandag Tingene i denne forelæsning er ikke eksamenspensum Forelæsningen afrunder kurset, og forklarer nogle af de begreber, som I har mødt under kurset uden at få detaljeret forklaring

Læs mere

Forelæsning Uge 5 Mandag

Forelæsning Uge 5 Mandag Forelæsning Uge 5 Mandag Sortering ved hjælp af klassen Collections Ved hjælp af interfacet Comparable Ved hjælp af interfacet Comparator findbest som sorteringsproblem Køreprøven i uge 7 Form Forberedelse

Læs mere

Rolf Fagerberg. Forår 2013

Rolf Fagerberg. Forår 2013 Forår 2013 Mål for i dag Dagens program: 1 2 3 4 5 6 Forudsætninger: DM536 og DM537 Timer: 50% forelæsninger, 50% øvelser Forudsætninger: DM536 og DM537 Eksamenform: Skriftlig eksamen: Timer: 50% forelæsninger,

Læs mere

Forelæsning Uge 10 Torsdag

Forelæsning Uge 10 Torsdag Forelæsning Uge 10 Torsdag Opremsningstyper Enumerated types Forskellige teknikker til test og debugging Når man tester undersøger man, om opførslen (semantikken) er den ønskede Når man debugger (afluser),

Læs mere

Objektorienteret design med arv og polymorfi:

Objektorienteret design med arv og polymorfi: Note til Programmeringsteknologi Akademiuddannelsen i Informationsteknologi Objektorienteret design med arv og polymorfi: Substitutionsprincippet Composite Design Pattern Finn Nordbjerg Side 1 Objektorienteret

Læs mere

Hvilket hold var du på? Krydset med: A. Din læring, motivation og indsats - Det er min vurdering, at forløbet har kvalificeret mig til eksamen

Hvilket hold var du på? Krydset med: A. Din læring, motivation og indsats - Det er min vurdering, at forløbet har kvalificeret mig til eksamen Krydset med: A. Din læring, motivation og indsats - Det er min vurdering, at forløbet har fremmet min læring i forhold til målene nævnt ovenfor Krydset med: A. Din læring, motivation og indsats - Det er

Læs mere

Rolf Fagerberg. Forår 2012

Rolf Fagerberg. Forår 2012 Forår 2012 Mål for i dag Dagens program: 1 2 3 4 5 6 Forudsætninger: DM502 og DM503 Timer: 50% forelæsninger, 50% øvelser Forudsætninger: DM502 og DM503 Eksamenform: Skriftlig eksamen: Timer: 50% forelæsninger,

Læs mere

Introduktion til DM507

Introduktion til DM507 Introduktion til DM507 Rolf Fagerberg Forår 2017 1 / 20 Hvem er vi? Underviser: Rolf Fagerberg, IMADA Forskningsområde: algoritmer og datastrukturer 2 / 20 Hvem er vi? Underviser: Rolf Fagerberg, IMADA

Læs mere

DRONNINGER (QUEENS) Opgave 1

DRONNINGER (QUEENS) Opgave 1 DRONNINGER (QUEENS) I denne opgave vil vi beskæftige os med det såkaldte 8-dronningeproblem, hvor man skal placerede 8 dronninger på et 8 x 8 skakbræt, således at ingen af dronningerne kan slå hinanden.

Læs mere

DANMARKS TEKNISKE UNIVERSITET

DANMARKS TEKNISKE UNIVERSITET DANMARKS TEKNISKE UNIVERSITET Skriftlig prøve, 14. december 2018, 4 timer Side 1 af 18 Kursus navn: 02101 Indledende Programmering Kursus : 02101 Tilladte hjælpemidler: Ikke-digitale skriftlige hjælpemidler

Læs mere

Software Construction 1. semester (SWC) januar 2014 Spørgsmål 1

Software Construction 1. semester (SWC) januar 2014 Spørgsmål 1 Spørgsmål 1 Grundlæggende objektorienterede begreber o Klasse (class) o Objekt (object) o Metode (method), herunder return type og parametre o Instansvariable (instance variables) & egenskaber (properties),

Læs mere

Ugeseddel 4 1. marts - 8. marts

Ugeseddel 4 1. marts - 8. marts Ugeseddel 4 1. marts - 8. marts Læs følgende sider i kapitel 6 i lærebogen: s. 233 258 og s. 291 317 (afsnit 6.3 overspringes). Begynd at overveje, hvad afleveringsopgaven skal omhandle. Læs vejledningen,

Læs mere

Objektorienterede metoder

Objektorienterede metoder Objektorienterede metoder Denne gang: Designmønstre Skabende designmønstre: Fabrikeringsmetode/Fabrik, Singleton, Abstrakt fabrik (Toolkit), Prototype, Objektpulje Singleton eksempel: Forskellige slags

Læs mere

DM507 Algoritmer og datastrukturer

DM507 Algoritmer og datastrukturer DM507 Algoritmer og datastrukturer Introduktion til kurset Rolf Fagerberg Forår 2019 1 / 20 Hvem er vi? Underviser: Rolf Fagerberg, Institut for Matematik og Datalogi (IMADA) Forskningsområde: algoritmer

Læs mere

Jacob Nordfalk. Ingeniørhøjskolen i København. Nykøbing F itvisioncenter 24. februar 2004

Jacob Nordfalk. Ingeniørhøjskolen i København. Nykøbing F itvisioncenter 24. februar 2004 Genbrugelige komponenter og designmønstre i Java Jacob Nordfalk Ingeniørhøjskolen i København Nykøbing F itvisioncenter 24. februar 2004 Program Om Jacob Nordfalk introduktion (ikke-teknisk del) Komponentbaseret

Læs mere

b) Udvid din implementation af forme til at understøtte.equals. To objekter af samme form er ens hvis de har samme værdier i felterne.

b) Udvid din implementation af forme til at understøtte.equals. To objekter af samme form er ens hvis de har samme værdier i felterne. Exercise 1: Opgave 9.1 på CodeJudge. a) Lav klasserne Cirkel, Rektangel og Kvadrat, som implementerer vedhæftede interface From.java (se CodeJudge). Lav Rektangel før du laver Kvadrat. Kan du bruge nedarvning

Læs mere

Rolf Fagerberg. Forår 2015

Rolf Fagerberg. Forår 2015 Forår 2015 Dagens program 1 2 3 4 5 Underviser:, IMADA Forskningsområde: algoritmer og datastrukturer Underviser:, IMADA Forskningsområde: algoritmer og datastrukturer Deltagere: BA i Datalogi BA i Software

Læs mere

Hvad er Objekter - Programmering

Hvad er Objekter - Programmering Denne guide er oprindeligt udgivet på Eksperten.dk Hvad er Objekter - Programmering En rigtig god gennemgang af hvad objekter er! Hvordan de oprettes og anvendes! Det er helt klart til nybegyndere, som

Læs mere

Eksamens spørgsmål Software Construction. Objekter. Spørgsmål 1: Januar Giv en beskrivelse af Objekt-begrebet og deres brug

Eksamens spørgsmål Software Construction. Objekter. Spørgsmål 1: Januar Giv en beskrivelse af Objekt-begrebet og deres brug Spørgsmål 1: Objekter Giv en beskrivelse af Objekt-begrebet og deres brug Under eksaminationen forventes du at forklare: Hvad er en type og en variabel? Hvordan erklæres en variabel? Hvad forstås ved en

Læs mere

Videregående programmering i Java

Videregående programmering i Java Videregående programmering i Java Dag 6 Komponenter (og lidt Swing og MVC) Læsning: VP 4, evt. VP 6 Dette materiale er under Åben Dokumentlicens, se http://www.sslug.dk/linuxbog/licens.html Grafiske komponenter

Læs mere

Forelæsning Uge 4 Mandag

Forelæsning Uge 4 Mandag Forelæsning Uge 4 Mandag Algoritmeskabeloner Kan (ved simple tilretningerne) bruges til at implementere metoder, der gennemsøger en arrayliste (eller anden objektsamling) og finder objekter, der opfylder

Læs mere

PÆDAGOGISK KURSUS FOR INSTRUKTORER EFTERÅR GANG

PÆDAGOGISK KURSUS FOR INSTRUKTORER EFTERÅR GANG PÆDAGOGISK KURSUS FOR INSTRUKTORER EFTERÅR 2014 2. GANG SARAH ROBINSON SROBIN@TDM..DK PROGRAM GANG 1-3 1. torsdag den 21. aug. kl. 13.00-16.00 Instruktorrollen og læreprocesser 2. torsdag den 28. aug.

Læs mere

Forelæsning Uge 14 Mandag

Forelæsning Uge 14 Mandag Forelæsning Uge 14 Mandag Defensiv programmering Metoder og konstruktører bør tjekke de parameterværdier, som de kaldes med Derved kan man ofte undgå ulovlige handlinger, såsom at dividere med nul eller

Læs mere

Forelæsning Uge 4 Torsdag

Forelæsning Uge 4 Torsdag Forelæsning Uge 4 Torsdag Algoritmeskabeloner findone, findall, findnoof, findsumof (sidste mandag) findbest Levetid for variabler og parametre Virkefeltsregler Hvor kan man bruge de forskellige variabler?

Læs mere

Forelæsning Uge 3 Mandag

Forelæsning Uge 3 Mandag Forelæsning Uge 3 Mandag Niveauer af programbeskrivelser Statiske / dynamiske beskrivelser ArrayList Collection med variabelt antal elementer Der er mange andre Collection typer (se Collection interfacet

Læs mere

Algoritmeskabeloner: Sweep- og søgealgoritmer C#-version

Algoritmeskabeloner: Sweep- og søgealgoritmer C#-version Note til Programmeringsteknologi Akademiuddannelsen i Informationsteknologi Algoritmeskabeloner: Sweep- og søgealgoritmer C#-version Finn Nordbjerg 1/9 Indledning I det følgende introduceres et par abstrakte

Læs mere

Rolf Fagerberg. Forår 2015

Rolf Fagerberg. Forår 2015 Forår 2015 Dagens program 1 2 3 4 5 Underviser:, IMADA Forskningsområde: algoritmer og datastrukturer Deltagere: BA i Datalogi BA i Software Engineering BA i Matematik-Økonomi BA i Anvendt Matematik BA

Læs mere

Forelæsning Uge 1 Torsdag

Forelæsning Uge 1 Torsdag Forelæsning Uge 1 Torsdag Objekters tilstand og opførsel Java og BlueJ Skabelse af objekter (via new-operatoren) Iteration (gentagelser) og parametrisering Java's for løkke Parametre i metoder Forskellige

Læs mere

RMI introduktion. Denne artikel beskriver Java RMI (Remtote Method Invocation).

RMI introduktion. Denne artikel beskriver Java RMI (Remtote Method Invocation). Denne guide er oprindeligt udgivet på Eksperten.dk RMI introduktion Denne artikel beskriver Java RMI (Remtote Method Invocation). Den beskriver teorien bag RMI, viser et simpelt kode eksempel og forklarer

Læs mere

University of Southern Denmark Syddansk Universitet. DM502 Forelæsning 3

University of Southern Denmark Syddansk Universitet. DM502 Forelæsning 3 DM502 Forelæsning 3 Indlæsning fra tastatur Udskrift til skærm Repetition Beregning af middelværdi Gentagelse med stop-betingelse (while) Heltalsdivision Division med nul Type-casting ( (double) ) Betinget

Læs mere

DM507 Algoritmer og datastrukturer

DM507 Algoritmer og datastrukturer DM507 Algoritmer og datastrukturer Forår 2013 Projekt, del I Institut for matematik og datalogi Syddansk Universitet 5. marts, 2013 Dette projekt udleveres i to dele. Hver del har sin deadline, således

Læs mere

//Udskriver System.out.println("Hej " + ditfornavn + " " + ditefternavn + "."); System.out.println("Du er " + dinalder + " aar gammel!

//Udskriver System.out.println(Hej  + ditfornavn +   + ditefternavn + .); System.out.println(Du er  + dinalder +  aar gammel! Denne guide er oprindeligt udgivet på Eksperten.dk Brugerinput i Java Denne her artikel gennemgår diverse ting ved brug af brugerinput i Java. Den starter med det simple og fortæller derefter skridt for

Læs mere

Forelæsning Uge 5 Mandag

Forelæsning Uge 5 Mandag Forelæsning Uge 5 Mandag Sortering ved hjælp af klassen Collections Ved hjælp af interfacet Comparable Ved hjælp af interfacet Comparator findbest som sorteringsproblem Information om køreprøven i uge

Læs mere

Rolf Fagerberg. Forår 2014

Rolf Fagerberg. Forår 2014 Forår 2014 Mål for i dag Dagens program: 1 2 3 4 5 6 Forudsætninger: Format: Programmering og Diskret matematik I (forelæsninger), TE (øvelser), S (arbejde selv og i studiegrupper) Eksamenform: Skriftlig

Læs mere

Spørgetime Redigeret 15/ Først gennemgår jeg slagets gang, derefter tjekker vi tidsplanen, og så må I spørge om elektronik mm.

Spørgetime Redigeret 15/ Først gennemgår jeg slagets gang, derefter tjekker vi tidsplanen, og så må I spørge om elektronik mm. Dagsorden for spørgetime: Først gennemgår jeg slagets gang, derefter tjekker vi tidsplanen, og så må I spørge om elektronik mm. Til slut sætter I jeres produkter op så de er klar til at blive præsenteret.

Læs mere

Videregående programmering i Java

Videregående programmering i Java Videregående programmering i Java VPJ dag 1 Introduktion og overblik over kurset Datastrukturer: Lister, mængder og iteratorer Opsamling: Grafikprogrammering, komponenter, containere og layout Bruge komponenter

Læs mere

Forelæsning Uge 1 Torsdag

Forelæsning Uge 1 Torsdag Forelæsning Uge 1 Torsdag Objekters tilstand og opførsel Java og BlueJ Skabelse af objekter (via new-operatoren) Iteration (gentagelser) og parametrisering Java's for løkke Parametre i metoder Forskellige

Læs mere

Hassansalem.dk/delpin User: admin Pass: admin BACKEND

Hassansalem.dk/delpin User: admin Pass: admin BACKEND Hassansalem.dk/delpin User: admin Pass: admin BACKEND 1/10 Indledning Dette projekt er den afsluttende del af web udvikling studiet på Erhvervs Lillebælt 1. semester. Projektet er udarbejdet med Del-pin

Læs mere

Forelæsning Uge 2 Mandag

Forelæsning Uge 2 Mandag Forelæsning Uge 2 Mandag Sætninger Simple sætninger (assignment, interne og eksterne metodekald) Sammensatte sætninger (blok, selektion, gentagelse) Udtryk og operatorer Java syntax og style guide Afleveringsopgave:

Læs mere

Multiple Choice Prøver

Multiple Choice Prøver Teori og Praksis for Multiple Choice Prøver Michael I. Schwartzbach Multiple Choice ved Datalogi Anvendt i mange datalogikurser siden 2006: Oversættelse Databaser Webteknologi Programmingssprog Dynamiske

Læs mere

Singleton pattern i C#

Singleton pattern i C# Denne guide er oprindeligt udgivet på Eksperten.dk Singleton pattern i C# Denne artikel beskriver Singleton pattern og implementation i C#. Den forudsætter kendskab til C# men ikke til Singleton. Der er

Læs mere

DM507 Algoritmer og datastrukturer

DM507 Algoritmer og datastrukturer DM507 Algoritmer og datastrukturer Forår 2019 Projekt, del III Institut for matematik og datalogi Syddansk Universitet 10. april, 2019 Dette projekt udleveres i tre dele. Hver del har sin deadline, således

Læs mere

Fraktaler. Mandelbrots Mængde. Foredragsnoter. Af Jonas Lindstrøm Jensen. Institut For Matematiske Fag Århus Universitet

Fraktaler. Mandelbrots Mængde. Foredragsnoter. Af Jonas Lindstrøm Jensen. Institut For Matematiske Fag Århus Universitet Fraktaler Mandelbrots Mængde Foredragsnoter Af Jonas Lindstrøm Jensen Institut For Matematiske Fag Århus Universitet Indhold Indhold 1 1 Komplekse tal 3 1.1 Definition.......................................

Læs mere

dpersp Uge 40 - Øvelser Internetalgoritmer

dpersp Uge 40 - Øvelser Internetalgoritmer Øvelse 1 dpersp Uge 40 - Øvelser Internetalgoritmer (Øvelserne 4 og 6 er afleveringsopgaver) a) Hver gruppe får en terning af instruktoren. Udfør 100 skridt af nedenstående RandomWalk på grafen, som også

Læs mere

Undervisningsbeskrivelse

Undervisningsbeskrivelse Undervisningsbeskrivelse Termin Juni 119 Institution Uddannelse Fag og niveau Lærer Hold Erhvervsskolerne Aars hhx Programmering B Patrick Bøgsted Sørensen (pbs) 2k18 Forløbsoversigt (4) Forløb 1 Forløb

Læs mere

DM502. Peter Schneider-Kamp (petersk@imada.sdu.dk) http://imada.sdu.dk/~petersk/dm502/

DM502. Peter Schneider-Kamp (petersk@imada.sdu.dk) http://imada.sdu.dk/~petersk/dm502/ DM502 Peter Schneider-Kamp (petersk@imada.sdu.dk) http://imada.sdu.dk/~petersk/dm502/ 1 DM502 Bog, ugesedler og noter De første øvelser Let for nogen, svært for andre Kom til øvelserne! Lav opgaverne!

Læs mere

Forelæsning Uge 1 Mandag

Forelæsning Uge 1 Mandag Forelæsning Uge 1 Mandag Hvad er programmering? Eksempel: program, der kan løse sudoku opgaver Programmering og problemløsning dintprog kurset Hvad kan I forvente at lære Undervisningsprincipper Plagiering

Læs mere

Design dit eget computerspil med Kodu

Design dit eget computerspil med Kodu Design dit eget computerspil med Kodu I sensommeren var vi to CFU-konsulenter ude i SFO en på Borup Ris Skolens Grønbro-afdeling. Her var vi sammen med børnene for at få erfaringer i arbejdet med platformen

Læs mere

Objects First with Java A Practical Introduction Using BlueJ

Objects First with Java A Practical Introduction Using BlueJ Objects First with Java A Practical Introduction Using BlueJ En introduktion til objektorienteret programmering for begyndere ud fra et software engineering aspekt Om at programmere i Java, ikke om værktøjet

Læs mere

COMPUTERSPIL 1. Opgave 1

COMPUTERSPIL 1. Opgave 1 COMPUTERSPIL 1 I løbet af de kommende fem uger skal I programmere et computerspil, hvor spillerne rejser rundt mellem byer i forskellige lande og indsamler point. Der er en delaflevering hver uge, hvor

Læs mere

Skriftlig eksamen i Datalogi

Skriftlig eksamen i Datalogi Roskilde Universitetscenter Skriftlig eksamen i Datalogi Modul 1 Vinter 1998/99 Opgavesættet består af 5 opgaver, der ved bedømmelsen tillægges følgende vægte: Opgave 1 16% Opgave 2 12% Opgave 3 10% Opgave

Læs mere

DM507 Algoritmer og datastrukturer

DM507 Algoritmer og datastrukturer DM507 Algoritmer og datastrukturer Forår 2012 Projekt, del II Institut for matematik og datalogi Syddansk Universitet 15. marts, 2012 Dette projekt udleveres i tre dele. Hver del har sin deadline, således

Læs mere

Forelæsning Uge 3 Torsdag

Forelæsning Uge 3 Torsdag Forelæsning Uge 3 Torsdag Billedredigering (bl.a. brug af for-løkker) Gråtonebilleder (som er lidt simplere end farvebilleder) Arrays Kan "opbevare" et antal objekter (som ArrayList) Fast (på forhånd kendt)

Læs mere

Specialiseringen Rapport Lavede Af Rasmus R. Sørensen Side 1 af 6

Specialiseringen Rapport Lavede Af Rasmus R. Sørensen Side 1 af 6 Side 1 af 6 Indholdsfortegnelse INDHOLDSFORTEGNELSE 1 INTRO 3 STARTEN AF SPECIALISERINGEN 3 ANKOMST TIL SKOTLAND 4 DATABASER 5 NETVÆRK 5 INTERAKTION 5 AFSLUTNING AF SPECIALISERINGEN 5 KONKLUSION 6 Side

Læs mere

Målet for disse slides er at diskutere nogle metoder til at gemme og hente data effektivt.

Målet for disse slides er at diskutere nogle metoder til at gemme og hente data effektivt. Merging og hashing Mål Målet for disse slides er at diskutere nogle metoder til at gemme og hente data effektivt. Dette emne er et uddrag af kurset DM507 Algoritmer og datastrukturer (2. semester). Mål

Læs mere

Objektsamlinger med et fast (på forhånd kendt) antal elementer Velkendt fra mange andre programmeringssprog

Objektsamlinger med et fast (på forhånd kendt) antal elementer Velkendt fra mange andre programmeringssprog Forelæsning Uge 9 Arrays Objektsamlinger med et fast (på forhånd kendt) antal elementer Velkendt fra mange andre programmeringssprog Principper for design af klasser Undgå f.eks. at have den samme kode

Læs mere

Spørgetime. Først gennemgår jeg slagets gang, derefter tjekker vi tidsplanen, og så må I spørge om elektronik mm..

Spørgetime. Først gennemgår jeg slagets gang, derefter tjekker vi tidsplanen, og så må I spørge om elektronik mm.. Design og Produktion, Elektronik ( redigeret 13/6-2015 ) Først gennemgår jeg slagets gang, derefter tjekker vi tidsplanen, og så må I spørge om elektronik mm.. Aflevere bøger, fumlebrædder, mm, oprydde

Læs mere

University of Southern Denmark Syddansk Universitet. DM503 Forelæsning 11

University of Southern Denmark Syddansk Universitet. DM503 Forelæsning 11 DM503 Forelæsning 11 Generics Pakker Exceptions Indhold Generics Nedarvning og Generics Generics Nedarvning og Generics Husk Box fra sidst Generics public class Box {! private T object;! public void

Læs mere

FIP - Karrierekompetence i programmeringsfaget

FIP - Karrierekompetence i programmeringsfaget FIP - Karrierekompetence i programmeringsfaget Søren Præstegaard spr@sdedk Forår 2018 Overblik Karrierekompetence Et undervisningsforløb Abstrakte dokumentationsformer Eksamen Karrierekompetence Karrierekompetence

Læs mere

Dat 2/BAIT6/SW4: Syntaks og semantik En manual for studerende

Dat 2/BAIT6/SW4: Syntaks og semantik En manual for studerende Dat 2/BAIT6/SW4: Syntaks og semantik En manual for studerende Hans Hüttel Foråret 2011 Indhold Indhold 1 1 Kurset er lavet om! 1 2 Kursets indhold 2 2.1 Kursets emner................................ 2

Læs mere

Forelæsning Uge 11. Nedarvning. Object klassen. Projektopgave om computerspil

Forelæsning Uge 11. Nedarvning. Object klassen. Projektopgave om computerspil Forelæsning Uge 11 Nedarvning En klasse kan være en subklasse af en anden Det betyder at subklassen arver superklassens feltvariabler og metoder Object klassen Superklasse for alle klasser Indeholder en

Læs mere

DM507 Algoritmer og datastrukturer

DM507 Algoritmer og datastrukturer DM507 Algoritmer og datastrukturer Forår 2016 Projekt, del III Institut for matematik og datalogi Syddansk Universitet 20. april, 2016 Dette projekt udleveres i tre dele. Hver del har sin deadline, således

Læs mere

Datalogi OB, Efterår 2002 OH er, forelæsning 10/ Klasser og nedarvning

Datalogi OB, Efterår 2002 OH er, forelæsning 10/ Klasser og nedarvning Datalogi OB, Efterår 2002 OH er, forelæsning 10/9-2002 Klasser og nedarvning Hvad er formålet? Typer, generisk kode, typeparameterisering Kritisk kig på, hvordan man gør i Java. Eftermiddagens opgave:

Læs mere

Klasser og Objekter i Python. Uge 46 Learning Python: kap 15-16, 19-22.

Klasser og Objekter i Python. Uge 46 Learning Python: kap 15-16, 19-22. Klasser og Objekter i Python Uge 46 Learning Python: kap 15-16, 19-22. Klasser og objekter En klasse beskriver en klump af samhørende funktioner og variable En klasse er en beskrivelse. En kage form Klassens

Læs mere

Vejledning og gode råd til den afsluttende synopsisopgave og eksamen

Vejledning og gode råd til den afsluttende synopsisopgave og eksamen AT Vejledning og gode råd til den afsluttende synopsisopgave og eksamen Indhold: 1. Den tredelte eksamen s. 2 2. Den selvstændige arbejdsproces med synopsen s. 2 3. Skolen anbefaler, at du udarbejder synopsen

Læs mere

Kursusgang 11. Oversigt: Sidste kursusgang Værktøjer til udvikling og implementering af HCI-design Oversigt over Java Swing

Kursusgang 11. Oversigt: Sidste kursusgang Værktøjer til udvikling og implementering af HCI-design Oversigt over Java Swing Kursusgang 11 Oversigt: Sidste kursusgang Værktøjer til udvikling og implementering af HCI-design Oversigt over Java Swing Design af brugerflader 11.1 Samme sted Forskellige steder Sidste kursusgang Samtidigt

Læs mere

Assignment #5 Toolbox Contract

Assignment #5 Toolbox Contract Assignment #5 Toolbox Contract Created by: René Kragh Trine Randløv E mail address cph rk70@cphbusiness.dk 23 11 2014 1 Introduktion Dette dokument indeholder en vertikal kontrakt for et system som skal

Læs mere

π er irrationel Frank Nasser 10. december 2011

π er irrationel Frank Nasser 10. december 2011 π er irrationel Frank Nasser 10. december 2011 2008-2011. Dette dokument må kun anvendes til undervisning i klasser som abonnerer på MatBog.dk. Se yderligere betingelser for brug her. Indhold 1 Introduktion

Læs mere

Læreplansændringer matematik høringsversion ikke endelig. FIP 30. marts 2017

Læreplansændringer matematik høringsversion ikke endelig. FIP 30. marts 2017 Læreplansændringer matematik høringsversion ikke endelig 2013 2017 FIP 30. marts 2017 Hvilke væsentlige forskelle? Justering af kernestof mm Ændring af prøveformer Disposition: 1. Hurtig præsentation af

Læs mere