Utbildningskoncept: Javautvecklare

Java är ett av världens största programmeringsspråk och finns i stort sett överallt; i mobiltelefoner, bärbara datorer och spelkonsoler. Eftersom Java implementeras i allt fler system blir också allt fler företag nischade mot detta programmeringsspråk. Resultatet syns på arbetsmarknaden där efterfrågan är stor efter utvecklare.

Yrkesroller:

  • Javautvecklare
  • Applikationsutvecklare
  • Webbutvecklare
  • Mobilutvecklare

Mål med utbildningen:

Efter avslutad utbildning ska den studerande ha kunskaper om:

  • Objektorienterad systemutveckling med Java som huvudspråk
  • Kunskaper om och överblick över angränsande områden såsom testning, projektledning, databasprogrammering, frontendutveckling, mobilutveckling samt säkerhet.
  • Kunskaper om kvalitetskriterier och arbetsprocesser, framför allt agila arbetssätt utifrån kravställning och testning.
  • Kunskaper i versionshantering som verktyg i systemutveckling

Efter avslutad utbildning ska den studerande ha färdigheter i att:

  • Planera, implementera samt välja de verktyg och resurser som krävs för att utveckla mjukvara med Java som huvudspråk.
  • Självständigt kunna analysera en beställares behov och krav och utifrån dessa kunna resonera kring för- och nackdelar i val av tekniska lösningar.
  • Förstå och agera i olika roller i ett agilt arbetssätt.
  • Kunna kommunicera tekniska lösningar på engelska, både muntligt och skriftligt

Efter avslutad utbildning ska den studerande ha kompetenser för att:

  • Självständigt arbeta som utvecklare av backendsystem på ett säkert och kvalitetsmedvetet sätt med Java som huvudspråk.
  • Obehindrat arbeta med utveckling och underhåll, testning, dokumentation samt vidareutveckling av system.
  • Självständigt söka och ta till sig information om nya språk och nya tekniker inom området.
  • På ett kompetent och professionellt sätt kunna samarbeta och bidra i agila projekt och självständigt använda versionshantering.

Förkunsapskrav:

Grundläggande behörighet krävs samt:

Lägst betyget E (godkänt) på gymnasieskolans kurser:

  • Matematik 2 (Matematik B) eller motsvarande kunskaper
  • Programmering 1 eller motsvarande

Utbildningens kurser

  • Programmering i Java, 30 YH-poäng
  • HTML5 och CSS, 25 YH-poäng
  • JavaScript med jQuery, 25 YH-poäng
  • Projektkunskap, 20 YH-poäng
  • Avancerad Javaprogrammering, 25 YH-poäng
  • Praktisk databasdesign, 20 YH-poäng
  • Webbutveckling i Java, 25 YH-poäng
  • LIA 1 – Applikationsutveckling, 25 YH-poäng
  • Mobilutveckling med Java, 25 YH-poäng
  • Avancerad JavaScript, 25 YH-poäng
  • Testdriven utveckling i Java, 15 YH-poäng
  • Mjukvaru- och portfolioprojekt, 25 YH-poäng
  • Java web-services, 20 YH-poäng
  • LIA2 – Mjukvaruutvecklare, 30 YH-poäng
  • Examensarbete, 30 YH-poäng

Totalt : 400 YH-poäng | 2 årig utbildning
(5 YH-poäng innebär en veckas heltidsstudier)

Programmering i Java 30 yhp

Kursen syftar till att studerande utvecklar specialiserade kunskaper inom Javaspråket. De studerande får lära sig grundläggande strukturer samt mer avancerade språkelement. Historia kring språket och vad som skiljer det åt från andra objektorienterade språk. Målet med kursen är att den studerande genom teori och praktiska övningar, utvecklar sina kunskaper för objektorienterad programmering. Studerande ska skapa applikationer enligt god programmeringssed.

Kursen omfattar följande moment

  • Java-plattformen
  • Utvecklingsmiljö, kompilering, felsökning och enkel validering.
  • Javabegrepp inklusive klasser, metoder, struct, enum, interface, abstract, static
  • Kod- och namnkonventioner
  • Datatyper och collections
  • Flödeskontroll
  • Stränghantering
  • Minneshantering
  • Generics
  • Arv, aggregat och associationer samt polymorfism
  • Objektorientering och objektorienterad design
  • Paket hantering
  • Felhantering och exceptions

HTML och CSS 25 yhp

Kursen syftar till att studerande utvecklar specialiserade kunskaper i hur man skapar webbsidor med HTML5. Studerande får en introduktion till webben, HTML samt hur stilsättning sker med CSS. Målet med kursen är att den studerande genom teori och praktiska övningar, förstår hur en webbsida är skapad med HTML5 och CSS samt praktiskt genomför en implementation av en webbplats.

Kursen omfattar följande moment:

  • HTML5
  • Introduktion till HTTP
  • En webbsidas anatomi
  • Länkar
  • CSS
  • CSS-ramverk, till exempel Bootstrap
  • Sökmotoroptimering
  • Introduktion till webbsäkerhet
  • Utvecklingsverktyg

