Klientprogrammering och systemintegration (YRGO)

From Juneday education
Jump to: navigation, search

Contents

Kurserna Klientprogrammering och Systemintegration

Klientprogrammering

Från YRGOs kursplan.

Innehåll

Kursen behandlar mjukvaruutveckling av klienter som konsumerar Webbtjänster i ex vis REST.

Mål

Efter genomgången kurs skall den studerande kunna:

  • Arbeta med strukturerad programmering för att göra koden överblickbar och hanterlig
  • Kommunicera med ämnesrelaterad terminologi
  • Beskriva tekniska skillnader mellan olika gränssnitt
  • Utveckla komplexa Windowsapplikationer
  • Planera struktur, funktioner och gränssnittsdesign
  • Förstå begreppen interaktionsmodell, människa‐dator‐interaktion
  • Hantera händelser
  • Felsöka och lösa problem
  • Anpassa applikationsutveckling för olika plattformar
  • Skriva säker kod med avseende på
    • Indatakontroll
    • URL‐kontroll
    • Datatypskontroll och Datumkontroll

Systemintegration

Från YRGOs kursplan.

Innehåll

Integration mellan olika delar av ett IT-system är en allt viktigare kompetens för en utvecklare. Det är viktigt att förstå hur kommunikation maskin till maskin går till och vilka format som krävs för att det skall fungera. Den dominerande databäraren för maskin till maskinintegration är för närvarande xml. Import och export av data från och till tredje part via xml som databärare är centralt för kursen. Detta gäller både utifrån ett tekniskt och organisatoriskt perspektiv.

Mål

Kursen innehåller två huvudmoment dels hur man hanterar den sändande parten och dels hur man hanterar den mottagande. Efter genomgången kurs skall den studerande ha kunskaper om hur man på den sändande sidan:

  • skapar xmldokument
  • postar till ett transportlager ex vis folder, email eller kö
  • På mottagande sida:
  • tar emot, packar upp, verifierar dokumentet mot ett schema
  • felhantering, importhantering

Vårt upplägg

Vi kommer slå ihop klientprogrammering och systemintegration genom att under terminen genomföra en längre laboration med en Servlet-baserad tjänst som hämtar data från en databas och erbjuder klienter XML, JSON eller CSV med den data som begärs och hämtas från databasen. En Android-klient hämtar data och presenterar i ett Android-gränssnitt för användaren.

I laborationen lär vi oss att utveckla och testa vår kod genom att använda bash och kommandoradsverktyg för att testa såväl server som klient.

All Java-utveckling (fristående applikationer och serversidan) sker med en editor och kompilering i terminal. Eleverna får välja att använda en IDE om de föredrar det men lärarna använder, lär ut och handleder "ren" utveckling med editor och kompilering via terminal. För Android-delen används Android studio.

Moment och tekniker som tas upp i kurserna

  • Skal (bash)
  • Skalprogrammering
  • Nätverksprogram och -verktyg
  • Servlet-teknik
  • JSON
  • XML
  • Vissa designmönster tas upp översiktligt (t ex Builder, Singleton och version av Factory)
  • JDBC
  • Android
  • Trådar (översiktligt)
  • Nätverksprogrammering (kortare laboration med Chat - client/server)
  • Skiktad (egetnligen: lagrad) arkitektur (översiktligt)
  • Class loading (översiktligt)


Extragrejer

Vi vill få in förslag i hopp om att kunna följa upp dessa. Kolla följande länk: Yrgo2017

Peta in dina önskemål (gärna med motivation) direkt i dokumentet!!!

"Kapitel" i Wiki-böckerna att läsa

Kapitel (under utveckling)

