
{"id":29,"date":"2014-11-24T03:00:20","date_gmt":"2014-11-24T02:00:20","guid":{"rendered":"http:\/\/home.uia.no\/sondrf14\/?p=29"},"modified":"2014-11-24T09:08:31","modified_gmt":"2014-11-24T08:08:31","slug":"is-109-modul-1-video","status":"publish","type":"post","link":"https:\/\/home.uia.no\/sondrf14\/2014\/11\/24\/is-109-modul-1-video\/","title":{"rendered":"IS-109 Moduler"},"content":{"rendered":"<p><strong>Modul 1<\/strong><\/p>\n<p><strong><\/strong><a href=\"https:\/\/screencast.uninett.no\/relay\/student\/sondrf14uia.no\/2014\/10.11\/325267\/Modul_1_Sondre_Flovik_-_20141110_113511_39.html\"> Her er link til video for modul 1 <\/a><\/p>\n<p>Her har jeg l\u00e6rt \u00e5 bruke verkt\u00f8yet BlueJ for \u00e5 kunne \u00e5pne, lukke og lagre prosjekter. Jeg har l\u00e6rt hvordan jeg skal kunne lage objekter og kalle metoder for disse objektene, b\u00e5de uten parametere og med parametere (string, int, objekt som parameter). Jeg hadde v\u00e6rt litt inne p\u00e5 programmering i C# fra f\u00f8r, og derfor var det noen likheter som gjorde at det gikk fort \u00e5 l\u00e6re det helt grunnleggende. Leste blant annet gjennom kildekoden til de forskjellige eksempelprosjektene i blueJ for \u00e5 l\u00e6re litt om syntaxen i java.<\/p>\n<p>&nbsp;<\/p>\n<p><strong>Modul 2<\/strong><\/p>\n<p><strong><\/strong>Bileksempelet er gjort og trenger godkjenning (Kommer Mandag 24.11).<\/p>\n<p>For denne modulen l\u00e6rte jeg mer om klassedefinisjon og hvordan man skal lese den. Da l\u00e6rte jeg blant annet hva fields og constructors er, og hvordan man skal organisere koden for en klasse.<\/p>\n<ul>\n<li>Fields er feltene hvor man lagrer data permanent for et objekt<\/li>\n<li>Constructors er koden for \u00e5 lage et objekt<\/li>\n<\/ul>\n<p>Jeg gjorde valgte \u00e5 gj\u00f8re bileksempelet for denne modulen, og bygde videre p\u00e5 eksempelet som var tilgjengelig p\u00e5 fronter. I tillegg til koden som l\u00e5 der, utvidet jeg eksempelet med \u00e5 legge til f\u00f8lgende:<\/p>\n<p><strong>Felt<\/strong><\/p>\n<ul>\n<li>String merke<\/li>\n<li>String modell<\/li>\n<li>int pris<\/li>\n<\/ul>\n<p><strong>Metoder\u00a0<\/strong><\/p>\n<ul>\n<li>Constructor for Bil hvor jeg la inn de nye feltene<\/li>\n<li>getMerke, returverdi string som returnerer bilens merke<\/li>\n<li>getModell, returverdi string som returnerer bilens modell<\/li>\n<li>getPris, returverdi int som returnerer bilens pris<\/li>\n<li>skrivBil, void som skriver ut informasjon om bilen<\/li>\n<\/ul>\n<p>Etter \u00e5 ha skrevet eksempelet la jeg inn PMD og Checkstyle \u00e5 l\u00e6rte \u00e5 bruke de, \u00a0og rettet eventuelle feilmeldinger og mangler som kom frem.<\/p>\n<p><strong>Modul 3<\/strong><\/p>\n<p><a href=\"https:\/\/screencast.uninett.no\/relay\/student\/sondrf14uia.no\/2014\/24.11\/580200\/Modul_3_-_20141124_085910_39.html\">Video for modul 3<\/a><\/p>\n<p>I modul 3 l\u00e6rte jeg mye nytt n\u00e5r det kom til \u00e5 skrive kode selv, og hvordan dette burde gj\u00f8res.<br \/>\nI eksempelet mitt skrev jeg to klasser, Skip og Passasjer. Dette er enkelt forklart et program for \u00e5 legge til passasjerer i et skip. Her legger man til objekter av klassen Passasjer inn som parameter i et objekt av klassen Skip, og n\u00e5r man kaller metoder (f.eks. skriv passasjerliste) p\u00e5 skipsobjektet, skal det hentes ut informasjon fra alle Passasjer-objektene som er lagt i objektet av Skip.<\/p>\n<p>Jeg har sett litt p\u00e5 hvordan man skal bruke debuggeren i blueJ, og l\u00e6rt om nye begreper som abstraksjon, modularisering, primitive typer og objekttyper.<br \/>\nEnkelt forklart:<\/p>\n<ul>\n<li><strong>Modularisering: <\/strong>\u00c5 dele opp et problem til mindre og mer definerte deler, som du kan bygge og utforske separat.<\/li>\n<li><strong>Abstraksjon: <\/strong>Evne til \u00e5 ignorere sm\u00e5 detaljer og fokusere p\u00e5 det store bildet.<\/li>\n<li><strong>Primitive typer: <\/strong>som int og boolean, de har ingen metoder<\/li>\n<li><strong>Objekttyper: <\/strong>Definert av klasser og kan ha metoder, noen er definerte i javaspr\u00e5ket og andre skriver vi selv<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<p><strong>Hva har jeg l\u00e6rt Modul 1-3:<\/strong><\/p>\n<p>Selv om jeg hadde v\u00e6rt borte i programmering f\u00f8r var objektsorientert programmering helt nytt. Det startet i det helt enkle med \u00e5 l\u00e6re seg \u00e5 bruke verkt\u00f8yet BlueJ, \u00e5 kunne kj\u00f8re helt enkle metoder b\u00e5de med og uten paramter (og forskjellige typer parameter, som f.eks \u00e5 kunne bruke objekt som parameter), og om de helt grunnleggende datatypene til variabler som int og string. I l\u00f8pet av kapittel og modul 2 l\u00e6rte jeg mer om \u00e5 skrive selve koden selv, fremfor \u00e5 bare se p\u00e5 den i eksemplene i BlueJ. Her l\u00e6rte jeg mer om syntaxen i java og kodestruktur, og kunne skrive klassedefinisjoner og if-setninger, og enkle metoder som get, return og print. Lastet inn PMD og Checkstyle og l\u00e6rte jeg hvordan de skulle brukes, og hvordan de hjalp meg. I kap\/modul 3 gikk det videre p\u00e5 \u00e5 skrive flere klasser og \u00e5 koble de sammen. Etter \u00e5 ha lest og gjort oppgaver i boka og sett p\u00e5 fagstoffet vi har tilgjengelig begynte jeg \u00e5 skrive et eksempel som inkluderte l\u00e6ringsm\u00e5lene frem til det stadiet. Jeg skrev et program med to klasser, skip og passasjer. Skip-klassens objekt er et skip, som skal frakte passasjerer (objektene av klassen passasjer). For \u00e5 hente inspirasjon \u00e5 l\u00e6re hvordan jeg kunne gj\u00f8re dette, s\u00e5 jeg p\u00e5 lab-classes eksempelet i blueJ. Og slik l\u00e6rte jeg \u00e5 skrive klasser og kode for \u00e5 lage objekter fra bunn av. N\u00e5r jeg jobbet med eksempelet gikk jeg nok litt forut l\u00e6ringsm\u00e5lene til modul 3 og begynte med arrayliste, for-each l\u00f8kker, while l\u00f8kker og bruk av iterator, dette g\u00e5r jeg mer i detalj p\u00e5 i samtale for godkjenning av modul 4.<\/p>\n<p>&nbsp;<\/p>\n<p><strong>Modul 4<\/strong><\/p>\n<p><strong><\/strong> Eksempelet nevnt for modul 3 henger sammen med modul 4, og dette er et videreutviklet eksempel. Klar for samtale og godkjenning.<\/p>\n<p>Det nye stoffet her var: arraylist, for each l\u00f8kker, while l\u00f8kker og bruk av iterator.<\/p>\n<p><strong>Arraylist: <\/strong>Et dynamisk array\/en liste som kan endres i st\u00f8rrelse mens et program kj\u00f8rer. Brukes hvor data endres forl\u00f8pende (f.eks \u00e5 kunne legge til eller fjerne elementer fra listen)<\/p>\n<p><strong>For:<\/strong> Gj\u00f8r en bestemt handling for innhold i en samling<\/p>\n<p><strong>While:<\/strong> Gj\u00f8r en bestemt handling for bestemt innhold s\u00e5 lenge koden oppfylles. f.eks:<\/p>\n<p>while (counter &lt; 10) {<br \/>\nSystem.out.println(counter);<br \/>\nCounter++;<br \/>\n}<\/p>\n<p>Da vil den loopen kj\u00f8re s\u00e5 lenge telleren (counter) er mindre en 10, men slutte n\u00e5r det kravet ikke oppfylles lengre.<\/p>\n<p><strong>Iterator: <\/strong>N\u00e5r du f.eks sletter en del av en liste med en for loop (f.eks. en person i en passasjerliste) vil listens st\u00f8rrelse og de andre delene flytte seg, og da vil man f\u00e5 en feilmelding n\u00e5r man kommer til slutten av listen. Derfor bruker vi en iterator til \u00e5 holde styr p\u00e5 listen, og dette lar deg endre elementer i listen uten at den forstyrres.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Modul 1 Her er link til video for modul 1 Her har jeg l\u00e6rt \u00e5 bruke verkt\u00f8yet BlueJ for \u00e5 kunne \u00e5pne, lukke og lagre prosjekter. Jeg har l\u00e6rt hvordan jeg skal kunne lage objekter og kalle metoder for disse &hellip; <a href=\"https:\/\/home.uia.no\/sondrf14\/2014\/11\/24\/is-109-modul-1-video\/\">Les videre <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":562,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_exactmetrics_skip_tracking":false,"_exactmetrics_sitenote_active":false,"_exactmetrics_sitenote_note":"","_exactmetrics_sitenote_category":0,"footnotes":""},"categories":[1],"tags":[],"_links":{"self":[{"href":"https:\/\/home.uia.no\/sondrf14\/wp-json\/wp\/v2\/posts\/29"}],"collection":[{"href":"https:\/\/home.uia.no\/sondrf14\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/home.uia.no\/sondrf14\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/home.uia.no\/sondrf14\/wp-json\/wp\/v2\/users\/562"}],"replies":[{"embeddable":true,"href":"https:\/\/home.uia.no\/sondrf14\/wp-json\/wp\/v2\/comments?post=29"}],"version-history":[{"count":4,"href":"https:\/\/home.uia.no\/sondrf14\/wp-json\/wp\/v2\/posts\/29\/revisions"}],"predecessor-version":[{"id":32,"href":"https:\/\/home.uia.no\/sondrf14\/wp-json\/wp\/v2\/posts\/29\/revisions\/32"}],"wp:attachment":[{"href":"https:\/\/home.uia.no\/sondrf14\/wp-json\/wp\/v2\/media?parent=29"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/home.uia.no\/sondrf14\/wp-json\/wp\/v2\/categories?post=29"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/home.uia.no\/sondrf14\/wp-json\/wp\/v2\/tags?post=29"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}