Innhold. INF1000 Høst Hva skal evalueres? Fra kurssidene. Hvorfor har vi en lærebok? Uke 11: Repetisjon og pensumgjennomgang

Like dokumenter
INF1000 Eksamensforberedelser og -tips. Høst 2014 Siri Moe Jensen

Læreboken på 45 minutter

Innhold. IN1000 Høst Hva skal evalueres? Fra kurssidene. Uke 12: Pensumgjennomgang og eksamenstips

Innhold. INF1001 Høst Hva skal evalueres? Fra kurssidene. Uke 13: Repetisjon og pensumgjennomgang

Innhold. Hva skal evalueres? Fra kurssidene. Kapittel 1: Introduction

Velkommen til. IN1010 Objektorientert programmering Våren 2018

Velkommen til. INF våren 2017

IN1010 Objektorientert programmering Våren 2019

Innhold. INF1000 Høst Unified Modeling Language (UML) Unified Modeling Language (UML)

Uke 8 Eksamenseksempler + Ilan Villanger om studiestrategier. 11. okt Siri Moe Jensen Inst. for informatikk, UiO

Velkommen til. INF våren 2016

INF1000 Prøveeksamen Oppgave 7 og 9

INF1000: noen avsluttende ord

Oversikt. Informatikk. INF1000: Grunnkurs i objektorientert programmering. Utenom INF1000 Informasjon & hjelp

UNIVERSITETET I OSLO

Introduksjon til objektorientert. programmering. Hva skjedde ~1967? Lokale (og globale) helter. Grunnkurs i objektorientert.

INF 1000 høsten 2011 Uke september

INF1000: noen avsluttende ord

INF1000 undervisningen INF 1000 høsten 2011 Uke september

Velkommen! I dag. Viktige beskjeder. Studieadministrasjonen. IN Høst Siri Moe Jensen Geir Kjetil Sandve Henrik Hillestad

LITT OM OPPLEGGET. INF1000 EKSTRATILBUD Stoff fra uke September 2012 Siri Moe Jensen EKSEMPLER

Innhold uke 7. Objektorientert programmering i Python: Introduksjon. Lite tilbakeblikk: Programflyt og skop. Lite tilbakeblikk: Funksjoner er uttrykk

Forkurs INF1010. Dag 1. Andreas Færøvig Olsen Tuva Kristine Thoresen

UNIVERSITETET I OSLO

INF Uke 10. Ukesoppgaver oktober 2012

INF1010 UML. Marit Nybakken 26. januar 2004

INF1000 EKSTRATILBUD. Stoff fra uke 1-5 (6) 3. oktober 2012 Siri Moe Jensen

Innhold uke 4. INF 1000 høsten 2011 Uke 4: 13. september. Deklarasjon av peker og opprettelse av arrayobjektet. Representasjon av array i Java

Litt administrativt. Informatikk studiet og INF1000. Etter denne forelesningen skal du. INF1000: Grunnkurs i objektorientert programmering

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

Programmeringsspråket C

Hvorfor objektorientert programmering? Objektorientert programmering i Python: Introduksjon. Læringsmål uke 7. Undervisning og pensum IN1000

UNIVERSITETET I OSLO

Oppsummering del 2. Læringsmål Viktigste Java-elementer Eksamen Til sist. Læringsmål Hovedpunkter Tilbakemelding Eksamen. IN1010 uke 17 våren 2019

UNIVERSITETET I OSLO

Hvorfor objektorientert programmering?

INF1000: Forelesning 7. Konstruktører Static

Læringsmål uke 7. Objektorientert programmering i Python: Introduksjon. Innhold uke 7. Lite tilbakeblikk: Programflyt og skop

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

Introduksjon til objektorientert programmering

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

Innhold uke 10. Objektorientert programmering i Python. Oblig 7 og 8. IN1000 Seminar! IN1000 Høst 2018 uke 10 Siri Moe Jensen

VELKOMMEN TIL MAT-INF1100(L) Knut Mørken Rom 1033, Niels Henrik Abels hus

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

UNIVERSITETET I OSLO

TDT4105 Informasjonsteknologi, grunnkurs

INF1000: Forelesning 7

