Man lever så länge man lär

Inlägg taggade ‘Python’

Högskolepoäng: 20,0 (vårterminen är klar)

Så där, ja! Då var slutligen alla vårens poäng inrapporterade såväl som synliga på antagning.se – summa summarum hela 20, alldeles färska, högskolepoäng. Jag måste tillstå att jag är rätt nöjd med dem. Och som om det inte räckte med poängen så fick jag ju dessutom högsta möjliga betyg på alla kurserna. Wohoo! Ni får vara så goda och ursäkta mitt skryt för jag är uppriktigt stolt över mig själv.

I morse fick jag mail om att de sista poängen blivit inrapporterade till Ladok och nu när jag kom hem (efter två dagar på Kolmårdens djurpark) och loggade in på antagning.se hittade jag dem även där. Vårens poängjakt är därmed avslutad.

Mina 20 högskolepoäng

Och så praktiskt att mina sommarkurser började precis idag! Ska ta och kolla upp vad jag behöver göra med dem, men det får bli senare i veckan. Nu är jag trött och tänker göra så få knop som möjligt innan det är dags att göra sig redo att inleda de sista dagarnas arbete innan semestern tar vid. Det vill säga: sova.

Högsta betyg i alla kurser

Det låter väl alldeles fantastiskt bra, eller hur? I alla fall om man läser många olika kurser under samma termin. Jag för min del läste ju bara tre kurser under vårterminen, på kvartsfart. Hm, när jag nu tänker efter är det inte så långt ifrån att studera i full fart – jag har ju faktiskt pluggat på 3/4-fart under våren. Eller på halvfart, om man låter bli att räkna Java-kursen jag såg som gratispoäng, som jag bara behövde för att få vidare meriterande högskolepoäng. Och sedan ska jag väl också, innan jag kan anse mig helt klar och det hela alldeles officiellt, invänta poängen i Ladok, men ändå… faktum kvarstår: toppbetyg bör det bli.

I går, under lunchen, fick jag en notifiering från BTH:s lärandeplattform, som började: ”Hej! Vi har nu rättat din tentamen DV1453 Inledande programmering i Java som du skrev 2015-06-04 och du är godkänd på denna.” – fantastiskt bra att de inleder med det viktigaste, dvs själva resultatet. Därefter följde bedömning av implementationen och så avslutades med ”Du har med god marginal klarat gränsen för godkänd. Bra jobbat!”. Eftersom man inte kan få högre betyg än G på den här kursen innebär det att sviten med högsta möjliga betyg är obruten. Lite roligt, det också, även om jag inte tänkt på betyg. Poängen var det viktiga.

När jag sedan kom tillbaka till skrivbordet efter lunch och möten och vad det nu var, loggade jag genast in på plattformen för att läsa det hela lite mer detaljerat på en större display och vad ser jag väl då? Jo, Python-projektets resultat hade också trillat in. Betyget blev A på slutprojektet såväl som på kursen som helhet. Det hade jag verkligen inte väntat mig eller räknat med, men blev mycket glad. Och även lite stolt. Förstå vad jag måste vara bra! Liksom. Enda haken är att jag nu kanske förväntar mig högsta betyg på alla kurser jag läser framöver…

Och så har jag nu fått ett fantastiskt lyxproblem: vad gör jag nu? Min nästa kurs börjar ju inte förrän den 29/6 och vad jag förstår kan man inte registrera sig och börja tidigare än så. Alltså har jag nu drygt två veckor ledigt. Sambon har börjat med sin sommarkurs, så jag tänker mig att han använder en stor del av sin fritid till att plugga de närmaste veckorna och jag kan/får roa mig helt på egen hand.

Men vad är det jag ska och vill göra då, som jag inte riktigt kunnat göra (läs: valt att skjuta på framtiden) sedan vårterminen drog igång framåt slutet av januari? Läsa skönlitteratur, är det jag första kommer att tänka på. Vara ute, det andra. Finns nog fler saker, så det blir till att ta sig en funderare. Men grunnar jag på det länge nog kommer problemet att försvinna av sig självt, vilket vore… synd.

Python-kursen är nu avslutad

Puh. Pust. Python-kursens slutprojekt är nu inlämnat, vilket ger mig stor lättnad. Detta eländiga projekt har hängt över mig sedan slutet av april. Det var väldigt svårt att komma igång med projektet och att därefter få upp ett bra arbetstempo var nästan omöjligt då uppgiften ställde fantasifulla krav på mig. Det vill säga: projektet krävde att man själv hittade på uppgifter att lösa. Inte riktigt vad jag önskar av en kurs där man ska lära sig programmering och problemlösning.

Uppdraget handlade om att utveckla ett textbaserat äventyrsspel, innehållande sju rum där spelaren måste göra vissa saker för att kunna gå vidare till nästa rum. Problemet är det där med spelidéer… jag är inte kreativ på det sättet. Alls. Vilket gjorde att mina rum blev enkla och rätt ospännande att spela sig igenom. Detta till trots har jag i alla fall löst uppgiften. Jag implementerade (i kod) alla obligatoriska och frivilliga krav utom ett, som jag bara implementerade i form av text i min redovisning av kursmomentet. Att skriva själva koden också skulle ta ytterligare ett antal timmar, och lediga sådana har jag för ont om denna vecka.

Jag är nu alltså klar med kurserna i både datasäkerhet och python – bara att invänta resultat och betygssättning. I Java-kursen har jag fortfarande tentan kvar och den skrivs på torsdag. Sista inlämningsuppgiften är ännu inte rättad.

Förstår ni hur skönt det kommer att bli att vara LEDIG ett tag!? Ja, på kvällar och helger alltså. Om dagarna kommer jag ju att jobba som vanligt, förstås.

Bara några veckor till

Programmet de närmaste veckorna ger mig en obehaglig känsla i magen över att ha en massa saker inskrivna i kalendern utöver det sedvanliga lönearbetet, som i och för sig kommer att vara i mitt nya uppdrag, på det nya kontoret och med de nya människorna, vilket sammantaget alltid innebär ett visst mått stress. Uppdragsbytet är dock inget som ligger särskilt högt på stresslistan just nu. Ja, förutom det där att jag inte kan jobba riktigt full tid här närmast pga åtaganden.

