Förstå avancerade mjukvarukoncept, inklusive objektorienterad och dataorienterad mjukvarudesign, modellering av klassdiagram och relationer, felsökning, kodprofilering och kodrefaktorering
Ha kunskap om diskretiseringstekniker för att lösa kontinuerliga problem, och iterativa metoder för att lösa olinjära problem
Ha kunskap om högpresterande datorsystem och vikten av att använda effektiva metoder och verktyg
Färdighet och förmåga
Kunna implementera utvald matematisk teori, fysiska modeller och maskininlärningsmodeller med hjälp av numeriska mjukvarubibliotek på ett strukturerat och tydligt sätt
Kunna designa och implementera modulära mjukvarulösningar för vetenskapliga beräkningar med hjälp av objektorienterad programmering och återanvändbara bibliotek
Kunna välja ut och använda effektiva implementationer av metoder för vetenskaplig beräkning
Värderingsförmåga och förhållningssätt
Kunna systematiskt utvärdera effektiviteten av mjukvarulösningar för vetenskaplig beräkning, inklusive exekveringstid, beräkningskrav och noggrannhet
Kunna beskriva etiska och hållbarhetsaspekter av datoranvändning
Kursinnehåll
Den allt mer ökande komplexiteten hos mjukvaran som används inom vetenskap och teknik medför att kraven förändras på mjukvaruutvecklingscykeln såväl som på exekveringseffektiviteten. Syftet med denna kurs är att ge kunskap om modern programmering och mjukvarudesignkoncept med fokus på vetenskapliga beräkningar. En stor del av kursen är inriktad på praktiska övningar.
Förutsättningar
Minst 90hp avklarade kurser samt 30 hp avklarade kurser i matematik innehållande linjär algebra och analys i en och flera variabler, motsvarande kurserna: M0047M Differentialkalkyl, 7.5 hp, M0048M Linjär algebra och integralkalkyl, 7.5 hp, M0049M Linjär algebra och differentialekvationer,7.5 hp och M0055M Flervariabelanalys, 7.5 hp. Programmering i Python eller annat programmeringsspråk samt grundläggande statistik t.ex. D0009E Introduktion till programmering, 7.5 hp, S0008M Sannolikhetslära och statistik 7,5 Hp eller motsvarande. Goda kunskaper i engelska, motsvarande Engelska 6.