Python Web Service From Idea to Production

Build Python web service and publish it to the world!
Intensive course on w21 and w22.
Enroll at 08:00 on Monday! Most seats were booked right after enrollment opened. Enrollment is open right now. Update: Only few seats left. Fully booked. Queue started, enroll quickly to get better position in the queue.
Make a web app that
- Serves clients on Linux, Windows, Mac, Android, iPhone
- Logs how users use your app
- Let's many users read and edit data at the same time
- Can be used without installing anything
- Always uses the latest version of your app
100% remote, in Finnish, every day Mon-Fri 9-16. Starts on 2021-05-24 w21 Monday, ends on w22 Wednesday.
Koska kurssi on suomeksi, loput tästä sivusta on suomeksi.
Ilmoittautuminen alkaa 2021-03-15 w11 maanantaina 08:00. Kurssi on "Python weppipalvelu - ideasta tuotantoon" ja koodi on ICT8TN034-3001.
Kuuden rivin weppipalvelu

Tule kurssille, niin kerron, miten tuo koodi toimii.
Alustava aikataulu
w21
- ma Hei maailma! Järjestäytyminen. Yleiskuva. Linuxin pikakertaus. Hei Python! Hei Flask!
- ti Muotit ja lomakkeet Muotit (templates). Lomakkeet (html forms) ja käyttäjän syötteet.
- ke Tietokannat ja SQL. PostgreSQL.
- to Tuotantopalvelin. Apache2 ja mod_wsgi. Pilven vuokraaminen.
- pe ORM Automaattiset lomakkeet ja tietokannat. Miniprojektien tehtävänanto.
w22
- ma Kertaus
- ti Miniprojektien rakentamista
- ke Miniprojektien esittely
Aikataulu on alustava ja muuttuu kurssin kuluessa.
Kurssi päättyy kokonaan w22 keskiviikkona. Sen jälkeen ei voi eikä tarvitse palauttaa mitään.
Osaamistavoiteet
Rakenna weppipalvelu Pythonilla ja asenna se julkiselle palvelimelle.
Opit tekniikan, joka
- palvelee asiakkaita Linuxilla, Macilla, Windowsilla, iPhonella, Androidilla - millä vain selaimella
- kerää itsestään tietoa siitä, miten palveluasi käytetään
- antaa monien käyttäjien muokata tietoja yhtä aikaa (aika tavallinen vaatimus yritysten ohjelmissa)
- toimii käyttäjillä asentamatta mitään
- käyttää automaattisesti uusinta versiota ohjelmastasi
Opintojakson suoritettuaan opiskelija
- Osaa ohjelmoida www-palvelimella ajettavan ohjelman, jota voi käyttää millä vain selaimella
- Osaa tallentaa tiedot tietokantaan niin, että useampi käyttäjä voi katsella ja muokata tietoja samaan aikaan
- Osaa asentaa tarvittavat palvelimet Linuxille
- Osaa vuokrata julkaisuun tarvittavat pilvipalvelut
- Ymmärtää palvelinpään wwww-ohjelmoinnin edut ja toimintaperiaatteen
Intensiivikurssi: Kurssi edellyttää 100% etäläsnäoloa koko kurssin ajan ma-pe 9-16 ja ma-ti 9-16.
Lähtötaso ja sidonnaisuudet muihin opintojaksoihin
Kurssille tullessa pitää osata
- Linuxin alkeet (Linuxin asennus, Linuxin käyttö komentokehotteesta, palvelinten eli demonien asentaminen)
- Ohjelmoinnin alkeet millä vain kielellä: muuttuja, funktio, if-else, silmukka, luokka, olio...
- Puhua suomea ja lukea englantia
Tarvittavat taidot on voinut hankkia esimerkiksi kursseilla "Linux palvelimena" ja millä tahansa ohjelmoinnin alkeiskurssilla. Esitiedot tarkistetaan tarvittaessa alkutestillä tai -haastattelulla. Kurssille tullessa ei tarvitse osata Pythonia.
Kurssi toteutetaan 100% etäopetuksena. Osallistumiseen tarvitaan Linux, Internet-yhteys, videokamera, kuulokkeet ja mikrofoni. Palvelimen vuokraamiseen pilvestä tarvitset noin viisi euroa (tai voit käyttää ilmaisia Github Education -palveluita, jos sinulla on niitä käyttämättöminä). Kurssille tullessa opiskelijalla olisi hyvä olla Linux asennettuna itselle. Myös virtuaalikoneeseen asennus käy. Ilmoittautuneet saavat ohjeen ympäristön asentamisesta.
Sisältö
- Yleiskuva
- Hei maailma!
- Hei Weppi
- Käyttäjän syötteet ja lomakkeet
- Tietokannat ja SQL
- ORM eli automaattiset lomakkeet ja tietokannat
- Tuotantopalvelin
- Pilvipalvelimen vuokraaminen
- Oma miniprojekti
Sisällössä on toteutuskohtaisia muutoksia, aikataulu kehittyy vielä toteutuksen aikana.
Arviointikriteerit
Taso 1: Opiskelija osallistuu opetukseen ja tekee tehtävät. Opiskelija pystyy esimerkeistä muokkaamalla tekemään yksinkertaisia, omia verkkopalveluita. Tietoturvan minivaatimusten noudattaminen onnistuu esimerkiksi käyttämällä hyviä salasanoja.
Taso 3: Opiskelija täyttää alempien tasojen kriteerit. Opiskelija pystyy tekemään yksinkertaisia palvelimella ajettavia weppiohjelmia, joilla on selkeä käyttötarkoitus. Ohjelmien sovittaminen onnistuu siten, että ne palvelevat luontevasti pääasiallista käyttötarkoitustaan.
Taso 5: Opiskelija täyttää alempien tasojen kriteerit. Opiskelija pystyy soveltamaan opittuja tekniikoita. Opiskelija osaa hankkia lisää tietoa eri lähteistä ja ratkaista vastaantulevia ongelmia. Sovelluksilla on ilmeinen käyttötarkoitus, jota tehdyt valinnat palvelevat. Sovellusten käyttö on helposti ymmärrettävää tai ilmeistä ilman tekijän erillistä neuvontaa. Asennukset on tehty turvallisesti, järkevästi ja ylläpidettävästi.
Palautteen hyödyntäminen
Kurssilla on hyödynnetty palautetta aiemmilta kursseiltani. "Go-ohjelmointi" on saanut huipppupalautteen 4.9/5 kiitettävä. "Go ohjelmointi" osoitti, että intensiivikurssi riittää uuteen kieleen tutustumiseen ja sen käyttöön miniprojektissa. Kurssin tekniikoita on kokeiltu alustavasti myös projektikursseilla ja kurssilla "Linux palvelimet".
Tällä kurssilla kerätään kokemuksia tuleville Python-kursseille.
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.
Palautetta, kommentteja, vanhoja arvioitavia laboratorioharjoituksia ja linkkejä kotitehtävien esimerkkiratkaisuihin mainituilta kursseilta (mm. "Go ohjelmointi", "Linux palvelimet"):
Lisätietoja
Nimi: Python weppipalvelu - ideasta tuotantoon
Koodi: ICT8TN034-3001
Opettaja: Tero Karvinen
Ajoitus: 2021-05-24 w21 ma ... 2021-06-02 w22 ke.
Ilmoittautumisaika: 2021-03-05 08:00 - 2021-03-25 16:00
Ryhmä:
Toteutustapa: ONLINE - edellyttää 100% etäläsnäoloa.
Paikkoja: 15 - 30
Koulutusohjelma: HETI Tietojenkäsittelyn koulutusohjelma
Arviointitavat: 1-5
Opintopistemäärä: 5 op
Vastuuyksikkö: Digitalous
Kurssi kestää 7 arkipäivää, joka päivä 9-16. Edellyttää 100% etäläsnäoloa. Kurssi päättyy kokonaan w22 tiistaina, sen jälkeen ei saa eikä tarvitse palauttaa mitään.
Linkkejä
Opinto-jakson kuvaus opinto-oppaassa
Tämä sivu päivittyy jatkuvasti.