Mängden övrigt berättigar inte riktigt känslan, men det är svårt att sätta fingret på vad det är som nu ligger som en våt filt över mig och hindrar framsteg. Det jag vill är att förstå vilket hinder jag främst behöver undanröja för att lätta sinnet och ge mig fokus – som det är nu råder främst en sorts kaos i huvudet och jag kan inte tänka. Det blir lite sinnesro-bön över det hela: vad kan jag göra något åt i nuläget och vad får jag lägga på hyllan tills det går att utföra det? Jag behöver ordna tankarna för att kunna prioritera och göra det möjligt att komma vidare. Det är det som är anledningen till att jag sitter här och skriver – jag benar ut. Eller är det möjligen bara helt vanlig prokrastinering det handlar om? Hm.

Så låt se, om jag bara inventerar veckorna kanske jag förstår bättre…

Denna vecka har varit kort och känts lagom stressig – det har främst handlat om att försöka bli klar med så mycket som möjligt av den utveckling som främst jag själv jobbat med. Applikationen ska vara klar att använda fr.o.m. måndag. Jag tror faktiskt att vi kom precis så långt som det är möjligt i dagsläget, möjligen med ett litet undantag för den paketstruktur jag var ensam om att vilja justera. Nåväl, bara att försöka acceptera att det är Någon Annans Problem numera.

På måndag börjar jag mitt nya uppdrag på allvar, på riktigt, på full tid. Ja, med undantag för de enskilda dagar och tider då jag behöver vara borta från jobbet. Tentorna betraktar jag som måsten och jubileumslunchen är ett unikt tillfälle jag inte vill missa, nu när jag faktiskt fick ihop en anständig lista deltagare att bjuda in – återstår att se hur många av dem som kan och vill vara med, bara.

Så okej, första veckan blir jag borta på onsdagen pga tenta. Sedan är det tänkt att jag och äldsta vännen ska göra en dagsutflykt på lördagen. På söndagen får jag nog vara hemma och vila i alla fall. Eller nej, jobba med Python-projektet.

Andra veckan behöver jag troligen ägna en del av fredagen åt att slutgiltigt avsluta mitt gamla uppdrag. Lämna tillbaka de sista datorerna med tillbehör samt till uppdraget hörande plastkort. Och för allt det behöver jag vara säker på att de rätta tre personerna finns på plats den förmiddagen. Här finns det massor som kan skita sig, men på något sätt ska det väl ändå ordna sig med envishet.

Helgen den veckan blir antagligen den sista jag kan ägna åt Python-projektet innan det behöver lämnas in. Missar jag deadline blir det inte rättat förrän i höst, vilket i sig inte borde vara ett problem eftersom jag inte tror att jag behöver poängen ännu, men det skulle ändå kännas bäst att hålla sig till utsatt tidtabell.

Tredje veckan blir nog den jobbigaste, då jag jobbar mån-ons + fredag, tentar i Karlskrona på torsdagen och åker upp till Luleå fredag till söndag. Det blir först nästan 50 mil söderut, tillbaka hem och sedan dryga 90 mil norrut tur och retur.

Fjärde veckan… tja, jag har jubileumslunchen på onsdagen, men i övrigt verkar vara lugnt. En helt vanlig jobbvecka. Från och med då bör läget vara lugnt och stabilt igen fram till semestern. Får bara inte glömma att be om ledigt den sista måndagen, då vi bokat in en tredagarsutflykt med sambons syster plus familj.

Så… det är faktiskt bara tre veckor framåt jag behöver bita ihop. Puh!

Nu gäller bara att få grepp om Python-uppgiften. Den är svår främst för att den kräver att jag ska hitta på saker snarare än att lösa specificerade problem med hjälp av programmering. Jag ska göra ett textbaserat äventyrsspel, omfattande sju [olika] rum. Sju! Jag kanske har fantasi nog för att hitta på ett rum. Och i ett av de andra rummen kan användaren få spela mitt luffarschack. Men övriga fem rum? Där har jag i dagsläget ingen som helst aning om vad jag ska hitta på.

Än så länge har jag mest tassat omkring som katten kring het gröt, och försökt hitta en bra struktur för att hantera de allmänna spel- och rumskommandon som kan ges i samtliga rum. De olika rummen behöver fungera på ungefär samma sätt, tycker jag. Vara standardiserade. Och så måste jag ha ett sätt att lagra de olika rummens respektive objekt, som användaren ska kunna interagera med.

Jag har också tänkt på hur man skulle kunna hantera medförandet av saker mellan de olika rummen. Eller ett eventuellt sparande av spelets status. Att kunna bära omkring saker i en ryggsäck och att kunna spara spelets status ingår dock inte i grundkraven, så jag borde inte fundera på dem förrän senare.

Det här är ett problem där det faller sig naturligt att använda objektorientering, särskilt om man som jag arbetar objektorienterat till vardags, men eftersom objektorientering inte ingår i kursen vore det fel att använda det för att lösa uppgiften. Jag har läst bland redovisningarna att flera elever ändå gjort det.

I morgon ska jag banne mig implementera mitt luffarschacksrum! Jag tänker använda rummet som heter Dopey, d.v.s. Toker på engelska – eftersom det är sju rum och jag inte vill numrera dem har de fått namn efter Snövits sju dvärgar. Jag tror att det viktigaste med den här uppgiften är att sätta bollen i rullning. Det handlar anmärkningsvärt ofta bara om att få fatt i någon trådände och börja dra. Varför är det, även med den vetskapen, så förbaskat svårt att komma igång?

I morgon. Då.

Studieställningen just nu: 24-21