UNIVERSITETET I OSLO

INF1000 (Uke 15) Eksamen V 04

INF1000 (Uke 15) Eksamen V 04

Klasser, objekter, pekere og UML. INF gruppe 13

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

Faglærerne prøver å besøker eksamenslokalet mellom klokka 15 og 16 for å oppklare eventuelle uklarheter og feil i oppgaveteksten.

Oversikt. INF1000 Uke 1 time 2. Repetisjon - Introduksjon. Repetisjon - Program

UNIVERSITETET I OSLO

INF1000 (Uke 5) Mer om løkker, arrayer og metoder

UNIVERSITETET I OSLO

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

UNIVERSITETET I OSLO

VELKOMMEN TIL MAT-INF1100(L) Knut Mørken Rom 1033, Niels Henrik Abels hus

Kort om meg. INF1000 Uke 2. Oversikt. Repetisjon - Introduksjon

UNIVERSITETET I OSLO

INF Uke 10. Løsningsforslag ukesoppgaver oktober 2012

Løsningsforslag ukeoppg. 6: 28. sep - 4. okt (INF Høst 2011)

INF2220: Forelesning 1. Praktisk informasjon Analyse av algoritmer (kapittel 2) (Binær)trær (kapittel )

Etter uke 6 skal du. Introduksjon til objektorientert programmering. Hva skjedde ~1967? INF1001. Grunnkurs i objektorientert programmering

UNIVERSITETET I OSLO

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

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

Rekursjon. Binærsøk. Hanois tårn.

INF1000 oppgaver til uke 38 (17 sep 23 sep)

MAT-INF 1100: Obligatorisk oppgave 1

Feilmeldinger, brukerinput og kontrollflyt

2 Om statiske variable/konstanter og statiske metoder.

UNIVERSITETET I OSLO

IN Notat om I/O i Java

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

INF2810: Funksjonell Programmering. Oppsummering og eksamensforberedelser

Løsningsforslag ukeoppg. 9: okt (INF Høst 2011)

UNIVERSITETET I OSLO

INF2810: Funksjonell Programmering. Oppsummering og eksamensforberedelser

Innhold. Forord Det første programmet Variabler, tilordninger og uttrykk Innlesing og utskrift...49

Løsningsforslag ukeoppg. 4: sep (INF Høst 2011)

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

UNIVERSITETET I OSLO

GJØVIK INGENIØRHØGSKOLE

INF1000: Forelesning 6. Klasser og objekter del 1

Velkommen til INF1010

UNIVERSITETET I OSLO

MAT-INF 1100: Obligatorisk oppgave 1

UNIVERSITETET I OSLO

Repetisjon INF 1000 våren 2006

EKSAMEN. Dato: 9. mai 2016 Eksamenstid: 09:00 13:00

Dagens forelesning. INF1010 Datastrukturer Lister og køer Pekerkjedelister Øvelser. Innhold i dette lysarksettet

Studieaktiviteter i INF1010

Operasjoner på lenkede lister (enkeltlenket) Eksempel på en lenket liste: personliste. INF januar 2010 (uke 3) 2

Transkript:

Innhold INF1000 Høst 2015 Uke 11: Repetisjon og pensumgjennomgang 1. time: Guidet tur gjennom læreboken (og pensum): Sentrale konsepter og mekanismer i Java 2. time: Hva trenger vi utover å lese pensum? Eksamenstips Siri Moe Jensen INF1000 - Høst 2015 uke 11 1 Siri Moe Jensen INF1000 - Høst 2015 uke 11 2 Hva skal evalueres? Fra kurssidene Etter å ha tatt INF1000 kan du skrive små til middels store programmer oppdelt i klasser. har du grunnleggende ferdigheter i objektorientering i Java med klasser, metoder, objekter og pekere. kan du lage programskisser med enkle UML klasse- og objektdiagrammer. kan du lage løsninger på mindre, virkelige problemer på én maskin med brukerinteraksjon og lagring av data på disk. kan du bruke enkle deler av Javas klassebibliotek. kan du finne og rette feil i egne programmer. Overordnet pensum Kapittel 1-8 i boken "Big Java: Late Objects" av Cay S. Horstmann (2012-utgave). Personopplysningsloven I tillegg er obliger og det som er forelest (dvs lysark fra forelesningene) pensum. Hvorfor har vi en lærebok? Læreboken forteller stort sett mer detaljert enn forelesningene. Det er en fordel å få ting fortalt på to ulike måter. Læreboken er bedre å slå opp i. Random fact og Special topic er artig å lese og utdyper faget (selv om de ikke er pensum). Common error, Programming tip og Self check er nyttige (men de er heller ikke pensum) Siri Moe Jensen INF1000 - Høst 2015 uke 11 5 1

