Oversikt over emnet Programmering (DAPE/ITPE 1400) Høgskolen i Oslo og Akershus Høst 2016 Henrik Lieng
Forelesere og studentassistenter Emneansvarlig: Henrik Lieng Forelesere: Henrik Lieng (hjelper også til med tutorialtimer) (og Andrew Seely ved University of Tampa) Studentassistenter: Lab og tutorial: Håkon Smørvik, Carl Mollén, Baljit Sarai Jentelab og tutorial: Andreas Strand Arbeidsgruppe og backup: Kjetil Huy Tran
Oversit over emnet Programplanen gir oversikt over alle emner på HiOA. http://www.hioa.no/studier-og-kurs/tkd/bachelor/ingenioerfag- data/programplan-for-bachelorstudium-i-ingenioerfag-data- 2016/DAPE1400-Programmering-2016 Hovedmål: gi grunnleggende forståelse og ferdigheter innen imperative programmeringsprinsipper og objekt-orientert programmering
Forkunnskrapskrav Det antas følgende kunnskaper for å ta dette faget: Generell forståelse av aritmetikk Hvis dere ikke tar matematikk (DAPE1300 etc.), forståelse av Boolsk algebra og logikk Generell bruk av datamaskinen (slå på/av, bruke nettleser, installere programmer, starte programmer) Spør studentassistenter og orakler for hjelp til bruk av PC/Mac Dere trenger å vite hva en datamaskin er for å lære fundamentale programmeringsprinsipper (spesielt vite sammenhengen mellom CPU og hovedminne/ram). En introduksjon blir gitt i dag. Gjør oppgavesett 0!
Faglig innhold Se emnets nettside for en oversikt. http://edu.hioa.no/programmering/ Ansvar for egen læring: praktisk arbeid i faget er inndelt i oppgavesett. Det er ditt ansvar å utføre oppgavene i faget i ditt eget tempo. Husk å utføre obligatoriske oppgaver i god tid før tidsfristene.
Innhold - Programmering Programmering er et håndtverk som består av følgende egenskaper: Lesing Skriving Forståelse Dvs. en kombinasjon mellom praktiske elementer (selve programmeringen) og teoretiske elementer. Kan også inkludere computational thinking, tenke som en datamaskin.
Arbeidsformer Forelesninger: fremstilling av teori (ta notater!) Lab: arbeid med oppgavesett, med studentassistenter til stedet Spør studentassistent hvis du trenger hjelp (veldig viktig for din læring!) Tutorialtimer: "praktiske" forelesninger Praktisk introduksjon til forskjellige emner (i Java) Gjennomgang av kode Praktisk hjelp Egenstudie: arbeid med oppgavesett på egenhånd (meget viktig!) Bruk Piazza hvis du møter veggen
Lab Ofte undervurdert i starten (lab tilbys ikke på samme måte på videregående skole) Hvorfor så verdifullt? Studentassistent er tilstede. Veldig flinke til å hjelpe studenter "i nød" I programmering, vil du garantert "møte veggen" på et eller annet tidspunkt Problem ved HiOA: lab er ofte fullt (andre studenter okkuperer plassene) Foreslått løsning, hvis du ikke får plass: arbeid på skolen der det er plass, gå til laben der studentassistent er hvis du trenger hjelp Jentelab: for studenter som identifiserer seg som kvinne. Flott hvis du finner noen å arbeide sammen med.
Tutorialtimer 1 time praktisk forelesning per uke. Hver tutorialtime har et tema. Se nettsiden for temaene som tilbys hver uke. http://edu.hioa.no/programmering/ Mellom 5-25 studenter på hver tutorialtime. Velg selv timen du går til (gå bare til en time per uke, spesielt i starten av semesteret)
Egenstudie For å lykkes i dette faget kreves det en god del egenstudie utenfor labog tutorialtimer. Eventuelle faglige spørsmål kan opprettes på forumtjenesten Piazza. Fagansvarlig og studentassistenter vil kunne besvare disse spørsmålene. Desto bedre et spørsmål er formulert, desto bedre blir det besvart. http://piazza.com/hioa.no/fall2016/dape1400itpe1400/home
Ukesstruktur Forelesninger: fredag, klokken 14.30, P35-PH170 (fra 9. september) Lab: Onsdag 10.30 12.15 og fredag 12.30 14.15 (PH461, PH451) Jentelab: onsdag 16.30 18.15 (PI259) Ekstrahjelp, uke 39 41: torsdag 16.30 18.15 (PI551) Arbeidsgruppe, fra uke 42: torsdag 16.30 18.15 (PI551) Tutorial (velg 1 av 10 stk): Tirsdag 2x2: 8.30 9.25 og 9.30 10.25 (PI248, PI243) Onsdag 3x2: 8.30 9.25 og 9.30 10.25 (PI248, PI246, PI243)
Arbeidskrav 4 obligatoriske oppgaver ("obliger") Frister: 14. okt, 28. okt, 4. nov, 11. nov 2 obligatoriske prøver Datoer: 21. okt og 4. nov
Arbeidskrav obligatoriske oppgaver Godkjenning via demonstrasjon for en studentassistent på lab. Studentassistent evaluerer om du selv har korrekt løst alle de obligatoriske oppgavene. Oppgaver finner du på nettsiden. Ikke godkjent? Da blir du plassert i arbeidsgruppen for sen godkjenning. Les dokument på nettsiden for regler, http://edu.hioa.no/programmering/
Arbeidskrav - prøver 10 flervalgsspørsmål med tre alternativer (1 korrekt alternativ). Krav for godkjenning: 9 eller 10 korrekte svar Ikke godkjent? Da blir du plassert i arbeidsgruppen for godkjenning. Prøven blir digital: hvilket system som skal brukes blir kunngjørt senere i faget. Les dokument på nettsiden for regler, http://edu.hioa.no/programmering/
Eksamen og eksamensordning Form: individuell skriftlig eksamen på 3 timer. Digital eksamen med Inspera. Informasjon: https://student.hioa.no/digital-skoleeksamen https://student.hioa.no/digital-skoleeksamen#inspera Konkret informasjon om eksamen (format på oppgaver etc.) blir gitt på slutten av semesteret. Alt i pensum er relevant, så ingen spørsmål om hva som kommer på eksamen er du snill. Eksamen fra i fjor blir publisert som en offentlig Inspera test så snart som mulig.
Vurdering Karakter fra E til A (F tilsvarer "ikke bestått"). Strykprosent i fjor: DAPE1400: 12 % ITPE1400: 28 % Karaktersystemet fra universitets- og høgskolerådet brukes for både å utvikle eksamensoppgaver og for retting: http://www.uhr.no/utdanning/karakterpanel_1
Pensumliste Offisiell pensumliste for høst 2016: Notater og presentasjoner fra forelesninger Oppgavesett Noen oppgavesett angir offisielt pensum i introduksjonen All materiale ligger på nettsiden for faget.
Støtteliteratur Deitel & Deitel: Java How to Program Spesielt bra for delen av faget som omhandler objekt-orientert programmering
Annen støtte For grunnleggende teori og prosedyre-basert programmering: Introduction to CS (Harvard/Yale). https://cs50.harvard.edu/ (week 0 - week 5) Introduction to C Memory Management and C++ OOP (MIT) for manuell minnehåndtering For objekt-orientert programmering: Sololearn. http://www.sololearn.com/course/java/ (Module 1-5) Head First Java. 9780596009205 For JavaFX: Offisiell dokumentasjon fra Oracle.
Evaluering av emnet, høst 2015 Og hva som har blitt gjort for å forbedre utførelsen av emnet, NB: presentasjon av evaluering er et krav fra HiOA's kvalitetssikringsorgan
Positive kommentarer De fleste studentene er fornøyd med progresjonen i faget. Forelesningene oppleves som relevante til faget. Fredagsforelesningene, der man gjennomgår kode steg for steg -er blitt veldig godt mottatt (disse har blitt utvidet og konvertert til "tutorialtimer") Generelt har mange sagt at de synes forelesningene var litt tunge og forvirrende i starten, men at det ble veldig mye bedre mot slutten. Bra!
Negative kommentarer (1) Det er kun litt over halvparten av studentene som svarer at de kommer på alle lab-timene. Dette har vi gitt tilbakemelding på underveis i semesteret også. Lab-timer er viktige, og det må kommuniseres til studentene. Videre er det opp til studentene selv og ta ansvar for egen læring og faktisk møte opp. Så, møt opp på lab og få hjelp hvis du trenger det! Flere studenter opplever at det er vanskelig å løse de obligatoriske oppgavene -føler ikke de har den kunnskapen som oppgavene krever. De obligatoriske oppgavene i faget har blitt utviklet fra bunnen av i dette faget.
Negative kommentarer (2) Gjennomgang/løsningsforslag på obliger er ønsket. Vi tilbyr mer støtte for individuell hjelp og kodegjennomgang, med flere studentassistenter, nye ekstralab og arbeidsgruppe, og nye tutorialtimer. Vi publiserer imidlertid ikke løsningsforslag. Alle problemer skal løses selv og man må selv argumentere hvorfor egen løsning er bra (selvstendighet). Mange synes det er forvirrende med eksempler vist i C. Det ble foreslått at foreleser viser noen eksempler i C, men ikke i like stor grad som i dette semesteret. En del unødvendige C eksempler har blitt tatt bort. C, som er vårt sekundære språk i faget sammen med Python, er brukt bare der det trengs (Java er implementert i C, som alle andre språk, så C trengs for å demonstrere hva som skjer "under the hood")
Negative kommentarer (3) Ønske om at foreleser er tilstede i lab-timer. Kanskje ikke alle, men noen. Jeg vil være tilgjengelig på 2 tutorialtimer i uken. I tillegg til forelesning, er dette mitt budsjett for faget (organisering og håndtering av eksamen tar ekstremt mye ressurser når man alene underviser et fag på over 200 studenter) Det ble brukt litt mye tid på teori i starten -eks gjennomgang av hvordan en PC er bygget opp. En idé kunne kanskje være å jobbe i bolker med vekselvis teori og praktisk koding. Vanskelig problemstilling fordi vi har bare 12 uker og vi må gjennom både grunnleggende programmering og objekt-orientert programmering. Forelesningene og presentasjonen av teori har imidlertid blitt forbedret, så dette burde hjelpe.