Det börjar närma sig slutet på den här terminens studerande. Det är inte mycket kvar alls, även om det som återstår innefattar två resor för något som i alla fall känns lite läskigt. Tentamen. Det blir spännande att se om jag hittar rätt lokal och även hur jag klarar pressen. Prestationsångest, ni vet. Och självfallet utgår jag från att jag kommer att fixa båda, men säker kan man ju inte vara förrän efteråt och lite nervös kanske man ändå måste vara för att inte tappa stinget. Äsch, det ordnar sig! Eller jag behöver i alla fall inte oroa mig nu, för det hinner jag göra senare. Det finns en massa andra saker att oroa sig för innan dess.

I datasäkerhetskursen har jag precis lämnat in min sista veckouppgift och det som återstår där är bara det allra sista, det som är helt avgörande. Tentamen. Jag får läsa, läsa och läsa kursmaterialet fram tills dess. Hela vägen igenom, från början till slut, så många gånger jag hinner och orkar. Och kanske göra självtesterna några gånger till. Antar att surfplattan kan få följa med till och från jobbet. Så går det nog bra till slut, tänker jag. Det är bara några få veckor kvar och sedan är det över. Förhoppningsvis resulterande i ytterligare 5 hp på kontot.

I Java-kursen har jag en inlämningsuppgift kvar, men väntar på att det ska dyka upp någon form av lektion att ta del av så att jag vet vad jag förväntas lära mig. Tidigare har det varit online-möten som jag kunnat titta på i efterhand (eftersom de alltid hållits på dagtid, vilket ju för mig är detsamma som arbetstid), men i det förra kursmomentet blev det bara en inspelning och för det här sista har jag inte sett något alls annat än att resterande live-sessioner ersätts med inspelningar.

Än så länge finns bara inlämningsuppgiften som sådan att tillgå. Normalt brukar inspelningen läggas ut bara någon dag efter deadline för föregående uppgift, men så har inte skett denna gång så jag undrar vad som händer. Nåja, det är gott om tid ännu. Den sista uppgiften, som är nummer 6 i ordningen, ska lämnas in senast den 24/5 (eller 31/5 – det står olika uppgifter på olika ställen) och därefter, i juni, ska det tentas. I nuläget väntar jag mest på att föregående uppgift ska bli granskad och godkänd, så att jag kan pricka av den i min lista.

I Python-kursen lämnade jag in uppgift nummer 6 förra helgen, under andra nåja-veckan, så nu återstår bara att få godkänt på den uppgiften och göra den sista, stora, som är ett projekt och motsvarar en tentamen – det är detta projekt som (dock i kombination med tidigare uppgifter) avgör betyget på kursen som helhet. Inlämning kan göras när som helst från förra veckan och fram till första veckan i juni, men det lär ju vara en del jobb så förmodligen bra att börja med den så snart som möjligt. Det blir dock inte denna helg, för det orkar jag inte.

Läget mer i korthet:

  • Datasäkerhet: Tentamen återstår.
  • Java: En inlämningsuppgift + tentamen återstår.
  • Python: En (stor) inlämningsuppgift återstår.
  • Antagningsbesked för sommaren kommer 4/5. Whee!

Som synes är det inte så mycket kvar nu. Det har gått förvånansvärt fort, men jag längtar efter att få njuta av fritid där jag inte behöver känna att jag kanske borde ägna mig åt skolarbetet i stället. Då kan man måhända fråga sig varför jag sökt nya kurser både till sommaren och till hösten, men jag vill ju lära mig nya saker också! Och samla poäng. Och jag kan alltid tacka nej även om jag skulle bli antagen. Jag menar, hellre det än att behöva ångra att jag inte sökte.

Kursansökan för hösten 2015

Så där, då har jag skickat in ansökan avseende höstens högskolestudier. Sista ansökningsdag är på onsdag, 15/4, så jag gjorde det med flera dagars marginal.

Om vi bortser från att jag inte vet hur hösten kommer att se när det gäller jobbet, så är min tanke att gå vidare med det kurspaket jag påbörjat och utöver detta skaffa meriter för att möjliggöra fortsatta studier inom intressanta dataämnen. Idag är alldeles för många kurser besvärliga att söka p g a saknade poäng.

Detta innebär att jag nu dels sökt ännu en Java-kurs (fortsättning på den jag går), dels en datavetenskaplig introduktionskurs (som ger behörighet att söka andra datavetenskapliga kurser). Utöver detta har jag också, som något slags backup, sökt ett par kurser avseende apputveckling och ett par icke-tekniska men ändå it-relaterade kurser. Samtliga kurser går på distans och kvartsfart.

Om vi nu förutsätter att jag blir antagen till det jag önskar och därefter klarar av att avsluta de utbildningar jag påbörjat och planerar att genomföra kommer jag efter årets slut att ha fått ihop 50 högskolepoäng. Under ett år. Samtidigt som jag jobbar heltid. Går det vägen ska jag banne mig fira! Frågan är bara hur.

Jag måste dock erkänna att det börjar kännas tuffare nu, när jag nästan börjar ana slutet av terminen. Efter snart tre månaders studerande är det faktiskt bara ungefär en och en halv månad kvar, och jag ligger något senare än vad jag hade tänkt mig när gäller Python vilket är stressande. Det beror nog till ganska stor del på att min ambitionsnivå är högre än den måste vara för att bara få godkänt på uppgifterna. Jag passar på att förkovra och förlora mig ett tag i de olika delarna vi lär oss – det är kunskaperna snarare än betyget jag vill åt, även om jag självfallet också vill ha ett hyfsat betyg som kvittens på inhämtandet av kunskaperna. Det är väldigt roligt att programmera i Python, men det tar också mycket tid att få till det så som jag vill. På en rimlig nivå. Jag hinner inte göra alla extrauppgifter, men så här långt har jag alltid gjort några. Just för att det är roligt och lärorikt. Att göra samtliga extrauppgifter skulle dock kräva en orimlig arbetsinsats, då jag som sagt både jobbar och läser andra kurser också.

Datasäkerheten går faktiskt helt okej och är bitvis riktigt rolig, även om det nu med kapitlen om kryptering börjar bli mer krävande. Jag har faktiskt rätt mycket nytta av mina yrkesmässiga erfarenheter, inte minst från nuvarande uppdrag, och ser också att jag får direkt nytta av kunskaperna i tjänsten även framledes. Utöver detta inser jag att jag behöver läsa igenom kurskompendiet flera gånger till innan det blir dags att skriva tentan, men det borde kunna gå vägen.

