EKSAMEN I FAG TDT4180 - MMI Lørdag 11. august 2012 Tid: kl. 0900-1300



Like dokumenter
EKSAMEN I FAG TDT4180 MMI Lørdag 15. august 2009 Tid: kl

EKSAMEN I FAG TDT MMI Lørdag 26. mai 2012 Tid: kl

EKSAMEN I FAG TDT4180 MMI Onsdag 28. mai 2008 Tid: kl

EKSAMEN I FAG TDT4180 MMI Torsdag 27. mai 2010 Tid: kl

Eksamensoppgave i TDT4180 Menneske-Maskin- Interaksjon (MMI)

EKSAMEN I FAG TDT4180 MMI Mandag 18. mai 2009 Tid: kl

EKSAMEN I FAG TDT MMI Lørdag 4. juni 2005 Tid: kl

EKSAMEN I FAG TDT MMI Mandag 15. august 2011 Tid: kl

EKSAMEN I FAG TDT MMI Mandag 4. august 2008 Tid: kl

EKSAMEN I FAG TDT4180 MMI Lørdag 21. august 2010 Tid: kl

NORGES TEKNISK-NATURVITENSKAPELIGE UNIVERSITET INSTITUTT FOR DATATEKNIKK OG INFORMASJONSVITENSKAP. Løsningsforslag

NORGES TEKNISK-NATURVITENSKAPELIGE UNIVERSITET INSTITUTT FOR DATATEKNIKK OG INFORMASJONSVITENSKAP

EKSAMEN I FAG TDT4180 MMI Torsdag 27. mai 2010 Tid: kl

Oppgave 1 (30%) Grensesnittdesign

Løsningsforslag (Løsningene i kursiv)

Eksamensoppgave i TDT4180 Menneske-maskin-interaksjon

EKSAMEN I FAG TDT MMI Tirsdag 1. juni 2004 Tid: kl

EKSAMEN I FAG TDT4180/IT2401 MMI Onsdag 23. mai 2007 Tid: kl

BOKMÅL Side 1 av 7. KONTINUASJONSEKSAMEN I FAG TDT4100 Objektorientert programmering / IT1104 Programmering, videregående kurs

EKSAMEN I FAG TDT4180 MMI Onsdag 18. mai 2009 Tid: kl

UNIVERSITETET I OSLO

Eksamensoppgave i TDT4180 Menneske-maskin-interaksjon

EKSAMEN I FAG TDT4100 Objekt-orientert programmering. Fredag 3. juni 2005 KL

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

INF1010. Grensesnittet Comparable<T>

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

Du må håndtere disse hendelsene ved å implementere funksjonene init(), changeh(), changev() og escape(), som beskrevet nedenfor.

EKSAMEN I FAG SIF MMI OG GRAFIKK Lørdag 16. august 2003 Tid: kl

Slope-Intercept Formula

Object interaction. Innhold. Abstraksjon Grunnleggende programmering i Java Monica Strand 3. september 2007.

< T extends Comparable<T> > Indre klasser mm. «Det du bør ha hørt om før oblig 4»

Dynamic Programming Longest Common Subsequence. Class 27

Information search for the research protocol in IIC/IID

BOKMÅL Side 1 av 5. KONTERINGSEKSAMEN I FAG TDT4102 Prosedyre og objektorientert programmering. Onsdag 6. august 2008 Kl

UNIVERSITETET I OSLO ØKONOMISK INSTITUTT

TDT4100 Objektorientert programmering

UNIVERSITETET I OSLO

EKSAMEN. Algoritmer og datastrukturer. Eksamensoppgaven: Oppgavesettet består av 11 sider inklusiv vedlegg og denne forsiden.

NORGES TEKNISK-NATURVITENSKAPELIGE UNIVERSITET INSTITUTT FOR DATATEKNIKK OG INFORMASJONSVITENSKAP LØSNINGSFORSLAG

Feilmelding Årsak Løsning

Fakultet for informasjonsteknologi, Institutt for datateknikk og informasjonsvitenskap

Tillatte hjelpemidler: alle skrevne og trykte. Antall sider: 2 (+ 1 side vedlegg, bakerst). Oppgave 1 [25%]

EKSAMENSOPPGAVE I SØK 1002 INNFØRING I MIKROØKONOMISK ANALYSE

JList, JTree, JTable. JList

(MVC - Model, View, Control)

UNIVERSITETET I OSLO

INF Våren Li' repe$sjon om Tråder og GUI. Stein Gjessing, Ins$tu' for informa$kk, Universitetet i Oslo. Ins$tu' for informa$kk

EMPIC MEDICAL. Etterutdanningskurs flyleger 21. april Lars (Lasse) Holm Prosjektleder Telefon: E-post:

GYRO MED SYKKELHJUL. Forsøk å tippe og vri på hjulet. Hva kjenner du? Hvorfor oppfører hjulet seg slik, og hva er egentlig en gyro?

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

Eksamensoppgave i TDT4100 Objektorientert programmering med Java

UNIVERSITETET I OSLO ØKONOMISK INSTITUTT