Kapittel 1: Introduction Innholder først og fremst bakgrunnsinformasjon for det som kommer senere. Nyttig også i senere emner, og antakelig lettere å forstå nå enn da dere startet. «Programmering er problemløsing» [BJ: 1.7] Nyttig lærdom: Det første viktige steget i programmering er å omforme problemet til en algoritme, dvs gi det en form som datamaskinen kan løse. Så kan algoritmen skrives i Java Kapittel 2: Fundamental data types 1. Variabler og tilordninger 2. Numeriske typer og uttrykk; int og double er viktigst. Lite vekt på behandling av matematiske uttrykk i INF1000 men viktig og nyttig for noen av dere senere. 3. I/O (lesing og skriving) med Scanner / hasnextline / nextline /Integer.parseInt System.out.println Dette anbefaler vi sterkt at dere bruker I/O-notatet til på eksamen 4. String Siri Moe Jensen INF1000 - Høst 2015 uke 11 6 Siri Moe Jensen INF1000 - Høst 2015 uke 11 7 Kapittel 3: Decisions Dette kapittelet tar for seg det som har med valg å gjøre: - if-setninger - ulike typer sammenligninger - boolske variabler, operatorer og uttrykk Dette må dere kunne bruke i programmering; unntaket er flytskjemaer [BJ: 3.5] som ikke er pensum. Merk at f eks switch ikke er pensum (special topic), lett å bruke feil og betraktes som "risikabelt". Kapittel 4: Loops Dette er uunnværlige redskaper i en programmerers verktøykasse. Omtrent alle programmer inneholder en løkke. 1. while-løkker går så lenge en betingelse gjelder 2. for-løkker går et gitt antall ganger Dette er ikke pensum: do-løkker [BJ: 4.4] simulering og tilfeldige tall [BJ: 4.9] (selv om dere har sett et eksempel) Heller ikke break (special topic). Mye feil bruk i eksamen 2014. Siri Moe Jensen INF1000 - Høst 2015 uke 11 8 Siri Moe Jensen INF1000 - Høst 2015 uke 11 9 2

Kapittel 5: Methods I Kapittel 5: Methods II Nå begynner det å bli mer avansert. Alt i kapittelet er sentralt pensum (unntatt rekursive metoder [BJ: 5.9]): 1. [BJ: 5.1] om metoder som «svarte bokser» for lettere å holde oversikten over programmet. 2. [BJ: 5.2 og 5.6] Hva bruker vi metoder til? unngå å gjenta kode (static -metoder) definere grensesnittet til en klasse (se kapittel 8) (forts) 5. [BJ: 5.7] Problemløsing med stegvis forfining beskriver en god teknikk til å la et program bli til litt etter litt. 6. [BJ: 5.8] En variabels skop er delen av et program en variabel er tilgjengelig. Enkelt sagt: En lokal metodevariabel finnes bare når metoden utføres 3. [BJ: 5.3] Parametre! Noe av det aller viktigste i hele kurset! 4. [BJ: 5.4 5] Returverdier (for de metoder som ikke er voidmetoder) Siri Moe Jensen INF1000 - Høst 2015 uke 11 10 Siri Moe Jensen INF1000 - Høst 2015 uke 11 11 Kapittel 6: Arrays and array lists I Arrayer er en veldig mye brukt datastruktur. 1. [BJ: 6.1] introdusere arrayer. 2. [BJ: 6.2] spesialisert (enhanced) for-løkke brukes for ArrayList og HashMap Kapittel 6: Arrays and array lists II 6. [BJ: 6.6] todimensjonale arrayer er ikke pensum. 7. [BJ: 6.7] tar for seg klassen ArrayList som man kan bruke når man ikke vet arrayens størrelsen på forhånd. 3. [BJ: 6.3] gir eksempler på bruk av arrayer. 4. [BJ: 6.4] beskriver hvordan man bruker arrayer i metoder. 5. [BJ: 6.5] er et nyttig avsnitt om hvordan man kan løse problemer ved å bruker arrayer. Siri Moe Jensen INF1000 - Høst 2015 uke 11 12 Siri Moe Jensen INF1000 - Høst 2015 uke 11 13 3