Java-kursen då? Tja, den går ganska långsamt och särskilt det här senaste avsnittet (Metoder/Klassbibliotek) som, delvis pga påsken, spänner över hela fyra veckor. Jag tar det kallt och tänker klara av hela momentet nästa helg – det brukar inte ta så många timmar att lyssna på inspelningen och göra veckans uppgift. Det har sina fördelar att redan behärska ämnet, om vi säger så. Hade Java-kursen varit lika krävande som Python hade det aldrig funkat att läsa båda.

Studieställningen just nu: 4/4 i Java, 5/5 i Python, 9/11 i datasäkerhet – totalt alltså: 18 rättade (och godkända) av 20 inlämnade uppgifter. Det går framåt!

Att göra härnäst:

  • Python: inlämningsuppgift 6 – deadline: i morgon (+ 2 nåja-veckor).
  • Java: inlämningsuppgift 5 – deadline: nästa söndag.
  • Datasäkerhet: inlämningsuppgift 12 – deadline: nästa söndag.

Python-uppgifterna jag ska göra härnäst verkar extra roliga – nu handlar det om att installera och lära sig använda externa moduler, programpaket och olika sorters nätbaserade tjänster. Instruktionerna för kursmomentet är publikt tillgängliga för den som är nyfiken: Kmom06: Externa moduler och webben.

När jag läste om det hela och följde läsanvisningarna (kapitel 12-14 och 16 i Python for Informatics: Exploring Information) blev jag smått lyrisk och mer än lite nostalgisk. Det här är i sanning en väg tillbaka in i sådant jag pysslade med för 15 år sedan eller så. Fast nu blir det förstås i en något modernare tappning. Det känns lite som att komma hem, och det var väl också en del av idén bakom att hoppa på kurspaketet som ju heter Webbutveckling och programmering – att återknyta kontakten med webbvärlden och utvecklingsarbete i och för den.

Jag funderade ett tag på att till hösten påbörja även det andra kurspaketet BTH tillhandahåller inom webbområdet, Databaser, HTML, CSS, JavaScript och PHP (de båda ska gå utmärkt att läsa parallellt), men eftersom den första kursen är Databaser, HTML, CSS och skriptbaserad PHP-programmering och jag under hösten kommer att läsa Programmering med JavaScript, HTML och CSS som nästa del av det första paketet föreställer jag mig att jag skulle bli för förvirrad.

Fast nu när jag läser mer om respektive kurs inser jag att ”min” kurs fokuserar på klientsidan, med Javascript-programmering, medan den andra håller sig på serversidan med PHP- och databasprogrammering. Det är egentligen bara HTML och CSS som i någon mån skulle kunna komma att överlappa, men eftersom de spelar andrafiol i båda kurserna borde det inte ställa till problem.

En framtida möjlighet kan vara det distansprogram i Webbprogrammering som BTH planerar att erbjuda från hösten 2016 – halva första året utgörs av precis de kurser jag läser i mitt kurspaket. En fjärdedel av första året och lika mycket av det andra består av de fyra kurserna från det andra kurspaketet. Tillkommer sex kurser, som ännu inte är helt spikade, samt ett examensjobb på 15 hp.

Möjlighet att ta ut kandidatexamen kommer att ges via ett tredje år, på campus. Det låter inte ointressant, även om jag reflekterar över det faktum att jag troligen inte skulle ha ett överflöd av yrkesverksamma år kvar efter en sådan examen. Varför, o varför, kom jag inte på sådana här roliga idéer för 10 eller 20 år sen!? Fast om jag jobbar tills jag är 75 blir det minst 20 år att använda kunskaperna.

Så där, nu har jag använt större delen av min pluggkväll till att blogga. Hurra! :)

Studieställningen just nu: 12-12

Oj, nu får jag sätta lite fart igen – rättningskommittéerna har hunnit ifatt mig! Så här långt har jag lämnat in, och fått godkänt på, 3 uppgifter vardera i Python respektive Java samt 6 uppgifter i grundläggande datasäkerhet. Det går framåt och det går nog ganska bra. Jag är nöjd och kanske till och med en aning stolt.

Mia, du är en klippa! (var det någon som sade till mig en gång, minns jag)

I övrigt vad gäller pluggande så har jag skickat en ansökan för sommarterminen och mailat en fråga till UMU om vad för slags underlag de vill ha för att kunna bedöma min reella kompetens – kursen ifråga vill att man ska ha ”minst 15hp objektorienterad programmering i Java på universitetsnivå”, och det har jag ju inte (ännu). Det jag däremot har är rätt många års praktisk yrkeserfarenhet av applikationsutveckling i Java. Det borde kunna räknas som gott nog, tycker jag, men vad UMU tycker får jag vänta på att få reda på. Det är de som bestämmer.

Jag har pratat med chefen och han skriver gärna intyg, bara vi vet vad de vill ha.

Sedan är det ju också så illa att även om jag bedöms behörig att söka kursen kan det mycket väl vara så att jag inte blir antagen p.g.a. att urvalet baseras på antalet högskolepoäng avklarade per sista anmälningsdag. Idag har jag ju bara 2,5 poäng och det hinner nog inte bli så värst många fler. Kanske, eventuellt, att jag hinner få 2,5 poäng till innan deadline, men that’s it. Erbarmligt få poäng är det i vilket fall som helst. Minsta lilla konkurrens så åker jag ut, med andra ord. Jag kan bara hoppas på att det är få som söker och sedan tackar ja till kursen. Undrar om det var så smart att föreslå att sambon skulle söka samma kurs…

Nåja, det är säkert roligt att läsa interaktionsdesign också. Urvalet baseras på betyg, högskoleprov, -poäng vilket kanske ger mig större chans att bli antagen.

