Denna kurs handlar om hur programmering används för effektiv problemlösning, med en form inspirerad av Nordic Collegiate Programming Competition (NCPC) och liknande programmeringstävlingar. Denna typ av problemlösning, där en snabb engångslösning för ett informellt beskrivet problem ska konstrueras, är vanlig också i forskning och näringsliv. Kursens fokus är övning på att analysera problem, applicera kunskap i datastrukturer och algoritmer, och implementera algoritmer snabbt och korrekt. Under kursen kommer studenterna att lösa ett större antal mindre övningsuppgifter, men studenterna tävlar inte mot varandra.
Kursen ges i hybridform och kan läsas med fysisk närvaro och/eller på distans online. Under kursens första del behandlar en serie föreläsningar ett antal klasser av algoritmiska tekniker, ett antal specifika användbara algoritmer, och generella tekniker för att angripa informellt formulerade problem. Föreläsningarna ges på campus med möjlighet till deltagande på distans. Utöver föreläsningar ges löpande ett urval övningsuppgifter, från vilket studenterna själva väljer ett antal att individuellt lösa. Övningsuppgifterna hanteras helt på distans online. Ett urval av uppgifterna diskuteras under kursen i seminarieform (med lösningsförslag) medan ett annat urval är obligatoriska uppgifter och utgör examinationen på kursen.
Förväntade studieresultat
Kunskap och förståelse Efter avklarad kurs ska studenten kunna:
(FSR 1) Beskriva ett antal kategorier av algoritmer (exempelvis giriga algoritmer, söndra-och-härska algoritmer, dynamisk programmering, sökmetoder med bakåtspårning, kombinatorisk sökning) samt förklara ett urval av specifika algoritmer ur vardera kategori.
Färdighet och förmåga Efter avklarad kurs ska studenten kunna:
(FSR 2) Uppvisa god förmåga att tolka och analysera algoritmiska problem givna i fritextform.
(FSR 3) Lösa algoritmiska problem genom att applicera och modifiera grundläggande algoritmer (exempelvis sökalgoritmer, kombinatoriska algoritmer och grafalgoritmer).
(FSR 4) Genom analys av tids- och rumskomplexitet bedöma om en algoritm är tillräckligt effektiv för att kunna lösa ett givet problem med givna tids- och rumsbegränsningar.
(FSR 5) På begränsad tid implementera och testa en algoritm.
Behörighetskrav
För behörighet krävs: - minst 7,5 hp inom grundläggande programmering - minst 7,5 hp inom datastrukturer och algoritmer - minst 7,5 hp inom diskret matematik
Undervisningens upplägg
Undervisningen bedrivs i form av föreläsningar, individuella övningsuppgifter och seminarier. Föreläsningarna sker på campus för de som deltar fysiskt och strömmas samtidigt online för de som deltar på distans. Förslag på individuella övningsuppgifter ges löpande under kursens gång. En del av övningsuppgifterna diskuteras på en serie seminarietillfällen som ges online.
Examination
På kursen ges något av betygen Väl Godkänd (VG), Godkänd (G) eller Underkänd (U). Kursen examineras genom ett antal skriftliga inlämningsuppgifter ställda på en tävlingsliknande form. För godkänt resultat krävs att samtliga inlämningsuppgifter är godkända.
Avsteg från kursplanens examinationsform kan göras för en student som har beslut om pedagogiskt stöd på grund av funktionsnedsättning. Individuell anpassning av examinationsformen ska övervägas utifrån studentens behov. Examinationsformen anpassas inom ramen för kursplanens förväntade studieresultat. Efter begäran av studenten ska kursansvarig lärare, i samråd med examinator, skyndsamt besluta om anpassad examinationsform. Beslutet ska sedan meddelas studenten.
En student som utan godkänt resultat har genomgått två prov för en kurs eller en del av en kurs, har rätt att få en annan examinator utsedd, om inte särskilda skäl talar emot det (HF 6 kap. 22 §). Begäran om ny examinator ställs till prefekten för Institutionen för datavetenskap.
Övriga föreskrifter
I en examen får denna kurs ej ingå, helt eller delvis, samtidigt med en annan kurs med likartat innehåll. Vid tveksamheter bör den studerande rådfråga studievägledare vid Institutionen för datavetenskap och/eller programansvarig för sitt program.
Om kursplanen har upphört att gälla eller kursen slutat erbjudas garanteras en student som någon gång registrerats på kursen minst tre provtillfällen (inklusive ordinarie provtillfälle) enligt denna kursplan under en tid av maximalt två år från det att kursplanen upphört att gälla eller kursen slutat erbjudas.