IN2010: Algoritmer og Datastrukturer Series 2

Grafisk Brukergrensesnitt

Norges Informasjonsteknologiske Høgskole

Del 3: Evaluere uttrykk

Dagens forelesning. Java 13. Rollefordeling (variant 1) Rollefordeling (variant 2) Design av større programmer : fordeling av roller.

UNIVERSITETET I OSLO ØKONOMISK INSTITUTT

Python: Løkker. TDT4110 IT Grunnkurs Professor Guttorm Sindre

UNIVERSITETET I OSLO

Gjennomgang av eksamen H99

TDT4100 Objektorientert programmering

Hvordan føre reiseregninger i Unit4 Business World Forfatter:

Fakultet for informasjonsteknologi, Institutt for datateknikk og informasjonsvitenskap AVSLUTTENDE EKSAMEN I. TDT42378 Programvaresikkerhet

Pensum SWING/MCV delen av TDT4180- MMI. Vår 2009 Dag Svanæs, IDI

Hva er verdien til variabelen j etter at følgende kode er utført? int i, j; i = 5; j = 10; while ( i < j ) { i = i + 2; j = j - 1; }

EN Skriving for kommunikasjon og tenkning

TB-615 / TB-617 Wireless slim keyboard. EN User guide SE Användarhandledning FI Käyttöohje DK Brugervejledning NO Bruksanvisning

2 Om statiske variable/konstanter og statiske metoder.

1. Krav til klasseparametre 2. Om å gå gjennom egne beholdere (iteratorer) Stein Gjessing Inst. for Informatikk Universitetet i Oslo

1 User guide for the uioletter package

UNIVERSITETET I OSLO

Kapittel 9: Sortering og søking Kort versjon

5 E Lesson: Solving Monohybrid Punnett Squares with Coding

Tips for bruk av BVAS og VDI i oppfølging av pasienter med vaskulitt. Wenche Koldingsnes

TDT4100 Objektorientert programmering

User manual English Svenska Norsk

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO ØKONOMISK INSTITUTT

Exercise 1: Phase Splitter DC Operation

UNIVERSITETET I OSLO

TEKSTER PH.D.-KANDIDATER FREMDRIFTSRAPPORTERING

HØGSKOLEN I SØR-TRØNDELAG

Grafiske brukergrensesnitt med Swing og AWT

AVSLUTTENDE EKSAMEN I/FINAL EXAM. TDT4237 Programvaresikkerhet/Software Security. Mandag/Monday Kl

TDT4100 Objektorientert programmering

UNIVERSITETET I OSLO

OPPGAVE 5b og 8b Java Kode

UNIVERSITETET I OSLO ØKONOMISK INSTITUTT

Moving Objects. We need to move our objects in 3D space.

STILLAS - STANDARD FORSLAG FRA SEF TIL NY STILLAS - STANDARD

Vi skal se på lambda-uttrykk. Følgende er definerte og vil bli brukt gjennom oppgaven

MVC i Swing, trinn for trinn

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

Kontinuasjonseksamensoppgave i TDT4100 Objektorientert programmering

Trådløsnett med. Wireless network. MacOSX 10.5 Leopard. with MacOSX 10.5 Leopard

UNIVERSITETET I OSLO

Array&ArrayList Lagring Liste Klasseparametre Arrayliste Testing Lenkelister

UNIVERSITY OF OSLO DEPARTMENT OF ECONOMICS

Transkript:

Side 1 av 8 NORGES TEKNISK-NATURVITENSKAPELIGE UNIVERSITET INSTITUTT FOR DATATEKNIKK OG INFORMASJONSVITENSKAP Faglig kontakt under eksamen: Dag Svanæs, Tlf: 73 59 18 42 EKSAMEN I FAG TDT4180 - MMI Lørdag 11. august 2012 Tid: kl. 0900-1300 Bokmål Sensuren faller 3. September Hjelpemiddelkode: D Ingen trykte eller håndskrevne hjelpemidler tillatt. Bestemt enkel kalkulator tillatt.

Side 2 av 8 Oppgave 1 (30%) Grensesnittdesign a. Hva menes med "Kunnskap i verden vs. kunnskap i hodet" i forhold til design av grafiske brukergrensesnitt? Gi to eksempler der dette er relevant. b. Hva menes med "Synlighet av systemets tilstand" (visibility) forhold til design av grafiske brukergrensesnitt? Gi to eksempler der dette er relevant. c. Hva menes med "Tilbakemelding" (feedback) i forhold til design av grafiske brukergrensesnitt? Gi to eksempler der dette er relevant. Oppgave 2 (30%) Designprosessen og evaluering a. I brukersentrert design brukes ofte såkalte personas. Hva er en persona, og hvorfor er det nyttig å lage personas når man skal designe et interaktivt produkt? Gi eksempel på en persona. Hva kan være ulemper med bruk av personas? b. I brukersentrert design brukes ofte såkalte scenarier. Hva er et scenarie, og hvorfor er det nyttig å lage scenarier når man skal designe et interaktivt produkt? Gi eksempel på et scenarie. Hva kan være ulemper med bruk av scenarier?