Jag har även tagit några steg framåt i ”tenta på hemmaplan”-spåret genom att kontakta Campus Telge, som verkar vara det enda lärcenter nära Stockholms som är godkänt för tentamen på annan ort – utöver universitet och högskolor, vill säga. Tyvärr verkar de dock bara kunna eller vilja hjälpa studenter som bor eller arbetar i Södertälje, men jag har inte blivit slutgiltig avfärdad ännu så jag tillåter mig att hoppas lite till. Optimisten får vara glad en liten stund i alla fall.

Sedan har jag också skickat iväg ett mail till Stockholms universitet – hittade ingenting om min sorts tentamen på deras webbplats så jag provar med en mer allmän mailadress. Blir intressant att se om jag får ett bättre svar än från KTH.

Veckans skolrelaterade arbete:

  • Java: vektorer (klart innan måndag)
  • Python: listor (klart innan måndag)
  • Datasäkerhet: behörigheter (klart innan måndag)
  • Ansökan om prövning av reell kompetens (klart helst innan måndag)
  • Sista ansökning till sommarterminen: måndag 16/3 kl. 24:00
  • Fortsätta nysta kring tentamensmöjligheter i närområdet (klart april/maj)

Studieställningen just nu: 11-7

Jag tycker nog att jag ligger rätt bra till med studierna så här långt. Ställningen i de tre pågående match^H^H^H^H^Hkurserna är som följer (inlämnat-godkänt):

Java: 3-2
Python: 3-2
Datasäkerhet: 5-3

Det blev en stor del av min fritid under helgen som gick åt till studier. Okej, jag blev lite besatt och programmerade Python så det stänkte om det och kanske mer än nödvändigt, men ändå… det är roligt att skapa med kod, så är det bara.

Det där hängde kvar lite för på jobbet fann jag mig fastna i korrigeringar av vår Jython-kodbas, som används för att automatgenerera Java-kod utifrån särskilt utformade specifikationer. Tyvärr är det en rätt gammal version, 2.1, medan den Python jag studerar är 3.*, vilket gjorde att en del av det jag ville göra visade sig vara omöjligt. Jag löste dock ändå problemen och ser fram emot att fortsätta på den inslagna vägen, med egenhändigt utvecklad enhetstestkod för de funktioner som visat sig innehålla buggar. Det blir en sorts automatiserad regressionstest.

Annars har jag börjat tänka på framtida studier, mer om det i separat inlägg.

Åter till studierna

Åter i hemmets lugna vrå (efter en handfull dagar i Lissabon – kanske mer om det någon annan gång, eller när jag tagit mig an fotona från resan) och nu är det studier som gäller. Jag har skrivit och lämnat in veckans Java-program, som går ut på att två personer tävlar mot varandra i multiplikation. Programmet slumpar fram två tal (1-20) och de två personerna turas om att svara med resultatet av multiplikation dem emellan. Och så där håller det på tills användaren matar in en nolla på frågan om att fortsätta tävla. Programmet berättar då hur många korrekta svar respektive tävlande fick samt vilken av dem som vann tävlingen.

Meningen med uppgiften är främst att visa att man kan och förstår if-satser, for- och while-loopar samt switch-satser. Det svåra för mig är att hålla igen och låta bli att använda sådant som jag kan, men som vi inte lärt oss i kursen – har fått känslan av att det är önskvärt. Hade jag när jag ansökte vetat vad jag vet idag hade jag nog sett till att få registrerat motsvarande kunskaper i stället för att börja med en nybörjarkurs i programmering. Det känns rätt onödigt. Men det är väl jag i ett nötskal, det. Grundlig. Djupet först-sökare, för att låna från sambon.

Sedan har jag läst lite datasäkerhet. Denna gång handlar det om fysiskt skydd av utrustning samt katastrofplanering och jag är inte alldeles säker på att jag förstår vad som åsyftas i veckans uppgift, med ”de tre huvudsakliga stegen du läst om i veckans kapitel”. Jag tycker att det finns lite för många att välja på. Nåväl, det kanske klarnar om jag tar och sover på saken. En eller två nätter. Noterade förresten också att nästa veckas uppgift fått samma deadline som denna veckas, vilket inte borde vara korrekt – har skrivit och frågat om det.

Jag berättade nog aldrig att jag på lärplattformen råkat lyckas registrera mig på en kurs som jag varken sökt eller är behörig till, så nu står jag på deltagarlistan och har tillgång till hela det kursrummet. Och ser på startsidan att en tidsgräns för inlämning är överskriden. Störigt! Hittade i alla fall hur jag kan slippa se den. Dock är kursmaterialet till ”Datastructures and algorithms” intressant att läsa. Jag har mailat den kursansvariga om saken, så får vi se vad som händer.

Och så har jag skickat in en fråga till Antagning.se, om hur man bär sig åt för att bedömas behörig till intressanta kurser när man har nödvändig erfarenhet, men saknar formella meriter. Det är ju slöseri att plugga sådant som man redan kan, så jag ska se om jag kan ordna så att jag får läsa på en för mig lämpligare nivå.

Förresten, när jag var inne på Antagning.se upptäckte jag att jag fått 2,5 poäng registerade. Mina första akademiska poäng, alltså! Dessa handlar om Python.

En inlämnad och en godkänd

Så där, nu har jag lämnat in Python-kursens andra uppgift. Äntligen. Det tog tid.

Jag började jobba med den först i lördags förmiddag och var borta hemifrån på kvällen och kunde snart konstatera att jag borde ha börjat tidigare eftersom jag enligt planen skulle lämna in den senast igår. Nu blev det idag i stället, vilket jag i och för sig tror går lika bra, men jag ska nog vara mer på hugget framöver.

Vid den sedvanliga rundan förbi de olika lärplattformarna upptäckte jag att ytterligare en inlämning i datasäkerhetskursen nu har blivit godkänd. Hurra!

Mina inlämningar

Veckans arbete ska vara klart senast fredag (eftersom vi åker på lördag):

  • Lämna in datasäkerhet nr 3 (Ekonomisk riskanalys)
  • Påbörja Java-uppgift nr 3 (Logik)
  • Påbörja Python-uppgift nr 3 (Strängar och filer)