Kapitel Antal sidor (vid utskrift) Artefakter Lecture date
Bash-Installation X pages (Text Done!, Slides N/A, Videos (1 English, 2 Swedish) Done!, Exercises N/A) 2017-01-18
Bash-introduction X pages (Text Done!, Slides N/A, Videos (2 English, 1 Swedish )Done!, 6 Exercises Done!) 2017-01-18
Bash - Files and Folders 5 pages (Text Done!, Slides Done!, Videos Done!, Exercises Done!) 2017-01-25
Bash-structure 7 pages (Text Done!, Slides N/A, Live coding Videos (1 English, 1 Swedish) Done!, 3 Exercises Done!) 2017-01-25
Bash-Standard streams 10 pages (Text Done!, Slides Done!, Videos 2+5 Swedish Done!) 2017-01-25
Scripts - Introduction X pages (Text Done!, Slides Done!, Videos Done!, Exercises Done!) 2017-02-01
Exercises - Scripts - Introduction 4 pages (5 Exercises done) 2017-02-01
Control flow 4 pages (Text Done!, Slides Done!, Videos Done!) 2017-02-01
Exercises - Control flow 11 pages (15 Exercises done) 2017-02-01
Output and return X pages (Text Done!, Slides Done!, Videos Done!) 2017-02-01
Exercises Output and return 4 pages (6 Exercises done) 2017-02-01
Network Tools X pages (Text Done!, Slides Done!, Videos Done!) 2017-02-08
Exercises - Network Tools 12 pages (32 Exercises Done!) 2017-02-08
Scraping data from the web X pages (Text Done!, Slides Done!, Videos Done! (4 Swedish)) 2017-02-08
Exercise - Scraping data from the web (tv.nu) 12 pages (12 Exercises Done!) 2017-02-08
Introduction to XML X pages (Text Done!, 2 Slides Done!, 3 Videos Done!) 2017-02-08
Exercises - Introduction to XML 7 pages (7 Exercises Done!) 2017-02-08
Introduction to JSON X pages (Text Done!, 2 Slides Done!, 5 Videos Done!) 2017-02-08
Exercises - Introduction to JSON 11 pages (6 Exercises) 2017-02-08
Introduction to layered architectures X pages (Text Done!, Slides Done!, Videos Done! (1 videolecture in 6 parts, Swedish), links Done!) 2017-02-22
Exercises - Introduction to layered architectures 9 pages (6 Exercises Done!) 2017-02-22
Database:Getting started with SQLite X pages (Text Done!, Slides Done!, 2 Swe Videos Done!) 2017-02-22
Exercise - Database:Getting started with SQLite X pages (Exercises Done!) 2017-02-22
Introduction to Winstone X pages (Text Done!, Slides Done! (Eng), Videos Done!) 2017-02-22
Exercise - Introduction to Winstone 10 pages (6 Exercises Done!) 2017-02-22
Introduction to JDBC X pages (Text Done!, Slides Done!, Swedish Videos Done!) 2017-03-01
Exercise - Introduction to JDBC 8 pages (8 Exercises Done!) 2017-03-01
Creating XML from Java X pages (Text Short..., Slides Done!, Videos Done!) 2017-03-01
Exercises - Creating XML from Java 8 pages (6 Exercises Done!) 2017-03-01
Creating JSON from Java X pages (Text Done!, Slides Done!, Videos Done!) 2017-03-01
Exercise - Creating JSON from Java 7 pages (5 Exercises Done!) 2017-03-01
Using a factory for creating XML or JSON X pages (Text Done!, Slides Done!, Videos Done!) 2017-03-08
Exercise - Using a factory for creating XML or JSON (may be removed) 5 pages (Exercises Done!) 2017-03-08
Servlet serving XML or JSON X pages (Text TODO, Slides Done!, Videos Done!, Links TODO) 2017-03-08
Exercise - Servlet serving XML or JSON X pages (Exercises Done! (very simple exercise) 2017-03-08
Android:Introduction X pages (Text: Done, Videos: Done) 2017-03-15
Android:Setting up your development environment X pages (Exercises TODO) 2017-03-15
Android basics X pages (Text: Done!, Slides: Done!, Videos: Done) 2017-03-15
Exercises on Android Basics X pages (Exercises: Done, Solutions: Done) 2017-03-15
Resources X pages (Text short, Slides Done! (11 pages), Videos Done!) 2017-03-15??????
Declare - Typing variables X pages (Text (short), Slides Done!, Videos done) 2017-04-26
Exercises - Declare - Typing variables X pages (Exercises TODO) 2017-04-26
Bash Functions - Introduction X pages (Text (short), Slides Done!, Videos done!) 2017-04-26
Exercises - Bash Functions - Introduction X pages (Exercises TODO) 2017-04-26
Servlet - HTTP response codes X pages (Text TODO, Slides Done!, Videos done!, Links: Started) 2017-05-03
Exercise - Servlet - HTTP response codes X pages (Exercises Done!) 2017-05-03
RequestDispatch X pages (Text TODO, Slides Done!, Videos TODO) 2017-05-03
Exercise - RequestDispatch X pages (Exercises Done!) 2017-05-03
TODO X pages (Text, Slides, Videos, Exercises) date


Preliminär planering och schema

2017-01-18 - Kursintroduktion och installation av Cygwin

Filmer att se innan denna dag

Förmiddag

  • Presentation av alla (lärare och elever) i kursen
  • Introduktion till kursen
  • Bash installation chapter (45m)
    • Install Cygwin if you are running Windows - if you are running GNU/Linux or Mac OS, you don't need this!
    • Install packages in Cygwin or if you are running GNU/Linux or Mac OS on your computer:
      • bc
      • sqlite3
      • perl-libwww-perl
      • zip
      • unzip
      • tree
      • telnet
      • nc (netcat)
      • wget
      • w3m
      • curl
      • tar, gz
      • cal
  • Install an editor - e.g. Atom
  • Make sure Java is on the PATH - try java -version and javac -version

Eftermiddag

2017-01-25

Filmer att se innan denna dag

Förmiddag

Eftermiddag

2017-02-01

Filmer att se innan denna dag

Förmiddag

Eftermiddag

2017-02-08

Kommentar: tuff dag ;-)

