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

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

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

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

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 INF 1000 høsten 2008

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

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

INF våren Mål for INF1000. Velkommen til INF 1000 våren Kort sagt. Hva er INF1000? Innholdet i kurset. Verktøy

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

Mål for INF1000: Velkommen til INF 1000 våren INF1000: oversikt. Hva er INF1000

Velkommen til INF 1000 våren 2005

Gi grunnleggende forståelse av noen sentrale. begreper, problemstillinger og metoder innen. Gi noe innsikt i datamaskiners muligheter og

Velkommen til INF 1000 våren 2006

Mål for INF1000: Velkommen til INF 1000 våren 2008 INF1000. Hva er INF1000

Mål for INF1000. Velkommen til INF 1000 våren Kort sagt. Hva er INF1000? Grunnkurs i programmering Institutt for Informatikk Universitet i Oslo

Første forelesning! Mål for INF1000. Kursevaluering. Velkommen til INF1000 høst 2010

Velkommen til INF1000 høst 2010

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

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

INF 1000 høsten 2011 Uke september

INF1000 undervisningen INF 1000 høsten 2011 Uke september

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

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

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

IN1010 Objektorientert programmering Våren 2019

Kort om kursene INF1100 og MAT-INF1100L

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

Forelesning inf Java 1

Velkommen til. IN1010 Objektorientert programmering Våren 2018

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

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

Mål for INF1000. Velkommen til INF 1000 våren Kort sagt. Hva er INF1000? Grunnkurs i programmering Institutt for Informatikk Universitet i Oslo

Forelesning inf Java 1

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

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

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

INF1000 : Forelesning 1 (del 2)

Velkommen til. INF våren 2016

Læringsmål og pensum. v=nkiu9yen5nc

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

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

Velkommen til. INF våren 2017

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

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

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

Velkommen til INF Introduksjon til operativsystemer og datakommunikasjon

Forelesning inf Java 1

Kapittel 1: Datamaskiner og programmeringsspråk

MAT-INF 1100: Obligatorisk oppgave 1

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

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

Fra Python til Java, del 2

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

TDT4110 Informasjonsteknologi, grunnkurs Uke 35 Introduksjon til programmering i Python

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

Obligatorisk oppgave nr. 3 (av 4) i INF1000, våren 2006

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

INF2270 Datamaskinarkitektur

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

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

Oblig 4 (av 4) INF1000, høsten 2012 Værdata, leveres innen 9. nov. kl

IN 147 Program og maskinvare. Velkommen til IN 147. Program- og maskinvare

I dag skal vi se på. INF 1000 (uke 2) Variabler, tilordninger og uttrykk. Gruppene starter denne uken! Klart for første oblig

Oblig4 - obligatorisk oppgave nr. 4 (av 4) i INF1000

MAT-INF 1100: Obligatorisk oppgave 1

Kapittel 1: Datamaskiner og programmeringsspråk

Velkommen til INF Introduksjon til operativsystemer og datakommunikasjon

Joly. Brukerdokumentasjon for foreleser/administrator

Forelesning inf Java 4

i=0 Repetisjon: arrayer Forelesning inf Java 4 Repetisjon: nesting av løkker Repetisjon: nesting av løkker 0*0 0*2 0*3 0*1 0*4

INF2270 Datamaskinarkitektur

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

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

VELKOMMEN TIL MAT-INF1100

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

Gjennomgang av eksamen H99

Eksamen i emnet INF100 Grunnkurs i programmering (Programmering I) og i emnet INF100-F Objektorientert programmering i Java I

INF2270 Datamaskinarkitektur

Unix/Linux en annen måte å gjøre ting på

INF1000: noen avsluttende ord

UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet

Forelesning inf Java 5

UNIVERSITETET I OSLO

Forelesning inf Java 5

INF1000 : Forelesning 4

Unix/Linux en annen måte å gjøre ting på

VELKOMMEN TIL MAT-INF 1100

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

Oblig 4Hybelhus litt mer tips enn i oppgaven

Introduksjonskurs for bachelorstudenter. IT-tjenester ved UiO. Simon Wolff

