Course syllabus

Kurs-PM

SEE125 SEE125 Programmeringsteknik och numerisk analys lp2 HT22 (9 hp)

Kursen ges av institutionen för Rymd-, geo- och miljövetenskap

Vi kommer att jobba med Python främst via Jupyter Notebooks. För att förse varje student med en enhetlig programmeringsmiljö, ber vi alla kursdeltagare att installera JupyterLab Desktop App.  Appen finns för alla plattformar (Windows, Mac, Linux) och är mycket enkel att installera. Gå till Download på ovannämnda webbsida för appen, och följ anvisningarna för ditt operativsystem. Med denna app installeras per automatik de Python modulerna (t.ex. numpy, matplotlib, pandas, ...) som kursen använder sig av.

Mer detaljerad information om projektarbetet och betygsättningen hittar du här: Exercises/Examination

 

Kontaktuppgifter

Teachers:

TAs:

 

Course representatives

 

Schema

TimeEdit

 

Litteratur

We recommend:

-  Learning Scientific Programming with Python - Christian Hill, Cambridge University Press, ISBN 9781107428225 https://scipython.com/

- Numerical Methods in Physics with Python - Alex Gezerlis, Cambridge University Press, ISBN 9781108772310 https://numphyspy.org/

Online documentation

 

Länk till kursplanen i Studieportalen Studieplan

Behörighet

Grundläggande behörighet för grundnivå.

Sökande med en programregistrering på ett program där kursen ingår i programplanen undantas från ovan krav.

 

Särskild behörighet

Samma behörighet som det kursägande programmet.
Sökande med en programregistrering på ett program där kursen ingår i programplanen undantas från ovan krav.

 

Syfte

Syftet med kursen är att ge studenterna grundläggande färdigheter i programmering och numerisk analys, en kraftfull kombination för att lösa en mängd vetenskapliga problem. Styrkan i kombinationen ligger i den gemensamma referensen till algoritmer där numerisk analys utvecklar och tillhandahåller algoritmer för att lösa matematiska problem, medan programmering automatiserar och utför uppgifter utifrån en algoritm. Kursen kommer att utbilda studenterna inom bägge dessa områden, där främst programmeringsspråket Python kommer användas.

 

Lärandemål

Kunskap och förståelse

  • Uttrycka matematiska formler med hjälp av programmeringsspråket och lämpliga algoritmer
  • Välja lämpliga datatyper och datastrukturer för olika typer av data
  • Strukturera stora program i hanterbara och återanvändbara moduler genom att använda funktioner
  • Lära sig Pythons syntax

Kompetens och färdigheter

  • Använda funktionalitet från befintliga Python-moduler, t.ex. Numpy och Scipy
  • Bl.a. använda begrepp från linjär algebra, differentialkalkyl integrationskalkyl, ekvationslösning och andra matematiska modeller för att lösa vetenskapliga problem
  • Skriva väl kommenterade program som hanterar både numerisk data och textdata samt producera korrekt formaterade diagram
  • Skapa program som läser, omvandlar och genererar filer i filsystemet
  • Använda standardbibliotek och tillämpa de bäst lämpade programmeringsmetoderna
  • Testa olika programmeringsmetoder

Bedömning och tillvägagångssätt

  • Bedöma den komplexitet och de beräkningsresurser som behövs för typiska programmeringsuppgifter
  • Bestämma effektiviteten och tillförlitligheten hos en algoritm
  • Analysera kod skriven av andra och hitta fel och möjligheter till förbättringar

 

Innehåll

Kursen introducerar programmering främst m.h.a. Python med specifikt fokus på algoritmbaserade numeriska lösningar av vanliga vetenskapliga problem. Studenten får omfattande kunskaper om algoritmerna via Python och introduceras till de grundläggande begreppen och verktygen för datorprogrammering och numerisk analys, nämligen:

  • Tolkning av algoritm och källkod
  • Datatyper, variabler och matriser
  • Förhållanden och loopar
  • Flyttalsaritmetik och felanalys
  • Numerisk differentialkalkyl och integrationskalkyl
  • Linjär algebra: att arbeta med matriser
  • Ekvationslösning
  • Interpoleringar och approximationer
  • Ordinära differentialekvationer

 

Organisation

Kursen är uppbyggd av moduler, där varje modul består av introduktions- och uppföljningsföreläsningar samt övningar och projektuppgifter.
Veckoföreläsningar ger studenterna programmerings- och numeriska analysbegrepp och verktyg, tillsammans med ett brett perspektiv på tillämpningar. Problemlösning med fysikfrågeställningar kommer att användas som utgångspunkter för studenternas lärande. Studenten kommer att producera sin egen kod och implementera befintliga algoritmer. I samband med problemlösningarna kommer vi att ha uppföljningsföreläsningar som diskuterar olika lösningsstrategier och reflekterar över de olika lösningarna. Kursen löper över tre läsperioder.

 

Examination inklusive obligatoriska moment

Kursen examineras med skriftliga inlämningar. Alla tre läsperioderna inkluderar tvåveckors projektarbeten med uppföljande självreflektionsrapporter. Projektarbetena kommer bestå av programmeringsuppgifter och problemlösning och utförs vanligtvis i grupper om två.

Course summary:

Date Details Due