Undervisningsmateriale IN1900 H19
Læringsmålet for IN1900 er god forståelse av ukeoppgavene og oppgavene fra plenumsøvelser (se undervisningsplanen). Eksamen vil teste denne forståelsen.
Alle oppgavene er knyttet til tema fra læreboken A Primer on Scientific Programming with Python, Fifth Edition av Hans Petter Langtangen. Man kan også bruke 3. og 4. utgave av boka, men da er kapitler og oppgaver nummerert forskjellig. Oppgavene for 5. utgave er tilgjengelige som en PDF fil.
Forelesningsnotatene for hver uke gir en kortversjon av kapitlene i læreboka. Forelesningene legges ut forløpende gjennom semesteret her. Disse er veldig kompakte, og det anbefales å lese kapitlene i boka i tillegg. Siden læreboka bruker Python 2 og notatene Python 3 er det noen forskjeller, men for de fleste kapitler er disse ubetydelige. Der det er vesentlige forskjeller mellom bok og notater vil dette være kommentert eksplisitt i notatene.
Alle eksempelfiler referert til i læreboken kan lastes ned til egen PC eller UiO-konto.
Eksamen
Eksamen består av to deler, en midttermineksamen i uke 41 og en avsluttende eksamen i desember. Maksimal score er til sammen 100 poeng, 25 poeng på midttermineksamen og 75 poeng på avsluttende eksamen. Poenggrensene for de forskjellige karakterene varier noe fra år til år ut fra hvordan eksamen slår ut, men gjennomsnittstall fra de fem siste årene er A: 93, B: 81, C: 62, D: 50, E: 40.
Et tilstrekkelig antall obligatoriske oppgaver må være bestått
For å ta eksamen må man ha nok godkjente obligatorise ukeinnleveringer.
Pensumliste IN1900 H19
Pensumliste til midttermineksamen i IN1900 9/10 2019
Relevante kapitler fra boken: kapittel 1-5, unntatt 1.6, 1.7, 3.3, 4.4, 4.8-4.10, 5.5.1, 5.5.3, 5.7, og 5.9-5.12. Se også undervisningsplanen, inkludert den mer detaljerte siden om hver uke, for informasjon om læringsmål og viktige tema hver uke. Alle oppgaver som har vært obligatorisk ukeoppgaver eller har vært gjennomgått i plenum er relevante for eksamen. Følgende oppgaver er spesielt relevante til midttermineksamen 2019:
- Fra boka:
- 1.4 (length_conversion.py, side 43)
- 1.11 (kick.py, side 45)
- 2.2 (f2c_approx_table.py, side 82)
- 2.9 (ball_table2.py, side 83)
- 2.7 (coor.py, side 83)
- 2.15 (index_nested_list.py, side 85)
- 4.4 (f2c_file_read_write.py, side 217)
- 4.5 (f2c_cml_exc.py, side 217)
- 4.11 (ball_cml_qa.py, side 218)
- 5.7 (slicing.py, side 314)
- 5.10 (plot_ball2.py, side 314)
- 5.12 (f2c_shortcut_plot.py, side 314)
- 5.28 (plot_wavepacket.py, side 322)
- Fra oppgaveheftet:
- 2.4 (sum_for.py, side 4)
- 2.7 (population_table2.py, side 5)
- 3.1 (pop_func.py, side 7)
- 3.5 (triangle_area.py, side 9)
- 4.1 (quadratic_roots_input.py, side 11)
- 4.3 (quadratic_roots_error.py, side 11)
- 4.10 (temp_read_write.py, side 14)
- 5.1 (fill_log_arrays_loop.py, side 15)
- 5.2 (fill_log_arrays_vec.py, side 15)
De fleste av disse oppgavene har enten vært ukeinnleveringer eller plenumsøvelser. På eksamen vil det bli gitt oppgaver som tematisk ligger tett opp til disse oppgavene, men på midttermin-eksamen høsten 2019 gis bare flervalgsoppgaver. De fleste av oppgavene vil være av typen hva skrives ut, som handler om å lese og forstå små Python-programmer, og avgjøre hva som skrives ut. I tillegg vil det være oppgaver hvor man skal finne feil i programmer, og oppgaver hvor man må velge mellom flere mulige løsninger i et program. Tidligere midttermin-eksamener er relevante, selv om disse også inneholder oppgaver hvor man skal skrive små programmer selv. Disse er også relevante, men årets oppgaver vil ha mest felles med hva skrives ut-oppgavene og flervalgsoppgavene fra 2017 og 2018.
Eksamen er digital og skjer i programsystemet Inspera.
Pensumliste til avsluttende eksamen i IN1900 2019
Relevante kapitler fra boken: kapittel 1-7, kapittel 9, og Appendiks A og E unntatt kap. 1.6-1.7, 3.3, 4.4, 4.8-4.10, 5.5, 5.7, 5.8.4, 5.9-5.12, 6.3-6.6, 7.4-7.6, 9.2-9.5, A.2. I kapittel 5.3-5.4 om plotting er det bare matplotlib og generell metode for plotting som er pensum, ikke Scitools og Easyviz. Forelesningsnotatene gir et sammendrag av de viktige temaene hver uke. Se også undervisningsplanen, inkludert den mer detaljerte siden om hver uke, for informasjon om læringsmål og viktige tema hver uke. Alle oppgaver som har vært obligatorisk ukeoppgaver eller har vært gjennomgått i plenum er relevante for eksamen. Følgende oppgaver er spesielt relevante til avsluttende eksamen 2019:
- Fra boka:
- 1.4 (length_conversion.py, side 43)
- 1.11 (kick.py, side 45)
- 2.2 (f2c_approx_table.py, side 82)
- 2.9 (ball_table2.py, side 83)
- 2.7 (coor.py, side 83)
- 2.15 (index_nested_list.py, side 85)
- 4.4 (f2c_file_read_write.py, side 217)
- 4.5 (f2c_cml_exc.py, side 217)
- 4.11 (ball_cml_qa.py, side 218)
- 5.7 (slicing.py, side 314)
- 5.10 (plot_ball2.py, side 314)
- 5.12 (f2c_shortcut_plot.py, side 314)
- 5.28 (plot_wavepacket.py, side 322)
- 5.16 (read_density_data.py, side 316)
- 5.18 (fit_density_data.py, side 317)
- 6.7 (humans.py, side 404)
- 6.11 (poly_diff.py, side 405)
- 7.2 (Account2.py, side 471)
- 7.25 (Polynomial_sub.py, side 480)
- 9.2 (Cubic_Poly4.py, side 635)
- 9.4 (Polynomial_hier.py, side 636)
- A.14 (sin_Taylor_series_diffeq.py, side 676)
- E.1 (simple_ODE_func.py, side 802)
- E.2 (simple_ODE_class.py, side 802)
- E.3 (simple_ODE_class_ODESolver.py, side 802)
- E.30 (RungeKutta2_func.py, side 813)
- Fra oppgaveheftet:
- 2.4 (sum_for.py, side 4)
- 2.7 (population_table2.py, side 5)
- 3.1 (pop_func.py, side 7)
- 3.5 (triangle_area.py, side 9)
- 4.1 (quadratic_roots_input.py, side 11)
- 4.3 (quadratic_roots_error.py, side 11)
- 4.10 (temp_read_write.py, side 14)
- 5.1 (fill_log_arrays_loop.py, side 15)
- 5.2 (fill_log_arrays_vec.py, side 15)
- 5.14 (graph1.py, side 20)
- E.2 (midpoint.py, side 34)
- E.4 (coffee.py, side 43)
- E.8 (bjorgvin.py, side 49)
- E.9 (SIRD.py, side 51)
- E.10 (SIRD_interaction.py, side 52)
- E.11 (plague.py, side 54)
På eksamen vil man få oppgaver som ligger tett opptil disse oppgavene. Alle oppgavene har vært gitt som ukeinnleveringer eller gjennomgått i plenum på forelesninger. De fleste tidligere eksamensoppgaver er også veldig relevante, men pensum forandrer seg litt fra år til år så enkelte tidligere oppgaver er ikke relevante.
Eksamen vil bestå av tre oppgavetyper:
- Flervalgsoppgaver
- Oppgaver av typen "Hva skrives ut", hvor svaret skrives som tekst
- Oppgaver hvor det skal skrives små programmer
Fordelingen mellom de ulike oppgavetypene blir ganske lik avsluttende eksamen i 2018. Selv om vi i år har brukt Python 3 i kurset er det fullt mulig å bruke Python 2 syntaks på eksamen.