Javascript med jQuery 25 yhp

Kursen syftar till att studerande utvecklar kunskaper i hur man använder JavaScript för att skapa dynamiska websidor. Målet med kursen är att den studerande genom teori och praktiska övningar ska lära sig grunderna i JavaScript med jQuery-programmering för webben.

Kursen omfattar följande moment

  • Grunderna i JavaScript
  • Utvecklingsverktyg
  • Flödeskontroll
  • Eventhantering
  • DOM-manipulation
  • Funktioner
  • Interaktiva formulär
  • Grunderna i JQuery och JQueryUI
  • Animationer

Projektkunskap 20 yhp

Kursen syftar till att studerande tillägnar sig kunskaper i agil projektmetodik och terminologi för sin framtida yrkesroll och ökar därmed förståelsen för dessa. Kursen tar även upp processer som t.ex. SCRUM och Kanban. Målet med kursen är att den studerande genom praktiska övningar ska utveckla sina kunskaper och färdigheter i agil projektmetodik i utvecklings- och förvaltnings-projekt samt tillägna sig kunskaper kring vilka olika yrkeskategorier som en utvecklare kommer att arbeta ihop med i olika projekt (t.ex. produktägare, webbdesigner, systemutvecklare, projektledare, konceptutvecklare och testare).

Kursen omfattar följande moment:

  • Grundläggande agil projektförståelse
  • Ramverket Scrum
  • Processen Kanban

Avancerad Javaprogrammering 25 yhp

Kursen syftar till att studerande utvecklar avancerade kunskaper inom Javaspråket. De studerande får lära sig objektorienterade funktioner för modern utveckling.  Målet med kursen är att den studerande genom teori och praktiska övningar ska vidareutveckla sina kunskaper i objektorienterad Javaprogrammering. Studerande ska skapa applikationer enligt god programmeringssed och kunna använda mer avancerade språkkonstruktioner.

Kursen omfattar följande moment:

  • Lambda uttryck
  • Streams
  • Regular expressions
  • Serialisering
  • Date and time
  • Avancerad objektorientering
  • Threads
  • Annotations
  • Reflection
  • Design patterns

Praktisk databasdesign 20 yhp

Kursen syftar till att studerande utvecklar specialiserade kunskaper inom databaser, SQL och databasdesign. Målet med kursen är att den studerande genom teori och praktiska övningar ska utveckla sina kunskaper om databaser och hur man interagerar mot databaser från programspråket Java.

Kursen omfattar följande moment:

  • Databashantering
  • Databasspråket SQL
  • Normalisering
  • Constraints
  • Stored procedures
  • Index
  • Databasaccess från programspråket Java
  • SQL-Injection
  • Databasdesign

Webbutveckling i Java 25 yhp

Syfte och mål:  Kursen syftar till att studerande utvecklar specialiserade kunskaper i webbapplikationer med Java genom att ta upp viktiga koncept inom webbapplikationsdesign . Målet med kursen är att den studerande genom teori och praktiska övningar ska kunna producera webbapplikationer byggda i Java samt självständigt kunna arbeta med ramverk för dessa.

Kursen omfattar följande moment:

  • MVC, Model View Controller-strukturen
  • Request/Response mönstret
  • Routes
  • View-engines
  • Session och cookies
  • UI, User Interface
  • Webbsäkerhet
  • Infrastruktur
  • Moderna ramverk
  • Koppling till databas

Lärande i arbete 1 Applikationsutveckling 40 yhp

Kursen syftar till att studerande omsätter och utvecklar kunskap om och förståelse för arbetsuppgifter inom utbildningens område. Studerande ska kunna arbeta i team på ett strukturerat och ansvarstagande sätt med systemutveckling och/eller applikationsprogrammering. Målet med kursen är att den studerande genom praktiska övningar ska utveckla sina kunskaper och färdigheter i programvaruutveckling. Projektet omfattar allt från analys och design till arbete med implementering med Java/ JavaScript/ databashantering och/eller HTML/CSS eller motsvarande.

Kursen omfattar följande moment:

  • Hantering av olika delar av ett projekt på aktuellt företag
  • Professionellt, strukturerat och ansvarsfullt förhållningssätt
  • Utveckling av programvara
  • Utvecklarens roll i projekt och yrkesliv
  • LIA-rapport (skriftlig inlämning)
  • Redovisning av LIA, muntligt

Mobilutveckling med Java 25 yhp

Kursen syftar till att studerande utvecklar kunskaper för att praktiskt kunna skapa mobilapplikationer. Målet med kursen är att den studerande genom teori och praktiska övningar ska kunna utveckla enklare applikationer för smarttelefoner med relevanta ramverk.

Kursen omfattar följande moment:

  • Aktuell utvecklingsmiljö
  • Olika moderna plattformar
  • Skapa användargränssnitt
  • Anrop till externa API:er och webservices
  • SQL-lite
  • Accessibility

