Kurssin viimeisimmän version löydät täältä: COMP.CS.140 Ohjelmointi 3: Rajapinnat ja tekniikat: spring-2024
Kurssiuutiset
Ensimmäinen tentti-ikkuna / First Exam Window
Ensimmäinen tentti-ikkuna on auki ja tenttiä voi 5.12.2022-16.1.2023 välillä Exam-tenttipalvelussa. Suomenkieliseen tenttiin voit ilmoittautua tästä linkistä. Muista ilmoittautua myös Sisussa!
The first exam window is open and you can take the exam in the electronic Exam service 5.12.2022-16.1.2023. Enrolment to the English exam can be done here. Remember to enrol also in Sisu!
Viimeisen viikon aikataulu / Schedule for Last Week
Projektin palautuspäivä on 9.12. ja 16.12. saakka voi palauttaa arvosanavaikutuksin. Viimeiselle kurssiviikolle osuu myös itsenäisyyspäivä 6.12., joten perjantain 9.12. pidetään projektineuvontatilaisuudet kyselytuntien tilalla seuraavasti:
- klo 12-13 Zoom
- klo 14-15 Hervanta
The deadline for the project is 9.12. and it can be turned in with grade reductions until 16.12. Independence Day 6.12. falls onto the last course week so project guidance is offered instead of the Q&A sessions:
- klo 12-13 Zoom
- klo 14-15 Hervanta
Peruutus: harjoitukset 8.11. / Cancellation: exercises 8.11.
Harjoitukset huomenna on peruttu opettajan sairastumisen vuoksi. Sähköposti ja Mattermost neuvoo.
The exercises tomorrow have been cancelled due to the teacher falling ill. Email and Mattermost will help with the tasks.
Aika rekisteröidä projektiryhmä / Time to register group for course project
On aika rekisteröidä ryhmä kurssin projektia varten Plussassa. Ryhmän rekisteröintiä varten tarvitset ryhmäläisten liittymiskoodit, jonka jälkeen Luo uusi ryhmä -valikosta voi yksi ryhmäläisistä rekisteröidä ryhmä. Deadline rekisteröinnille on 7.11. Jos sinulta vielä puuttuu ryhmä, voit hyödyntää keskustelualuetta Moodlessa ryhmän löytämiseksi.
It is time to register your groups for the course project in Plussa. For the registration you need the join codes of the members of your team. Once you have all the join codes, one team member can register the team through Form a group. The deadline is 7.11. If you do not have a group yet, you can use the discussion area in Moodle to look for one.
Muutos: Seinäjoen harkat / Change: Exercises in Seinäjoki
Seinäjoen harkkaryhmien tiistain tapaamiset siirtyvät 20.9.-13.10. torstaille. Kellonaika ja paikka pysyvät samana.
The Tuesday exercises in Seinäjoki move 20.9.-13.10. to Thursday. The time and place stay the same.
Kyselytuntien etäseuraamisesta / Following Q&As remotely
Kyselytuntien streamaus alkaa aina 13 yli kun itse opetus alkaa 15 yli. Tässä kohtaa tapahtuma tulee Panopton kansioon myös näkyviin.
The streaming of the Q&A session start at 13 past each week when the teaching itself is scheduled to start at 15 past. That is when the event becomes visible in the Panopto folder.
Kyselytuntien kysymyksistä / On Q&A session questions
Kyselytuntien kysymyslaatikko on auki aina saman ajan kuin tehtävätkin johtuen Plussan ominaisuuksista. Tästä johtuen henkilökunta käy läpi kysymyksiä aina molemmista auki olevista kyselytuntilaatikoista. Viikon kyselytunti kohdistuu pääsääntöisesti aina sillä viikolla auenneeseen kierrokseen, mutta kaikkea kurssilla käytyä ja askarruttamaan jäänyttä saa aina kysyä. Myös kyselytunneilla saa kysyä lisää, kun joku askarruttaa.
The question box for the Q&A sessions is always open the same time as the round itself due to Plussa features. Hence the course staff checks both Q&A question boxes open each week. The Q&A session each week mainly targets the topics on the round that opened during that week but everything that has been covered during the course that has left something to ask can be asked. Further questions can be asked also during the Q&A sessions.
NetBeansin versio / NetBeans Version
NetBeansista on tullut uusi versio. Kurssimateriaali linkkasi vanhaan, mutta linkki on nyt päivitetty uusimpaan versioon. Suosittelemme uusimman lataamista.
A new version of NetBeans has been released. The link in the course material was to the older version and has now been updated. We recommend installing the latest version.
Näytä:
0 / 10 1. Suostumus anonyymin kurssidatan tutkimuskäyttöön
maanantai 22.8.2022 12:00 – perjantai 30.12.2022 23:59
Tehtävä | Kategoria | Palautukset | Pisteet |
---|---|---|---|
1.1 Lupa tutkimukselle | |||
1.1.1 Tietosuojaseloste | tutkimuslupa - research permission | 0 / 10 | 0 / 10 |
0 / 50 2. Tervetuloa Ohjelmointi 3: rajapinnat ja tekniikat -kurssille
maanantai 29.8.2022 08:00 – perjantai 9.9.2022 23:59
Tehtävä | Kategoria | Palautukset | Pisteet |
---|---|---|---|
2.1 Tervetuloa kurssille | |||
2.2 Kurssin järjestelyt | |||
2.2.1 Henkilökunta ja yhteystiedot | |||
2.2.2 Kurssin työnkulku | |||
2.2.3 Kurssin arvostelu | |||
2.3 Java: ohjelmointiympäristö | |||
2.3.1 Java IDE ja ensimmäinen ohjelma | |||
2.3.1.1 Tehtävä NetBeans | teoria - theory | 0 / 5 | 0 / 5 |
2.3.2 ⌛ Keskiarvon laskeminen | |||
2.3.2.1 Keskiarvo | harjoitus - exercise | 0 / 10 | 0 / 25 |
2.3.3 Virtuaalityöpöytä: TUNI Virtual desktop | |||
2.4 Tarkempi johdanto Java-kieleen | |||
2.4.1 Tehtävä Java | teoria - theory | 0 / 5 | 0 / 5 |
2.5 Kyselytunti | |||
2.5.1 Tehtävä QA | teoria - theory | 0 / 5 | 0 / 5 |
2.5.2 Kyselytunti 1 läsnäolo | teoria - theory | 0 / 1 | 0 / 10 |
0 / 95 3. Java ohjelmointikielenä
maanantai 5.9.2022 12:00 – perjantai 16.9.2022 23:59
Tehtävä | Kategoria | Palautukset | Pisteet |
---|---|---|---|
3.1 Lisää Javan perusteita | |||
3.1.1 Javan syöte- ja tulostevirrat | |||
3.1.1.1 Tehtävä IO | teoria - theory | 0 / 5 | 0 / 10 |
3.1.2 Javan perussäiliöt | |||
3.1.2.1 Tehtävä Containers | teoria - theory | 0 / 5 | 0 / 5 |
3.1.3 Lajittelu ja lambda-funktiot | |||
3.1.3.1 Tehtävä Lambda | teoria - theory | 0 / 5 | 0 / 10 |
3.2 ⌛ Mediaani | |||
3.2.1 Mediaani | harjoitus - exercise | 0 / 10 | 0 / 15 |
3.3 ⌛⌛ Parametritaulukko | |||
3.3.1 Parametritaulukko | harjoitus - exercise | 0 / 10 | 0 / 20 |
3.4 ⌛⌛ Valuuttakurssit | |||
3.4.1 Valuuttakurssit | harjoitus - exercise | 0 / 10 | 0 / 20 |
3.5 Kyselytunti | |||
3.5.1 Tehtävä QA | teoria - theory | 0 / 5 | 0 / 5 |
3.5.2 Kyselytunti 2 läsnäolo | teoria - theory | 0 / 1 | 0 / 10 |
0 / 95 4. Suuren ohjelman toteuttaminen
maanantai 12.9.2022 12:00 – perjantai 23.9.2022 23:59
Tehtävä | Kategoria | Palautukset | Pisteet |
---|---|---|---|
4.1 Ohjelmistojen toteuttamisen kenttä | |||
4.1.1 Suurten kokonaisuuksien hallinta | |||
4.1.1.1 Tehtävä Abstraction | teoria - theory | 0 / 5 | 0 / 5 |
4.1.2 Rajapinnat | |||
4.1.2.1 Tehtävä Interface | teoria - theory | 0 / 5 | 0 / 10 |
4.2 Javan luokkien perusteet | |||
4.2.1 Java-luokan perusrakenne | |||
4.2.2 Javan pakkauksista | |||
4.3 Poikkeusten käsittely Javassa | |||
4.3.1 Tehtävä Exceptions | teoria - theory | 0 / 5 | 0 / 10 |
4.4 Git: perusteet | |||
4.5 ⌛⌛ Sudoku | |||
4.5.1 Sudoku | harjoitus - exercise | 0 / 10 | 0 / 15 |
4.6 ⌛⌛ Sarjataulukko | |||
4.6.1 Standings | harjoitus - exercise | 0 / 10 | 0 / 20 |
4.7 ⌛⌛ Opiskelijarekisteri | |||
4.7.1 StudentRegister | harjoitus - exercise | 0 / 10 | 0 / 20 |
4.8 Kyselytunti | |||
4.8.1 Tehtävä QA | teoria - theory | 0 / 5 | 0 / 5 |
4.8.2 Kyselytunti 3 läsnäolo | teoria - theory | 0 / 1 | 0 / 10 |
0 / 95 5. Periytyminen
maanantai 19.9.2022 12:00 – perjantai 30.9.2022 23:59
Tehtävä | Kategoria | Palautukset | Pisteet |
---|---|---|---|
5.1 Modulaarisuus: periytyminen | |||
5.1.1 Tehtävä Objects | teoria - theory | 0 / 5 | 0 / 5 |
5.1.2 Periytyminen | |||
5.1.2.1 Tehtävä Inheritance | teoria - theory | 0 / 5 | 0 / 10 |
5.2 Myöhäinen (dynaaminen) sitominen | |||
5.3 Johdatus Javan perintään | |||
5.3.1 Tehtävä Java | teoria - theory | 0 / 5 | 0 / 5 |
5.4 Poikkeusten käsittely Javassa, osa 2 | |||
5.4.1 Tehtävä Exceptions2 | teoria - theory | 0 / 5 | 0 / 5 |
5.5 ⌛ Päivämäärä ja aika | |||
5.5.1 Datetime | harjoitus - exercise | 0 / 10 | 0 / 10 |
5.6 ⌛⌛ Päivämäärät | |||
5.6.1 Dates | harjoitus - exercise | 0 / 10 | 0 / 20 |
5.7 ⌛⌛ Sanan arvaus | |||
5.7.1 Sanan arvaus | harjoitus - exercise | 0 / 10 | 0 / 25 |
5.8 Kyselytunti | |||
5.8.1 Tehtävä QA | teoria - theory | 0 / 5 | 0 / 5 |
5.8.2 Kyselytunti 4 läsnäolo | teoria - theory | 0 / 1 | 0 / 10 |
0 / 95 6. Luokkahierarkiat
maanantai 26.9.2022 12:00 – perjantai 7.10.2022 23:59
Tehtävä | Kategoria | Palautukset | Pisteet |
---|---|---|---|
6.1 Modulaarisuus: Rajapinnat | |||
6.1.1 Abstrakti kantaluokka | |||
6.1.1.1 Tehtävä ADT | teoria - theory | 0 / 5 | 0 / 5 |
6.1.2 Rajapintaluokat | |||
6.1.2.1 Tehtävä interfaces | teoria - theory | 0 / 5 | 0 / 5 |
6.1.3 Moniperiytyminen | |||
6.2 Luokkahierarkioiden mallintaminen | |||
6.3 Rajapinnat Javassa, osa 1 | |||
6.3.1 Tehtävä interfaces | teoria - theory | 0 / 5 | 0 / 5 |
6.4 Javan geneerisyys, osa 1 | |||
6.4.1 Tehtävä generics | teoria - theory | 0 / 5 | 0 / 5 |
6.5 Rajapinnat Javassa, osa 2 | |||
6.5.1 Tehtävä interfaces2 | teoria - theory | 0 / 5 | 0 / 5 |
6.6 ⌛ Kuviot | |||
6.6.1 Shapes | harjoitus - exercise | 0 / 10 | 0 / 10 |
6.7 ⌛⌛ Vertailurajapinnat | |||
6.7.1 Comparison | harjoitus - exercise | 0 / 10 | 0 / 15 |
6.8 ⌛⌛⌛ JSON | |||
6.8.1 JSON | harjoitus - exercise | 0 / 10 | 0 / 30 |
6.9 Kyselytunti | |||
6.9.1 Tehtävä QA | teoria - theory | 0 / 5 | 0 / 5 |
6.9.2 Kyselytunti 5 läsnäolo | teoria - theory | 0 / 1 | 0 / 10 |
0 / 95 7. Pakkaukset
maanantai 3.10.2022 12:00 – perjantai 14.10.2022 23:59
Tehtävä | Kategoria | Palautukset | Pisteet |
---|---|---|---|
7.1 Modulaarisuus: Pakkaukset | |||
7.1.1 Rajapinta sopimuksena | |||
7.1.1.1 Tehtävä contracts | teoria - theory | 0 / 5 | 0 / 10 |
7.1.2 Virhetilanteet rajapinnoissa | |||
7.1.2.1 Tehtävä guarantees | teoria - theory | 0 / 5 | 0 / 15 |
7.2 Java-projektin hallinta Mavenilla | |||
7.3 ⌛⌛ Tekstihaku 7z-tiedostosta | |||
7.3.1 sevenzipsearch | harjoitus - exercise | 0 / 10 | 0 / 20 |
7.4 ⌛⌛ Maiden tilastoja (XML) | |||
7.4.1 xmlcountries | harjoitus - exercise | 0 / 10 | 0 / 20 |
7.5 ⌛⌛ Maiden tilastoja (JSON) | |||
7.5.1 json countries | harjoitus - exercise | 0 / 10 | 0 / 15 |
7.6 Kyselytunti | |||
7.6.1 Tehtävä QA | teoria - theory | 0 / 5 | 0 / 5 |
7.6.2 Kyselytunti 7 läsnäolo | teoria - theory | 0 / 1 | 0 / 10 |
0 / 95 8. Geneeriset tyyppiparametrit
maanantai 10.10.2022 12:00 – perjantai 28.10.2022 23:59
Tehtävä | Kategoria | Palautukset | Pisteet |
---|---|---|---|
8.1 Polymorfismi: Geneerisyys | |||
8.1.1 Tehtävä generics | teoria - theory | 0 / 5 | 0 / 10 |
8.2 Javan geneerisyys, osa 2 | |||
8.3 Javan funktionaaliset rajapinnat | |||
8.3.1 Tehtävä Java-functional1 | teoria - theory | 0 / 5 | 0 / 5 |
8.4 Funktionaalinen ohjelmointi Javassa | |||
8.4.1 Tehtävä Java-functional2 | teoria - theory | 0 / 5 | 0 / 10 |
8.5 ⌛⌛ Elokuvadata vs stream | |||
8.5.1 Elokuvadata vs stream | harjoitus - exercise | 0 / 10 | 0 / 15 |
8.6 ⌛⌛ Elokuvadata vs stream #2 | |||
8.6.1 Elokuvadata vs stream #2 | harjoitus - exercise | 0 / 10 | 0 / 15 |
8.7 ⌛⌛⌛ N-ulotteinen taulukko | |||
8.7.1 N-dimensional array | harjoitus - exercise | 0 / 10 | 0 / 25 |
8.8 Kyselytunti | |||
8.8.1 Tehtävä QA | teoria - theory | 0 / 5 | 0 / 5 |
8.8.2 Kyselytunti 6 läsnäolo | teoria - theory | 0 / 1 | 0 / 10 |
0 / 15 9. Syystauko: anna välipalautetta
maanantai 17.10.2022 12:00 – perjantai 21.10.2022 23:59
Tehtävä | Kategoria | Palautukset | Pisteet |
---|---|---|---|
9.1 Palaute | |||
9.1.1 Tehtävä feedback | palaute - feedback | 0 / 2 | 0 / 10 |
9.1.2 Tehtävä feedback2 | palaute - feedback | 0 / 2 | 0 / 5 |
0 / 95 10. Työnjako ja tiimityöskentely
maanantai 24.10.2022 12:00 – perjantai 4.11.2022 23:59
Tehtävä | Kategoria | Palautukset | Pisteet |
---|---|---|---|
10.1 Työnjako | |||
10.1.1 Tiimityö versionhallinnassa | |||
10.1.2 Versionhallinnan haarat | |||
10.1.3 Tekninen näkökulma: Submoduulit Gitissä | |||
10.1.4 Tietovarastoharjoitus haaroista | |||
10.1.4.1 Git feature-branch - part 1 | teoria - theory | 0 / 5 | 0 / 10 |
10.1.4.2 Git feature-branch - part 2 | teoria - theory | 0 / 5 | 0 / 15 |
10.1.4.3 Git feature-branch - part 3 | harjoitus - exercise | 0 / 10 | 0 / 20 |
10.2 Dokumentointi ja konventiot | |||
10.2.1 Dokumentaatio koodikommentteina - Javadoc | |||
10.3 ⌛⌛ JSON & JavaDoc | |||
10.3.1 javadocjson | harjoitus - exercise | 0 / 25 | 0 / 20 |
10.4 ⌛⌛ Sarjataulukko & JavaDoc | |||
10.4.1 javadocstandings | harjoitus - exercise | 0 / 25 | 0 / 15 |
10.5 Kyselytunti | |||
10.5.1 Tehtävä QA | teoria - theory | 0 / 5 | 0 / 5 |
10.5.2 Kyselytunti 8 läsnäolo | teoria - theory | 0 / 1 | 0 / 10 |
0 / 95 11. Toimiva ohjelma
maanantai 31.10.2022 12:00 – perjantai 11.11.2022 23:59
Tehtävä | Kategoria | Palautukset | Pisteet |
---|---|---|---|
11.1 (Yksikkö)testaus | |||
11.1.1 Keskeisiä termejä | |||
11.1.1.1 Tehtävä terms | teoria - theory | 0 / 5 | 0 / 5 |
11.1.2 Yksikkötestaus | |||
11.1.2.1 Tehtävä unit | teoria - theory | 0 / 5 | 0 / 10 |
11.1.3 Testikehys JUnit | |||
11.1.3.1 Tehtävä junit | teoria - theory | 0 / 5 | 0 / 10 |
11.2 ⌛⌛ Kurssisuorituksen JUnit-testaus | |||
11.2.1 junitattainment | harjoitus - exercise | 0 / 10 | 0 / 15 |
11.3 ⌛⌛⌛ Tilauksen JUnit-testaus | |||
11.3.1 junitorder | harjoitus - exercise | 0 / 25 | 0 / 40 |
11.4 Kyselytunti | |||
11.4.1 Tehtävä QA | teoria - theory | 0 / 5 | 0 / 5 |
11.4.2 Kyselytunti 9 läsnäolo | teoria - theory | 0 / 1 | 0 / 10 |
0 / 95 12. Graafiset käyttöliittymät
maanantai 7.11.2022 12:00 – perjantai 18.11.2022 23:59
Tehtävä | Kategoria | Palautukset | Pisteet |
---|---|---|---|
12.1 Tapahtumapohjainen ohjelmointi | |||
12.1.1 Tehtävä event-driven | teoria - theory | 0 / 5 | 0 / 5 |
12.2 JavaFX-kirjasto | |||
12.2.1 Tehtävä javafx1 | teoria - theory | 0 / 5 | 0 / 5 |
12.2.2 Ensimmäinen JavaFX-ohjelma | |||
12.2.2.1 Tehtävä javafx2 | teoria - theory | 0 / 5 | 0 / 5 |
12.2.3 Hiukan isompi esimerkki | |||
12.2.3.1 Tehtävä javafx3 | teoria - theory | 0 / 5 | 0 / 10 |
12.2.4 FXML | |||
12.3 ⌛ JavaFX laskin | |||
12.3.1 calc | harjoitus - exercise | 0 / 10 | 0 / 10 |
12.4 ⌛⌛⌛ JavaFX Wordle | |||
12.4.1 wordle | harjoitus - exercise | 0 / 25 | 0 / 45 |
12.5 Kyselytunti | |||
12.5.1 Tehtävä QA | teoria - theory | 0 / 5 | 0 / 5 |
12.5.2 Kyselytunti 10 läsnäolo | teoria - theory | 0 / 1 | 0 / 10 |
0 / 15 13. Harjoitustyön aloitus
perjantai 11.11.2022 12:00 – perjantai 25.11.2022 23:59
Tehtävä | Kategoria | Palautukset | Pisteet |
---|---|---|---|
13.1 Projekti: Sisusta selvää | |||
13.2 Kyselytunti harjoitustyöstä | |||
13.2.1 Tehtävä QA | teoria - theory | 0 / 5 | 0 / 5 |
13.2.2 Kyselytunti 11 läsnäolo | teoria - theory | 0 / 1 | 0 / 10 |
0 / 15 14. Käyttöliittymän testaaminen
maanantai 21.11.2022 12:00 – perjantai 2.12.2022 23:59
Tehtävä | Kategoria | Palautukset | Pisteet |
---|---|---|---|
14.1 TestFX | |||
14.2 Kyselytunti harjoitustyöstä | |||
14.2.1 Tehtävä QA | teoria - theory | 0 / 5 | 0 / 5 |
14.2.2 Kyselytunti 12 läsnäolo | teoria - theory | 0 / 1 | 0 / 10 |
0 / 15 15. Projektin dokumentointi
maanantai 28.11.2022 12:00 – perjantai 9.12.2022 23:59
Tehtävä | Kategoria | Palautukset | Pisteet |
---|---|---|---|
15.1 Projekti: dokumentaatio | |||
15.2 Kyselytunti | |||
15.2.1 Tehtävä QA | teoria - theory | 0 / 5 | 0 / 5 |
15.2.2 Kyselytunti 13 läsnäolo | teoria - theory | 0 / 1 | 0 / 10 |
0 / 500 16. Projektin palautus
maanantai 14.11.2022 12:00 – perjantai 9.12.2022 23:59
Myöhästyneitä palautuksia vastaanotetaan perjantai 16.12.2022 23:59 asti.
Tehtävä | Kategoria | Palautukset | Pisteet |
---|---|---|---|
16.1 Harjoitustyön palautus | |||
16.1.1 Palauta projektisi | projekti - project | 0 / 25 | 0 / 500 |
harjoitus - exercise
0 / 520
palaute - feedback
0 / 15
projekti - project
0 / 500
teoria - theory
0 / 430
tutkimuslupa - research permission
0 / 10