velkommentil institutt for informatikk in1010 … · institutt for informatikk 1 1 velkommentil...
TRANSCRIPT
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
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:
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 ?
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 ?
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
Institutt for informatikk
6
Spesifikasjon
Problem
Program
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
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
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
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
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
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
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)
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
15
Institutt for informatikkEksamen
• Torsdag 4. juni 2020 kl 9 – 13 (4 timer)
• Digital eksamen
• Tillatte hjelpemidler:– Alle trykte og skrevne– Ingen elektroniske
15
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
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
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
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
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
21
Institutt for informatikk
Obligatorisk frammøteregistrering i pausen – frem til 13:20
21
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