Pensum/l?ringskrav

I IN1910 skal vi dekke en bred rekke med emner innenfor programmering for naturvitenskapelige anvendelser med Python og C++. Det finnes ingen bok som dekker alle de temaene vi skal innom p? veien. Istedet vil vi utvikle forelesningsnotater som dekker det dere skal l?re. Disse vil deles gjennom et github repository og kan ogs? leses gjennom Jupyterhub. Disse finner dere p? f?lgende sider (dere m? logge inn med deres UiO-bruker p? begge sidene)

Det er forelesningsnotatene som definerer og dekker pensum. I tillegg kommer vi til ? anbefale forskjellig tilleggslitteratur. Dette er ment for de som ?nsker ? g? mer i dybden p? et tema, eller som ?nsker et alternativ til forelesningsnotatene. Tilleggslitteraturen henvises til i forelesningsnotatene, og er stort sett kilder som er ?pent tilgjenglig p? nett.

I tillegg anbefaler vi bruk av A Primer on Scientific Programming with Python, Fifth Edition av Hans Petter Langtangen som referanseverk for Python. Boken dekker ogs? flere deler av pensum i IN1910, og dette er kapitler som ikke er dekket av IN1900 i s?rlig stor grad. Boka anbefales ogs? for de som ikke har mye erfaring med Python fra f?r, og som en repetisjon til de som ikke har brukt Python p? en god stund.  

 

Liste over tema som dekkes i IN1910

Objekt-orientert Programmering

  • Lage klasser i Python og C++
  • Arv og hierarki, Polymorfisme, Interfaces, abstrakte klasser, virtuelle metoder

Versjonskontroll, validering,

  • Versjonskontroll med Git
  • Enhetstesting med Nose

C++

  • Skrive, kompilere og kj?re C++ kode
  • Forst? og forklare grunnleggende forskjeller mellom Python og C++
  • Datastrukturer i C++ (arrays, structs, klasser)
  • Enkel blandet programmering med Python og C++

Datastrukturer og Algoritmer

  • Dynamiske arrays, lenkede lister og bin?re s?ketr?r
  • Algoritmeanalyse og Big Oh-analyse

Stokastiske simuleringer og tilfeldighet

  • Psuedotilfeldige tallgeneratorer
  • Random walks, markovkjeder 
  • Monte Carlo integrasjon

Profilering og optimalisering

  • Profilering og benchmarking
  • Algoritmeanalyse og optimalisering
  • Kort innf?ring i parallelitet
Publisert 14. juni 2018 23:12 - Sist endret 19. aug. 2018 09:43