Contents

Datamatiker: 2. Semester

Here we go

På andet semester ramte Covid-19 vores forløb, posts resten af landet blev lagt ned. Det betød, at vi i marts fortsatte undervisningen 100% digitalt og at resten af semesteret forløb på samme måde - selv eksamen foregik med webcam. Det har været et planlægningshelvede for skolen, men de har løftet opgaven flot.

Andet semester bygger naturligt ovenpå al den læring der har fundet sted på 1. semester. Egentlig kender vi nu til grundlæggende, og objektorienteret programmering, og meget af det vi nu lærer er collections, frameworks og databasearkitektur.

/img/blog/typeAway.gif#blog-img-center

Linux, VM i skyen, MySQL, Tomcat

Så blev det mandag og det skulle fejres med et crash-course i Linux, uden desktop environment, og 100% fra konsollen.

Istedet for at bruge flere tusind kroner på studiebøger blev vi opfordet til, at købe serverplads i skyen til en virtuel maskine.
Denne købte vi hos Digital Ocean som kalder deres løsninger for “Droplets”.

På denne droplet gennemførte vi en opsætning med MySQL, Tomcat og justerede sikkerheden fra at være password sign-on til SSH med public/private keys. Sidstnævnte fik jeg i øvrigt ikke gjort korrekt, så min droplet blev hacket og brugt til “Malicious activity” og jeg måtte starte forfra - lesson learned ✔.

HTML, CSS

Lucky me - her følte jeg mig hjemme da jeg har arbejdet med HTML og CSS i en del år efterhånden. Foruden det basale arbejdede vi også lidt med Adobe XD og Bootstrap. Jeg tror, at de fleste vil give mig ret i, at det er nemt at lære og et frisk pust på dette tidspunkt - meeen… det er jo heller ikke rigtig programmering 😉

HTTP protokollen og netværk

En meget kort gennemgang af protokoller såsom IP, TCP, UDP og HTTP, samt lidt undervisning i netværk. Vi kigger på emner som IP-adresser, mac-adresser, DNS, porte, OSI-model, headers, forms og parametre mm. Et vigtigt emne som vi løbende vender tilbage til på studiet - Især på næste semester.

Tråde og performance

Hvordan skriver man et program som kan multitaske?
Threads og multi-threading og lidt om de komplikationer der kan være når flere threads forsøger at arbejde med den samme data.
Et enormt brugbart og spændende emne, men samtidigt enormt komplekst. Vi brugte ca. en uge på emnet og kunne efterfølgende takke vores TomCat server for at håndtere threading for os.

Database

Vi vender tilbage til vores gamle ven fra 1. semester og skruer op for sværhedsgraden. Vi arbejder endnu mere med normalformer og genererer ER diagrammer vha. softwaren Workbench.

Samtidig skriver vi en masse SQL og kører den på vores online server “I skyen”. Det betyder også, at det er slut med nemme database-passwords og at passwords til databasen skal ud af programmets kildekode (Så vores passwords ikke bliver fisket ud fra en offentlig tilgængelig github.) Det gør man gøre vha. environment variables.

Webprogrammering backend

Vi lærer at udvikle Java-programmer med JSP og JSTL som kan pakkes til .WAR filer og deployes på vores tomcat server. Programmet er nu live online!

Vi studerer desuden design patterns og lærer om det famøse MVC: model-view-control, front controller, command patterns og singleton designmønstre. Det er abstrakte emner hvor nyttegraden kan være svær at forstå som begynder, men vi ser værdien af disse lidt senere i semestret.

Webprogrammering frontend og “Cupcake”

Her skruer vi op for design-delen og laver vores første semesterprojekt - “Olsker Cupcakes”.
Der er tale om en fiktiv webshop som vi udvikler fra bunden. Lidt posts nogle burger-shops kan man i vores shop “Bygge” sin egen cupcake og bestille den. På back-end har vi skrevet et administrationsmodul som butikken kan anvende til at håndtere ordrer i og registrere kunder.

UML, Versionsstyring m. GIT, Virksomhed og rapport

Vi brugte kort tid på at lære git/github og blev opfordret til at søge læring til samme selv. I den forbindelse var en kombination af YouTube og LinkedIn Learning ret god! (Sidstnævnte var gratis igennem skolen). Skolen arrangerede desuden en valgfri workshop i git og github.

Desuden arbejder vi med flere typer UML diagrammer til at dokumentere vores kode visuelt og introduceres til en rapportskabelon. Sidst, men bestemt ikke mindst, introduceres vi til SCRUM projektformen og arbejder efter denne resten af semesteret hvor der skal laves eksamensopgave.

SVG Workshop

Scaleable Vector Graphics.
Enormt smart format der “Producerer” 100% skalérbare billeder. Når først billedet er i .svg-format kan det altså printes (Eller vises på en skærm) på størrelse med et frimærke eller et fodboldstadion uden at kvaliteten forringes. Vi lærer hvordan .svg billeder hænger sammen således, at vi kan generere dem selv.

Test og kvalitet

Vi går endnu mere i dybden med unit tests, white/black box, acceptance, integration mm.
Vi bliver “Truet med”, at på 3. semester, er kode som der ikke er skrevet tests til, ikke “Gyldig afleveret” kode.

Fejlhåndtering og logger

Vi genopfrisker Exceptions fra 1. semester og bygger lidt på.
Vi lærer at skrive vores egen “Logger” som altså kan lave 100% skræddersyede log-filer så vi kan se hvad der sker i vores program. Enormt smart!

Eksamen

The moment of truth.
På 2. semester bestod vores projekt i, at lave en hjemmeside hvor brugere kunne sende forespørgsler på en carport efter deres egne mål. Denne forespørgsel skulle generere flere svg-tegninger som afspejler kundens mål, således at tegningerne både kan bruges som arbejdstegninger, men også til visualisering.

Desuden regnede vores program en komplet pris samt en stykliste og vi implementede en CRUD (Create, Read, Update, Delete) så programmets ejere havde mulighed for at rette i styklister, standardmål mm.
I min gruppe havde vi sat barren højt og lagde mange timer i projektet, som også blev super godt.

Tak for denne omgang

Trods Coronakrisen og det kaos der fulgte med er vi kommet godt igennem 2. semester.
Vi har godt styr på den egentlige programmering og er blevet introduceret til nogle tungere emner og arbejder nu mere med web og servere. Det har været hårdt, især eksamensprojektet da vi havde høje ambitioner og det har heldigvis også kunne betale sig.

Nu er det tid til at holde skolefri, men vi er blevet anbefalet at flirte med Javascript i vores ferie så vi er godt rustet til 3. semester - Det glæder jeg mig til!

Tak for kampen 🍻

Du kan læse mere om de øvrige semestre her: