velkommentil institutt for informatikk in1010 … · institutt for informatikk 1 1 velkommentil...

22
Institutt for informatikk 1 1 Velkommen til IN1010 – Objektorientert programmering Våren 2020 Idag: 1. time: Om IN1010 2. time: Om Java for deg som kan Python (forts. i morgen og to dobbelttimer neste uke) Siri Moe Jensen , Stein Gjessing Institutt for informatikk Universitetet i Oslo

Upload: others

Post on 14-Aug-2020

10 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Velkommentil Institutt for informatikk IN1010 … · Institutt for informatikk 1 1 Velkommentil IN1010 –Objektorientertprogrammering Våren2020 Idag: 1. time: Om IN1010 2. time:

Institutt for informatikk

1

1

Velkommen tilIN1010 – Objektorientert programmering

Våren 2020

Idag:1. time: Om IN10102. time: Om Java for deg som kan Python

(forts. i morgen og to dobbelttimer neste uke)

Siri Moe Jensen , Stein Gjessing Institutt for informatikk

Universitetet i Oslo

Page 2: Velkommentil Institutt for informatikk IN1010 … · Institutt for informatikk 1 1 Velkommentil IN1010 –Objektorientertprogrammering Våren2020 Idag: 1. time: Om IN1010 2. time:

2

Institutt for informatikk

IN1010 – Objektorientert programmering

• Å løse et (middels stort) problem ved å lage et program• Å lage gode (middels store) programmer

– Hva er et godt program?

• Objektorientert programmering (i Java)

2

I IN1010 skal du lære:

Page 3: Velkommentil Institutt for informatikk IN1010 … · Institutt for informatikk 1 1 Velkommentil IN1010 –Objektorientertprogrammering Våren2020 Idag: 1. time: Om IN1010 2. time:

Institutt for informatikkLæreboka

• Horstmann: Big Java, Late objects 2013

• Kap 1 – 8 Introduksjon til Java (IN1000 - men Java)

• Kap 9 – 20 Nytt i IN1010

Er ikke denne boka for gammel ?

Page 4: Velkommentil Institutt for informatikk IN1010 … · Institutt for informatikk 1 1 Velkommentil IN1010 –Objektorientertprogrammering Våren2020 Idag: 1. time: Om IN1010 2. time:

4

Institutt for informatikk

Læreboka

• Horstmann: Big Java, Late objects 2013 • Kap 1 – 8 Introduksjon til Java (IN1000 - men Java)

• Kap 9 – arv• Kap 10 og 11 – GUI, men med Java FX (Java 8)• Kap 12 – design• Kap 13 – rekursjon (ikke alt) • Kap 14 – sortering og søking (bare som eksempelstoff)• Kap 15 og 16 – datastrukturer (ikke alt) • Kap 17 – ikke pensum (IN2010)• Kap 18 – klasser med parametre• Kap 19 – streams (ikke alt)• Kap 20 – tråder (på nettet)

Foreløpig pensum

Er ikke denne boken for gammel ?

Page 5: Velkommentil Institutt for informatikk IN1010 … · Institutt for informatikk 1 1 Velkommentil IN1010 –Objektorientertprogrammering Våren2020 Idag: 1. time: Om IN1010 2. time:

5

Institutt for informatikkObjektorientert programmering• Ble funnet opp i Oslo for over 50 år siden av Ole-Johan

Dahl og Kristen Nygaard.– Språket de fant opp: Simula– Java, C++, Smalltalk, C#, . . . bygger på Simula

• Foreleserene i IN1010 (Siri og Stein) hadde Dahl og Nygaard som lærere

• Pensum er ikke først og fremst læreboka (Horstmann), men det som foreleses (lysarkene). Disse inneholder mye av det vi har lært av Dahl og Nygaard

• Ofte en annen rekkefølge/ vinkling enn Horstmann5

Page 6: Velkommentil Institutt for informatikk IN1010 … · Institutt for informatikk 1 1 Velkommentil IN1010 –Objektorientertprogrammering Våren2020 Idag: 1. time: Om IN1010 2. time:

Institutt for informatikk

6

Spesifikasjon

Problem

Program

Page 7: Velkommentil Institutt for informatikk IN1010 … · Institutt for informatikk 1 1 Velkommentil IN1010 –Objektorientertprogrammering Våren2020 Idag: 1. time: Om IN1010 2. time:

7

Institutt for informatikkEksemplene i IN1010• Mange av de konseptene vi behandler er

viktigst når programmene blir større• Mange programmer i IN1010 er små• Konseptene blir introdusert med små, enkle

programmer• Tenk på dette når dere lærer noe nytt

(vi forelesere skal også minne dere på det)

• I noen obligatoriske oppgaver prøver vi å løse litt større problemer 7

Page 8: Velkommentil Institutt for informatikk IN1010 … · Institutt for informatikk 1 1 Velkommentil IN1010 –Objektorientertprogrammering Våren2020 Idag: 1. time: Om IN1010 2. time:

8

Institutt for informatikkI IN1010 skal du også lære

• å tenke deg hvordan oppgaven som programmet ditt skal løse, skal løses ved hjelp av datastrukturer (objekter) og algoritmerinne i datamaskinen

• å tenke på hva som skjer inne i datamaskinen når Javaprogrammet ditt blir utført

• å tegne datastrukturer– for å forstå det selv– for å kommunisere om programmet med andre

8

Page 9: Velkommentil Institutt for informatikk IN1010 … · Institutt for informatikk 1 1 Velkommentil IN1010 –Objektorientertprogrammering Våren2020 Idag: 1. time: Om IN1010 2. time:

9

Institutt for informatikkIN1010 Forkunnskapskrav

• Du kan løse små problemer i Python vha.– Variable og konstanter– Tilordninger– Kontrollstrukturer (valg og løkker)– Lister/ ordbøker – Metoder/funksjoner (med parametre og returverdier)

– Klasser– Objekter

9

Page 10: Velkommentil Institutt for informatikk IN1010 … · Institutt for informatikk 1 1 Velkommentil IN1010 –Objektorientertprogrammering Våren2020 Idag: 1. time: Om IN1010 2. time:

Institutt for informatikk

10

Denne uken (og neste)

• Java for deg som kan Python.Eget arbeid:– Les foilene og Horstmann kap 1 – 8.– Les ”Litt om datastrukturer i Java” av Stein Gjessing– Gå på seminartime!– Gjør ukens Trix-oppgaver – bli "flytende" i Java– Løs og lever inn »Innleveringsoppgave 0» senest tirsdag

21.1– Åpen lab med veiledere tor-fre 12:15-18, man-tir 8:15-12

(Limbo)

10

Page 11: Velkommentil Institutt for informatikk IN1010 … · Institutt for informatikk 1 1 Velkommentil IN1010 –Objektorientertprogrammering Våren2020 Idag: 1. time: Om IN1010 2. time:

11

Institutt for informatikkObligatoriske oppgaver

• Du må ha godkjent alle de 7 obligatoriske oppgavene for å ta eksamen

• Har du godkjent alle de obligatoriske oppgavene i IN1010 (eller INF1010) fra før * (dvs. du kunne gått opp til eksamen) trenger du ikke gjøre noen oppgaver på nytt– Hvis ikke må du gjøre alle oppgavene i år

11* 5 års foreldelsesfrist

Page 12: Velkommentil Institutt for informatikk IN1010 … · Institutt for informatikk 1 1 Velkommentil IN1010 –Objektorientertprogrammering Våren2020 Idag: 1. time: Om IN1010 2. time:

12

Institutt for informatikkObligatoriske oppgaver• Etter at et (eller flere) tema er forelest vil det

(nesten alltid) bli gitt en obligatorisk oppgave med dette stoffet.

• Du får (ganske) god tid på deg til å løse oppgaven etter at stoffet er gjennomgått

• Men NB!: Dette betyr at du må jobbe med den obligatoriske oppgaven SAMTIDIG med at du lærer annet nytt stoff.

12

Page 13: Velkommentil Institutt for informatikk IN1010 … · Institutt for informatikk 1 1 Velkommentil IN1010 –Objektorientertprogrammering Våren2020 Idag: 1. time: Om IN1010 2. time:

13

Institutt for informatikk

Obligatoriske oppgaverInnlevering ca annenhver tirsdag

13

4 timer per uke på obligatoriske oppgaver er normert ut fra en gjennomsnittsstudent som får til en passebra innlevering.

Oblig 1, 2 og 3: 2 ukerOblig 4: 3 uker (i grupper)Oblig 5, 6 og 7: 2 uker

Stort sett uavhengige oppgaver, men• Oppgave 3 og 4 bygger på hverandre og på 2

– Oppgave 4 skal gjøres i grupper• Oppgave 7 bygger på 5 (men her er det god tid mellom oppgavene)

Page 14: Velkommentil Institutt for informatikk IN1010 … · Institutt for informatikk 1 1 Velkommentil IN1010 –Objektorientertprogrammering Våren2020 Idag: 1. time: Om IN1010 2. time:

14

Institutt for informatikkObligatoriske oppgaver

• Du må lese regelverket for obligatoriske oppgaver (lenke fra semestersiden)– Diskuter gjerne ideer med andre, men:– Ikke lov å kopiere fra andre - du skal selv forstå og skrive all

koden du leverer– Unntak for oblig 4 – men du skal også her forstå all kode

• Strengeste reaksjonsform ved fusk: Utestengning• Frist for innlevering: tirsdag kveld kl. 23:59

• Retting: Samretting eller tradisjonell retting– informasjon på semestersiden (følg med!!) 14

Page 15: Velkommentil Institutt for informatikk IN1010 … · Institutt for informatikk 1 1 Velkommentil IN1010 –Objektorientertprogrammering Våren2020 Idag: 1. time: Om IN1010 2. time:

15

Institutt for informatikkEksamen

• Torsdag 4. juni 2020 kl 9 – 13 (4 timer)

• Digital eksamen

• Tillatte hjelpemidler:– Alle trykte og skrevne– Ingen elektroniske

15