Filmer att se innan denna dag

Filmer länkas från följande kapitel

Förmiddag

Eftermiddag

2017-02-15

Sportlov Lärarna kommer inte vara på plats denna vecka. I stället får ni i uppgift att säkerställa att ni är "ikapp".

Se till att ni har:

  • Gjort alla övningar från alla tidigare föreläsningar (se schema för vilka övningar det gäller)

Självklart förstår vi att ni kanske kör fast eller har frågor om övningarna. Samla ihop alla frågor så tar vi det nästa lektionstillfälle!

Det är viktigt att alla är "ikapp" inför nästa vecka! Samla på er frågor så löser vi eventuella oklarheter nästa gång vi träffas!

2017-02-22

Filmer att se innan denna dag

Förmiddag

Eftermiddag

Övrig tid ägnas åt att komma ikapp med övningar (handledning) samt att komma igång med inlämningsuppgiften

2017-03-01

Filmer att se innan denna dag

Filmer länkas från följande kapitel:

Förmiddag

Eftermiddag

2017-03-08

Filmer att se innan denna dag

Filmer länkas från följande kapitel:

Förmiddag

Eftermiddag

2017-03-15

Prepare

  • installera Android Studio

Filmer att se innan denna dag

Kolla igenom följande kapitel:

Förmiddag

Eftermiddag

  • 13.00 - 13.45: Övning / Android:Exercises_Android_basics
  • 14.00 - 14.45: Live-kodning / Android:Exercises_Android_basics
  • 15.00 - 15.45: Valfritt arbete

2017-03-22

Filmer att se innan denna dag

Check out the videos in the following chapters:

Förmiddag

Eftermiddag

2017-03-29

Filmer att se innan denna dag

Check out the videos in the following chapters:

Förmiddag

  • 09.00 - 09.45
  • 10.00 - 10.45
    • Project work
  • 11.00 - 11.45
    • You decide

Eftermiddag


Moving forward:

  • Lektion 20 Android: Storage, database (90 min)
  • Lektion 21 Android: Storage, database and layers (45 min)

2017-04-05

Filmer att se innan denna dag

Förmiddag

Eftermiddag

2017-04-12

PÅSKLOVsvecka

Lärarna är ej på plats denna vecka. I stället får ni i hemuppgift att säkerställa att ni sett alla föreläsningsfilmer från samtliga tidigare lektioner samt gjort alla övningsuppgifter. Naturligtvis är det normalt att köra fast eller inte förstå alla övningar eller lösningsförslag. Skriv ned alla frågor så att vi kan ta dem gemensamt vid nästa lektionstillfälle och reda ut eventuella oklarheter.

Det är viktigt att alla har gjort samtliga övningar (i den mån ni inte kört fast) samt sett alla föreläsningsfilmer. Vi vill vara så effektiva som möjligt under de dagar då vi träffas, så ni får bidra med att ha läst på, sett filmerna och försökt göra övningarna samt vara så specifika som möjligt med de frågor ni har när ni kört fast eller inte förstått.

Alla övningar och föreläsningar bygger på att ni har de kunskaper som vi övat på och undervisat om i föregående lektioner. Ju längre man väntar med att fråga, desto svårare blir det att komma vidare. Försök att inte halka efter med övningar och filmerna så att vi kan fokusera vår handledning på aktuella ämnen.

Vi vet att det är en tuff kurs och att det kan kännas mycket. Arbeta därför gärna ihop mellan lektionerna och hjälp varandra. Det är inte fusk att fråga en klasskamrat när man kör fast! Det är däremot ert eget ansvar att ni lär er av den hjälp ni får. Det är ofta så att man lär sig själv mycket genom att förklara för andra. Så att göra övningar och labben i grupp brukar vara lärorikt för dem som svarar på frågor såväl som för dem som ställer frågorna!

Ibland är det naturligtvis även så att våra uppgifter eller laborationer är otygligt formulerade. Det kan vara en orsak till att man kör fast - man förstår helt enkelt inte vad det är vi vill att ni ska göra. Genom att arbeta i grupp så kan det vara skönt att höra om fler inte förstått våra formuleringar - eller få en förklaring till hur andra tolkat vad vi skrivit. Vi tar gärna emot förslag på hur vi kan bli tydligare!

2017-04-19

Filmer att se innan denna dag

Förmiddag

Eftermiddag

2017-04-26

Filmer att se innan denna dag

Filmer länkas från följande kapitel:

Förmiddag

Eftermiddag

2017-05-03

Filmer att se innan denna dag

Filmer länkas från följande kapitel:

Förmiddag

Eftermiddag

  • 13.00 - 14.00 RequestDispatch (front-end servlet skickar vidare) TODO
  • 14.15 - 15.00 Övningar request dispatch TODO

Resterande tid ägnas till handledning för inlämningsuppgiften

2017-05-10

Rapportskrivning

2017-05-12

Deadline för inlämningsuppgiften

2017-05-17

Filmer att se innan denna dag

  • Ingen film denna dag

Förmiddag

  • Labbpresentationer - ni presenterar era lösningar

Eftermiddag

  • Labbpresentationer - ni presenterar era lösningar

Laboration (inlämningsuppgift)

Laborationsuppgift

Möjliga extraföreläsningar när tid finns

Här finns lite extraföreläsningar att välja bland om det blir tid över eller om önskemål från eleverna uppstår.

Kort introduktion till AJAX

  • En kort introduktion till AJAX
    • En webbsida som föreslår namn allteftersom man skriver in text - servlet som back-end.
    • En webbsida som visar hur långt det är tills bussen kommer - servlet som back-end
    • Samma som ovan men busshållplatserna och riktning väljs från lista och knappar
    • AJAX som använder en XML-fil som back-end

Nätverk och trådar

  • En chat-server skriven i Java och klienter skrivna i Java

Course TODO

Den här sektionen är en lista att beta av för att se till att allt material blir gjort. Främst är det viktigt att alla moment i labben har en motsvarande föreläsning, film och övningar.

Videos for existing pages (sort list in priority order later)

See table above instead. Green means Done!, Yellow means Partly done. White means TODO. Red means run, son! Numbers add up to nothing.

Android part

  • Make chapter pages and exercises for the needed lectures related to the lab:
    • Henrik fyller på här

Bash part

  • Make chapter pages and exercises for the needed lectures related to the lab:
    • TODO: identifiera vilka bash-kunskaper som är nödvändiga för labben