Om kurset
IN1900 har en standardisert emnebeskrivelse, men her f?lger litt mer detaljert informasjon om undervisningsopplegget.
Undervisningen
Forelesningenes struktur
Det er fire timer plenumsundervisning hver uke, som h?sten 2024 vil v?re i Sophus Lies auditorium. Forelesningene vil v?re en kombinasjon av oppgavel?sning i plenum ("live-programmering"), og mer tradisjonelle forelesninger basert p? foiler eller annet materiale. Gjennom ? vise hvordan man l?ser programmeringsoppgaver "live" h?per vi at studentene f?r et bedre innblikk i hvordan man tenker rundt det ? programmere. Denne typen oppgavel?sning har prioritet over ordin?re forelesninger, s? noen ganger vil vi la introduksjonen av nye tema v?re selvstudium, og bruke mesteparten av tiden i forelesningene til live-programmering. Hver uke g?r vi gjennom ett kapittel fra l?reboka.
Gruppeundervisningen
I tillegg til plenumsundervisningen er det to timer gruppe?velser p? terminalstue med en l?rer man kan sp?rre. P? disse ?velsene skal man jobbe med ukens innleveringsoppgaver, vanligvis 4-5 oppgaver fra forrige ukes forelesningstema. Oppgavene kan senere leveres inn elektronisk for retting og tilbakemelding fra gruppel?rerne. Normalt skal du rekke ukens oppgaver p? gruppetimen dersom du har forberedt deg med ? studere kapittelet, foilene og plenumsoppgavene p? forh?nd.
L?rebok
Vi bruker denne l?reboka for IN1900 i 2024.
Elektronisk utgave av boka er gratis tilgjengelig for alle, og boka dekker mesteparten av pensum i kurset. Til siste del av kurset vil vi bruke deler av denne boka.
L?reb?kene er oppdaterte kortversjon av en eldre bok som ble brukt i kurset i mange ?r: A primer on scientific programming with Python av Hans Petter Langtangen. Denne boka bruker en eldre versjon av Python (2.7), men det aller meste av innholdet er fortsatt relevant og gyldig. Boka g?r mye mer i detalj enn den nye l?reboka og inneholder mange flere eksempler og problemstillinger, s? den er en veldig nyttig tilleggsressurs for de som vil l?re mer programmering. En elektronisk versjon er tilgjengelig fra UiO-biblioteket. Linken virker bare hvis du er logget p? UiO sitt nettverk, og skal da f?re til en side hvor du kan laste ned en pdf-fil.
Arbeidsform
S? hva skal du som student gj?re for ? mestre stoffet og sikre deg en god karakter p? eksamen? Eller enda viktigere: hvordan skal du arbeide for ? oppn? gode ferdigheter i programmering for senere kurs? Opplegget er relativt enkelt:
- Delta p? alle de 6 timene med undervisning hver uke. Hvis du kan litt programmering fra f?r, og derfor opplever de f?rste ukene som altfor enkle, s? er det selvf?lgelig greit ? droppe noen forelesninger. Det er likevel viktig ? f?lge med p? hva som blir gjennomg?tt, siden progresjonen er ganske rask og det helt sikkert kommer tema i l?pet av h?sten som du ikke kjenner fra tidligere.
- Les ukens kapittel i l?reboka f?r forelesningen starter.
- Bruk litt tid p? forh?nd til ? l?se oppgavene som foreleser skal g? gjennom i plenum. Da vil du se hva du ikke har forst?tt og f? mye mer ut av oppgavegjennomgangen. Hvis du ikke rekker ? l?se oppgavene ordentlig er det uansett nyttig ? bruke litt tid p? ? tenke gjennom hvordan du ville l?st dem, og om det er noen oppgaver eller deloppgaver som er spesielt utfordrende.
- Bruk litt tid p? ? etterarbeide disse oppgavene etter at du har sett l?sningene (de er tilgjengelige p? nett).
- Deretter fors?ker du ? l?se ukens innleveringsoppgaver -med forberedelsene over b?r du greie oppgavene p? et par timer, gjerne p? gruppetimen.
Samlet tidsbruk p? disse punktene b?r v?re ca 11-12 timer, som er i underkant av 1/3 av en normal arbeidsuke p? 40 timer.
F?lg r?dene
Oppskriften over fungerer. Hundrevis av studenter har allerede fulgt den og endt opp med A eller B p? eksamen og et godt grunnlag for ? l?se matematiske problemer via programmering i senere kurs.
Raske veier mot m?let er ofte trege
Undervisningen tar utgangspunkt i at *alle studenter arbeider slik listen over beskriver*. Hvis du velger andre opplegg, for eksempel ? g? rett p? ukens obligatoriske oppgaver, vil du fort ende opp med ? s?ke febrilsk p??nettet og i l?reb?ker og bruke mange un?dvendige timer p? frustrasjon med lavt l?ringsutbytte. L?ring gjennom oppgaver er helt sentralt, men oppgaver du ikke forst?r noe av fordi du mangler det teoretiske grunnlaget, er et ineffektivt utgangspunkt. Oppskriften over sikrer deg mest fritid og den mestring og forst?else som studiet senere krever, pluss en god karakter.
Eksamen
B?de midtveiseksamen og den endelige eksamen vil ligge tett opptil de oppgavene som gis som innleveringsoppgaver og oppgaver l?st i plenum. Hvis du har forst?tt disse oppgavene blir eksamen en hyggelig opplevelse. For ? forst? oppgavene, er det lurt f?rst ? lese relevant teori og eksempler i l?reboken. Mange oppgaver er nemlig tett knyttet til stoffet i boken.
Samarbeid
Det kan v?re sv?rt utbytterikt ? 亚博娱乐官网_亚博pt手机客户端登录e med andre, men det kan ogs? v?re et effektiv hinder for ? oppn? egen forst?else og mestring. Det er viktig at du tidlig som student har et helt bevisst forhold til n?r og hvordan du skal 亚博娱乐官网_亚博pt手机客户端登录e og n?r du b?r studere p? egenh?nd.
Erfaring viser at i en gruppe som 亚博娱乐官网_亚博pt手机客户端登录er om oppgaver og der kunnskapsniv?et blant studentene varier mye, vil den faglig sterkeste ha stort utbytte av 亚博娱乐官网_亚博pt手机客户端登录et gjennom ? lede oppgavel?sningen og forklare andre. De svakeste vil fort ende opp i en situasjon der de kopierer andres l?sninger og ikke f?r nok tid til ? forst? det som foreg?r. Med etterarbeid p? egenh?nd der man trenger dypt inn i detaljene og pr?ver ? forst? dem, s? kan dette likevel v?re en god form for l?ring. Dessverre erfarer vi at en del ender opp med bare ? "skrive av".
Programmering er en ferdighet som krever mye trening
Sv?rt f? vil v?re s? begavede fra naturens side at de forst?r programmering bare ved ? skrive av og lese l?sninger. S? godt som alle m? l?re programmering (og regning og andre ferdigheter i realfag) ved ? jobbe p? egenh?nd med et solid antall oppgaver. Mestring er krevende, men betalingen f?r du ved ? kjenne p? mesteringsf?lelsen n?r du mestrer.