Go Programming Course 2020 w22

Gopher the Go Mascot
package main

import "fmt"

func main() {
	fmt.Println("Learn Go in one week - w22. ")
	fmt.Println("Registration opens on w12 Monday. ")
}

Why Go?

Fast to compile, fast to run. Good for parallel computing: doing many things at the same time, using all CPU cores.

Cross-compile static binaries: you can use Linux to compile programs for Windows - that have zero dependencies, so they are robust. You can cross-compile between Linux, Windows and Mac OSX.

Docker containers, Syncthing file sharing and Ethereum cryptocurrency are all made with Go. Google, Uber and Netflix use Go in production.

It's easy to get started - it has only 25 keywords: if, else, for, func...

The course will be in Finnish, so the rest of this page will be in Finnish, too. Moodle (Haaga-Helia account required)

Intensiivi viikolla w22

Ilmoittautuminen alkaa w12 maanantaina 2020-03-16 kello 08:00. Itse kurssi pidetään toukokuussa.

Joka päivä ma-pe opetusta 9-16. Kurssi edellyttää 100% läsnäoloa joka päivä. Intensiivikurssi päättyy perjantaina, sen jälkeen ei ole mitään tehtäviä eikä palautuksia.

Opetus on labrassa pa5004, Haaga-Helia, Pasila, Helsinki.

Oppituntien ulkopuolella mahdollisuus itsenäiseen harjoitteluun, labra 5004 varattu tälle kurssille.

Go: nopea, luotettava, monialustainen

Go-kieli soveltuu nopeiden, luotettavien ja monialustaisten ohjelmien tekoon. Go:ta käyttävät tuotannossa mm. Google, Netflix ja Uber.

Go-kiellä on tehty useita menestyneitä ohjelmia tietokoneinfrastruktuurin hallintaan. Docker on maailman suosituin tekniikka paketoida pinoja ajettaviksi konteiksi. Juju on palveluiden orkestrointityökalu Ubuntulta. Kubernetes on konttien hallintatyökalu Googlelta. Myös Ethereum-kryptovaluutta ja Syncthing tiedostojako on kirjoitettu Go:lla.

Go on monialustaista. Voit kääntää ohjelmasi kaikille tuetuille alustoille millä vain alustalla, esimerkiksi kääntää Linuxilla ohjelman Windowsille. Ohjelmat ovat täysin riippumattomia asennetuista kirjastoista, joten ne toimivat erittäin luotettavasti ympäristön päivittyessä tai vaihtuessa.

Go on nopea kieli sekä suoritusnopeudeltaan että moniajossa. Kanavat ja go-rutiinit ovat tehokas tapa kirjoittaa monialustaisia ohjelmia, jotka hyödyntävät kerralla kaikki prosessoriytimet.

Kurssikuvaus

Kuvaustiedot

Osaamistavoitteet

Opi Go:n perusteet viikossa!

Opintojakson suoritettuaan opiskelija

Sisältö

Mikäli aika sallii, voidaan käsitellä myös esimerkiksi yksikkötestejä ja tärkeimpiä kirjastoja.

Sisältöön tulee muutoksia kurssin aikana.

Oppimistavat

Lisätiedot

Palautteen hyödyntäminen. "Go -ohjelmointi" toteutetaan ensimmäistä kertaa 2020 keväällä. Kurssin suunnittelussa on hyödynnetty palautetta muilta haastavilta teknisiltä intensiivikursseilta Tunkeutumistestaus (opiskelijapalaute 4.9 / 5) ja Prototyypin rakentaminen (4.8 / 5). Näiden kurssien palautetta on luettavissa http://TeroKarvinen.com.

Opiskelijoiden toiveiden mukaisesti teoria opetetaan tietokoneiden ääressä käytännön esimerkkien yhteydessä. Opettajakeskeinen opetus ja opiskelijoiden lyhyet tuntiharjoitukset vuorottelevat. Harrastuneisuutta tuetaan ja opiskelijoita kannustetaan taitojen välittömään kokeiluun kurssin ulkopuolella. Kurssilla syntyvien raporttien julkaisemiseen ja vapaaseen lisensointiin kannustetaan. Intensiivikurssin ajan on 100% läsnäolovaatimus, ja kurssin päättymispäivän (perjantai) jälkeen ei voi eikä saa palauttaa mitään.

Oppimateriaalit

Tietokonelaboratorio käytettävissä koko kurssin ajan. Opetus labrassa 9-16, tuntien ulkopuolella labra varattu kurssilaisille vapaaehtoiseen itsenäiseen harjoitteluun 8-20 kurssipäivinä.

Vapaat ohjelmat, käytettävissä vapaalla alustalla. Mm. Go-kehitysalusta ja Xubuntu 18.04. Opettettuja työkaluja voi käyttää myös kaupallisessa käytössä ilman lisenssimaksuja.

McGranaghan 2020: http://GoByExample.com

Go-kielen dokumentaatio ja kirjastojen lähdekoodi soveltuvin osin. https://pkg.go.dev/

Oheislukemisto, ei tarvitse ostaa kurssia varten: Donovan & Kerninghan 2015: The Go Programming Language. Saattaa löytyä Haaga-Helian tunnuksilla O'Reilly Learning -palvelusta ilmaiseksi.

http://terokarvinen.com/2020/go-programming-course-2020-w22/

Muu myöhemmin ilmoitettava kirjallisuus.

Lähtötaso ja sidonnaisuudet muihin opintojaksoihin

Mitään tiettyjä kursseja ei tarvitse olla käytynä, alkeiden osaaminen testataan tarvittaessa alkutestillä. Opetus on suomeksi ja kirjallisuus englanniksi.

Osaamisen arviointi

Arviointikriteeri - arvosana 1

Opiskelija osaa ratkaista triviaaleja ohjelmointitehtäviä Go-kielellä. Opiskelija on osallistunut kaikkeen opetukseen, tehnyt läksyt ja läpäissyt kokeen tai arvioitavan loppuharjoituksen.

Arviointikriteeri - arvosana 3

Opiskelija osaa ratkaista tavallisia yksinkertaisia ongelmia Go-kielllä. Ohjelmat soveltuvat niiden pääasialliseen käyttötarkoitukseen siten, että ulkopuolinen voisi käyttää niitä. Opiskelija täyttää kaikki alempien arvosanojen kriteerit.

Arviointikriteeri - arvosana 5

Opiskelija pystyy soveltamaan Go-kieltä ongelmien ratkaisemiseen. Go-kielen käyttö on kielelle luonteenomaista ja hyödyntää kielen vahvuuksia. Opiskelija hankkii itse lisää tietoa ja kykenee itsenäisesti ottamaan käyttöön koodia ja kirjastoja, joiden käyttöä ei ole erikseen opetettu. Sovellukset ovat monialustaisia, helppoja ottaa käyttöön ja niiden toiminnallisuutta on testattu. Opiskelija täyttää kaikki alempien arvosanojen kriteerit.

Adminstrivia

Tämä sivu päivittyy.