uc:sendtilenven runat server id uc_sendtilenven
Ændre størrelse på tekst Print

Introduktion til programmering (IP)


Semesterangivelse: Efterårs kursus Kurset udbydes i blok 1 Kurset udbydes i skemagruppe B Kurset giver 7,5 ETCS point

 


Udgave: Efterår 2012 NAT
Point: 7,5
Blokstruktur: 1. blok
Skemagruppe: B
Fagområde: dat
Varighed: 9 uger
Institutter: Datalogisk Institut
Studieordning: Bacheloruddannelsen i datalogi
Uddannelsesdel: Bachelor niveau
Kontaktpersoner: Torben Mogensen, torbenm@diku.dk
Andre undervisere: Nils Andersen, Rasmus Fonseca
Skema- oplysninger:  Vis skema for kurset
Samlet oversigt over tid og sted for alle kurser inden for Lektionsplan for Det Naturvidenskabelige Fakultet Efterår 2012 NAT
Formål: At gøre den studerende bekendt med grundlæggende programmering, i særdeleshed det funktionsorienterede programmeringsparadigme. Den studerende vil ved kursets afslutning være i stand til at designe, konstruere og, i begrænset omfang, afprøve programmer i omfang op til ca. 300 linjer i et funktionsprogrammeringssprog (i princippet et vilkårligt sådant sprog; in casu anvendes Standard ML).
Indhold: Der gennemgås materiale svarende til kursets formål. Modulo endelig pensumbeskrivelse vil følgende specifikt blive gennemgået på kurset:

Udtryk og funktioner
Sammensatte og usammensatte typer
Sæt
Blokstruktur
Polymorfi
Terminering
Funktionsevaluering
Funktionskonstruktion
(Naiv) afprøvning
Programdokumentation
Lister, træer, sammensatte datatyper
Iterativ form
Listekombinatorer
Sortering
Asymptotisk kompleksitet
Kombinatorisk søgning
Undtagelser
Tegn, tekster
Funktioner af højere orden
Input/output
Målbeskrivelse: Ved kursets afslutning skal den studerende kunne:
Anvende funktionsorienteret problemanalyse og problemmodellering af (ganske simple) problemer i informationsbehandlingsøjemed.
Identificere - med henblik på automatisk behandling - dele af problemer, som ikke behandles, som er uklare, eller som er tvetydige i uformelle problembeskrivelser.
Anvende og identificere problemløsningsmetoder som præcise algoritmer og muligheden for at beskrive og programmere disse i et (funktions)programmeringssprog.
Benytte typebegrebet for kategorisering af data og funktionsdefinitioner og dets betydning for at afdække programmeringsfejl tidligt i et programmeringsforløb. Tillige anvende af atomiske og sammensatte typer, erklæring af nye datatyper, specielt typer for liste- og træstrukturer samt polymorfe typer.
Anvende og konstruere funktioner af højere orden. Anvende standardfunktioner af højere orden til listeprocessering.
Benytte rekursion og programdesignteknik, som anvender rekursion.
Benytte betinget og iterativt kontrolflow og de tilhørende programmeringsteknikker.
Være bekendt med forskellige former for evalueringsrækkefølge, parameteroverførsel og funktionskald, herunder evaluering af rekursivt erklærede funktioner.
Ræsonnere om ressourceforbrug for programmer og asymptotisk analyse deraf.
Anvende forskellige datarepræsentationer, særligt for input/output.
Konstruere og udføre simpel afprøvning for at afdække programmeringsfejl.
Give klar, koncis og velstruktureret beskrivelse af opførslen af et givet program eller programfragment i SML.
Lærebøger: Forventes at være: Hansen, Rischel, "Introduction to Programming Using SML". Nils Andersen, "IP-2: Supplerende noter i Introduktion til programmering"
Tilmelding: Via KUnet fra d. 15. maj til d. 1. juni.
Faglige forudsætninger: Ingen
Formelle krav: Ingen
Eksamensform: 48-timers tag-hjem eksamen. Karakter efter 7-trins-skala med intern censur. For at blive indstillet til eksamen fordres godkendelse af 5 ud af 6 ugentlige obligatoriske opgaver. Der gives mulighed for genaflevering, hvis første aflevering er et seriøst løsningsforsøg. Aflevering sker i Absalon.
Reeksamen er en mundtlig prøve (25 min) uden forberedelse. Karakter efter 7-trins-skala med intern censur.
Eksamen: 48 timers hjemmeopgave udleveres den 7. november og afleveres den 9. november 2012. Reeksamen: Mundtig prøve den 1. februar 2013.
Kursus hjemmeside:
Undervisnings- sprog: Kun dansk
Sidst redigeret: 30/4-2012



Københavns Universitet