Christian Davéns personliga hemsida.
Hösten 2001 började jag på civilingenjörs-programmet Informationsteknik på KTH. November 2005 har jag mitt slutseminarium för examensarbetet.
Min inriktning är mot interaktiva system och innebär att jag fått lära mig hur man utvecklar program och system som användare interagerar med. All sorts input från användaren som ger ett svar från programmet är interaktion. Exempelvis när du klickar på en länk i webbläsaren eller skriver ett kommando i kommandoprompten. Men också input från datorn till användaren.
Detta är naturligtvis bara en del av utbildningen. Jag har också fått lära mig datalogi (ibland synonymt med datavetenskap), datasäkerhet, projektstyrning, artificiell intelligens och mycket annat. (Plus ganska mycket matematik och fysik, förstås!)
Här försöker jag beskriva de kurser jag har läst på KTH. Jag tar dock inte upp alla kurser. Kurserna är ordnade i omvänd kronologisk ordning.
Maskininlärning handlar om hur man kan skapa program (eller maskiner) som "lär sig" i någon mening. Vi gjorde bland annat en inlämningsuppgift som gick ut på att kategorisera texter på samma sätt som en uppsättning liknande texter var kategoriserade.
Kognitionsvetenskap är ett tvärvetenskapligt ämne som studerar olika aspekter av kognition (ex. minne, inlärning och språk). De centrala ämnena är psykologi, neurologi, lingvistik, filosofi och datavetenskap.
Internetprogrammering III lär ut Internetprogrammering fördjupat mot HTTP-klient-sidan. Innehåller webbdesign med xhtml och css, dynamisk html samt strömmande ljud och bild. I stort baserad på praktiska inlämningsuppgifter.
IT-projekt, "en introduktion till modern projekthantering och systemutveckling". Kursen består av två delar; en teoretisk om projekthantering (RUP, Rational Unified Process) och en praktisk där man driver ett eget projekt enligt samma teori.
Avancerad objektorientering går igenom objektorienteringens principer på ett djuplodande sätt och visar på skillnader mellan olika programspråk. Tar också upp mer avancerade koncept som metaklasser, reflektion och aspekt-orienterad programmering.
Programmering av parallella system tar upp de problem som uppstår när man skapar program som körs parallellt på en eller flera processorer. Bland annat delar man ofta minne och kan ibland skriva över data som andra delar av programmet precis skrivit.
Projektstyrning lär ut grunderna i hur projekt kan eller bör styras. Allt från planering och uppföljning till riskhantering, ledarskap och ekonomi. Praktiskt inriktad med många gästföreläsare direkt från industrin.
Säkerhetsprotokoll och applikationer i datanät handlar om de standardiserade protokoll som finns inom nätverkssäkerhet samt några tillämpningar. Behandlar bland annat krypterad e-post och säkra förbindelser över Internet.
Agentprogrammering är en ganska filosofisk kurs som tar upp ett nytt synsätt inom programmeringen. Agenter är ofta intelligenta, självständiga och "sociala" datorprogram som ingår i ett fleragentsystem för att lösa en uppgift.
Artificiell intelligens tar upp grunderna inom ett spännande område och förklarar bland annat hur ett datorprogram kan bli bättre än sin skapare på vissa saker. Handlar även om problemlösning och hur man bygger in det i ett program. (Samt programspråket Prolog.)
Processes for IT Project Management behandlar teorin kring hur programvara skapas. Tar speciellt upp hantering av IT-projekt.
Design och konstruktion av interaktiva system lär ut en process för att designa interaktiva datorsystem. Processen är iterativ och bygger på att man hela tiden utvärderar det man har gjort och håller ständig kontakt med användarna.
IT i organisationer och databasteknik tar upp hur företag kan använda IT som stöd för sin verksamhet. Detta betyder oftast att man skapar databaser, vilket också lärs ut, samt något om e-business.
Kognitionspsykologi är en kort översikt över hur och varför människan uppfattar saker på olika sätt. Kognition är en term som sammanfattar de intellektuella funktionerna, exempelvis minne, tänkande och inlärningsprocessen.
Objektorienterad analys och design lär ut hur man tar fram en objektorienterad modell av verkligheten. Använder sig av UML=[Unified Modelling Language] och verktyget Rational Rose.
Människa--dator-interaktion ger en introduktion till ett synsätt som innebär att datorprogram anpassas till människans behov och kognition. Ofta är det istället så att människan får anpassa sig efter hur programmet är skapat.
Principer för datasäkerhet innehåller en historisk bakgrund och motivation till varför datasäkerhet behövs. Behandlar också kryptering, virus och nätverkssäkerhet.
Datalogi II lär ut deklarativ programmering och använder sig av språket Oz. Tar också upp lat evaluering, programspråkssemantik och virtuella maskiner.
Datorteknik tar upp datorns komponenter och hur de samverkar. Lär också ut maskinnära programmering i assembler.
Kommunikationssystem lär ut hur olika system för kommunikation fungerar. Detta inkluderar bland annat telefoni, datornätverk och bredband.
Digital elektronik innehåller även en del analog elektronik (ellära). Tar sedan upp transistorer, logiska grindar och enkla processorer.
Datalogi I lär ut grundläggande objektorienterad programmering och använder språket Java. Innehåller också en del algoritmer och abstrakta datatyper.
”Om man vill förstå mänsklighetens göromål kan det vara till hjälp om man är klar över att de flesta av historiens stora triumfer och tragedier skapas, inte av människor som i grunden är goda eller onda, utan av människor som i grunden är människor.”