Kapittel 7: Input/output and exception handling Dette kapittelet tar opp mye mer om lesing og skriving enn vi trenger i INF1000, så det lille heftet om I/O du finner på nettsiden, er vårt pensum isteden. Unntakshåndtering er ikke pensum. Kapittel 8: Objects and classes Dette er det viktigste kapittelet i INF1000; => Grunnkurs i objektorientert programmering. Hele kapittelet er pensum. Forelesningene viser vår vektlegging og hva vi forventer at dere kan vise på eksamen (sammen med obliger og prøveeksamen). - Innkapsling (tilgang til objektenes data gjennom grensesnitt) - Design og bruk av strukturer med flere objekter av flere klasser Siri Moe Jensen INF1000 - Høst 2015 uke 11 14 Siri Moe Jensen INF1000 - Høst 2015 uke 11 15 Objektorientert programmering: Fremgangsmåte 1. Finn ut hvilke klasser vi trenger og hvordan de skal henge sammen; her er UML-diagram nyttig. Husk: En klasse skal representere noe spesifikt, enten et konsept eller en fysisk gjenstand. 2. Definer grensesnittet (dvs metodene). 3. Finn representasjonen (dvs objektvariablene). 4. Programmer grensesnittmetodene Annet forelest pensumstoff UML klassediagrammer [BJ: app K] UML klassediagrammer brukes under planleggingen av programmeringen og viser klassene (med representasjon og grensesnitt) og hvordan de forholder seg til andre klasser. Tidlig i design-fasen eller for overblikk kan det være nyttig å prøve seg frem kun med klassenavn og forhold mellom disse. Relasjonsangivelsen (navnet og antallet) gir et grunnlag for å definere mye av representasjonen. Siri Moe Jensen INF1000 - Høst 2015 uke 11 16 Siri Moe Jensen INF1000 - Høst 2015 uke 11 17 4

Viktig! HashMap (oppslagstabeller) Behandles i [BJ: 15.4] men her er forelesningsnotatene enklere å forholde seg til (uke 8 og 9) En HashMap er som en ArrayList der indeksen er en String i stedet for et heltall, og der de lagrede elementene ikke har noen rekkefølge. Hvordan organisere mengder av objekter? Noen ledetråder Skal du lagre et (kjent) antall verdier av en primitiv type (int, boolean, char,..) array Er elementene naturlig, løpende nummerert? array eller ArrayList Skal du lagre et ukjent/ varierende antall objekter? ArrayList eller Hashmap Skal du lagre String- eller andre objekter som det er naturlig å identifisere med en tekst og ikke et nummer? HashMap Siri Moe Jensen INF1000 - Høst 2015 uke 11 18 Siri Moe Jensen INF1000 - Høst 2015 uke 11 19 Digital representasjon 1. Tegnsett [BJ: RF 2.2, app A] (ikke viktig del av pensum) Det finnes mange tegnsett; de mest brukte er ISO Latin-1 (= ISO 8859-1) og Unicode; den siste kodes gjerne som UTF-8. 2. Tall [BJ: app I] Dere bør kunne konvertere små tall <= 64 fra desimalt til binært og heksadesimalt og omvendt; ellers ikke viktig i dette kurset 3. Digital koding av lyd og bilder er ikke pensum i INF1000 IT og samfunn, personvern Dette er viktig i pensum - se presentasjonen uke 6 Berører Personopplysningsloven (Poppl) det jeg ønsker å gjøre? (se figur fra forelesning) Definisjoner, krav og unntak se Poppl Se også lenke til notat om IT og samfunn, alternativt Digitale medier (Gisle M fl). Dette er almenkunnskap som dere vil ha mye glede av utover i studiet og ellers. Bruk forelesningsnotatene til Dag! Siri Moe Jensen INF1000 - Høst 2015 uke 11 20 Siri Moe Jensen INF1000 - Høst 2015 uke 11 21 5