i=0 i=1 Repetisjon: nesting av løkker INF1000 : Forelesning 4 Repetisjon: nesting av løkker Repetisjon: nesting av løkker j=0 j=1 j=2 j=3 j=4

INF 1000 (uke 2) Variabler, tilordninger og uttrykk

INF Uke 10. Ukesoppgaver oktober 2012

Institutt for Informatikk ønsker alle nye studenter velkommen! Bachelorprogrammet Informatikk: språkteknologi

INF1000: noen avsluttende ord

1. Finn klassene (hvilke objekter er det i problemet) 1. Dataene som beskriver problemet (hvilke objekter har vi og hvor mange klasser er det?

NUS-eksamen høst 2016

Oversikt. Uke 2, INF 1000, 30 aug Variable, tilordninger og uttrykk. Repetisjon: Java programmering

Transkript:

Velkommen til INF 1000 høsten 2012 Grunnkurs i Objektorientert Programmering Institutt tt for Informatikk Universitetet i Oslo Ole Christian Lingjærde og Arne Maus Plan for denne uka: I dag: Intro til INF1000 Praktiske forhold bla. bruk av Joly innleveringssystem Registrering av oppmøte i pausen (miste plass?) De første Java-programmene + enkel utskrift til skjerm Gruppeundervisningen (gr 1-14,16) starter: I denne uka frivillig forkurkurs neste uke vanlig gruppe. NB Obligatorisk oppmøte tom. 21. september Mål: Du greier å bruke maskinen i løpet av denne uken og har skrevet, kompilert og kjørt ditt første pogam program. 1 2 Mål for INF1000: Gi grunnleggende forståelse av noen sentrale begreper, problemstillinger og metoder innen informatikk Lære å programmere Gi noe innsikt i datamaskiners muligheter og begrensninger Lære noe om samfunnsmessige konsekvenser av bruk av informasjonsteknologi 3 Hva er INF1000 Felles innføringskurs i Objektorientert programmering for ca 7 bachelor-programmer (MatNat, Jus) 10 studiepoeng ca. 520 studenter Et frittstående introduksjonskurs for deg som vil lære å programmere Java og kanskje ta flere kurs senere. Programmering videreføres i INF1010 i vårsemesteret 2013 Uansett: Mange målgrupper i INF1000 felles kurs, 4 obligatoriske oppgaver og eksamen. Hjemmeside e (kurssider) ALT står der: http://www.uio.no/studier/emner/matnat/ifi/inf1000/h12/ 4

INF1000 Innhold: Litt datateknologi Noe tekstbehandling Mye programmering Verktøy: Datamaskiner med Unix og Windows på Blindern eller hjemme-pc med Windows, eller Linux eller Mac. Tekstbehandlingssystemet Emacs på Unix og f.eks Emacs eller TextPad på PC Programmeringsspråket Java N.B: Å lære å programmere er mer enn det å lære et programmeringsspråk Dine forutsetninger Data-kurs? Har lært det selv? Matematikk? Noe annet? 5 6 Advarsel: Mye å gjøre (minst 13 timer per uke) Krever ferdighetstrening =>programmering hver uke! Trenger trening på ukens pensum før det skal kombineres i obligatoriske i oppgaver Dette får du ved å arbeide med ukeoppgavene Husk: Ikke bruk PC-en til spill, facebook eller lignende i forelesninga eller gruppene. Alle 4 obligatoriske oppgaver må løses og godkjennes for å kunne gå opp til eksamen første oblig skal være levert 7. sept. om 2 ½ uke. 7 Undervisningen høsten2012 Forelesninger: 2 timer hver uke onsdag 14.15-16.00, v/ Ole Christian Lingjærde og Arne Maus. Først i Sophus Lie senere kanskje kj i Simula (Ole Johan Dahls hus). Inndelt i 15 grupper - oppstart 23. aug, obligatorisk til 21. sept: Terminaltimer, 2 t/uke Hjelp til å løse oppgaver praktisk på terminal ukeoppgaver og oblig er. Teoritimer, 2 t/uke Gjennomgang av ukeoppgaver Studielab lager ekstra forkurs 23. og 24 aug. på gruppene. Ekstraundervisning oppstart 12.sept: Siri Moe Jensen og Ragnhild Kobro Runde Onsdager kl. 0915-1200 forklarer utvalgte deler av stoffet som er forelest grundigere, for deg som ikke fikk det glassklart for deg første gangen. Mer info kommer Selvstudium : Lesing, programmering også løse egne oppgaver, mange timer pr. uke 8

Undervisningsmateriell, del I Lærebok - kjøpes i Akademika: Brunland, Hegna, Lingjærde og Maus: Rett på Java, 3. utg (Universitetsforlaget, 2011) Følgende lastes snart ned via : http://www.mn.uio.no/ifi/tjenester/it/dokumenter/ Unix for begynnere kompendium av Dag Langmyhr Local guide til Emacs kompendium av Dag Langmyhr Informasjonsteknologi, vitenskap og samfunnsmessige virkninger kompendium av Arne Maus (fra kursets hjemmesider- pensum) 9 Undervisningsmateriell, del II Alle programmene til INF 1000 vil ligge lokalt lagret på Ifi for nedlasting av deg (brenn f.eks en DVD, eller bruk minnepinne på Ifi) en startpakke http://www.mn.uio.no/ifi/tjenester/it/hjelp/startpakke/ Bla. Emacs, TextPad, Java og en rekke andre programmeringsspråk Kopier av lysarkene fra forelesningene på kurssidene Dere skriver dem ut selv på Ifi Kan lastes ned over nettet og leses på maskin eller skrives ut. Dere betaler litt for utskrifter ut over de første 100 ark Kursets hjemmeside (kurssider): http://www.uio.no/studier/emner/matnat/ifi/inf1000/h12/ 10 Støtte for studentdrevet læring Øvingsoppgaver (ukeoppgaver) Selvtest på nettet (flervalgstest) Har jeg forstått siste forelesning (anonymt) Lenke fra kurssiden Kun til ditt eget bruk, data er ikke tilgjengelig for gruppelærer/ forelesere annet enn som samlestatistikk om alle besvarelsene Nytt sett hver uke, finnes via INF1000 kurssiden Alle bør løse nøkkeloppgaven, selvstendig, hver uke Full gjennomgang av ukens pensum: Start med første oppgave og fortsett i hvert fall til og med nøkkeloppgaven Hvis du mener du har pensum inne: Test nøkkeloppgaven, gå tilbake ved behov eller fortsett med påfølgende oppgaver Gir trening på del-temaene som skal benyttes i de obligatoriske oppgavene 11 12

Obligatoriske oppgaver En obligatorisk (programmerings-) øvelse ca. hver tredje uke Individuell besvarelse av Oblig 1 og Oblig2! Grupper av to og to studenter løser Oblig 3 og Oblig4 sammen (ikke 3). Leveres hjelpelærer til retting/godkjenning før fristen vi Joly. Hjelp og tips fra medstudenter tillatt, men pass på at du/dere selv programmerer Kopi strengt forbudt (like besvarelser vil bli sjekket av et program og bli behandlet som fusk) 30 studenter ble meldt for fusk/kopiering h2007 og v2008, h2010, h 2011 (tatt av Joly) Alle som ble tatt v2008,h2009 osv ble utvist (minst et ½ år) Kan hende du må forbedre ditt løsningsforslag Dere som har tatt inf1000 før: Gamle godkjennelser fortsatt gyldige. Sjekk med gruppelærer To varianter av oblig 3 (administrativ eller matematisk ), ellers samme obliger for alle. Alle obligene skal leveres via Joly-systemet. Gå på gruppene - det er der man får kontakt med andre studenter - og man lærer mye av hverandre (og gruppelæreren) 13 Senest 3.sept: http://plagiat.ifi.uio.no:8080/ http://plagiat.ifi.uio.no:8080/wizard.html Hva hvis?? Jeg skal sende inn forbedret oblig OK alle blir lagret (og gruppelærer retter selvsagt den siste) Hvordan legger jeg inn gruppenummer Systemet finner selv hvilken gruppe du er påmeldt (og skal sende obliger til) Joly-systemet er nede når jeg skal levere Levér på vanlig e-post til din gruppelærer (så legger hun/han) inn obligen din Hvis jeg ikke er registrert som student på gruppa Da kan du fortsatt tt levere, men besvarelsen blir ikke lagret i basen Send e-post med oblig en som vedlegg til hjelpelæreren Kan jeg levere hjemmefra Ja, hvis du har VPN eller Remote Desktop (til: wind.ifi.uio.no) 15 Eksamen 5. desember kl. 14:30 (4 timer). Trekkefrist er 14 dager før eksamen. Ikke PC på eksamen Alle skriftlige hjelpemidler tillatt, ingen elektroniske Karakter: A, B,..., E og Stryk (F) Altså for å stå i INF1000 må både alle de 4 obligene være godkjent og eksamen bestås Karakteren bestemmes av eksamensbesvarelsen. 16

Tilgjengelig utstyr Ved Ifi og MatNat: ca. 500-700 datamaskiner i nett ca. 10 store laserskrivere for studenter Tilgjengelig for INF1000 (og andre laveregradskurs) på Ifi: ca. 340 datamaskin-arbeidsplasser (m. køsystem) Nettet (WWW), med tilgang til elektronisk post og Internett hvis logget inn Pålogget hjemmefra, tre muligheter: 1. Remote Desktop fra hjemmepcen (til windows.ifi.uio.no). Lett, men må settes opp for å kopiere filer til lokal C: disk på hjemmepcen 2. Bruk WebVPN: https://vpn.uio.no 3. Se: http://www.uio.no/tjenester/it/nett/utenfra Forskjellen: Små, men som innlogget via USIT har du adgang til å kopiere filene dine på Ifi til/fra hjemmet, samt sende e-post som Ifi-student. Liten grunn til å bli ifi-bruker hvis du aldri er på Blindern. Mange tilbud utstyr og hjelp Abel (kjeller i mattebygget) Ole-Johan Dahls hus: Stor, men kan være fullest Mange termstuer inkl. Fysikkbygget (toppetasjen) programrom Bra plass Termvakt: Resepsjon i 1.etg Windows og Linux (Unix) Studielaben - 3. etg syd maskiner og tynne klienter Laptop hjelp Printere Studieorakler Sonen http://termvakt.uio.no åpningstider, pålogging hjemmefra, printere,.. http://www.mn.uio.no/ifi/studielaben p// / / om tilbud og åpningstider 17 18 Noen vanlige spørsmål: Må jeg betale semesteravgift nå? Hvordan bytte gruppe? Kan jeg etteranmelde meg på INF1000? JA fra og med i morgen til 1.sept. Når/hvor få passord? På SMS ellers termvakt OJD Hvordan/hvorfor bli fratatt passord? Er det mulig å bruke egen PC? Må jeg ha hjemme-pc? Hvordan få Ifi Startpakke med bl.a Emacs, TextPad og Java (til hjemme-pc)? Hvordan får jeg beskjeder fra Ifi/kurset? Brukernavn og Passord For å få adgang til maskinen trenges to opplysninger Brukernavn (en kortform av navnet ditt) dette er offentlig. Jeg har f.eks brukernavnet: arnem Passord (hemmelig) tastes inn etter at du har oppgitt brukernavn. Gir sikkerhet for deg. Hvordan få brukernavn og passord? På brev og SMS(eller av termvakt hvis du ikke finner ditt) Kontoen virker ikke før du har betalt semesteravgift!! Se http://termvakt.uio.no http://www.uio.no/studier/studiestart/ 19 20

II) Det første program Hva er en datamaskin Hva er en datamaskin Hvordan får vi den til å gjøre det vi vil Et program er en oppskrift til maskinen Hvordan får vi programmer inn i maskinen Hvordan får vi maskinen til å kjøre programmet Et første program 21 CPU 0 1 2 Hoved -.. hukommelse... Her lagres program og data under kjøring. Her regner maskinen Data buss Lokalnett Disk Her flyttes data og program frem og tilbake Her lagres program og data permanent Hvordan får vi maskinen til å gjøre det vi vil Vi gir den en rekke ordre Maskinen er ganske innskrenket, men kan noen få typer ordre: Les inn et tall (fra tastatur) Skriv ut en tekst (til skjerm, disk,..) Legg sammen to tall... For å få gjort det vi vil, ber vi maskinen utføre et antall slike ordre/handlinger (én etter én, ovenifra og nedover) Denne rekken av ordre kalles et program 23 Et program er en oppskrift til maskinen Vi kjenner andre typer oppskrifter: matoppskrift strikkeoppskrift pianonoter... Et program er en oppskrift til en datamaskin Med noter lager man ulike melodier ved å kombinere et mindre antall muligheter for lyder fra pianoet Med programmering kan men lage alle mulige programmer ved å kombinere et begrenset sett av mulige operasjoner i datamaskinen Husk: Det er enklere å følge en oppskrift enn å lage en oppskrift selv (som dere skal lære i INF1000) 24

Hvordan får vi våre programmer inn i maskinen N.B.: Det finnes allerede en rekke programmer inne i datamaskinen: operativsystemet (program-) editoren (emacs, TextPad, WordPad,...) oversetteren (kompilatoren) kjøre-programmet... Det er disse programmene som hjelper deg til å få ditt program inn i maskinen og få kjørt det. Programmering: Vi skriver våre programmer på en måte som er lettest for oss mennesker (til editoren) Denne skrivemåten kalles et programmeringsspråk En programtekst skrevet i et slikt programmeringsspråk kan: lett oversettes (av oversetteren) til enkle operasjoner, som lagres i hovedhukommelsen og så åkj kjøres (av kjøre-programmet) Det er mange programmeringsspråk - det vi bruker i INF1000 heter Java 25 26 Et første program i Java ( her inne i TextPad) Et første program i Java ( her inne i emacs) 27 28

Én utskriftsordre i dette programmet (+ noe uforstålig) class Utskrift { public static void main(string[] args) { System.out.println("Beethoven komponerte Skjebnesymfonien"); } } Et Javaprogram består av minst: En klasse her: class Utskrift En metode som heter main og med Java-ordene: public static void foran seg + parameter i parentes (String[] args) dette forklares senere Inne i metoden main er det én eller flere ordre her: System.out.println("Beethoven komponerte Skjebnesymfonien"); 29 Kompilering (=oversetting) og kjøring (av det oversatte) >javac Utskrift.java Her oversettes programmet og oversettelsen lagres i fila: Utskift.class Her ber vi om at det oversatte programmet (i Utskrift.class) skal kjøres >java Utskrift Beethoven komponerte Skjebnesymfonien Denne linja er resultatet av kjøring av programmet 30 Programmering generelt Vi skriver programmet som en tekst i en editor (TexPad, emacs,..) Vi lagrer filen med programmet lik navnet på klassen og med java etter punktum her: Utskrift.java Vi lar kompilatoren javac oversette.java filen og legge oversettelsen i en ny fil - her: Utskrift.class Vi starter opp kjøresystemet java med Utskrift som parameter på samme linje (den forstår at dette er Utskrift.class) Kjøresystemet leser så denne og utfører de instruksjonene som ligger på.class fila - her: Utskrift.class Kommandoene som ligger i main blir da utført, en etter en ovenfra og nedover (til vi har utført siste ordre i main) 31 Et litt større program tre linjer utskrift med kompilering og kjøring class Utskrift2 { public static void main(string[] args) { System.out.println("Arne har aldri komponert en symfoni"); System.out.println("Beethoven komponerte Skjebnesymfonien"); System.out.println(" ------------------******-----------"); } } Kompilering og kjøring: >javac Utskrift2.java >java Utskrift2 Arne har aldri komponert en symfoni Beethoven komponerte Skjebnesymfonien ------------------******----------- 32

Windows: Oppsummering om programmering 1. Forstå problemet 1. Hva vil vi at maskinen skal gjøre 2. Skriv Java-programmet som gjør det 1. Bruk en tekst-editor og lagre det som en.java fil 3. Kompiler og kjør programmet 1. javac og java Hvis du har skrevet programmet litt feil, får du (mange) feilmeldinger fra kompilatoren. Da må du rette opp.java fila og gjenta kompileringen til det blir riktig, og så kan du kjøre programmet. 33 34 NÅ: Registrering av obligatorisk oppmøte i pausen (15.00 15.15) I foajéen utenfor. De som ikke krysses av vil tape sin plass på kurset. 35