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

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

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

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

Velkommen til. IN1010 Objektorientert programmering Våren 2018

IN1010 Objektorientert programmering Våren 2019

Forelesning inf Java 1

Forelesning inf Java 1

Velkommen til. INF våren 2017

INF1000 undervisningen INF 1000 høsten 2011 Uke september

INF 1000 høsten 2011 Uke september

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

Hvorfor objektorientert programmering?

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

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

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

Kort om kursene IN1900, MAT-IN1105, IN-KJM1900

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

TDT4110 Informasjonsteknologi, grunnkurs Uke 35 Introduksjon til programmering i Python

Kort om kursene INF1100 og MAT-INF1100L

Kort om kursene IN1900, MAT-IN1105, IN-KJM1900

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

INF1000: IT og samfunn. Uke 6, høst 2014 Siri Moe Jensen

INF1000 : Forelesning 1 (del 2)

Læringsmål og pensum. v=nkiu9yen5nc

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

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

INF2270 Datamaskinarkitektur

Velkommen. Velkommen til INF2270. Datamaskinarkitektur. Motto: Datamaskinen på tvers

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

TDT4110 Informasjonsteknologi grunnkurs: Kapittel 1 Introduksjon til Programmering og Python. Professor Alf Inge Wang

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

Velkommen til. Grunnkurs i Objektorientert Programmering. Universitetet i Oslo. Siri Moe Jensen og Arne Maus

Den siste dagen. Pensumoversikt Hovedtanker i kurset Selvmodifiserende kode Overflyt Veien videre... Eksamen

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

MAT-INF 1100: Obligatorisk oppgave 1

VELKOMMEN TIL MAT-INF1100

Oversikt. Hva er programmering & Java forkurset til INF1000. Hva er en datamaskin. Arne Maus Inst for Informatikk Univ. i Oslo

Thursday, August 19, Web-prosjekt

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

Hvordan blir jeg en ordentlig informatikkstudent? Kurs i studiestrategier med fokus på INF1000

Plan for denne uka: Hva er INF1000. Mål for INF1000: INF 1000 høsten Velkommen til

INF109 (kun et utvalg av kommentarene er med i denne rapporten)

Forelesning inf Java 1

Feilmeldinger, brukerinput og kontrollflyt

Hvordan installere Java og easyio på Windows

Pensum Hovedtanker Selvmodifiserende Overflyt Veien videre Eksamen. Oppsummering

Ukeoppgaver 1: 30. aug 3. sep (INF Høst 2010)

INF2270 Datamaskinarkitektur

Velkommen til. INF våren 2016

Introduksjon til objektorientert programmering

INF2270 Datamaskinarkitektur

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

Velkommen til INF2100

VELKOMMEN TIL MAT-INF1100

Velkommen til. Grunnkurs i Objektorientert Programmering. Universitetet i Oslo. Arne Maus, Ole Christian Lingjærde og Arild Waaler

Plan for denne uka: Velkommen til. Mål for INF1000: Hva er INF1000. Grunnkurs i Objektorientert Programmering. Universitetet i Oslo

VELKOMMEN TIL MAT-INF 1100

TDT4105 Informasjonsteknologi, grunnkurs (ITGK)

Bakgrunnen for INF2100. Velkommen til INF2100. Prosjektet. Hva gjør en kompilator?

Velkommen til INF 1000 høsten 2008

Anbefalt litteratur: Pensum-bøker: Forelesere: Velkommen til INF Introduksjon til operativsystemer og datakommunikasjon

som jobbet nærmest døgnet rundt i 18 måneder i Menlo Park i California for å forberede den neste bølgen innen computing.

Litt Java-historikk. Litt Java-historikk. Ulike varianter for ulike behov. Litt Java-historikk. The Green Team

Programmeringsspråket C

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

Plan for denne uka: Velkommen til. Hva er INF1000. Mål for INF1000: Grunnkurs i Objektorientert Programmering. Universitetet i Oslo

Velkommen til INF Introduksjon til operativsystemer og datakommunikasjon

MAT-INF 1100: Obligatorisk oppgave 1

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

Plan for denne uka: Velkommen til. Hva er INF1000. Mål for INF1000: Grunnkurs i Objektorientert Programmering. Universitetet i Oslo

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

Kapittel 1: Datamaskiner og programmeringsspråk

Introduksjon til dataanlegget ved Institutt for informatikk. Marc Bezem Institutt for informatikk Universitetet i Bergen

