Viikkotehtävät
Kurssi suoritetaan tekemällä riittävä määrä pakollisia viikkotehtäviä.
-
Kaikista tehtävistä on ylläpidettävä ei-julkista (private) versionhallintaa git-työkalun avulla gitlab.jyu.fi-palvelussa.
-
Luo gitlab.jyu.fi-palvelussa oma uusi yksityinen projekti:
Muista valita projektin asetuksista Private.
Jos tulee valittavaksi useampia namespaceja (ryhmiä), valitse omaa tunnustasi vastaava
Lisää projektin jäseneksi (väh. reporter- tai developer-roolissa) käyttäjä tjlahton. Lisääminen onnistuu gitlabissa valinnalla Manage|Members|Invite members. Guest-rooli ei riitä vaan rooliksi on annettava mielellään developer.
Ota pois myös suojaus projektin main-haarasta Settings|Repository|Protected branches|Unprotect
- Jokaiselle viikkotehtävälle pitää olla oma repo (projekti). Älä sijoita useampaa tehtävää samaan repoon.
-
Siirry omalle koneelle. Varmista, että käyttämäsi Git on uusin versio.
Tarkista myös, että mahdollisessa .gitconfig-tiedostossasi on init-osassa oletuksena (defaultBranch) main-haara:
[tjlahton@halava ~]$ less .gitconfig [user] name = Tommi Lahtonen email = tommi.j.lahtonen@jyu.fi [init] defaultBranch = main -
Kloonaa gitlabin repoon sinulle annettu valmis projektipohja, jonka saat
kunkin viikkotehtävän omalta sivulta.
Tämä kannattaa sijoittaa W:-asemalle (sama kuin users.jyu.fi:n tiedostot), jolloin
sovellustasi on helpointa myös testata. Lokaalilta levyltä javascript-sovellusten testaaminen ei onnistu ilman omaa www-palvelinta.
Huom! gitlab.jyu.fi ei enää salli kirjautumista salasanalla vaan pitää käyttää erikseen luotua tokenia. Token luodaan valitsemalla Gitlabin web-käyttöliittymän oikeasta ylänurkasta oman tunnuksen preferences ja sen jälkeen Access|Personal access tokens. Uuden tokenin voi luoda nyt oikeasta laidasta löytyvällä Generate token -toiminnolla, josta valitaan Legacy Token. Tokenille voi keksiä haluamansa nimen. Expiration Dateksi kannattaa valita ainakin vuosi eteenpäin. Select Scopes -kohtaan pitää valita ainakin write_repository. Komentoriviltä repoa gitlabiin pushatessa pitää nyt salasanaksi syöttää edellisen jälkeen saatu pitkä token.
Tässä viikkotehtävä 1:n pohja:[omatunnus@halava tiea2120]$ cd vt1/ [omatunnus@halava tiea2120]$ unzip vt1-pohja.zip [tjlahton@halava foo]$ unzip vt1-pohja.zip Archive: vt1-pohja.zip inflating: taso1.xhtml inflating: taso3.xhtml inflating: taso1.js inflating: taso3.js inflating: taso1.css inflating: taso3.css inflating: .htaccess inflating: taso1-mallikuva.png inflating: data2025s.json [omatunnus@halava vt1]$ git init Initialized empty Git repository in /foobar/example/tiea2120/vt1/.git/ [omatunnus@halava vt1]$ git remote remove origin [omatunnus@halava vt1]$ git remote add origin https://gitlab.jyu.fi/omatunnus/vt1.git [omatunnus@halava vt1]$ git add * muokkaa tiedostoja... [omatunnus@halava vt1]$ git commit -a [omatunnus@halava vt1]$ git push -uf origin main Username for 'https://gitlab.jyu.fi': omatunnus Password for 'https://omatunnus@gitlab.jyu.fi': Enumerating objects: 5, done. Counting objects: 100% (5/5), done. Delta compression using up to 2 threads Compressing objects: 100% (3/3), done. Writing objects: 100% (3/3), 287 bytes | 143.00 KiB/s, done. Total 3 (delta 2), reused 0 (delta 0), pack-reused 0 To https://gitlab.jyu.fi/omatunnus/vt1.git 64e7a00..95821af main -> main branch 'main' set up to track 'origin/main'. [omatunnus@halava vt1]$Jos git vahingossa tekeekin master-haaran eikä main-haaraa, voit seuraavilla ohjeilla muuttaa haaran vaadituksi eli main:
git branch -m master main git fetch -p origin git branch -u origin/master main git remote set-head origin -a git branch -D master git push -uf origin mainJos saat windows-koneella virheilmoituksen fatal: detected dubious ownership in repository, niin aja gitin ehdottama komento asian korjaamiseksi: git config --global --add safe.directory .... Tarvittaessa voi kansiopolkuna käyttää *-merkkiä, jolloin git ei herjaile mistään poluista.
Jos saat valituksen: remote repository ... is incompatible with fsmonitor aja komento: git config --global --add fsmonitor.allowRemote true
Jos saat virheilmoituksen:
You can't push or pull repositories using SSH until you add an SSH key to your profileYrität käyttää Gitlabia ssh-yhteyden kautta, mutta Gitlab vaatii ssh-avaimen. SSH-avaimet eivät toimi Halavassa tai Jalavassa, mutta omalla laitteella todennäköisesti toimivat. SSH-avaimella pystyy päivittämään repoa ilman, että tarvii jatkuvasti syöttää käyttäjätunnus ja salasana. Jos haluat ssh-avainta käyttää, lue Gitlabin ssh-avain-ohje. Toinen vaihtoehto on luoda oma access token, jota voi käyttää salasanan sijaan. Voit käyttää Gitlabia myös https-yhteyden yli. Aseta reposi osoitteeksi https-alkuinen osoite eli sama osoite, joka näkyy selaimessa.
Jos saat virheilmoituksen, jossa lukee:
Voit korjata ongelman komennolla: git config --global http.sslVerify "false"...SSL certificate problem8Gitin oletuseditorin voi vaihtaa esim. nanoksi komennolla: git config --global core.editor "nano"
Halavassa/jalavassa on käytössä hyvin vanha git. Jos esim. push gitlabiin ei vanhalla gitillä toimi, kokeile ensin aktivoida uudempi gitin versio seuraavalla komennolla:
source /opt/rh/rh-git229/enablePäivitä repoasi jokaisen olennaisen muutoksen jälkeen. Päivityshistoriastasi on oltava nähtävissä, että sovellus on itse tehty.
Toimivan sovelluksesi on löydyttävä main-haarasta.
- Jokaisella viikkotehtävällä on oltava oma repo. Repon on oltava yksityinen (private). Julkiseksi laitettu repo ei kelpaa.
- Gitlabissa voit käyttää myös ssh-avainta, niin vältyt salasanan syöttämiseltä. Valitettavasti tämä ei toimi halavassa/jalavassa.
- Lisätietoja: Ohjelmointi 2 ja Git
Versionhallintaa on ylläpidettävä niin usein, että siitä selkeästi näkee ohjelmakoodin olevan itse tuotettua. Päivitä repoa selvästi useammin kuin kerran päivässä.
-
Luo gitlab.jyu.fi-palvelussa oma uusi yksityinen projekti:
Muista valita projektin asetuksista Private.
Jos tulee valittavaksi useampia namespaceja (ryhmiä), valitse omaa tunnustasi vastaava
- Jos sait aiemmalla kurssilla viikkotehtävästä huonon arvosanan, voit uusia tehtävän. Aiemmin tehtyjen (vuosien 2024-2025) viikkotehtävien pisteet ovat voimassa vielä ainakin 31.7.2027 saakka.
- Jokaisen on toteutettava oma uniikki vastauksensa itsenäisesti. Pari- tai ryhmäpalautukset eivät kelpaa. Viikkotehtävä on vastaavanlainen suoritus kuin tentti..
- Kerran palautettua tehtävää ei voi myöhemmin korjata. Huonosti menneen tehtävän voit uusia, kun tehtävästä tulee tarjolle uusi versio seuraavan kurssin aikana.
- Jokaista palauttamaasi tehtävää kohti sinun täytyy myös vertaisarvioida toisen opiskelijan palauttama vastaava tehtävä. Vertaisarvioinnin tekeminen on pakollista.. Et saa hyväksyttyä suoritusta ellet ole tehnyt vähintään neljä vertaisarviota. Viikkotehtävähärveli lähettää sinulle sähköpostia, kun sinulle on tarjolla sopiva tehtävä vertaisarvioitavaksi. Käy kuitenkin säännöllisesti tarkistamassa onko sinulle vertaisarvioitava tehtävä, koska sähköpostiviestit eivät aina löydä perille. Kunkin vertaisarvion tekemiseen on aikaa n. viikko.
Tehtävät palautetaan viikkotehtävähärvelillä.
Tekoälyn käyttäminen
Tehtäviä tehdessä saa käyttää tekoälyä apuna, mutta kokonaisten sovellusten pyytäminen tekoälyltä on kiellettyä. Voit kysyä yksittäisiin kohtiin tekoälyltä vinkkejä ja ideoita. Kaikki tekoälyltä valmiina saamasi ja käyttämäsi ohjelmakoodi täytyy merkitä selkeillä kommenteilla. Jos tehtävävastauksessasi on liikaa tekoälyn tuottamaa koodia, voi opettaja hylätä vastauksesi tai voit joutua henkilökohtaisesti ilman tietokonetta esittämään opettajalle osaamisesi. Älä käytä sovelluksissasi ohjelmakoodia, jonka toimintaa et itse ymmärrä tai et osaisi itse tuottaa.
Tehtävät
- Viikkotehtävä 1 : Javascript-perusteet. Tehtävä on palautettava ti 22.9.2026 klo 23:59 mennessä.
- Viikkotehtävä 2: Document Object Model (DOM) ja tapahtumankäsittely. Tehtävä on palautettava ti 6.10.2026 klo 23:59 mennessä.
- Viikkotehtävä 3: Lomakkeet ja validointi. Tehtävä on palautettava ti 20.10.2026 klo 23:59 mennessä.
- Viikkotehtävä 4: Canvas, SVG ja animaatiot. Tehtävä on palautettava ti 3.11.2026 klo 23:59 mennessä.
- Viikkotehtävä 5: Drag & Drop, kartat. Tehtävä on palautettava ti 17.11.2026 klo 23:59 mennessä.
- Viikkotehtävä 6: Web-komponentit. Tehtävä on palautettava ti 1.12.2026 klo 23:59 mennessä.
- Bonustehtävä Bonustehtävän voi tehdä, kun on tehnyt kaikki muut tehtävät
Palautusohje
- Sijoita tehtäväsi users.jyu.fi-palvelimelle. Täydennä toimivan vastauksesi osoite palautuslomakkeelle
- Palauta tehtävä Viikkotehtävähärvelilä
- Viikkotehtävähärveli lähettää sinulle sähköpostia, kun sinulle on tarjolla sopiva tehtävä vertaisarvioitavaksi.
Arviointi
- Tehtävät on jokaisen toteutettava itsenäisesti.
Jokaisen on palautettava oma uniikki vastaus.
Plagiointi on
ehdottomasti kiellettyä! kts. Opiskeluvilppi.
- Palautettujen vastausten yksilöllisyys tarkistetaan koneellisesti. Identtiset vastaukset hylätään kaikilta palauttaneilta.
- Viikkotehtävän voi valita kolmesta eritasoisesta tehtävästä, joista saa 1, 3 tai 5 pistettä.
- Asianmukaisesta vastauksesta saa tason mukaiset pisteet.
- Toimivasta, mutta pieniä puutteita sisältävästä vastauksesta vähennetään yksi (1) piste. Isompia puutteita sisältävistä tehtävästä voidaan vähentää useitakin pisteitä.
- Halutessaan voi tehdä viikon kaikki kolme tehtävää. Korkein pistemäärä jää voimaan.
- Korkeampia pistemääriä EI VOI SAADA, jos vastaus ei täytä kaikkia alempien pistemäärien vaatimuksia
- Toimimattomasta tai selvästi keskeneräisestä ykköstason vastauksesta saa nolla (0) pistettä. Vastauksen on täytettävä kaikki ensimmäisen tason vaatimukset ansaitakseen yhden pisteen.
- Puuttuvia tehtäviä tai arvosanan nolla (0) saaneita tehtäviä saa olla enintään kaksi kappaletta. Tehtäviä on yhteensä kuusi (6) kappaletta.
- Lisäksi on bonustehtävä jolla voi kerätä lisäpisteitä. Bonustehtävällä voi
korvata yhden puuttuvan viikkotehtävän tai vain korottaa pistemääräänsä.
Lisäpisteitä (0-2) voi saada myös hyvin kirjoitetuista vertaisarvioinneista lähiopetuskurssin aikana. Lisäpisteiden saaminen edellyttää, että on laadukkaasti vertaisarvioinut kaikki tehtävät. Lisäansioksi lasketaan myös, jos on kurssin aikana neuvonut muita kurssilaisia telegram-luryhmässä. Vertaisarviointipisteet lasketaan mukaan vasta hyväksyttyyn suoritukseen eli vähintään ykköseen. Kuusi pistettä pitää saada kasaan viikkotehtävillä ja bonustehtävällä.
- Puuttuvia tai huonosti menneitä tehtäviä voi uusia myöhemmillä kursseilla.
- Kukin viikkotehtävä on kuin tentti.
- Voit uusia tehtävän aina, kun siitä tulee tarjolle uusi versio (vrt. uusintatentti). Tehtäviä uusitaan yleensä kaksi kertaa vuodessa. Jos uusit tehtäviä, niin muista ilmoittautua Sisussa uudelle kurssille.
- Uusittuasi haluamasi määrän tehtäviä ilmoita opettajalle, että kurssisi voidaan nyt arvostella uudelleen.
- Vuosien 2021 - 2025 tehtävien pisteet ovat voimassa ainakin 31.12.2025 saakka.
-
Hyväksytyn suorituksen arvosana (1-5) muodostuu tehtävien keskiarvosta seuraavan taulukon mukaisesti:

Arvosanataulukko Painotettu keskiarvo Arvosana 1,00 - 1,79 1 1,80 - 2,59 2 2,60 - 3,39 3 3,40 - 4,19 4 4,20 - 5,00 5 keskiarvo = ( vt1 + vt2 + vt3 + vt4 + vt5 + vt6 + bonus) / 6.0- Keskiarvo lasketaan aina kuuden tehtävän perusteella.
- Puuttuvien tehtävien pistemääräksi lasketaan nolla (0).
- Jos on saanut nolla pistettä useammasta, kuin kahdesta tehtävästä, niin arvosana on hylätty.
- Jos keskiarvo on alle 1,00 niin arvosana on hylätty.
Laske arvosanasi
Laskuri kertoo, minkä arvosanan saat vähintään kurssista yo. laskentaperusteilla.
Keskiarvo: 0
Arvosana: HYL
Käyttäjien kommentit