Kursen oophp (v3)
Kursen Objektorienterade webbteknologier, a.k.a. oophp, fokuserar på objektorienterad programmering med PHP tillsammans med databasen MySQL.
Kursen arkiverad.
Sista kurstillfället på denna versionen av kursen, oophp-v3, gavs vårterminen 2017.
Kursen är öppen för restexamination fram till och med vårterminen 2019.
Kursen ersätts med en vidarutvecklad version, oophp-v4, från och med vårterminen 2018.
Kursen hanterar objektorienterade programmeringstekniker i PHP med fokus mot webbprogrammering och webbutveckling av webbapplikationer och webbplatser.
Grundläggande programmering i PHP gås igenom och därefter fokuseras på de objektorienterade konstruktionerna. Som databas används MySQL och PHP Data Objects används för att koppla PHP mot databasen.
Skriptspråket PHP och databaser med SQL är grundtekniker för att tillsammans med HTML och CSS bygga databasdrivna webbapplikationer.
Kursen är praktiskt upplagd och via övningar byggs webbapplikationer med objektorienterad PHP. Mot slutet genomförs ett projekt där de olika övningarna formar en mer avancerad helhet i form av en webbapplikation. All programmering sker i en webbaserad miljö med en Unix-baserad webbserver (Apache), webbutveckling med HTML5 och CSS3 samt en databasserver (SQL och MySQL).
Vill man utveckla professionella webbapplikationer så krävs en riktigt god förståelse för programmering och databaskopplingar på server-sidan. Denna kurs ger dig en bra start via förståelse för användning av objektorienterad PHP tillsammans med SQL (och HTML och CSS).
Tidigare version av kursen
Om du gick kursen tidigare, fram till och med vårterminen 2013, så finns kursmaterialet i oophp version 1.
Om du gick kursen tidigare, fram i och med vårterminen 2016, så finns kursmaterialet i oophp version 2.
Om du påbörjat en äldre version av kursen så skall du också slutföra denna versionen av kursen (eller göra om den nya kursen från start).
#Förkunskaper
Det formella förkunskapskravet är:
Avklarad kurs i “Databaser, HTML, CSS och skriptbaserad PHP-programmering” eller avklarade kurser inom webbutveckling och webbprogrammering motsvarande 15hp.
#Innehåll
Kursen omfattar följande områden:
PHP-programmering i webbmiljö, syntax, semantik, koppling mot databaser, funktionsorienterad programmering, datastrukturer, algoritmer och inbyggda funktioner.
Objektorienterad PHP-programmering med språkkonstruktioner och begrepp. Objektorientering som sätt att strukturera och återanvända kod. Enkla designmönster.
SQL och databasen MySQL tillsammans med PHP Data Objects.
Webbapplikationer, utveckling av webbapplikationer där tekniker såsom webbserver (Apache), PHP, HTML, CSS, och SQL integreras.
Användning av verktyg och tekniker som lämpar sig för utveckling av webbapplikationer, tex UNIX/Linux, installation på extern webbserver, ssh, ftp/sftp, databasklienter såsom PHPMyAdmin, MySQL Workbench och kommandoklienter.
#Mål
#Kunskap och förståelse
Efter genomförd kurs skall studenten:
- kunna redogöra för utveckling med objektorienterad PHP-programmering och databaser i webbmiljö, genom att skriftligen beskriva och sammanfatta erfarenheter och observationer från övningar och projekt.
#Färdighet och förmåga
Efter genomförd kurs skall studenten:
- kunna tillämpa de objektorienterade programmeringsparadigmen genom praktiska övningar och projekt.
- självständigt, utefter en specifikation, kunna utveckla och driftsätta en webbapplikation där objektorienterad PHP-programmering och databaser har en central roll.
- kunna hantera de verktyg och miljöer som används vid utveckling av databasdrivna webbapplikationer.
#Kursmoment
Kursen är uppdelad i kursmoment där varje kursmoment uppskattas till 20 studietimmar studerande i form av programmering, undersökning, läsande, övningar, uppgifter, redovisning och eftertanke. Alla kursmoment skall redovisas och du samlar alla redovisningar i din me-sida som är din webbplats som innehåller allt du gör under kursen.
#Kmom01: Objektorientering i PHP
Kom igång med klasser i PHP och lär dig samtidigt hur grundstrukturen i ett PHP-ramverk kan se ut. Du bygger en me-sida i ditt egenskapade ramverk och du tränar på att bygga klasser och kod både i och utanför strukturen av ramverket.
Som ett sidoprojekt kommer vi igång med MySQL/MariaDB som databas och lär känna dess klienter och grunderna i SQL.
Läs instruktionen till kursmoment 01.
#Kmom02: OO-programmering i PHP
Vi fortsätter träna på programmering med klasser och objekt, i och utanför ramverket. Det blir en närmare bekantskap med ramverkets delar och hur du kan tänka när du integrerar din egen kod i ramverket. Du bekantar dig med begrepp som interface och traits.
Kursmomentet har fokus på ett par friare programmeringsövningar så du kan träna på objektorienterade konstruktioner och ramverksprogrammering.
Läs instruktionen till kursmoment 02.
#Kmom03: PHP PDO och MySQL
Detta kursmoment fokuserar på PHP PDO och databasen MySQL. Du får en inledande artikel som visar hur det fungerar och därefter får du på egen hand koda motsvarande funktionalitet in i ramverket Anax lite.
Det blir fokus på hur man löser inloggning, konton och administration av dessa. Det blir en hel del formulär, routes och kopplingar mot databasen. Vill man förenkla så handlar det om att lösa CRUD (Create, Read, Update, Read) för en webbapplikation mot en databas.
Läs instruktionen till kursmoment 03.
#Kmom04: Lagra innehåll i databasen
Att lagra innehåll i databasen för att sedan kunna visa upp det i webbplatsen är en kärnfunktionalitet i många webbplatser. Så här långt har vi en fungerande webbplats om använder sig av databas och objektorienterad programmering. Vi fortsätter att använda de teknikerna för att bygga grunden i en databasdriven webbplats där innehåll lagras i databasen och kan redigeras av användaren (CRUD). Vi skall sedan visa upp innehållet som vanliga sidor i webbplatsen samt en blogg.
Läs instruktionen till kursmoment 04.
#Kmom05: Programmera i databasen
Kursmomenten handlar dels om att programmera en databas med transaktioner, lagrade procedurer, triggers och inbyggda funktioner.
Du får implementera en större databasmodell och skriva SQL där du använder programmeringskonstruktioner för att skriva koden i SQL.
Du får även bygga en backend till en webbshop.
Läs instruktionen till kursmoment 05.
#Kmom06: Enhetstestning
Nu börjar vi närma oss slutet och vi finpolerar vårt Anax Lite genom att komplettera med enhetstester och vi förbättrar databasens prestanda med index.
När det gäller enhetstestning så jobbar vi med PHpUnit och vi försöker hitta klasser som är testbara och vi ser hur bra vi lyckas uppnå kodtäckning.
Läs instruktionen till kursmoment 06.
#Kmom07/10: Projekt och examination
Avslutningsvis gör du ett projekt enligt en specifikation. Projektet är det sista som du gör och tillsammans med alla redovisningar som finns på din me-sida så används detta som underlag för att examinera dig från kursen.
Läs instruktionen till kursmoment 07/10.
#Kurslitteratur
Måste jag skaffa kurslitteraturen?
#Kurslitteratur
Som kurslitteratur har jag valt följande böcker. Det är en god idé att läsa igenom dessa under kursen, det finns läsanvisningar till dessa i samband med varje kursmoment.
- Beginning PHP and MySQL: From Novice to Professional – Gilmore, W
En tjockare bok för den som vill ha en mer komplett vy över PHP och MySQL från början.
#Referenslitteratur
Följande böcker har jag valt som referenslitteratur. De kan vara bra att ha tillhands och ger lite extra läsmöjligheter. De behövs inte för att klara kursen men vill du bemästra kursens område så är dessa böcker bra startpunkter. Välj och vraka och ta ett eget beslut om de böcker du vill använda.
Webbutveckling med PHP och MySQL – Montathar Faraon
En svensk bok som ger en god intro för den som är ny i PHP och programmering. Innehåller en del PHP och en del databaser och MySQL. Det är ingen objektorienterad PHP. Boken passar för den som behöver ett stöd i att lära grunderna i PHP eller hellre köper denna boken än boken i Databasteknik.Databasteknik – Radron-McCarthy och Risch
Komplett med det man vill veta om databasteknik, både grunder, modellering och SQL. En databasbok helt enkelt.HTML och CSS-boken – Rolf Staflin
En stabil bok för att komma igång med HTML och CSS.
#Läsanvisningar
Det finns inga specifika läsanvisningar till kurslitteraturen.
#Lektionsplan och rekommenderad studieplan
Läser du kursen inom ramen för programmet Webbprogrammering (campus/distans) så finns det en rekommenderad studieplan inom programmet.
Läser du kursen som en del i ett kurspaket så finns det en studieplan som är kopplad till kurspaketet.
Vissa av kurstillfällena har även en lektionsplan som du får i samband med kursstart. Lektionsplanen visar de tillfällena som är schemalagda träffar.
Finns det en lektionsplan så finns ofta bokningar av salar gjorda i bokningsschemat.
Studieplan, eventuell lektionsplan och eventuellt schema finns tillgängligt via kurstillfället på ITs.
Läs mer om den rekommenderade studieplanen och lektionsplanen.
#Lärarstöd och handledning
Schemalagda labbtillfällen, hangouts samt forum och chatt de viktigaste källorna för handledning. Läs om handledning och hjälp-till-självhjälp.
#Ladok
Enligt kursplanen finns ett antal ladokmoment och de är kopplade till kursens kursmoment enligt följande.
Kursens moment | Ladok moment enligt kursplan |
---|---|
Kmom01 + kmom02 | Inlämningsuppgift 1 á 2.5hp |
Kmom03 + kmom04 | Inlämningsuppgift 2 á 2.5hp |
Kmom07 - kmom10 | Inlämningsuppgift 3 á 2.5hp |
Totalt omfattar kursen 10hp.
Läs mer om rapportering av resultat.
#Betygsättning
Det finns ett särskilt dokument som beskriver hur bedömning och betygsättning sker.
#Kursutvärdering och kursutveckling
Det finns ett särskilt dokument som beskriver hur arbetet med kursutvärderingar och kursutveckling sker. Det är oerhört viktigt för mig att du säger till vad du tycker om kurs och kursmaterial, du kan alltid hojta till i både forum, chatt eller mail.
Läs om hur jag jobbar med kursutvärdering och kursutveckling.
#Kursplan
Kursplanen är kursens formella dokument som fastställts av högskolan. När kursen utvärderas görs det mot kursplanen. I kursplanen kan du läsa om kursens syfte, innehåll, mål, generella förmågor, lärande och undervisning, bedömning och examination, litteratur, mm.
Kursen heter numer “Objektorienterade webbteknologier”.
Du hittar kursplanen genom att söka på kurskoden PA1440 via BTH’s hemsida.
Tidigare hette kursen “Databaser och objektorienterad programmering i PHP”.
Fram till och med höstterminen 2016 hade kursen kurskoden DV1485.
Fram till och med vårterminen 2013 hade kursen kurskoden DV1127.
#Revision history
- 2017-03-24: (A, mos) Info om kmom01-04, [äldre versioner finns](kurser/oophp-v2).