INF1000 Eksamensforberedelser og -tips Undervisning mot eksamen Uke tirsdag onsdag torsdag fredag mandag 11: 3.-9.11 forelesning Grupper: Lab Grupper: Seminar Høst 2015 Siri Moe Jensen 12: 10.-16.11 13: 17.-23.11 Grupper: Lab Grupper: Seminar (siste gruppetimer!) prøveeksamen 14: 24.11-30.11 4. desember Eksamen (14:30) Følg med på kurssidene og les eller videresend UiO-mail! Siri Moe Jensen INF1000 - Høst 2015 uke 11 24 Siri Moe Jensen INF1000 - Høst 2015 uke 11 25 Prøveeksamen 10. november Oppmøte i Smalltalk kl 10:00 Utdeling av prøveeksamen med svar på praktiske spørsmål (på semestersiden fra kl 8:00 for de som har forelesninger) < 10:15 14:15 Løse prøveeksamen > Enkel servering ca 14 i/ ved Simula Gjennomgang prøveeksamen i Simula 14:15-16 Før eksamen I Trening i større programmer med komplekse strukturer, overblikk/ helhet: Oblig 7 (kan den forbedres?) Eksamensoppgaver (legges ut denne uken og neste) Enkeltdeler av pensum Forelesninger, slå opp/ utdyp fra lærebok Løs oppgaver fra Trix og evt lærebok, uløste obligoppg? Vektlegging og fremgangsmåter i kurset er noe endret, spesielt fra 2014 (obs gamle eks.oppgaver) Siri Moe Jensen INF1000 - Høst 2015 uke 11 26 Siri Moe Jensen INF1000 - Høst 2015 uke 11 27 6

Før eksamen II Gjennomfør prøveksamen! Planlegg hjelpemidler Sett av 4 timer Ikke bruk maskin lag en realistisk eksamenssituasjon! revurder evt hjelpemidler til eksamen Les eksamensreglementet, sjekk grundig hvor/ når du skal møte, beregn god tid Følg med på kurssidene og les eller videresend UiO-mail På eksamen Besvarelsen leses av sensorer = mennesker. Skal ikke kompileres eller kjøres av maskiner Foreleser(e) vil gå rundt etter ca 0.5-1.5 time, forbered spørsmål om uklarheter Les oppgaven grundig! Hva ber den (ikke) om? Poengsum sier noe om hvor mye du (maks) tjener på å løse oppgaven vurder hvor mye tid det er verdt å bruke på oppgaver der du står fast Alle skriftlige hjelpemidler tillatt (dvs alt av papir, ikke noe elektronikk) Siri Moe Jensen INF1000 - Høst 2015 uke 11 28 Siri Moe Jensen INF1000 - Høst 2015 uke 11 29 1. De aller fleste får liten tid Ikke kladd (alt) skriv så du kan levere direkte. Men tegn/ skisser gjerne ved siden av. Husk gjennomslag ikke rettelakk eller viskelær!! Sensor tåler overstrykninger og er velvillig (men det må være lesbart, også på gjennomslag) Bruk gjerne forkortelser, for eksempel System.out.println -> s.o.p eller public static void -> p.s.v (lag gjerne en liste på første ark om du bruker flere) 2. Sensor vil deg vel! Hensikten er å se hva du har lært av læringsmålene ikke å pirke på språk, semikolon, eller innrykk (men leselighet er svært nyttig for deg og oss) Vi leter etter hva du kan men du må vise oss det (og det må svare på det oppgaven spør om) Har du ikke tid til å programmere i detalj er kort beskrivelse bedre enn ingenting men den må vise noen relevante tanker om hvordan du ville gått frem. Vi trenger ikke kommentarer om det ikke er noe spesielt du vil ha frem Siri Moe Jensen INF1000 - Høst 2015 uke 11 30 Siri Moe Jensen INF1000 - Høst 2015 uke 11 31 7