Side 3 av 8 Oppgave 3 (40%) Grensesnittkonstruksjon Du skal i denne oppgaven vise bruk av Swing-komponenter og MVC-arkitektur. Du skal i løsningen ikke gjøre rede for mekanismene for layout. Fokus i oppgaven er på informasjonsflyt og datastrukturer. Du skal implementere et lite program som skal brukes til å konvertere mellom amerikanske og eurpeiske måleenheter. Programmet skal ha to par med slidere for h.h.v. temperatur og lengde som vist i figuren under. De tekstlige tallverdiene er kun for framvisning, og er følgelig implementert som Jlabel. Sammenhengen mellom amerikanske og europeiske måleenheter: Mellom Fahrenheit (F) og Celsius (C): C = (F - 32) * 5/9 F = (C * 9/5) + 32 Mellom Miles (M) og Kilometer (Km) Km = M * 1,609 M = Km / 1,609

Side 4 av 8 Du skal bruke Model-View-Controller mekanismen i Java for å implementere dette. Man kan lage en generell superklasse for konvertering mellom to verdier og bruk denne for konvertering både av temperatur og lengde. Besvarelsen skal inneholde følgende: En forklaring av hvordan du vil gjøre bruk av MVC prinsippet i din løsning. Tegn opp de klassene du definerer og deres metoder og relasjoner. Beskriv deres rolle i MVC-arkitekturen. Tegn opp sekvensdiagrammer for følgende: o Initielt når objektene skapes og systemet vises første gang. o Når brukeren drar i slideren for Fahrenheit og setter den til 100. Klassen JLabel behandler i utgangspunktet ikke tall, men konvertering mellom String og int kan gjøres enkelt i Java v.h.a innebygde metoder i klassen Integer. static String tostring(int i) Returns a String object representing the specified integer. Eksempel: s = Integer.toString(i); For hver av komponentklassene så er relevante metoder og hjelpeklasser listet i appendikset bakerst. Merk: Det forlanges ikke at du skal anvende metoder eller klasser som ikke er listet i appendikset.

Side 5 av 8 Vedlegg: En del nyttige klasser og grensesnitt for oppgave 3. Det følgende er klippet og limt fra Java definisjonen. class PropertyChangeSupport This is a utility class that can be used by objects that support bound properties. You can use an instance of this class as a variable in your object and delegate various work to it. public void addpropertychangelistener(propertychangelistener listener) Add a PropertyChangeListener to the listener list. The listener is registered for all properties. Parameters: listener - The PropertyChangeListener to be added public void firepropertychange(string propertyname, Object oldvalue, Object newvalue) Report a bound property update to any registered listeners. No event is fired if old and new are equal and non-null. Parameters: propertyname - The programmatic name of the property that was changed. oldvalue - The old value of the property. newvalue - The new value of the property. interface PropertyChangeListener A "PropertyChange" event gets fired whenever an object changes a "bound" property. You can register a PropertyChangeListener with a source object so as to be notified of any bound property updates. public void propertychange(propertychangeevent evt) This method gets called when a bound property is changed. Parameters: evt - A PropertyChangeEvent object describing the event source and the property that has changed.

Side 6 av 8 class PropertyChangeEvent A "PropertyChange" event gets delivered whenever an object changes a "bound" or "constrained" property. A PropertyChangeEvent object is sent as an argument to the PropertyChangeListener method. Normally PropertyChangeEvents are accompanied by the name and the old and new value of the changed property. Null values may be provided for the old and the new values if their true values are not known. An event source may send a null object as the name to indicate that an arbitrary set of if its properties have changed. In this case the old and new values should also be null. public String getpropertyname() Gets the programmatic name of the property that was changed. Returns: The programmatic name of the property that was changed. May be null if multiple properties have changed. public Object getnewvalue() Gets the new value for the property, expressed as an Object. Returns: The new value for the property, expressed as an Object. May be null if multiple properties have changed. public Object getoldvalue() Gets the old value for the property, expressed as an Object. Returns: The old value for the property, expressed as an Object. May be null if multiple properties have changed. class JPanel JPanel is a generic lightweight container. public Component add(component comp) Appends the specified component to the end of this container.

Side 7 av 8 class JLabel A display area for a short text string or an image, or both. A label does not react to input events. A JLabel object can display either text, an image, or both. public void settext(string text) Defines the single line of text this component will display. Class JSlider A component that lets the user graphically select a value by sliding a knob within a bounded interval. public int getvalue() Returns the sliders value. public void setvalue(int n) Sets the sliders current value. public void addchangelistener(changelistener l) Adds a ChangeListener to the slider. Interface ChangeListener Defines an object which listens for ChangeEvents. public void statechanged(changeevent e) Invoked when the target of the listener has changed its state.

Side 8 av 8 Class ChangeEvent ChangeEvent is used to notify interested parties that state has changed in the event source. public Object getsource() The object on which the Event initially occurred. Returns: The object on which the Event initially occurred.