Tankar om våra utbildningar

Här tar vi två steg tilbaka och beskriver hur vi resonerar då vi utformar Patwic-utbildningarna. Denna sida skrevs 2014 och förtjänar att få en putsning i framtiden. Otroligt mycket har skett sedan dess. Grundvärderingarna i texten är ändå giltiga för Patwic 3.0 som släpps under 2016. Tack för ditt intresse.

  • Bärande idéer

    • Använd riktiga programmeringsspåk och metoder. Det man lär sig i kursen ska kunna användas utanför skolan.
    • Engelska är och lär länge förbli de facto språket för mjukvaruutveckling. Det innebär att kod och kommentarer samt delar av materialet ges på engelska.
    • Låt eleverna äga det material de skapar. När kursen är slut ska deltagarna kunna fortsätta med vad de lärt sig och ha rätt att göra vad de vill med sin kod.
    • Arbeta i en modern cloudbaserad utvecklingsmiljö. Alla elever får tillgång till samma miljö och kan nå den både från skolan eller hemifrån på egen dator.
    • Hitta uppgifter som ansluter till den omgivning som eleverna redan känner till och använder dagligen: Facebook, chatt, Youtube, webb-sajter och mobiltelefoner.
    • Gör teknologiska hopp. Kompromisserna rörande teknikval är alltid svåra men i tveksamma fall så blickar vi framåt. Hellre Neo4j och MongoDB än SQL Servrar.
    • Fega inte ur för svåra och jobbiga saker. Våga lita på att unga människor är kapabla, ambitiösa och villiga att lära.
    • Visa att programmering är en sociala aktivitet. Gör övningar där eleverna man samarbetar som ett lag av två eller flera personer.
  • Pedagogisk Ansats

    Våra utbildningar är upplagda i moduler bestående av väl definierade steg och så utformade att den enskilde ska kunna genomföra den i sin egen takt. Materialet kan se olika ut men varje gång ett nytt delmoment introduceras följs ett mantra.

    • Definiera
    • Exemplifiera
    • Utforska
    • Tillämpa

    Vi arbetar med två typer av moduler som vi kallar Tematiskt Skapande och Utmaningar.

  • Tematiskt skapande

    Tematiskt Skapande eller laborationsmoduler låter eleven lära under former där produktion av mjukvara eller en systemlösning står i centrum. Lärostoffet blir då ett medel för att uppnå ett för eleven åtråvärt mål. Svårigheten i modulen och omfattningen av arbetet regleras främst av elevens intresse och engagemang för uppgiften. Samtidigt har alla elever som klarar modulen goda kunskaper då de går vidare med resten av kursen.

  • utmaningar

    Utmaningar eller teknikmoduler är skapade för att finna en form för fokuserad inlärning. Dessa används typiskt när viktiga och krävande moment introduceras.

    Konceptet eller teknologin måste bemästras innan eleverna är redo att tillämpa sina kunskaper i Tematiskt skapande. För att öka motivationen ges materialet i vissa moment i form av utmaningar i fem nivåer – från Nybörjare till Expert – samt en eller två överkursnivåer. Elever som klarar ‘Expert’ nivån har en god grund för att komma vidare i kursen.
    Målet är att alla elever snabbt skall komma till en punkt där de känner att de får något att bita i.

    Fortsättningsutbildningarna bygger på att eleverna behärskar grundläggande programmering och kan därför vara friare i formerna.  Dessa kurser bygger på att elever, gärna i grupper, får ta sig an semi-strukturerade projekt som de under mentorskap får utveckla till riktiga lösningar. I fortsättningsutbildningarna ligger komplexiteten i att formulera utmaningen, modellera problem och flöden och sedan omsätta modellerna i fungerande lösningar med hjälp av programmering och datateknik.

  • Introduktion till modern utvecklingsmiljö

    Även om redan små barn idag har stor datorvara så är den inriktad på ett användarperspektiv där konsumtion av media och användning av applikationer står i centrum men det krävs mer än så av en mjukvaruutvecklare.
    Eleverna får därför lära sig arbeta i en Linux-baserad utvecklingsmiljö som väsentligen har samma uteseende och verktyg som de miljöer som används på start-ups världen över men också i storföretag som Ericsson, Sony och Google eller i distribuerade Open Source projekt.

    Patwic är hard core i detta hänseende. Samtidigt vet vi att de som lär sig hur man använder en tunn klient för att ansluta till utvecklingsmiljön och Linux kommandoradsverktyg samtidigt som man redigerar program och text i editor och versionshanterar i Bitbucket har en genuin grund att stå på. Slitet betalar sig och eleverna tycker att det är kul att ha koll.

  • Grunderna i mjukvaruproduktion

    Redan från början får eleverna använda versionshantering för att hantera sin kod. De får också arbeta med att dels lagra sin kod, dels installera på publik server.
    Ett syfte är att lära sig skilja på privat arbete och sådant man delar med sig av. Ett annat är att det följer ett arbetsflöde som kallas continous deployment. Vi använder Bitbucket och git för att distribuera mjukvara på kursen. Eleverna använder även dessa verktyg för att skicka in sina svar och lösningar på övningsuppgifterna eller för att uppgradera applikationer de utvecklar på Internet

  • Programmering i Python

    Python är ett bra nybörjarspråk då det är enkelt men kraftfullt programmeringspråk som används i stor skala av Google, Dropbox och Spotify. Huvuddelen av kursen syftar till att lära ut grundläggande programmering i Python och hur man skriver enkla program.
    Eleverna använder Python-tolken för lärande och utforskar satser och konstruktioner i Python. I första kursen ligger tonvikten vid användande av viktiga datatyper som listor, nedbrytning av program i funktioner, implementation av enkla algoritmer och datakommunikation.

  • Viktiga koncept i mjukvarukonstruktion

    Eleverna får arbeta med många koncept som är viktiga för att förstå hur mjukvara används och interagerar med världen. Här följer ett axplock:

    • markup-språk (markdown/HTML) hur skriver man en webb-sida?
    • AAA(autentisering, autorisering, auditing): hur vet jag vem som är vem på Internet?
    • integritet och kryptering: hur kan jag vara säker på att ingen kan läsa mina mail?
    • nätverk och protokoll: hur pratar min webb-läsare med webb-servern?
    • REST baserade interface: Hur kan en tjänst interagera med andra tjänster?
    • API och webb-tjänster: hur kan jag lägga in en Facebook Like-knapp på min webb-sida?
  • Problemlösning i andra ämnen: Mjukvara som redskap

    Ett viktigt syfte med Patwic är att visa på tillämpningar av mjukvara inom de ämnen som eleverna redan är bekanta med. Exempel på uppgifter kan vara: hämta publik data från kommun/stat, bearbeta den och visualisera på webb-sidor. Att göra enkla matematiska beräkningar och skriva kod som löser andragradsekvationer med Python. Att skriva kod som kan läsa in en text och gissa vilket språk den är skriven i. Men också rent tekniska tillämpningar som att lära sig om eventhantering och få skriva responsiva applikationer med lämpliga ramverk eller söka i Spotify:s låtkatalog och skapa spellistor som kan användas i Spotify-klienter