Plan for denne uka: Velkommen til. Mål for INF1000: Hva er INF1000. Grunnkurs i Objektorientert Programmering. Universitetet i Oslo

2 Om statiske variable/konstanter og statiske metoder.

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

Velkommen til INF2100 Jeg er Dag Langmyhr

INF Obligatorisk innlevering 5

AlgDat 10. Forelesning 2. Gunnar Misund

Ark 1 av 18. programmeringsspråkenes. Velkommen til IN 211. verden. IN 211 Programmeringsspråk

INF1070. Velkommen til. Datamaskinarkitektur. Motto: Hvordan bygger man en datamaskin? INF1070

UNIVERSITETET I OSLO

Fra Python til Java, del 2

1 av 5 01/04/ :12 PM

Velkommen til MAT1030!

MAT1030 Diskret Matematikk

Oblig2 - obligatorisk oppgave nr. 2 (av 4) i INF1000

Ukeoppgaver 2: sep (INF Høst 2010)

TDT4105 Informasjonsteknologi, grunnkurs (ITGK)

VELKOMMEN TIL MAT-INF 1100

Oblig2 - obligatorisk oppgave nr. 2 (av 4) i INF1000

Java. INF1000 : Forelesning 2. Ulike varianter for ulike behov. Java Standard Edition (Java SE) Java:

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

Dagens tema: 12 gode råd for en kompilatorskriver

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

Øvingsforelesning i Matlab (TDT4105)

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

TDT4105 Informasjonsteknologi, grunnkurs

VELKOMMEN TIL MAT-INF1100 og MAT-IN1105

1 av 5 12/26/ :48 AM

Transkript:

INF1000: Grunnkurs i objektorientert programmering Uke 0, høst 2015 Litt administrativt Studieadministrasjonen registrerer oppmøte i pausen utenfor auditoriet. Mikronfonlyd og skjerm tas opp og legges ut Se semestersiden m/ lenker for informasjon! http://www.uio.no/studier/emner/matnat/ifi/inf1000/h15/ Informatikk studiet og INF1000 Ingen krav til forkunnskaper, men høye krav til jevnt arbeid! Tidligere erfaring? Obs hull og alternative mentale modeller Følg undervisning og løs obliger, ikke «mist toget» MYE BAKGRUNN? => Henvend Dag Langmyhr på INF2100 forelesning onsdag Mål for emnet Solid grunnlag for videre studier Vekt på generelle begreper og grunnleggende mekanismer Trening i programmering ved hjelp av disse i Java Ikke et hurtigkurs i praktisk programmering! Etter denne forelesningen skal du Ha noe kunnskap om begrepene informatikk, datasystem og programmering Ha noe kunnskap om objektorientert programmering og programmeringsspråket Java. Kunne skrive enkle Java programmer med kommentarer utskrift setninger til skjerm deklarasjon og tilordning til heltallsvariable Kjenne til studieopplegg og læremidler for emnet 1

Informatikk Er informatikk viktig? Informatikk er læren om hvordan datasystemer konstrueres og brukes* et datasystem består av en eller flere datamaskiner som kjører programvare og kan være knyttet til et eller flere nettverk for overføring av data. Informasjonsteknologi: Informatikk handler om teknologi, men også mye mer! * Dekan ved MatNat; Morten Dæhlen.. krevende?.. fullt av muligheter? Fra Stortingsmelding 10( 2012 2013): God kvalitet trygge tjenester Kvalitet og pasientsikkerhet i helse og omsorgstjenesten: «.. Eksempler på områder der Norge skårer dårlig er informasjonsflyt, kommunikasjon og koordinering mellom ulike deler av helsetjenesten» tilfeldig utdrag fra Ifi s forside Forskning 2