Avancerad JavaScript 25 yhp

Kursen syftar till att ge den studerande fördjupade praktiska kunskaper i hur man skapar moderna och komplexa webbapplikationer med hjälp av JavaScript både i webbläsaren och på servern och hur man med hjälp av TypeScript kan skapa mer felfria webbapplikationer. Den studerande får en introduktion i något i branschen aktuellt JavaScript-ramverk, exempelvis Angular eller React. Även förståelse och praktisk användning av olika verktyg för kvalitetssäkring, paketering och byggande av applikationer kommer att gås igenom.

Kursen omfattar följande moment:

  • Fördjupning i JavaScript inklusive nyheter i ECMAScript 2015 (ES6)
  • Övergripande introduktion till olika MV*-ramverk i JavaScript
  • Fördjupning i något JavaScript-ramverk exempelvis Angular eller React
  • Introduktion till serverapplikationer som använder Node
  • Få kännedom om olika JavaScriptverktyg och bibliotek för bygg, test, paketering och automatisering som exempelvis Gulp, Webpack, JSHint, ESLint
  • Pakethantering med npm
  • Introduktion till TypeScript

Testdriven utveckling i Java15 yhp

Kursen syftar till att studerande tillägnar sig kunskap i hur man använder TDD (Test-Driven-Development) som utgångspunkt i utvecklingsarbete samt förståelse för hur TDD kan förbättra utvecklad mjukvara. Målet med kursen är att den studerande genom teori och praktiska övningar ska lära sig applicera TDD i sitt systemutvecklande.

Kursen omfattar följande moment:

  • Unit testning med Junit
  • Test fixtures och asserts
  • Design patterns för tester
  • Stubs and mocks
  • Dependency Injection
  • Refactoring
  • Mocking frameworks
  • Teststruktur
  • Code coverage

Mjukvaruprojekt/Portfolioprojekt 25 yhp

Syfte och mål:  Kursen syftar till att studerande efter avslutad kurs ska ha provat och omsatt teoretiska och praktiska kunskaper i ett större projekt där fokus är på samarbete och agila arbetssätt. Målet med kursen är att de studerande i scrum-team ska ta fram ett fungerande system.

Kursen omfattar följande moment:

  • Att från en kravspecifikation via en produktägare ta fram ett säkert och välfungerande system med de tekniker som behandlats under föregående kurser

Java web-services 20 yhp

Kursen syftar till att studerande utvecklar kunskaper i att använda olika tjänster på internet (services) samt fördjupa sina kunskaper inom praktisk användning av APl:er. Målet med kursen är att studerande genom teori och praktiska övningar ska förstå hur tjänster används på internet i systemutveckling.

Kursen omfattar följande moment:

  • HTTP och HTTPs
  • SOAP vs REST services
  • Consume REST services
  • Analysera och förstå de vanligaste säkerhetshoten för web-services
  • Autentisering mot REST services med hjälp av aktuella tekniker och/eller verktyg
  • Förstå innebörden av Hypermedia för REST APl:er

Lärande i arbete 2 Mjukvaruutveckling 50 yhp

Kursen syftar till att den studerande efter avslutad kurs har provat och omsatt de teoretiska och praktiska utbildningsmomenten i yrkeslivet. Målet med kursen är att den studerande självständigt ska kunna utföra specialiserade arbetsuppgifter och tillgodogöra ny kunskap för sin yrkesroll som systemutvecklare.

Kursen omfattar följande moment:

  • Genomförande av ett projekt som genomförs enligt agila metoder
  • Implementering av design
  • Utveckla applikationer i Java och/eller JavaScript, självständigt eller i grupp
  • Kvalitetssäkring, kodgranskning och kodtestning
  • LIA-rapport (skriftlig inlämning)
  • Redovisning av LIA, muntligt

Examensarbete 30 yhp

Målet med kursen är att studerande självständigt utvecklar och fördjupar sin kunskap om och förståelse för hur ett teoretiskt och empiriskt arbete inom utbildningens område samt i rapportskrivning, om möjligt på uppdrag av en extern uppdragsgivare, utförs.   Vidare syftar kursen även till att uppfylla utbildningens övergripande examensmål, där den studerande ska kunna identifiera, formulera, analysera, lösa problem och utföra komplexa uppgifter kopplade till studieområdet.  Examensarbetet kan vara en empirisk undersökning, ett utvecklingsarbete, en litteratur- eller dokumentstudie. Examensarbetet ska även resultera i en examensrapport som ska innehålla beskrivning, resonemang, analys och reflektioner. Examensrapporten skall skrivas på svenska eller engelska.

Kursen omfattar följande moment

  • Göra en projektplan enligt förutbestämd mall
  • Självständigt genomföra ett arbete inom ramen för utbildningen
  • Skriftlig rapport och muntlig redovisning av arbetet

Tillbaka till samlingsvyn?