Första godkända uppgiften

I slutet av förra veckan fick jag äntligen min första uppgift rättad och godkänd. Det var Python-kursens första uppgift, inlämnad 24 januari, som fick den äran. Feedback: ”Bra jobbat, allt fungerar som det ska!”. Det kändes bra och skönt. Nu hade jag visserligen inte förväntat mig annat än godkänt, men ändå. Nöjd.

Det är skönt att nu vara igång, på riktigt. Fatta alltså, jag högskolestuderar!

Riktigt lika smidigt gick det inte med Java-kursens första uppgift, som lämnats in runt månadsskiftet. Där visade det sig efter rättningen att jag och rättaren inte hade riktigt samma uppfattning om hur vårt strukturdiagram lämpligen ritas.

Jag sökte kontakt för att försöka reda ut det hela och fick svar, men har väl inte blivit så värst mycket klokare ännu. När jag sökte information på nätet hittade jag uppgifter som jag tyckte talar både för och emot min tolkning av hur man i diagram visar flerbent selektion. Jag har sedermera, på rättarens uppmaning, lämnat in riktig Java-kod som visar hur jag tänker min lösning och dessutom lagt till ett diagram som ser ut så som jag uppfattat att vi förväntades rita det.

Juryn är fortfarande ute, d.v.s jag har inte hört något mer sedan dess, men jag har svårt att se att jag inte skulle få godkänt i slutänden. Jag tycker att jag har visat att jag förstår, och dessutom tänkt självständigt. Det kan väl aldrig vara fel? Men, som vanligt, helt säker kan man aldrig vara så jag avvaktar vidare.

Andra Java-uppgiften, som är den första som ska bestå av faktisk programkod, är också inlämnad – den gjorde jag samma kväll som inspelningen lades upp, vilket dessvärre innebär att jag får vänta två veckor innan det dyker upp en ny uppgift att sätta tänderna i. Lite störande är det att man inte lägger ut samtliga uppgifter på en gång så att vi som vill det kan utföra och lämna in dem direkt. Jag förstår och accepterar dock att kursen är upplagd utifrån att deltagarna inte kan programmering, i Java eller alls, och att jag inte tillhör kursens målgrupp.

När det gäller kursen i datasäkerhet har jag lämnat in både första och andra uppgiften (varav endast den första är obligatorisk), men inte fått respons på någon av dem. Det känns trist, jag är allt lite nervös inför att få min dom.

Förutom att det är svårt med gränsdragningen lämnar också materialet, enligt min uppfattning, övrigt att önska då man inte är alldeles tydlig i definitionerna. Kanske är min programmerarhjärna för precis så jag behöver luckra upp i pallet.

Gällande att tenta Java i Stockholm känns det just nu smått oöverstigligt. Jag fick i och för sig (från KTH) ett svar med allmän information om tenterande.

Så här såg svaret ut:

Hej,

Du har kontaktat infocenter för att få information om hur man skriver tentor på KTH.

Här är länken.
http://www.kth.se/student/schema/tenta?programme=titeh

Mycket nära goddag yxskaft. Och här är informationen på den länkade sidan:

Externa tentander tas endast emot om KTH har platser över. Använd ovanstående söklänkar för att hitta en tenta som går på rätt tid och dag.

Kontakta sedan tentamensansvarig för kursen angående möjlighet att tentera, se lista över kontaktpersoner.

Behöver jag säga att listan i nuläget är väldigt lång och har ytterst få namn?

Jag hittar ingenting som tyder på att man kan eller vill beakta den lilla (men för mig ack så viktiga) detaljen om att det här handlar om en datorbaserad tenta med därtill hörande speciella krav. Och visst, det är fullt tillåtet att skriva tentan på papper, men hallå… det är programmering! Jag tänker använda en dator.

Så just nu ser det ut som om jag kommer att besöka Karlskrona i juni. Skoj!

Min ”att göra härnäst”-lista:

  • Python 2: Villkor, funktioner och loopar (måldatum: 2015-02-15)
  • Datasäkerhet 3: Administration och juridik (måldatum: 2015-02-15)

Sedan måste jag börja tänka lite på hur det blir under semesterveckan, då vi ju drar iväg till Lissabon. Som tur är är vi inte borta någon hel vecka, så studierna borde kunna hinnas med. Icke desto mindre är det något jag behöver fundera på, så att jag kan få till det så bra som möjligt. Utan stress och panikkänslor.

Annars… har jag idag gjort en intresseanmälan till något som kan bli roligt. Och läskigt. Återstår att se var det hela landar. Jag fortsätter röra i den här grytan.

Första riktiga officiella kursveckan

Jo, det visade sig att jag hade fel i mitt förra inlägg och att det faktiskt är den här veckan som är den första officiella kursveckan – på alla tre kurser jag ska gå.

Datasäkerhet

Så här långt är jag lite besviken på LiU, som uppdaterat dokumentet med den viktiga kursinformationen utan att tala om för oss att man gjort det och dessutom gjort det efter att kursen börjat – oavsett vilket av startdatumen man väljer.

Jag har självfallet utgått från att lagt kort ligger och blev sålunda idag väldigt förvirrad över att plötsligt se en helt annan information kring gällande datum.

Ursprungligt dokument (utskick via mail):

Kursen startar vecka 3, dvs. måndagen den 12 januari 2015. Efter att du lämnat in första veckouppgiften (senast två veckor senare, alltså den 26 januari kl. 16.00) kan du läsa kursen så fort eller långsamt du vill.

Uppdaterat dokument (senast uppdaterat 21 januari):

Kursen startar vecka 4, dvs. måndagen den 19 januari 2015. Efter att du lämnat in första veckouppgiften (senast två veckor senare, alltså den 2 februari kl. 16.00) kan du läsa kursen så fort eller långsamt du vill.

Kursens hemsida (antyder att inlämning är senast 26 januari):

Kursen börjar den 19 januari 2015, dvs. vecka 4. Den första veckan i kursen läser man in kapitel 1 i kompendiet och svarar på veckouppgift 1.”