Sentrale konsepter: Lagdeling og grensesnitt «Våre» lag Lag på lag på lag mellom de minste elektroniske komponentene og brukeren. Dine Java programmer Mer fleksibelt & primitivt Mer avansert & sammensatt Java kompilator Java kjøresystem Kommandovindu Windows eller Linux operativsystem Atom. Grensesnitt definerer hvordan programmer kan bruke andre programmer og tilby mer avanserte funksjoner. Brukergrensesnitt definerer hvordan mennesker kan bruke et program. <Datamaskin på termstue> 0 eller 1? editor for å lage kildefil Programmer vi bruker for å programmere $ emacs& $ javac MittProg.java kjøresystem for å utføre programmet $ java MittProg MittProg.java MittProg.class kompilator for å oversette til byte kode Hva er programmering? Å lære en datamaskin å gjøre «noe» på en bestemt måte. løse et problem overta en repetitiv/ arbeidskrevende oppgave utføre noe som ikke lar seg gjøre manuelt Spesifikasjon Programmering omfatter alltid de samme elementene: 1. Hva skal gjøres? 2. Hvordan skal maskinen gå frem? Design 3. Hvilke data trenger den å holde rede på? Java 4. Hvordan beskrive dette i et språk maskinen forstår? 5. Hvordan være sikker på at maskinen (alltid) gjør det jeg har tenkt (se 1)? Testing Dette er *ikke* en sekvensiell prosess vi lærer underveis og må gå tilbake og i flere runder. 3

Hva handler det om? formulere problemer/ arbeidsoppgaver tenke kreativt omkring løsninger og formulere løsninger klart og nøyaktig i en form som kan utføres av en datamaskin Programmering er problemløsning og innebærer å leve mye av tiden med problemer. Eller:.. med å skape noe nytt! Objektorientert programmering hva og hvorfor? Objektorientering er et tankesett eller paradigme som egner seg til å modellere (lage representasjoner av) komplekse problemstillinger Spesielt nyttig når deler av et program skal kunne utvikles og vedlikeholdes uavhengig av hverandre, men likevel fungere godt sammen OOP støtter programmereren i å modellere virkeligheten ut fra de behovene programmet skal dekke Objektorientert programmering hvordan? Modellerer virkeligheten: Velger ut sentrale begreper/ «ting» og operasjoner knyttet til disse et lite frempek Representeres under kjøring av objekter, som lagrer informasjon og kan utføre handlinger Hvilke handlinger et objekt kan utføre og hvordan, beskrives i klassen objektet tilhører. Java programmer består av en eller flere klasser. Grunnkurs i objektorientert programmering INF1000 Problemløsning Objektorientering I INF1000 starter vi med hvordan data representeres og bearbeides i Java, i klasser som vi ikke lager objekter av Senere (fra uke 5) skal vi bruke dette i objektorienterte programmer («Late Objects») Praktisk/ teknisk Java 4

Programmeringsspråket Java Mye brukt Presist/ sikkert lar deg ikke gjøre «farlige» feil som utvikler Samme programkode kan kjøre på flere maskiner Java hva er det? Programvare og spesifikasjoner for utvikling og kjøring av programmer i programmeringsspråket Java Finnes for ulike typer maskinvare og operativsystemer Støtter sentrale konsepter for programmerere (OO) Kraftfullt, men kan kjennes omstendelig Undervisning: Nyttig, men krevende i starten NB: Java er ikke JavaScript på tross av navnelikhet! Java hva trenger vi? Kjøresystemet Java Runtime Environment (JRE) støtter kjøring av ferdige programmer Java Development Kit (JDK) for programutvikling inneholder kompilator i tillegg til JRE De (vi!) som utvikler Java programmer trenger JDK That's what a ship is, you know. It's not just a keel and a hull and a deck and sails, that's what a ship needs but what a ship is... what the Black Pearl really is... is freedom. På Ifi bruker vi Java SE 7 (versjon 7 for typiske desktop og server maskiner) Laptop hjelpen (se nettsider) kan hjelpe med installasjon 5

