MUTASJONSTESTING LAG BUGS FOR Å FÅ BEDRE KODE

Størrelse: px
Begynne med side:

Download "MUTASJONSTESTING LAG BUGS FOR Å FÅ BEDRE KODE"

Transkript

1 MUTASJONSTESTING LAG BUGS FOR Å FÅ BEDRE KODE Filip van Laenen Testdagen Odin

2 Hvem er jeg? 18 år i IT-bransjen Utvikler (Java/Smalltalk/Ruby) Arkitekt/teknisk ansvarlig (Tester/QA) Flere års erfaring med mutasjonstesting 2

3 Mutation Testing The Book 3

4 Mutation Testing The Book SJEKK PRIS E N! $0.00 4

5 HVA ER MUTASJONSTESTING? 5

6 6

7 7

8 8

9 9

10 Mutasjonen i kildekoden int max(int a, int b) { return (a < b)? b : a; int max(int a, int b) { return (a b)? b : a; 10

11 11

12 12

13 13

14 14

15 Ekvivalente mutasjoner int max(int a, int b) { return (a < b)? b : a; int max(int a, int b) { return (a b)? b : a; 15

16 MUTASJONSOPERATORER 16

17 Mutasjonsoperatorer Aritmetikk (+, -,,, ) Boolske operatorer (,,, ) Sammenligninger (=, <, >,,,, ) Kortslutning av grener Konstanter (tall, tekst, ) Fjerning av linjer Nullstilling av returverdier 17

18 Eksempel integer students_passed(grades) { passed 0; foreach (grade grades) { if (grade 12) { passed passed + 1 return passed; integer students_passed(grades) { passed 0; foreach (grade grades) { if (grade > 12) { passed passed + 1 return passed; 18

19 Eksempel: > integer students_passed(grades) { passed 0; foreach (grade grades) { if (grade 12) { passed passed + 1 return passed; integer students_passed(grades) { passed 0; foreach (grade grades) { if (grade > 12) { passed passed + 1 return passed; 19

20 Eksempel: + integer students_passed(grades) { passed 0; foreach (grade grades) { if (grade 12) { passed passed + 1 return passed; integer students_passed(grades) { passed 0; foreach (grade grades) { if (grade 12) { passed passed - 1 return passed; 20

21 Eksempel: endring av tallverdi integer students_passed(grades) { passed 0; foreach (grade grades) { if (grade 12) { passed passed + 1 return passed; integer students_passed(grades) { passed 0; foreach (grade grades) { if (grade 13) { passed passed + 1 return passed; 21

22 Eksempel: kortslutning av if-løkke integer students_passed(grades) { passed 0; foreach (grade grades) { if (grade 12) { passed passed + 1 return passed; integer students_passed(grades) { passed 0; foreach (grade grades) { if (true) { passed passed + 1 return passed; 22

23 Eksempel: kortslutning av if-løkke integer students_passed(grades) { passed 0; foreach (grade grades) { if (grade 12) { passed passed + 1 return passed; integer students_passed(grades) { passed 0; foreach (grade grades) { if (true) { passed passed + 1 return passed; 23

24 Eksempel: fjerning av en kodelinje integer students_passed(grades) { passed 0; foreach (grade grades) { if (grade 12) { passed passed + 1 return passed; integer students_passed(grades) { passed 0; foreach (grade grades) { if (grade 12) { passed passed + 1 return passed; 24

25 Eksempel: nullstilling av returverdi integer students_passed(grades) { passed 0; foreach (grade grades) { if (grade 12) { passed passed + 1 return passed; integer students_passed(grades) { passed 0; foreach (grade grades) { if (grade 12) { passed passed + 1 return 0; 25

26 Mutasjonsoperatorer Regulære uttrykk Samtidighet Avhengigheter API-endringer Arv 26

27 Utfordringer Evige løkker/rekursjon Syntaksfeil Tilstandslekkasje Segmentation faults Ekvivalente mutasjoner 27

28 Ekvivalente mutasjoner To forskjellige systemer som alltid gir samme output for samme input Vanskelig å oppdage automatisk Vanskelig å verifisere manuelt 28

29 Ekvivalente mutasjoner number max(a, b) { if (a b) { return a; else { return b; number max(a, b) { if (a > b) { return a; else { return b; 29

30 Ekvivalente mutasjoner number max(a, b) { if (a b) { return a; else { return b; number max(a, b) { if (a > b) { return a; else { return b; 30

31 HVORFOR VIRKER MUTASJONSTESTING? 31

32 Hvorfor virker mutasjonstesting? Generated mutants are similar to real faults. 32 Andrews, Briand, Labiche, ICSE 2005

33 Hvorfor virker mutasjonstesting? In practice, if the software contains a fault, there will usually be a set of mutants that can only be killed by a test case that also detects that fault. Geist et. al., Estimation and Enhancement of Real-time Software Reliability through Mutation Analysis,

34 Hvorfor virker mutasjonstesting? Complex faults are coupled to simple faults in such a way that a test data set that detects all simple faults in a program will detect most complex faults. K. Wah, Fault Coupling in Finite Bijective Functions,

35 Hvorfor virker mutasjonstesting? Complex faults are coupled to simple faults in such a way that a test data set that detects all simple faults in a program will detect most complex faults. K. Wah, Fault Coupling in Finite Bijective Functions,

36 Virker mutasjonstesting? Mutation testing is more powerful than statement or branch coverage. Walsh, Ph.D. Thesis, State University of New York at Binghampton, 1985 Mutation testing is superior to data flow coverage criteria. Frankl, Weiss, Hu, Journal of Systems and Software,

37 MUTASONSTESTING OG TESTING 37

38 Testdekning Vanskelig å jukse Å kjøre gjennom kildekoden er ikke nok Kan peke ut fokusområder for manuell testing 38

39 Manglende testtilfeller 39 Tips til nye testtilfeller Avhengig av verktøyet Krever tilgang til rapportene Ikke alltid trivielt

40 Eksempel integer students_passed(grades) { passed 0; foreach (grade grades) { if (grade 12) { passed passed + 1 return passed; integer students_passed(grades) { passed 0; foreach (grade grades) { if (grade > 12) { passed passed + 1 return passed; 40

41 Eksempel: > integer students_passed(grades) { passed 0; foreach (grade grades) { if (grade 12) { passed passed + 1 Ha en 12 i return passed; testsettet ditt integer students_passed(grades) { passed 0; foreach (grade grades) { if (grade > 12) { passed passed + 1 return passed; 41

42 Eksempel: + integer students_passed(grades) { passed 0; foreach (grade grades) { if (grade 12) { passed passed + 1 Ha en return passed; 12 i testsettet ditt integer students_passed(grades) { passed 0; foreach (grade grades) { if (grade 12) { passed passed - 1 return passed; 42

43 Eksempel: endring av tallverdi integer students_passed(grades) { passed 0; foreach (grade grades) { if (grade 12) { passed passed + 1 Ha en 12 i return passed; testsettet ditt integer students_passed(grades) { passed 0; foreach (grade grades) { if (grade 13) { passed passed + 1 return passed; 43

44 Eksempel: kortslutning av if-løkke integer students_passed(grades) { passed 0; foreach (grade grades) { if (grade 12) { passed passed + 1 Ha en <12 return passed; i testsettet ditt integer students_passed(grades) { passed 0; foreach (grade grades) { if (true) { passed passed + 1 return passed; 44

45 Eksempel: fjerning av en kodelinje integer students_passed(grades) { passed 0; foreach (grade grades) { if (grade 12) { passed passed + 1 return passed; Ha en 12 i testsettet ditt integer students_passed(grades) { passed 0; foreach (grade grades) { if (grade 12) { passed passed + 1 return passed; 45

46 Eksempel: nullstilling av returverdi integer students_passed(grades) { passed 0; foreach (grade grades) { if (grade 12) { passed passed + 1 return passed; integer students_passed(grades) { passed 0; foreach (grade grades) { if (grade 12) { passed passed + 1 Ha en 12 i testsettet return 0; 46 ditt

47 HVIS MUTASJONSTESTING ER SÅ BRA, HVORFOR BLIR DET IKKE BRUKT? 47

48 Mutasjonstesting er gammelt nytt Allerede beskrevet i 1971: R. Lipton, Fault Diagnosis of Computer Programs Videre forskning i løpet av 1970tallet: R. Lipton et. al., Hints on Test Data Selection: Help for the Practicing Programmer,

49 Historiske hindringer Mangel på enhetstestingverktøy Mangel på enhetstestingpraksis Ineffektive implementasjoner TDD Lange prosesseringstider Integrasjon med utviklingsverktøy 49

50 50

51 YTELSE 51

52 Kildekode eller binærkode? Kildekode Tekstmanipulasjon Krever kompilering Binærkode Raskt Krever dekompilering AST-tre Gylden middelvei? 52

53 Utvelgelse av enhetstester Mål: finne enhetstesten som «dreper» mutanten 53

54 54

55 55

56 56

57 Utvelgelse av enhetstester Mål: finne enhetstesten som «dreper» mutanten Midler: Testdekning Manuelle hints Konvensjoner (klassenavn, pakkenavn) Caching av testresultater 57

58 Kompleksitet Eksempel: 50 klasser 20 enhetstester per klasse 1ms per enhetstest Testrunde: ms = 1s 100 mutanter per klasse: Naiv implementasjon: s = 1h 23m 20s Klassescoping: ms = 1m 40s Idealt: ms = 5s 58

59 Kompleksitet Eksempel: 500 klasser 20 enhetstester per klasse 1ms per enhetstest Testrunde: ms = 10s 100 mutanter per klasse: Naiv implementasjon: s = 5,8d Klassescoping: ms = 16m 40s Idealt: ms = 50s 59

60 VERKTØY 60

61 Anbefalte verktøy Java: Ruby: Humbug JavaScript: Mutant PHP: PIT Grunt-mutation-testing 61

62 PIT Java JUnit & TestNG Maven & kommandolinje Muterer bytekode Konfigurerbart sett med mutatorer 62

63 PIT Java JUnit & TestNG Maven & kommandolinje Muterer bytekode Konfigurerbart sett med mutatorer

64 PIT Java JUnit & TestNG Maven & kommandolinje Muterer bytekode Konfigurerbart sett med mutatorer

65 Mutant Ruby Rspec Kommandolinje Aktivt prosjekt Grei dokumentasjon

66 HVORDAN KOMME I GANG? 66

67 Hvordan komme i gang Velg riktig verktøy Om mulig, bruk fra dag 1 Avgrens i begynnelsen Kritisk kode Relevante mutatorer Lær å bruke verktøyet Tro på hva det sier Eller bevis at det tar feil 67

68 OPPSUMMERING 68

69 Er mutasjonstesting nyttig? Enkle prinsipper Veldig kraftig verktøy Utfordringer rundt ytelse Verktøyene blir bedre og bedre Ja 69, forutsatt at enhetstesting er på plass

70 Er mutasjonstesting nyttig? Enkle prinsipper Veldig kraftig verktøy Utfordringer rundt ytelse Verktøyene blir bedre og bedre Ja 70, forutsatt at enhetstesting er på plass

71 Er mutasjonstesting nyttig? Enkle prinsipper Veldig kraftig verktøy Utfordringer rundt ytelse Verktøyene blir bedre og bedre Ja 71, forutsatt at enhetstesting er på plass

72 Takk for din oppmerksomhet! Contact /

Oversikt. Introduksjon Kildekode Kompilering Hello world Hello world med argumenter. 1 C programmering. 2 Funksjoner. 3 Datatyper. 4 Pekere og arrays

Oversikt. Introduksjon Kildekode Kompilering Hello world Hello world med argumenter. 1 C programmering. 2 Funksjoner. 3 Datatyper. 4 Pekere og arrays Oversikt C programmering 1 C programmering Introduksjon Kildekode Kompilering Hello world Hello world med argumenter 2 Funksjoner 3 Datatyper 4 Pekere og arrays 5 Kontrollstrukturer Lars Vidar Magnusson

Detaljer

Testdekning og automatisering - Er 100% testdekning et mål?

Testdekning og automatisering - Er 100% testdekning et mål? Testdekning og automatisering - Er 100% testdekning et mål? Shomaila Kausar, Senior prosjektleder/testleder Ole Fingal Harbek, Senior Testleder Testdagen Odin 2017 Kort om oss Shomaila Kausar - cand scient

Detaljer

Effektiv testing. Per Otto Bergum Christensen. 9.-10. September, JavaZone. Bergum Christensen Consulting

Effektiv testing. Per Otto Bergum Christensen. 9.-10. September, JavaZone. Bergum Christensen Consulting Effektiv testing Per Otto Bergum Christensen 9.-10. September, JavaZone Bergum Christensen Consulting Om meg Per Otto Bergum Christensen (33) Siv.ing, Datateknikk, NTNU Jobbet med utviklingsprosjekter

Detaljer

ISTQB Foundation Level Prøveeksamen

ISTQB Foundation Level Prøveeksamen ISTQB Foundation Level Prøveeksamen Svar på følgende spørsmål For hvert spørsmål er der ETT og BARE ETT rett svar! (Unntak er avmerket spesielt). Spørsmål til Kap 1 ("Fundamentals") 1.1. (K2) Hva er betydningen

Detaljer

Grunnleggende testteori

Grunnleggende testteori 1 Grunnleggende testteori Error-Fault-Failure 2 Error : når en programmerer koder feil eller utelater kode (evt. miljøpåvirkning) årsaken til en fault Fault (defect eller bug): feil i kode kan lede til

Detaljer

GJENNOMGANG UKESOPPGAVER 9 TESTING

GJENNOMGANG UKESOPPGAVER 9 TESTING GJENNOMGANG UKESOPPGAVER 9 TESTING INF1050 V16 KRISTIN BRÆNDEN 1 A) Testing viser feil som du oppdager under kjøring av testen. Forklar hvorfor testing ikke kan vise at det ikke er flere gjenstående feil.

Detaljer

Obligatorisk Oppgave 1

Obligatorisk Oppgave 1 Obligatorisk Oppgave 1 INF5110/INF9110 - Kompilatorteknikk Våren 2013 Frist fredag 15. mars Hensikten med Oppgaven Tanken bak denne oppgaven er at man skal få litt praktisk erfaring med følgende: Bruke

Detaljer

Obligatorisk oppgave 1 INF Kompilatorteknikk Våren 2012 Frist mandag 19. mars

Obligatorisk oppgave 1 INF Kompilatorteknikk Våren 2012 Frist mandag 19. mars Obligatorisk oppgave 1 INF5110 - Kompilatorteknikk Våren 2012 Frist mandag 19. mars 1. Hensikten med oppgaven Tanken bak denne oppgaven er at man skal få litt praktisk erfaring med følgende: Bruke skannings-

Detaljer

Del 3: Evaluere uttrykk

Del 3: Evaluere uttrykk Del 3: Evaluere uttrykk Hva skal vi gjøre? Hvordan lagre Asp-verdier Hvilke operasjoner må jeg implementere? Er operasjonen lovlig? Utføre operasjonen Strukturen til interpreten vår f.asp 3&4 Interpret

Detaljer

Mattespill Nybegynner Python PDF

Mattespill Nybegynner Python PDF Mattespill Nybegynner Python PDF Introduksjon I denne leksjonen vil vi se litt nærmere på hvordan Python jobber med tall, og vi vil lage et enkelt mattespill. Vi vil også se hvordan vi kan gjøre ting tilfeldige.

Detaljer

Øvingsforelesning 5 Python (TDT4110)

Øvingsforelesning 5 Python (TDT4110) Øvingsforelesning 5 Python (TDT4110) Repetisjon av løkker og funksjoner Ole-Magnus Pedersen Oversikt Praktisk Info Gjennomgang av Øving 3 Repetisjon 2 Praktisk info Prosjekter i PyCharm må startes med

Detaljer

INF1010 våren januar. Objektorientering i Java

INF1010 våren januar. Objektorientering i Java INF1010 våren 2017 25. januar Objektorientering i Java Om enhetstesting (Repetisjon av INF1000 og lær deg Java for INF1001 og INF1100) Stein Gjessing Hva er objektorientert programmering? F.eks: En sort

Detaljer

Dynamic Programming Longest Common Subsequence. Class 27

Dynamic Programming Longest Common Subsequence. Class 27 Dynamic Programming Longest Common Subsequence Class 27 Protein a protein is a complex molecule composed of long single-strand chains of amino acid molecules there are 20 amino acids that make up proteins

Detaljer

Programmering Høst 2017

Programmering Høst 2017 Programmering Høst 2017 Tommy Abelsen Ingeniørfag - Data Innledning Dette er et dokument med litt informasjon og eksempler om kontrollstrukturer, samt oppgaver til forskjellige kontrollstrukturer. Spør

Detaljer

Øvingsforelesning 5 Python (TDT4110)

Øvingsforelesning 5 Python (TDT4110) Øvingsforelesning 5 Python (TDT4110) Repetisjon av løkker og funksjoner Ole-Magnus Pedersen Oversikt Praktisk Info Gjennomgang av Øving 3 Repetisjon 2 Praktisk info Prosjekter i PyCharm må startes med

Detaljer

IN2010: Algoritmer og Datastrukturer Series 2

IN2010: Algoritmer og Datastrukturer Series 2 Universitetet i Oslo Institutt for Informatikk S.M. Storleer, S. Kittilsen IN2010: Algoritmer og Datastrukturer Series 2 Tema: Grafteori 1 Publisert: 02. 09. 2019 Utvalgte løsningsforslag Oppgave 1 (Fra

Detaljer

MAT1030 Plenumsregning 1

MAT1030 Plenumsregning 1 MAT1030 Plenumsregning 1 Kapittel 1 Mathias Barra - 16. januar 2009 (Sist oppdatert: 2009-02-02 14:21) Plenumsregning 1 Velkommen til plenumsregning for MAT1030 Fredager 12:15 14:00 Vi vil gjennomgå utvalgte

Detaljer

Unit Relational Algebra 1 1. Relational Algebra 1. Unit 3.3

Unit Relational Algebra 1 1. Relational Algebra 1. Unit 3.3 Relational Algebra 1 Unit 3.3 Unit 3.3 - Relational Algebra 1 1 Relational Algebra Relational Algebra is : the formal description of how a relational database operates the mathematics which underpin SQL

Detaljer

JigZaw. Teststategi utviklet av. Erik Drolshammer Bård Lind. Verifiser Forventet Funksjonalitet

JigZaw. Teststategi utviklet av. Erik Drolshammer Bård Lind. Verifiser Forventet Funksjonalitet JigZaw Verifiser Forventet Funksjonalitet Teststategi utviklet av Erik Drolshammer Bård Lind Bård Lind Java siden 1997 Arkitekt siden 2000 JavaBin siden 1999 Enterprise Domain Repository og JigZaw-teststrategi

Detaljer

Plenumsregning 1. Kapittel 1. Roger Antonsen januar Velkommen til plenumsregning for MAT1030. Repetisjon: Algoritmer og pseudokode

Plenumsregning 1. Kapittel 1. Roger Antonsen januar Velkommen til plenumsregning for MAT1030. Repetisjon: Algoritmer og pseudokode Plenumsregning 1 Kapittel 1 Roger Antonsen - 17. januar 2008 Velkommen til plenumsregning for MAT1030 Torsdager 10:15 12:00 Gjennomgang av ukeoppgaver Gjennomgang av eksempler fra boka Litt repetisjon

Detaljer

INF5110 Obligatorisk Oppgave 2 del 2. Andreas Svendsen SINTEF. 23. April Oversikt

INF5110 Obligatorisk Oppgave 2 del 2. Andreas Svendsen SINTEF. 23. April Oversikt INF5110 Obligatorisk Oppgave 2 del 2 Andreas Svendsen SINTEF 23. April 2009 Oversikt Tilbakeblikk på oppgaven Eksempel på sjekk av semantikk Eksempel på kodegenerering Nødvendige instruksjoner for IF-noden

Detaljer

Programmering. Carsten Wulff

Programmering. Carsten Wulff Programmering Carsten Wulff 2010-06-15 Oversikt Hva er et programmeringsspråk Hvorfor trenger man et programmeringsspråk Hvordan ser et typisk språk ut Kompilering Hvilke språk fins i verden Hvordan ser

Detaljer

MAT1030 Diskret Matematikk

MAT1030 Diskret Matematikk MAT1030 Diskret Matematikk Plenumsregning 1: Kapittel 1 Mathias Barra Matematisk institutt, Universitetet i Oslo 16. januar 2009 (Sist oppdatert: 2009-02-02 14:21) Plenumsregning 1 MAT1030 Diskret Matematikk

Detaljer

Grunnleggende testteori. Etter Hans Schaefer

Grunnleggende testteori. Etter Hans Schaefer Grunnleggende testteori Etter Hans Schaefer Industri- og softwareprodukt Industriprodukt Fysisk produkt Testes under produksjon og til slutt om produktet oppfyller kravene Tilpasses, endres, redesignes,

Detaljer

Øvingsforelesning 1 Python (TDT4110)

Øvingsforelesning 1 Python (TDT4110) Øvingsforelesning 1 Python (TDT4110) Introduksjon, Kalkulasjoner Ole-Magnus Pedersen Oversikt Praktisk Info Repetisjon fra sist Oppgaver for øving 2 2 Praktisk Info Last opp øvinger på Blackboard før godkjenning

Detaljer

Løsningsforslag 2017 eksamen

Løsningsforslag 2017 eksamen Løsningsforslag 2017 eksamen Oppgave 1: O-notasjon (maks 8 poeng) 1. (i) O(n) gir 2 poeng, O(100n) gir 1 poeng (ii) O(n^2) gir 1 poeng (iii) O(n log n) gir 2 poeng 2. (i) er mest effektiv i henhold til

Detaljer

Grunnleggende testteori

Grunnleggende testteori 1 Grunnleggende testteori Industri - og software produkt Industriprodukt: Fysisk produkt Testes under produksjon og til slutt om produktet oppfyller kravene Tilpasses, endres, redesignes, og justeres så

Detaljer

Programmeringsspråket C Del 2. Hans Petter Taugbøl Kragset

Programmeringsspråket C Del 2. Hans Petter Taugbøl Kragset Programmeringsspråket C Del 2 Hans Petter Taugbøl Kragset Repetisjon I C er ikke array en egen type, men variabler kan være arrayer! 28.08.17 Hans Petter Taugbøl Kragset 2 Arrays Java int[] arr1 = {1,

Detaljer

Dagens tema. Hva er kompilering? Anta at vi lager dette lille programmet (kalt kildekoden): Hva er kompilering?

Dagens tema. Hva er kompilering? Anta at vi lager dette lille programmet (kalt kildekoden): Hva er kompilering? Dagens tema Dagens tema Kildekode Hva er kompilering? Anta at vi lager dette lille programmet (kalt kildekoden): Hva er kompilering? Hvordan foreta syntaksanalyse av et program? Hvordan programmere dette

Detaljer

Kneser hypergraphs. May 21th, CERMICS, Optimisation et Systèmes

Kneser hypergraphs. May 21th, CERMICS, Optimisation et Systèmes Kneser hypergraphs Frédéric Meunier May 21th, 2015 CERMICS, Optimisation et Systèmes Kneser hypergraphs m, l, r three integers s.t. m rl. Kneser hypergraph KG r (m, l): V (KG r (m, l)) = ( [m]) l { E(KG

Detaljer

IN1010 våren januar. Objektorientering i Java

IN1010 våren januar. Objektorientering i Java IN1010 våren 2018 23. januar Objektorientering i Java Om enhetstesting Om arrayer og noen klasser som kan ta vare på objekter Stein Gjessing Hva er objektorientert programmering? F.eks: En sort boks som

Detaljer

Dagens tema. Hva er kompilering? Anta at vi lager dette lille programmet doble.rusc (kalt kildekoden): Hva er kompilering?

Dagens tema. Hva er kompilering? Anta at vi lager dette lille programmet doble.rusc (kalt kildekoden): Hva er kompilering? Dagens tema Dagens tema Kildekode Hva er kompilering? Hva er kompilering? Hvordan foreta syntaksanalyse av et program? Hvordan programmere dette i Java? Hvordan oppdage feil? Anta at vi lager dette lille

Detaljer

Regelbaserte systemer for beregning av pensjon

Regelbaserte systemer for beregning av pensjon Regelbaserte systemer for beregning av pensjon erfaringer - muligheter - begrensninger IBM Smarter Business 2011 Rune Sørensen Arkitekt regelbaserte systemer @rugsor linkedin.com/in/rugsor 970 000 medlemmer

Detaljer

MAT1030 Diskret matematikk

MAT1030 Diskret matematikk MAT1030 Diskret matematikk Plenumsregning 1: Kapittel 1 Roger Antonsen Matematisk Institutt, Universitetet i Oslo 17. januar 2008 Velkommen til plenumsregning for MAT1030 Torsdager 10:15 12:00 Gjennomgang

Detaljer

Forkurs INF1010. Dag 2. Andreas Færøvig Olsen Gard Inge Rosvold Institutt for Informatikk, 14.

Forkurs INF1010. Dag 2. Andreas Færøvig Olsen Gard Inge Rosvold Institutt for Informatikk, 14. Forkurs INF1010 Dag 2 Andreas Færøvig Olsen (andrefol@ifi.uio.no) Gard Inge Rosvold (gardir@ifi.uio.no) Institutt for Informatikk, 14. januar 2016 Forkurs INF1010 - dag 2 Feilmeldinger 2 Forkurs INF1010

Detaljer

Algoritmer - definisjon

Algoritmer - definisjon Algoritmeanalyse Algoritmer - definisjon En algoritme er en beskrivelse av hvordan man løser et veldefinert problem med en presist formulert sekvens av et endelig antall enkle, utvetydige og tidsbegrensede

Detaljer

Løsningsforslag for Obligatorisk Oppgave 2. Algoritmer og Datastrukturer ITF20006

Løsningsforslag for Obligatorisk Oppgave 2. Algoritmer og Datastrukturer ITF20006 Løsningsforslag for Obligatorisk Oppgave 2 Algoritmer og Datastrukturer ITF20006 Lars Vidar Magnusson Frist 28.02.14 Den andre obligatoriske oppgaven tar for seg forelesning 5, 6, og 7 som dreier seg om

Detaljer

or*dtrosnilt,'+'.q':'

or*dtrosnilt,'+'.q':' %,u lbnvaston.*.'. or*dtrosnilt,'+'.q':' JavaBin 5. mai Vidar Alvestad - Skatteetaten Inspirert av: Noen eksempler er hentet fra boken. Jeg tror Mr. Feathers tilgir meg dersom du kjøper boken ;-) Hva er

Detaljer

public static <returtype> navn_til_prosedyre(<parameter liste>) { // implementasjon av prosedyren

public static <returtype> navn_til_prosedyre(<parameter liste>) { // implementasjon av prosedyren Prosedyrer Hensikten med en prosedyre Hensikten med en prosedyre er, logisk sett, å representere en jobb eller en funksjonalitet i et eller flere programmer. Bruk av entall er viktig: vi har generelt en

Detaljer

OPPGAVE 1 OBLIGATORISKE OPPGAVER (OBLIG 1) (1) Uten å selv implementere og kjøre koden under, hva skriver koden ut til konsollen?

OPPGAVE 1 OBLIGATORISKE OPPGAVER (OBLIG 1) (1) Uten å selv implementere og kjøre koden under, hva skriver koden ut til konsollen? OPPGAVESETT 4 PROSEDYRER Oppgavesett 4 i Programmering: prosedyrer. I dette oppgavesettet blir du introdusert til programmering av prosedyrer i Java. Prosedyrer er også kjent som funksjoner eller subrutiner.

Detaljer

Feilmeldinger, brukerinput og kontrollflyt

Feilmeldinger, brukerinput og kontrollflyt Feilmeldinger, brukerinput og kontrollflyt Skjønne hvordan et program presist utføres og forberede seg på håndtering av feil INF1000, uke2 Ragnhild Kobro Runde Programmeringskrøll Programmet vil ikke kjøre

Detaljer

Innholdsfortegnelse. 1. Testing Feiltesting av koden Funksjonstesting: Kilder.10

Innholdsfortegnelse. 1. Testing Feiltesting av koden Funksjonstesting: Kilder.10 1 Innholdsfortegnelse 1. Testing... 3 1.1 Feiltesting av koden... 3 1.2 Funksjonstesting:... 7 2. Kilder.10 2 1. Testing Testing av et system er nødvendig for å finne ut om systemet fungere slik det skal

Detaljer

Fra sekvensielt til parallelt

Fra sekvensielt til parallelt Fra sekvensielt til parallelt «Sanntidprogrammering etter 33 år» Øyvind Teig senior utviklingsingeniør Autronica Fire and Security, «a UTC company» Gjesteforelesning på Høgskolen i Sør-Trøndelag (HiST)

Detaljer

System integration testing. Forelesning Systems Testing UiB Høst 2011, Ina M. Espås,

System integration testing. Forelesning Systems Testing UiB Høst 2011, Ina M. Espås, System integration testing Forelesning Systems Testing UiB Høst 2011, Ina M. Espås, Innhold Presentasjon Hva er integration testing (pensum) Pros og cons med integrasjonstesting Når bruker vi integration

Detaljer

Et lite oppdrag i bakgrunnen

Et lite oppdrag i bakgrunnen Et lite oppdrag i bakgrunnen Under pultene på bakerste rad er det klistret post-it lapper med to tall skrevet på Regn ut summen av to nederste tall, skriv denne summen under de andre tallene, og send lappen

Detaljer

EKSAMEN. Les gjennom alle oppgavene før du begynner. Husk at det ikke er gitt at oppgavene står sortert etter økende vanskelighetsgrad.

EKSAMEN. Les gjennom alle oppgavene før du begynner. Husk at det ikke er gitt at oppgavene står sortert etter økende vanskelighetsgrad. EKSAMEN Emnekode: Emne: ITM20606 Webprogrammering med PHP Dato: Eksamenstid: 11/12-2007 09.00-13.00 Hjelpemidler: 2 A4 ark (4 sider) med egenproduserte notater (håndskrevne/maskinskrevne) Faglærer: Tom

Detaljer

INF1010 - Seminaroppgaver til uke 3

INF1010 - Seminaroppgaver til uke 3 INF1010 - Seminaroppgaver til uke 3 Oppgave 1 I denne oppgaven skal vi lage et klassehiearki av drikker. Alle klassene i hiearkiet skal implementere følgende grensesnitt p u b l i c i n t e r f a c e Drikkbar

Detaljer

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet Eksamen i MAT2400 Analyse 1. Eksamensdag: Onsdag 15. juni 2011. Tid for eksamen: 09.00 13.00 Oppgavesettet er på 6 sider. Vedlegg: Tillatte

Detaljer

Test i Praksis. NTNU Februar 2014. Copyright 2014 Accenture All Rights Reserved.

Test i Praksis. NTNU Februar 2014. Copyright 2014 Accenture All Rights Reserved. Test i Praksis NTNU Februar 2014 Hvem er vi? Erik Gjerdrum Master i Kommunikasjonssystemer fra IFI UiO Jobbet med test i siden 2006 Markus Living Master i Industriell Økonomi fra Linköping, Sverige Jobbet

Detaljer

Semantikk. Dagens tema Kjøresystemer (Ghezzi&Jazayeri 2.6, 2.7) Semantikk. Semantikk. En måte å svare på: gi semantikken til språket!

Semantikk. Dagens tema Kjøresystemer (Ghezzi&Jazayeri 2.6, 2.7) Semantikk. Semantikk. En måte å svare på: gi semantikken til språket! agens tema Kjøresystemer (Ghezzi&Jazayeri.,.) Innledende om semantikk Operasjonell semantikk / SIMPLESEM Bokholderi og minneorganisering Forskjellige språkklasser... en beskrivelse av hva som skjer når

Detaljer

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet Eksamen i INF 3230 Formell modellering og analyse av kommuniserende systemer Eksamensdag: 4. juni 2010 Tid for eksamen: 9.00 12.00 Oppgavesettet

Detaljer

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO Eksamen i UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet Eksamensdag: 15. desember 2010 Tid for eksamen: 14.30 18.30 Oppgavesettet er på 8 sider. Vedlegg: Tillatte hjelpemidler: INF2220

Detaljer

Kompilering Statiske Syntaksanalyse Feilsjekking Eksempel Oppsummering

Kompilering Statiske Syntaksanalyse Feilsjekking Eksempel Oppsummering Dagens tema Hva er kompilering? Hvordan foreta syntaksanalyse av et program? Hvordan programmere dette i Java? Statiske metoder og variabler Hvordan oppdage feil? Kildekode Hva er kompilering? Anta at

Detaljer

public static <returtype> navn_til_prosedyre(<parameter liste>) { // implementasjon av prosedyren

public static <returtype> navn_til_prosedyre(<parameter liste>) { // implementasjon av prosedyren Prosedyrer Hensikten med en prosedyre Hensikten med en prosedyre er, logisk sett, å representere en jobb eller en funksjonalitet i et eller flere programmer. Bruk av entall er viktig: vi har generelt en

Detaljer

programeksempel Et større En større problemstilling Plan for forelesingen Problemstillingen (en tekstfil) inneholdt ordet "TGA"

programeksempel Et større En større problemstilling Plan for forelesingen Problemstillingen (en tekstfil) inneholdt ordet TGA Et større programeksempel Hvordan løse et reelt problem med en objektorientert fremgangsmåte En større problemstilling I uke 4 skrev vi et program for å sjekke om et gen (en tekstfil) inneholdt ordet "TGA"

Detaljer

Nybegynnerkurs i C. Øyvind Grønnesby. 14. oktober Introduksjon Typer Operatorer Kontrollstrukturer Pekere Makroer Lenker

Nybegynnerkurs i C. Øyvind Grønnesby. 14. oktober Introduksjon Typer Operatorer Kontrollstrukturer Pekere Makroer Lenker Nybegynnerkurs i C Øyvind Grønnesby 14. oktober 2004 Introduksjon pass-by-value svakt typet portabel assembler siste ISO-standard er C99 Hello world #i n c l u d e < s t d l i b. h> #i n c l u d e

Detaljer

Binære trær: Noen algoritmer og anvendelser

Binære trær: Noen algoritmer og anvendelser Binære trær: Noen algoritmer og anvendelser Algoritmer / anvendelser: Søking i usortert binært tre Telling av antall noder og nivåer i treet Traversering av binære trær Binære uttrykkstrær Kunstig intelligens(?):

Detaljer

Skanning del I. Kapittel 2 INF 3110/ INF

Skanning del I. Kapittel 2 INF 3110/ INF Skanning del I Kapittel 2 18.01.2013 1 Skanning: innhold (begge forelesningene) Hva gjør en skanner? Input: programteksten. Output: Ett og ett token fra programteksten (sekvensielt). Regulære uttrykk/definisjoner.

Detaljer

Statisk testing. Testing uten datamaskin, men med vår egen evne til å vurdere og analysere

Statisk testing. Testing uten datamaskin, men med vår egen evne til å vurdere og analysere Statisk testing Testing uten datamaskin, men med vår egen evne til å vurdere og analysere Hva er statisk testing Analyser som utføres på skrevne dokumenter Hensikten er å finne avvik fra spesifikasjonene

Detaljer

Plenumsregning 1. MAT1030 Diskret Matematikk. Repetisjon: Algoritmer og pseudokode. Velkommen til plenumsregning for MAT1030

Plenumsregning 1. MAT1030 Diskret Matematikk. Repetisjon: Algoritmer og pseudokode. Velkommen til plenumsregning for MAT1030 MAT1030 Diskret Matematikk Plenumsregning 1: Kapittel 1 Mathias Barra Matematisk institutt, Universitetet i Oslo Plenumsregning 1 16. januar 2009 (Sist oppdatert: 2009-02-02 14:21) MAT1030 Diskret Matematikk

Detaljer

Norsk (English below): Guide til anbefalt måte å printe gjennom plotter (Akropolis)

Norsk (English below): Guide til anbefalt måte å printe gjennom plotter (Akropolis) Norsk (English below): Guide til anbefalt måte å printe gjennom plotter (Akropolis) 1. Gå til print i dokumentet deres (Det anbefales å bruke InDesign til forberedning for print) 2. Velg deretter print

Detaljer

INF uke 2. Inputt, beslutninger, kontrollflyt og prosedyrer

INF uke 2. Inputt, beslutninger, kontrollflyt og prosedyrer INF1001 - uke 2 Inputt, beslutninger, kontrollflyt og prosedyrer Repetisjon fra forrige uke Lese inn fra tastaturet Beslutninger Kontrollflyt Prosedyrer Outline: Repetisjon fra forrige uke Lese inn fra

Detaljer

Fra sekvensielt til parallelt

Fra sekvensielt til parallelt Fra sekvensielt til parallelt «Sanntidprogrammering etter 34 år» Øyvind Teig senior utviklingsingeniør Autronica Fire and Security, «a UTC company» Gjesteforelesning på Høgskolen i Sør-Trøndelag (HiST)

Detaljer

Inf1055 Modul B 26 april 2017:

Inf1055 Modul B 26 april 2017: Inf1055 Modul B 26 april 2017: Del 1: - Testing Yngve Lindsjørn ynglin@ifi.uio.no 1 Oversikt - Testing Hva er testing? Validering &Verifisering Testfaser Enhetstesting Integrasjonstesting Systemtesting

Detaljer

04.11.2014. Ph.d-utdanningen. Harmonisering av krav i Norden

04.11.2014. Ph.d-utdanningen. Harmonisering av krav i Norden Ph.d-utdanningen Harmonisering av krav i Norden 2 1 Nasjonalt forskningsdekanmøte i Tromsø, oktober 2014 Nordic Medical Research Councils (NOS-M), november 2014 Prodekanmøte våren 2015 Dekanmøte våren

Detaljer

Kom forberedt til tirsdag. INF1000 Tips til obligatorisk oppgave 4. Noen generelle tips. Oblig4: Komme igang

Kom forberedt til tirsdag. INF1000 Tips til obligatorisk oppgave 4. Noen generelle tips. Oblig4: Komme igang Kom forberedt til tirsdag INF1000 Tips til obligatorisk oppgave 4 Kikk på prøveeksamen fra 2004 http://www.uio.no/studier/emner/matnat/ifi/inf1000/h 07/undervisningsmateriale/proveeksamen-H2004.pdf Tittel:

Detaljer

Python: Valg og betingelser. TDT4110 IT Grunnkurs Professor Guttorm Sindre

Python: Valg og betingelser. TDT4110 IT Grunnkurs Professor Guttorm Sindre Python: Valg og betingelser TDT4110 IT Grunnkurs Professor Guttorm Sindre Læringsmål og pensum Mål Kunne forstå og bruke if-setninger sammenlikning av strenger nøstede beslutningsstrukturer betingelser

Detaljer

Dagens tema: Sjekking

Dagens tema: Sjekking Dagens tema Dagens tema: Sjekking Navnebinding (obligatorisk oppgave 3) Biblioteket Logging Riktig bruk av navn (frivillig) Typesjekking (frivillig) Hele prosjektet Strukturen til kompilatoren vår f.pas

Detaljer

MAT1030 Diskret Matematikk

MAT1030 Diskret Matematikk MAT1030 Diskret Matematikk Plenumsregning 4: Ukeoppgaver Mathias Barra Matematisk institutt, Universitetet i Oslo 6. februar 2009 (Sist oppdatert: 2009-02-10 11:21) Plenumsregning 4 MAT1030 Diskret Matematikk

Detaljer

Databases 1. Extended Relational Algebra

Databases 1. Extended Relational Algebra Databases 1 Extended Relational Algebra Relational Algebra What is an Algebra? Mathematical system consisting of: Operands --- variables or values from which new values can be constructed. Operators ---

Detaljer

Viktig. Rettet i koden. Obligatorisk oppgave 2 Litt flere detaljer om semantikksjekk og kodegenerering. Semantikksjekk

Viktig. Rettet i koden. Obligatorisk oppgave 2 Litt flere detaljer om semantikksjekk og kodegenerering. Semantikksjekk Obligatorisk oppgave 2 Litt flere detaljer om semantikksjekk og kodegenerering Viktig Ny patch (patch_oblig2.zip) er lagt ut (15/4) Oblig 1 vil bli rettet denne uken Sjekk om det er registrert at den er

Detaljer

Velkommen til plenumsregning for MAT1030. MAT1030 Diskret matematikk. Repetisjon: Algoritmer og pseudokode. Eksempel fra boka. Eksempel

Velkommen til plenumsregning for MAT1030. MAT1030 Diskret matematikk. Repetisjon: Algoritmer og pseudokode. Eksempel fra boka. Eksempel Velkommen til plenumsregning for MAT1030 MAT1030 Diskret matematikk Plenumsregning 1: Kapittel 1 Roger Antonsen Matematisk Institutt, Universitetet i Oslo 17. januar 2008 Torsdager 10:15 12:00 Gjennomgang

Detaljer

Obligatorisk Oppgave 1

Obligatorisk Oppgave 1 Obligatorisk Oppgave 1 INF5110 - Kompilatorteknikk Våren 2016 Frist: 20. mars 23:59 Hensikten med Oppgaven Tanken bak denne oppgaven er at man skal få litt praktisk erfaring med følgende: Bruke skannings-

Detaljer

Tyrannosaurus Test Adapt or Die!

Tyrannosaurus Test Adapt or Die! Tyrannosaurus Test Adapt or Die! Testdagen Odin 2014 Remi Hansen & Christian Brødsjø 26.09.2014 Promis Qualify AS 1 Om oss og tema Dinosaurer og evolusjon Context-driven testing filosofi og prinsipper

Detaljer

Høgskoleni østfold EKSAMEN

Høgskoleni østfold EKSAMEN Høgskoleni østfold EKSAMEN 7 Emnekode:Emne: ITF10212Innføring i programmering Dato:Eksamenstid: 4. desember 2012 kl 09.00 til kl 13.00 Hjelpemidler: Faglærer: To A4-ark (4 sider) med egenproduserte notater

Detaljer

IN1010. Fra Python til Java. En introduksjon til programmeringsspråkenes verden Dag Langmyhr

IN1010. Fra Python til Java. En introduksjon til programmeringsspråkenes verden Dag Langmyhr IN1010 Fra Python til Java En introduksjon til programmeringsspråkenes verden dag@ifi.uio.no Oversikt Introduksjon Python Java Noe er likt Noe bare ser anderledes ut Noe er helt forskjellig Et par eksempler

Detaljer

AlgDat 10. Forelesning 2. Gunnar Misund

AlgDat 10. Forelesning 2. Gunnar Misund AlgDat 10 Forelesning 2 Oversikt Java repetisjon IDE eller teksteditor + kommandolinje? Java Collections and Generics Programvareutvikling En mengde mer eller mindre veldefinerte metoder (software engineering):

Detaljer

Obligatorisk Innlevering 2

Obligatorisk Innlevering 2 Obligatorisk Innlevering 2 INF5110 - Kompilatorteknikk Våren 2017 Frist 07.05.2017 23:59 Dette er den andre av to oppgaver våren 2017. Den bygger videre på det som er gjort i den første innleveringen.

Detaljer

Del 1 En oversikt over C-programmering

Del 1 En oversikt over C-programmering Del 1 En oversikt over C-programmering 1 RR 2016 Starten C ble utviklet mellom 1969 og 1973 for å re-implementere Unix operativsystemet. Er et strukturert programmeringsspråk, hvor program bygges opp av

Detaljer

Eivind Gard Lund. 24. Mars 2009 Foilene bygger på 2009 utgaven av Andreas Svendsen

Eivind Gard Lund. 24. Mars 2009 Foilene bygger på 2009 utgaven av Andreas Svendsen Eivind Gard Lund 24. Mars 2009 Foilene bygger på 2009 utgaven av Andreas Svendsen Informasjon Semantikksjekk Kodegenerering Oblig 2 tilgjengelig på kurssiden Bygger på deres oblig 1 kode. Det er lagt ut

Detaljer

Hva er en algoritme? INF HØSTEN 2006 INF1020. Kursansvarlige Ragnar Normann E-post: Dagens tema

Hva er en algoritme? INF HØSTEN 2006 INF1020. Kursansvarlige Ragnar Normann E-post: Dagens tema va er en algoritme? Vanlig sammenligning: Oppskrift. nput lgoritme NF1020 - ØSTEN 2006 Kursansvarlige Ragnar Normann E-post: ragnarn@ifi.uio.no Output Knuth : tillegg til å være et endelig sett med regler

Detaljer

Skanning del I INF /01/15 1

Skanning del I INF /01/15 1 Skanning del I INF 5110-2015 21/01/15 1 Skanning: innhold (begge forelesningene) Hva gjør en skanner? Input: Programteksten. Output: Ett og ett token fra programteksten (sekvensielt). Regulære uttrykk/definisjoner.

Detaljer

Viktig. Rettet i koden. Oppgaven. Obligatorisk oppgave 2 - Kort om oppgaven og litt informasjon. Fredrik Sørensen OMS-gruppen, IfI

Viktig. Rettet i koden. Oppgaven. Obligatorisk oppgave 2 - Kort om oppgaven og litt informasjon. Fredrik Sørensen OMS-gruppen, IfI Viktig Obligatorisk oppgave 2 - Kort om oppgaven og litt informasjon Fredrik Sørensen OMS-gruppen, IfI Ny patch (patch_oblig2.zip) legges ut på kurssiden i dag. Oblig 1 vil bli rettet denne uken Sjekk

Detaljer

(MVC - Model, View, Control)

(MVC - Model, View, Control) INF1010 - våren 2008 Modell - Utsyn - Kontroll (MVC - Model, View, Control) Stein Gjessing Inst. for informatikk Et bankprogram Vi skal lage et program som håndterer kontoene i en bank. En konto eies av

Detaljer

Socket og ServerSocket

Socket og ServerSocket Side 1 av 5, socket og klient-tjener, V. Holmstedt, HiO 2006 Dette dokumentet er revidert den 29.8.2006, kl:12:30. Det er foretatt rettelser i begge versjoner av klassen A_Server. Socket og ServerSocket

Detaljer

Kompleksitet. IN algoritmer og datastrukturer Plenumstime / repetisjon

Kompleksitet. IN algoritmer og datastrukturer Plenumstime / repetisjon Kompleksitet IN2010 - algoritmer og datastrukturer Plenumstime / repetisjon Dagens agenda Kompleksitet - hva er det? Avgjørelsesproblemer Kompleksitetsklassene P og NP Reduksjoner - å redusere et problem

Detaljer

Ta kontakt i pausen. Viktig at vi kommer i gang med dette arbeidet!

Ta kontakt i pausen. Viktig at vi kommer i gang med dette arbeidet! 1 Kunnskap for en bedre verden TDT4105 Informasjonsteknologi, grunnkurs Mer om funksjoner. Logiske betingelser og betinget programutførelse (valg). Amanuensis Terje Rydland Kontor: ITV-021 i IT-bygget

Detaljer

SVM and Complementary Slackness

SVM and Complementary Slackness SVM and Complementary Slackness David Rosenberg New York University February 21, 2017 David Rosenberg (New York University) DS-GA 1003 February 21, 2017 1 / 20 SVM Review: Primal and Dual Formulations

Detaljer

INF2100. Oppgaver 23. og 24. september 2010

INF2100. Oppgaver 23. og 24. september 2010 INF2100 Oppgaver 23. og 24. september 2010 Oppgave 1 Vi skal se på et meget enkelt språk E som består av uttrykk med + og ; grammatikken ser du i figur 1 på neste side. Tallkonstanter består av bare ett

Detaljer

TDT4110 IT Grunnkurs Høst 2015

TDT4110 IT Grunnkurs Høst 2015 TDT4110 IT Grunnkurs Høst 2015 Norges teknisk naturvitenskapelige universitet Institutt for datateknikk og informasjonsvitenskap Løsningsforlag Auditorieøving 1 1 Teori Løsning er skrevet med uthevet tekst

Detaljer

Dagens tema: Kjøresystemer II

Dagens tema: Kjøresystemer II Dagens tema Kjøresystemer II En kort repetisjon (Ghezzi&Jazayeri 2.7.3) Språk med blokker (Ghezzi&Jazayeri 2.7.4) Dynamisk allokering (Ghezzi&Jazayeri 2.7.5) Parametre (Ghezzi&Jazayeri 2.7.7) Ark 1 av

Detaljer

Prosedyrer. Lars Vidar Magnusson. October 26, Lars Vidar Magnusson () Forelesning i DAS October 26, / 19

Prosedyrer. Lars Vidar Magnusson. October 26, Lars Vidar Magnusson () Forelesning i DAS October 26, / 19 Prosedyrer Lars Vidar Magnusson October 26, 2011 Lars Vidar Magnusson () Forelesning i DAS 11.10.2011 October 26, 2011 1 / 19 Repetisjon om triggere og prosedyrer Triggere og prosedyrer ligner på hverandre

Detaljer

TDT4110 Informasjonsteknologi grunnkurs: Tema: Betingelser og logiske uttrykk Utgave 3: Kap. 3

TDT4110 Informasjonsteknologi grunnkurs: Tema: Betingelser og logiske uttrykk Utgave 3: Kap. 3 1 Kunnskap for en bedre verden TDT4110 Informasjonsteknologi grunnkurs: Tema: Betingelser og logiske uttrykk Utgave 3: Kap. 3 Terje Rydland - IDI/NTNU 2 if (be): else (not_to_be): 3 Læringsmål og pensum

Detaljer

TDT4165 PROGRAMMING LANGUAGES. Exercise 01 Introduksjon til Oz

TDT4165 PROGRAMMING LANGUAGES. Exercise 01 Introduksjon til Oz TDT4165 PROGRAMMING LANGUAGES Fall 2012 Exercise 01 Introduksjon til Oz Denne øvingen vil gjøre deg kjent med Emacs og Mozart. Du må kunne bruke disse verktøyene for å gjøre resten av øvingene. Mozart

Detaljer

Læringsmål og pensum. Oversikt

Læringsmål og pensum. Oversikt 1 2 Læringsmål og pensum TDT4105 Informasjonsteknologi grunnkurs: Uke 39 Betingede løkker og vektorisering Læringsmål Skal kunne forstå og programmere betingede løkker med while Skal kunne utnytte plassallokering

Detaljer

if (be): else (not_to_be): TDT4110 Informasjonsteknologi grunnkurs: Tema: Betingelser og logiske uttrykk Utgave 3: Kap.

if (be): else (not_to_be): TDT4110 Informasjonsteknologi grunnkurs: Tema: Betingelser og logiske uttrykk Utgave 3: Kap. 1 Kunnskap for en bedre verden TDT4110 Informasjonsteknologi grunnkurs: Tema: Betingelser og logiske uttrykk Utgave 3: Kap. 3 Terje Rydland - IDI/NTNU 2 if (be): else (not_to_be): 3 Læringsmål og pensum

Detaljer

Objektorientert programmering i Python. Resten av semesteret. Innhold uke 9 Mer komplekse strukturer. Referanser og objekter, inkl Mentimeter spørsmål

Objektorientert programmering i Python. Resten av semesteret. Innhold uke 9 Mer komplekse strukturer. Referanser og objekter, inkl Mentimeter spørsmål Innhold uke 9 Mer komplekse strukturer Objektorientert programmering i Python IN1000 Høst 2018 uke 9 Siri Moe Jensen Referanser versus objekter (repetisjon) "Dot-notasjon" Spesielle metoder i egendefinerte

Detaljer

Utførelse av programmer, metoder og synlighet av variabler i JSP

Utførelse av programmer, metoder og synlighet av variabler i JSP Utførelse av programmer, metoder og synlighet av variabler i JSP Av Alf Inge Wang 1. Utførelse av programmer Et dataprogram består oftest av en rekke programlinjer som gir instruksjoner til datamaskinen

Detaljer

Innholdsfortegnelse... 1 Endringslogg UD BETALINGSTERMINAL NETS NEW DRIVERS FULL SUPPORT WINDOWS

Innholdsfortegnelse... 1 Endringslogg UD BETALINGSTERMINAL NETS NEW DRIVERS FULL SUPPORT WINDOWS ENDRINGSLOGG INNHOLDSFORTEGNELSE Innholdsfortegnelse... 1 Endringslogg 2017.151.1... 3 UD-17.136 BETALINGSTERMINAL NETS NEW DRIVERS FULL SUPPORT WINDOWS 10... 3 UD-17.137 UTESTÅENDE NOT SHOWIN CROSSED

Detaljer