Vad ska man tro? Antar att det kan vara säkrast att lämna in i morgon, trots att det där man lämnar in veckouppgifterna anges deadline 2 februari. Förvirrat.

Python

Jag har idag färdigställt och lämnat in min första uppgift för Python-kursen. Det satt långt inne, men klar blev den. Strax efteråt insåg jag att deadline är först nästa helg, men det är skönt att ha kommit igång ändå. Och det skulle inte göra något om jag råkade köra igenom kursen på halv- i stället för kvartsfart heller, men det är absolut inget jag tänker sikta på. Jag tar hellre gott om tid på mig för att leka och lära så mycket som möjligt, än att stressa igenom kursmomenten.

Java

Vad gäller Javakursen missade jag introduktionstillfället (som var ett online-möte) i onsdags eftersom jag helt enkelt sov. Kroppen behövde vila för att bekämpa virus och kompensera för en dålig, d.v.s. alltför kort, natts sömn.

Som tur är måste man inte vara med på dessa tillfällen live eftersom de spelas in och därefter kan beskådas i efterhand. Vilket jag gjorde senare samma dag.

Några saker jag lärde mig från introduktionstillfället:

  • Treveckorsupprop = lämna in övningsuppgift 1, senast söndag 1/2.
  • Inlämningsuppgifter skrivs på svenska eller engelska.
  • Deadline är alltid söndag – uppgiften klar innan nästa moment börjar.
  • Tentamen genomförs på BTH i Karlskrona (eller på annat lärosäte enligt överenskommelse) i juni. Exakt datum har dock inte blivit fastslaget ännu.

Så hoppsan, det verkar kunna bli en liten tentaresa här också.

Jag ska be att få återkomma längre fram med en beskrivning av mitt system, hur det nu kommer att se ut då. Någon sorts system måste man ju i alla fall ha att jobba efter om rätt kursmoment ska bli genomförda i rätt tid. Allra minst behövs koll på de deadlines som gäller – man får se till att påminna sig själv.

Min ”att göra härnäst”-lista:

  • Genomföra datasäkerhetskursens första inlämningsuppgift.
  • Genomföra Javakursens första moment tillika 3-veckorsupprop.
  • Påbörja det andra kursmomentet i Python-kursen.

Inleder akademisk karriär

(efterdaterar inlägget eftersom det skulle ha publicerats redan förra helgen)

I torsdags kväll kom ett mail som meddelade att jag fått ett studentkonto hos BTH, även känt som Blekinge Tekniska Högskola. Jag loggade givetvis in i Studentportalen och, som man tydligen gör, registrerade mig på de två BTH-kurser jag ska gå nu under våren. I Studentportalen finns allmän information och det är också här man registrerar sig på kurser och anmäler sig till tentor.

Därefter besökte jag lärplattformen, itslearning, där man hittar de kurser man är registrerad på, och kikade på materialet som fanns upplagt för respektive kurs. Python-kursen var den som så här långt i förväg (kursen börjar officiellt först den 19/1) hade mest information och för den behövde jag visst också registrera mig på dbwebb, som har både öppna delar och delar som endast är tillgängliga för registrerade användare. Vad jag kan se är det dbwebb som har allt material för Python-kursen (lärplattformen hänvisar hela tiden hit), och jag undrar om det inte rentav är möjligt för den nyfikne att registrera sig och själv genomföra kursen. Formell redovisning av kursmomenten görs nog dock på itslearning.

Registreringen på dbwebb gick mindre bra eftersom jag hade fyllt i min BTH-mailadress, som inte börjat fungera ännu, vilket förstås gjorde att jag inte kunde få det utlovade aktiveringsmailet. Jag mailade Mikael som har hand om siten (och är lärare på kursen) och delgav honom en beskrivning av problemet.

På vägen till jobbet nästa morgon fick jag svar om att han hade aktiverat mitt konto manuellt och satt ett lösenord åt mig. Väl på kontoret provade jag logga in men fick meddelande om att kontot inte var aktiverat så det blev till att maila igen. Vid lunchtid fick jag ny respons och denna gång gick det bra att logga in.

I hemmets lugna vrå, på kvällskvisten, klickade jag sedan runt på dbwebb och läste bl.a. om kursens innehåll. Eftersom de båda primära kursböckerna, Python for Informatics: Exploring Information och Think Python – How to Think Like a Computer Scientist, finns tillgängliga för nedladdning installerade jag dem på surfplattan och började läsa enligt instruktionerna för det första kursmomentet. Det vill säga, jag läste de två första kapitlen i var och en av böckerna.

En sak jag snabbt konstaterade var att den första boken nog passar bättre för någon som inte programmerat tidigare, än för mig – dock måste jag säga att jag uppskattade språkbruket, sättet att beskriva funktionen hos dator och program. Den andra boken kände jag mig mer hemma i och skrattade gott åt sådant som citat från Sherlock Holmes och anekdoter från Linux User’s Guide. Jag hoppas verkligen att den fortsätter i samma sköna stil, för då kommer jag att njuta.

Jag fortsatte på lördagen med att läsa artiklar, titta på video och säkerställa att jag hade en fungerande utvecklingsmiljö. Det vill säga: jag uppgraderade min befintliga Python (från 2.7.6 till 2.7.9) och installerade också Python 3 (3.4.2) eftersom det verkar vara just Python 3 jag ska lära mig på den här kursen.

Funderade också lite på vad jag ska använda för verktyg för att skriva min kod, om det kanske är dags att slå till och köpa den där licensen för Sublime Text. Jag provkörde texteditorn förra året och blev riktigt förtjust. Jag kände mig dock inte heller nu redo att fatta något beslut och lade det åt sådan. Sådant ger sig.

En annan sak som hände var att jag blev påmind om att jag behöver en större surfplatta för att någorlunda bekvämt kunna läsa böcker i PDF-format. Think Python fanns bara som PDF och HTML så jag blev tvungen läsa den på datorn och det var inte alls roligt. På lördagkvällen gjorde jag slag i saken och beställde en ny och större surfplatta. En Nexus 9 (32GB, wifi). Jag valde att få leveransen till sambons jobb eftersom det var DHL som skulle transportera paketet och de hittills misslyckats med att leverera paket till hemadressen ungefär varje gång.