Et (tomt) første program i Java Et første program med kommentarer class Uke00 { class Uke00 { // Dette programmet gjoer ingenting! /* Kommentarer kan vi ogsaa skrive på denne maaten, over flere linjer */ Skrive ut en linje class Uke01 { // Skriver ut en tekst til brukerens skjerm: Skrive ut: Med og uten linjeskift class Uke02 { // Skriver ut Velkommen til INF1000!: System.out.println ("Velkommen til INF1000!"); System.out.print ("Velkommen "); System.out.print ("til "); System.out.println ("INF1000!"); 6

Tekst-konkatenering Variabler for å lagre verdier class Uke03 { // Konkatenerer (skjoeter) to tekster // og skriver ut til skjerm: class Uke04 { // Deklarere en variabel for lagring av et heltall int alder; System.out.println ("Velkommen til" + "INF1000!"); // Lagrer et tall i variabelen alder = 19; // Skriver ut tallet med en forklaring System.out.println ("alder har verdien " + alder); Endring av variabler Feil uunngåelig & lærerikt class Uke05 { int alder; alder = 19; Fordi datamaskiner er maskiner er de lite tolerante og lite forståelsesfulle (om ikke de er programmert til å virke slik) Når vi programmerer vil vi heller ikke at maskinen skal begynne å «gjette» hva vi mener (mer akseptabelt når vi leter etter noe i en søkemotor!) // Endrer verdien i alder alder = 25; System.out.println ("alder har verdien " + alder); Dvs strenge krav til nøyaktighet for at alt funker Kompileringsfeil (typisk skriveleifer) Kjøretidsfeil (noe går feil underveis) Logiske feil (programmet gjør noe annet enn ventet) Tips foreløpig: UNNGÅ NORSKE TEGN HELT 7

Kodestil kodekonvensjoner INF1000 semesterplan Semesterside /Timeplan Tilleggsregler av hensyn til programmerer og leser, som ikke kreves av Java Økt lesbarhet og oversikt Ryddigere kode, også når flere samarbeider Redusert fare for feil, høyere kvalitet Se Coding guidelines i Big Java, Appendix L INF1000 2015 Uke 0 34 Introduksjon Mål for uka Obl frister Uke 1 35 Programmering er problemløsning! Uke 2 36 Kontrollflyt, feilsøking 1 Uke 3 37 Hvordan løse problemer med programmering? På Sundvollen 2 (søndag 6.9) Uke 4 38 Hvordan løse problemer som involverer data? 3 Uke 5 39 Hva er objektorientert programmering? 4 Uke 6 40 Hvilken rolle spiller IT (utviklere) i samfunnet? 5 Uke 7 41 Mekanismer og teknikker for utvikling av mer komplekse, Uke 8 42 objektorienterte programmer. Uke 9 43 6 Uke 10 44 Hvordan representeres tall, tekst, bilder med mer i en datamaskin? Uke 11 45 Et større program eksempel. 7 Uke 12 46 Prøveeksamen Uke 13 47 Repetisjonskurs Uke 14 48 med gruppelærere Uke 15 49 Eksamen «Normal» undervisningsuke Hvordan jobbe med emnet Tirsdag Onsdag Torsdag Fredag Mandag 08:15 H 09:15 E 10:15 INF1000 L 11:15 ekstragruppe INF1000 G INF1000 12:15 gruppe. gruppe. 2 t lab 2 t seminar 13:15 OBL FRIST 14:15 INF H 15:15 1000 forelesning E 16:15 L 17:15 G PROGRAMMERING Oblig. oppgaver Øvingsoppgaver kikk på lærebok før forelesning forelesning flervalgstest lærebok for økt forståelse, praktiske tips og detaljer før og på lab: Løs ukeoppgaver (Trix) og oblig delta aktivt i seminartimene 8

Lærebok «Uke 0» (gult) Cay S. Horstmann; Big Java Late Objetcs Mandag 17.8 Tirsdag 18.8 Onsdag 19.8 Torsdag 20.8 Fredag 21.8 Helg Elektroniske versjoner finnes, ikke sjekket ut NB: Kun trykte/ skrevne hjelpemidler på eksamen! Big Java dekker også INF1010 pensum Java for Everyone: samme stoff, men kun INF1000 Kalenderuke 34 Kalenderuke 35 Mandag 24.8 Første gruppetimer (seminar) INF1000 Forelesning 2 t Tirsdag 25.8 INF1000 Forelesning 2 t Frivillig lab «Forkurs trening» 2 t Onsdag 26.8 Gruppetimer (lab) Torsdag 27.8 Gruppetimer (lab) Første gruppetimer (seminar) Fredag 28.8 Gruppetimer (seminar) Helg?? Tips? Mye info? Dette bør du ha fått med deg i uke 0 Skrive inn og kjøre ett Java-program Les eller videresend mail til studentkonto Hold følge Vær bevisst DIN læring, bruk tid der du trenger det Programmer, jobb selvstendig Kollokver, diskuter Bruk semestersidene for struktur Snakk med gruppelærer om evt problemer, i tide! Husk at dette er moro når du jobber på (litt over) ditt nivå!? Følg med på semestersiden for Praktisk informasjon og beskjeder Krav til obliger, innlevering Undervisningsplan Pensum og ressurser Flervalgstester for teori Programmeringsoppgaver for praksis, inkl obliger Flervalgstest for uke 0 9

Neste uke Programmering som problemløsning variable, forgreninger og innlesing fra bruker Lykke til med semesteret og programmeringen! 10