Page 16: Velkommentil Institutt for informatikk IN1010 … · Institutt for informatikk 1 1 Velkommentil IN1010 –Objektorientertprogrammering Våren2020 Idag: 1. time: Om IN1010 2. time:

16

Institutt for informatikkArbeidet i IN1010

Undervisningstilbud, 6 timer

Selvstendig arbeid, 7-8 timer

nytt stoff (forelesning)

utdype/ befeste

(seminartime)

repetisjon,eksempler(plenum)

16

Ressurser: Se semestersidenBøker/ notater/lysark/ opptak, kollokvier, Piazza, gruppelærere, ..

Teori, Trix, obliger. Lab med og uten veiledning.

Oblig ferdig

Page 17: Velkommentil Institutt for informatikk IN1010 … · Institutt for informatikk 1 1 Velkommentil IN1010 –Objektorientertprogrammering Våren2020 Idag: 1. time: Om IN1010 2. time:

17

Institutt for informatikkOm undervisningen

• Alle info og alle ressurser legges på eller lenkes fra semestersiden – bruk den!

• IN1010 – uka (unntatt denne første uka)– Start: Nytt stoff på forelesning onsdag kl 10:15 – 12:00– To timer seminar ledet av gruppelærer der dere jobber med det nye

stoffet sammen (tid avhenger av gruppe)– Limbo termstue reservert fire halve dager for samretting og

selvstendig programmering. Gruppelærer tilstede, tider ligger på semestersiden

– Fellesøvelse (plenum) tirsdag kl 12:15 – 14:00– Innleveringsfrist obliger tirsdager kl 23:59

Page 18: Velkommentil Institutt for informatikk IN1010 … · Institutt for informatikk 1 1 Velkommentil IN1010 –Objektorientertprogrammering Våren2020 Idag: 1. time: Om IN1010 2. time:

18

Institutt for informatikk“IN1010 – kontrakten”

• Nytt stoff presenteres på forelesningen onsdag.– Lysark legges ut på forhånd eller rett etter forelesningen– Vanligvis legger foreleserene ut opptak så fort som mulig– Nytt stoff presenteres grundig, først med små enkle

eksempler– Du må (vanligvis) ikke forberede deg på nytt stoff

MEN: – DET ER DITT ANSVAR AT DU KAN FORRIGE UKES STOFF !!

• Gå på seminartime• Jobb med øvingsoppgaver i Trix• Bruk lærebok, lysark, opptak• Lag og bruk gjerne kollokviegrupper

18

Page 19: Velkommentil Institutt for informatikk IN1010 … · Institutt for informatikk 1 1 Velkommentil IN1010 –Objektorientertprogrammering Våren2020 Idag: 1. time: Om IN1010 2. time:

19

Institutt for informatikkPiazza

• Du finner lenke på semestersiden.• Primært for faglige spørsmål, men også

andre spørsmål av allmen interesse• Prøv selv og let i gamle spørsmål før du spør

andre• Ikke legg ut obligkode

19

Page 20: Velkommentil Institutt for informatikk IN1010 … · Institutt for informatikk 1 1 Velkommentil IN1010 –Objektorientertprogrammering Våren2020 Idag: 1. time: Om IN1010 2. time:

20

Institutt for informatikkJava på egen maskinFra: Christoffer BjelkeEmne: Link til JDK8 med JavaFXHei,Den offisielle linken til JDK8 som inkluderer JavaFX vil sende dere til en login-side. For å komme dere rundt dette må dere følge denne linken (Dette er til Windows x64. Bytt siste del av linken til det som passer):

https://download.oracle.com/otn-pub/java/jdk/8u231-b11/5b13a193868b4bf28bcb45c792fce896/jdk-8u231-windows-x64.exe

jdk-8u231-linux-i586.rpmjdk-8u231-linux-i586.tar.gzjdk-8u231-linux-x64.rpmjdk-8u231-linux-x64.tar.gzjdk-8u231-macosx-x64.dmgjdk-8u231-windows-i586.exe

Hilsen Christoffer Bjelke

PS. Denne linken må benyttes etter at man har godkjent ToS på denne siden:https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html

20

Page 21: Velkommentil Institutt for informatikk IN1010 … · Institutt for informatikk 1 1 Velkommentil IN1010 –Objektorientertprogrammering Våren2020 Idag: 1. time: Om IN1010 2. time:

21

Institutt for informatikk

Obligatorisk frammøteregistrering i pausen – frem til 13:20

21

Page 22: Velkommentil Institutt for informatikk IN1010 … · Institutt for informatikk 1 1 Velkommentil IN1010 –Objektorientertprogrammering Våren2020 Idag: 1. time: Om IN1010 2. time:

Institutt for informatikk

Gjettelek – hva skjer i Java?

• Don't do this at home!– Kan være feil (vil ikke kunne kjøres)– Ikke god kodeskikk!

• Variabel og metodenavn laget for å forvirre heller enn opplyse

• Kan være konstruksjoner som kjører, men aldri bør brukes/ ikke er meningsfylte

• For eksempler, bruk programmet lenket fra uke1-siden, forelesningene og boka

Mentimeter quiz

22