Tänkte att jag skulle berätta lite mer om de kurser jag har läst detta block. Ett block är en halv termin, i slutet av blocket tentar man av de kurser som går på helfart. En del kurser går på halvfart och tentas av i slutet av block nummer 2. På vår utbildning läser vi vanligtvis 2 kurser på helfart och en kurs på halvfart per block. Eftersom jag denna termin läser utökat har jag 3 kurser på helfart per block.

Först ut är TDDB84, av någon anledning så har man högst randomiserade koder på kurserna. Varje kurs har en unik kod. För er som inte förstod den uppenbara kopplingen så är “TDDB84” koden för kursen ”Design Patterns”.

Eftersom jag går i fyran får jag välja mina kurser själv från ett utbud med varierande inriktning. De tre första åren har vi läst obligatoriska kurser som krävs för att få titulera sig civilingenjör i medieteknik. Min master profil är antingen medieteknik eller datateknik, detta innebär att jag måste ha 90 avancerade högskolepoäng varav 60 inom det område jag väljer. Många kurser som Linköping erbjuder går under både datateknik och medieteknik. Så jag har egentligen inte valt ännu.

När jag läste namnet på kursen, ”Design Patterns” så tänkte jag något i stil med ”Ååå vad mysigt att få göra mönster, kanske i modellera?”. ”Circle in the sand” av Belinda Carlise, perfekt soundtrack till en kurs om mönster.

78691_10

Det visade sig att ”Design Patterns” inte alls innebar att mysa runt och göra mönster i sand/modellera – det var mycket svårare än så.

Några veckor in började jag förstå att detta faktiskt var en väldigt intressant kurs.

Den handlar om att skriva programmeringskod på ett smart sätt. Inom objektorienterad programmering finns det en del klassika problem som ständigt återkommer. Smarta människor har utvecklat generella lösningar (mönster) på dessa klasisska problem.

Vi vanliga dödliga männsikor kan då låna dessa lösningar och applicera på de uppgiftsspecifika problemet som vi stött på. Mönstren eller lösningarna delas in i tre kategorier beroende på vilka problem de löser, ”Creational”, ”Structural” och ”Behavioral”. Det har tagits fram en lista med design principer som man ska sträva efter att följa oavsett vilkens sorts mjukvara det är man ska utveckla. Designmönster hjälper programmeraren att hålla sig till dessa principer.

Principerna belyser bland annat att man ska skriva program som är lätta att expandera, inte göra olika delar av ett program beroende av varandra och hur man optimerar kodstrukturer.

Som kurslitteratur har vi har använt oss av två böcker. “Head First Design Patterns” för detaljerade exempel och ”Design Patterns: Elements of Reusable Object-Oriented Software” mer som ett uppslagsverk.

Man måste bara älska en lärobok som har följande intro:

”Here you are trying to learn something, while here your brain is doing you a favor by making sure the learning doesn’t stick. Your brain’s thinking,“Better leave room for more important things, like which wild animals to avoid and whether naked snowboarding is a bad idea.” So how do you trick your brain into thinking that your life depends on knowing Design Patterns?”

Skärmavbild 2013-10-27 kl. 22.51.57

I kursens laborationer har vi fått implementera olika mönster för att möta design principerna. Vi har bland annat byggt ett stall, ritat nyckelpigor och dekorerat ormen in det klassiska spelet Snake.

Javalab

Dessa mönster har dessutom väldigt häftiga namn som man kan namedroppa i konversationer där man vill imponera.

”Tjena Mr CEO! Skapar du helst dina objekt med en builder eller abstract factory? Själv föredrar jag the prototype pattern för komplexa objekt och the factory method med fabriken som en singelton för simplare kreationer”

eller

”Tjena Belinda, när du skrev ”Circle in the sand”, tänkte du då att cirklarna skulle ritas ut med hjälp av en visitor, iterator eller kanske rent utav en proxy?

Ni ser, det låter coolt! Coolare är att jag faktiskt vet vad jag pratar om.
Typ i alla fall. Vi får väl se när tentaresultatet kommer tillbaka.

Vad som vore coolast är dock att skriva sitt eget design mönster.
”The Softser Pattern” – apply in order to get more women into engineering.
Nej nu spårar det ur.

Design Patterns får 4 av 5 toasts: ämnet är otroligt intressant och relevant för programmerare. Laborationerna är givande, roliga och precis lagom svåra. Det som drar ner betyget är tyvärr föreläsningarna, för mycket kodexempel som känns onödigt invecklade. Eftersom jag är kontrollfreak hade jag även önskat en konkret kursplan. I dagsläget är det någon slags flexibel version som förändrades efter elevernas önskemål.

Näst ut blir TNM067 Scientific Visualization.

/Serious Sofie


2 Comments

Jasmine · October 28, 2013 at 10:20 am

Tack för det här inlägget! Så intressant att faktiskt få läsa om vad man gör på en kurs på universitet. Ser fram emot nästa inlägg :)

LINKÖPING UNIVERSITY | UNDER CONSTRUCTION · January 26, 2014 at 8:07 pm

[…] go to blog post […]

Leave a Reply

Your email address will not be published. Required fields are marked *