Course syllabus
lp2 HT21 (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
Maxime Mouyen: maxime.mouyen@chalmers.se
Wouter Vlemmings: wouter.vlemmings@chalmers.se
Michael Olberg: michael.olberg@chalmers.se
TAs:
Yiting Cai: yiting.cai@chalmers.se (LP2+LP3)
Chia-Jung Hsu: chiajung.hsu@chalmers.se (LP3+LP4)
Kiana Kade: kiana.kade@chalmers.se (LP3+LP4)
Inderpreet Kaur: kauri@chalmers.se (LP2+LP3)
Anqi Li: anqi.li@chalmers.se (LP2)
Andri Spilker: andri.spilker@chalmers.se (LP2)
Ramlal Unnikrishnan: ramlal@chalmers.se (LP2+LP4)
Course representative
Ellen Åkermo (ellenake@student.chalmers.se)
Nicklas Brodin (nicklasb@student.chalmers.se)
Schema
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 (efter fullgjord kurs ska studenten kunna)
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 begrepp som objektorientering, moduler, klasser och funktioner
- Hitta relevanta numeriska analysverktyg och programbibliotek samt använda dem på adekvata sätt
- 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
- Använda programmeringsverktyg såsom kodredigerare och versionskontrollsystem
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
- Funktioner, klasser och objekt
- Felanalys och flytande aritmetik
- Numerisk differentialkalkyl och integrationskalkyl
- Linjär algebra: 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.
Litteratur
Numerical Methods in Physics with Python - Alex Gezerlis, Cambridge University Press, ISBN 9781108772310
https://www.lib.chalmers.se/en/search/about-e-books/
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 |
---|---|---|