google-play-nexus9

Fysiska böcker tänkte jag också köpa, men inväntar där respons från chefen då jag tror att min arbetsgivare gärna betalar dem åt mig. Trots allt blir ju min ökade kunskap något företaget kan dra direkt nytta av, så länge jag förblir anställd.

Antagningsbesked och tillhörande val

Jag blev antagen till alla kurser jag sökte, kan man säga. Uppifrån och ned på den av mig prioriteringsordnade ansökningslistan stod det ”Antagen” överallt, ända tills antalet poäng nått det maximala man får tacka ja till. Summa summarum blev det sex kurser med ”Antagen” och sex kurser med ”Struken”.

En av de strukna kurserna ansågs jag obehörig till eftersom den krävde 7,5 hp grundläggande programmering eller motsvarande kunskaper. Visserligen har jag motsvarande kunskaper, men det verkade inte värt besväret att leta reda på någon som kan skriva ut ett intyg för att formellt få lära mig Perl (som jag jobbat med ett antal år) och Python (som jag nosat på i tjänsten och på egen hand).

Av de sex kurser jag blev antagen till har jag nu tackat ja till tre. På kvartsfart.

En av kurserna är ett paket som omfattar fyra kurser och sträcker sig över en längre period (detta bör enligt mina beräkningar handla om två år). De övriga två kurserna är tänkta att klaras av i sin helhet under vårterminen 2015.

Det här är kurserna jag tänkte ge mig på:

Webbutveckling och programmering, 30 hp fördelat på:

Inledande programmering i Java, 7,5 hp
Grundläggande datasäkerhet, 5 hp

Vi kan väl säga som så att jag inte räknar med att behöva jobba ihjäl mig med den grundläggande Java-kursen, och inte heller anstränga mig över hövan med Python-programmeringen. Så då borde det väl främst vara datasäkerheten jag skulle kunna behöva oroa mig lite för – med tillhörande tentamen i Linköping.

Jag tar dock inget för givet, utan ställer in mig på att allt kan hända i vår.

I väntan på att det ska bli dags att börja de ”riktiga” studierna roar jag mig med att studera på MIT (fast det lär inte institutet i fråga veta särskilt mycket om). MIT har nämligen något som kallas Open CourseWare, där de tillgängliggjort en mängd utbildningar som vem som helst kan ta del av via nätet. Från webbsiten når man enkelt inspelade videoföreläsningar och diverse annat kursmaterial.

Sedan förra lördagen har jag tagit mig exakt halvvägs igenom kursen som heter Introduction to Computer Science and Programming, vilket innebär att jag tittat på 13 föreläsningar på ca 50 minuter vardera. Somligt är nog så grundläggande, men det är ändå (tror jag) nyttigt för mig. Jag får en stabil grund och lär mig begrepp jag tidigare saknat, även om jag har viss kännedom sedan tidigare.

Programmeringsspråket som används är Python, vilket är kul för att jag fuskat lite i det förut och för att det verkar vara ett ganska roligt språk att använda sig av. Det här ger möjligen ett litet försprång vad gäller den kurs jag ska läsa i vår.

Jag väntar otåligt på mina nybeställda, rabatterade och fraktfria glada strumpor.

Utöver MIT-föreläsningar ägnar jag min fritid åt att läsa och lämna feedback på sambons exjobbstext, samt hänga med i den stora bunten tv-serier vi försöker följa. Vilket av detta det blir beror mycket på hur sent jag kommer hem och hur trött i huvudet och ögonen jag är. Orkar jag tänka mycket kan det bli exjobbet, bara lite: föreläsningar. Annars tv. Om ögonen fått nog för dagen lyssnar jag på James Marsters som läser Vampire Empire. Eller någon kodnära podcast.

Att det är nästan jul rör mig inte i ryggen, även om jag är förvånad över att det är så få dagar kvar nu. Antar att min brist på julinsikt har mycket att göra med att vädret inte alls är eller varit vintrigt här i stan. Det är milt och förbaskat mörkt. Jag ser fram emot att få vara ledig ett par veckor och ha makten över min tid.

Ungefär samtidigt som jobbet drar igång efter helgerna gör även kurserna det. Därefter blir det en semestervecka igen i februari, då vi är ett gäng som åker till Lissabon med väninnan som fyller jämnt och firar eller flyr detta genom att resa. Sedan… vet jag inte mycket om vad som händer. Den som lever får se. Då.

Veckans nya programspråk: Python

Jag har fuskat en gnutta i Python förut, i tjänsten, men då har det handlat om enkla modifieringar av kod som någon annan skrivit. Nu skrev jag programmet själv, från början till slut. Det tog ett par fredagstimmar och sedan hade jag mitt (samma gamla vanliga) program även i Python-skrud. Programmet (eller scriptet, om man så vill) är ganska precis lika långt som det i Ruby och hälften så långt som det i Objective-C. Skillnaden mellan Ruby och Python blev mindre än jag förväntat mig, men det beror nog mycket på att jag egentligen programmerar i något annat språk. Det vill säga, att jag inte utnyttjar språken som en riktig kännare av dem skulle ha gjort.

De delar mitt program främst består av är kommandoradstolkning, inläsning från fil, mönstermatchning och datum-/tidsaritmetik. Det är intressant att se skillnaderna i hur man gör saker i respektive språk, och hur variabler ser ut innan de fått värden. Jag är säker på att jag missar vissa saker, men kan ju gå tillbaka framöver. Faktum är att jag tänker mig att jag ska göra just det i något senare skede, försöka sätta mig in i språket på djupet och verkligen förstå dess själ. Ja, det låter kanske smått högtravande och kommer väl förmodligen aldrig att bli av, men då får det vara så.

Just nu verkar det som om nästa version av Programmet blir skriven i Rust.

Etikettmoln