The latest instance of the course can be found at: COMP.CS.140 Ohjelmointi 3: Rajapinnat ja tekniikat: spring-2024
Course news
Exercise time cancelled: tomorrow 29.4. 12-14. TA available today 16-18!
There will be no exercise session tomorrow 12-14 due to the TA's business trip. The TA will be available in Zoom today 16-18.
Toinen tentti-ikkuna avattu / Second exam window opened
Kurssin toinen tentti-ikkuna on avattu. Tentti on auki 25.4-22.5.
Ilmoittautumislinkki tenttiin
HUOM! Seuraava ja viimeinen tentti-ikkuna järjestetään elo-syyskuussa ja ikkunan aikana voi käydä tenttimässä kolmesti.
The second exam window of the course is now open. The exam is open 25.4-22.5.
Enrollment link to the exam
NOTE! The next and final exam window will be organized in August-September and there are three opportunities to take the exam during each window.
Harjoitusaika muuttunut: huomenna 21.4. 14-16->10-12 Exercise time changed: tomorrow 21.4. 14-16->10-12
Huomenna 21.4. 14-16 harjoitukset siirtyvät opettajan aikatauluista johtuen pidettäväksi 10-12.
Tomorrow 21.4. 14-16 exercise is moved to 10-12 due to the teacher's schedule conflict.
Pääsiäisloma 13.4 - 19.4 / Easter holidays 13.4 - 19.4
HUOM! Yliopistolla on pääsiäisloma ke 13.4 - ti 19.4. Pääsiäisloman aikana ei pidetä harjoitusryhmiä tai kyselytuntia.
NOTE! The university has Easter holidays from Wed 13.4 until Tue 19.4. Neither exercise sessions nor the QA session is held during this period.
Keskiviikon 8-10 harjoitukset palaavat Zoomiin! / Exercises Wednesday 8-10 return to Zoom!
Keskiviikkoaamun 8-10 harkat on siirretty takaisin Zoomiin osallistujia vähäisyyden vuoksi.
Note! Exercises on Wednesday mornings 8-10 have been moved back to Zoom due to low participation.
Friday 18.3. exercise time changed!
The exercise on Friday 18.3. will be exceptionally held from 9-11 due to the teacher's business trip.
Ensimmäinen tentti-ikkuna on avattu / The first exam window is open
Kurssin ensimmäinen tentti-ikkuna on avattu, jotta kaikille kurssilaisille voidaan taata tasapuoliset mahdollisuudet suunnitella kurssin suorittamista. Tentti on auki 2.3-25.3.
Ilmoittautumislinkki tenttiin
HUOM! Seuraava tentti-ikkuna järjestetään huhti-toukokuussa ja ikkunan aikana voi käydä tenttimässä kolmesti.
The first exam window of the course is now open to give everybody an equal opportunity to plan their studies on the course. The exam is open 2.3-25.3.
Enrollment link to the exam
NOTE! The next exam window will be organized in April-May and there are three opportunities to take the exam during each window.
Opetusta kampuksilla nelosperiodilla / On campus teaching on the 4th period
Seuraavat harjoitukset siirtyvät kampuksille tietokoneluokkiin nelosperiodin ajaksi:
Tiistai 10-12. Hervanta, Kooditorio TC215
Tiistai 14-16. Hervanta, Kooditorio TC215
Keskiviikko 8-10. Keskusta, Pinni B1084
Keskiviikko 12-14. Keskusta, Pinni B1084
Loput oppimistapahtumat järjestetään edelleen Zoomissa.
The following exercises move to be held on the campuses in computer classes for the 4th period:
Tuesday 10-12. Hervanta, Coditorium TC215
Tuesday 14-16. Hervanta, Coditorium TC215
Wednesday 8-10. Central campus, Pinni B1084
Wednesday 12-14. Central campus, Pinni B1084
The rest of the learning events are still organised in Zoom.
Kierroksen 8 arviointiskripti korjattu (+ eri kirjastoja ei voikaan käyttää)
Bug in round 8 grading has been fixed (+ alternative libraries cannot be used)
Kierroksen 8 arviointiskriptissä ollut bugi on nyt korjattu. Kaikkien palautusten uudelleen arviointi ei ollut mahdollista, joten jos pisteitä puuttuu, palauta uudelleen.
Tarkistin edellyttää teknisistä syistä, että tehtävät ratkaistaan tehtävänannoissa ehdotetuilla kirjastoilla. Tehtävänannoista on tämän vuoksi nyt poistettu maininnat, että voisi käyttää jotain muitakin kirjastoja.
The bug in the grading script for round 8 has now been fixed. It was not possible to re-evaluate all submissions so if you have points missing, resubmit your solution.
Due to technical reasons the grader requires you to use the external libraries suggested in the task descriptions. As a consequence the task descriptions no longer mention a possibility of using alternative libraries.
7. ohjelmointidemo julkaistu / 7th programming demo published
Katso Panopton kansiota / see the Panopto folder.
Huom! Harjoituksiin osallistumisesta / Note on exercise attendance!
Harjoitukset ovat opiskelijoiden oppimista tukemaan tarkoitettu oppimistapahtuma. Vaikka osallistuminen on joustavaa, parhaiten ja perusteellisimmin apua saa, kun paikalle saapuu ajoissa. Suosittelemme siis tulemaan harkkoihin aiemmin kuin viimeminuuteilla.
Tehtävien tekeminen on myös hyvä aloittaa ajoissa. Olemme kurssityöskentelyn sujuvoittamiseksi siirtäneet loppujen kierrosten määräajat viikonlopun yli maanantai-iltaan. Muista myös jättää aikaa palautumiseen!
The exercise sessions are a learning event intended for supporting the students' learning. Attendance can thus be flexible yet the best and most thorough help is available when turning up on time. We recommend coming to the exercises earlier than during the last minutes of the sessions.
It is smart to start working on the tasks early. In order to make course work more fluent, we have moved the deadlines of the remaining rounds over the weekend to Monday evening. Remember to leave also time for rest!
Teoriapisteiden arvosanarajoja laskettu / Grade limits for the theory points lowered
Teoriaosion pisterajoja on laskettu huomioimaan paremmin joustavuus oppimistapahtumiin osallistumisessa. Osiosta pääsee läpi 74 pisteellä ja 370 pistettä tarvitaan arvosanaan 5.
The points needed for grades in the theory category have been lowered to take better into account flexibility of joining teaching events.. The category is passed with 74 points and 370 points is needed for grade 5.
Linkki harjoituksiin lisätty / Link to exercises added
Linkki harjoituksiin löytyy Työnkulusta. Sama linkki toimii kaikkiin harkkakertoihin.
The link to the exercises can be found in Course Workflow. The same link works for each event. Note that only two events are fully in English.
Kurssi alkaa etäopetuksessa / Teaching will start online
Pandemiatilanteesta johtuen kurssin kaikki opetus järjestetään etäopetuksena 16.1. saakka. Kyselytunnit järjestetään täysin etänä ainakin koko kolmannen periodin ajan. Pienryhmäopetusta pyritään tarjoamaan kampuksilla lähiopetuksena niin pian kuin se on suositusten valossa mahdollista. Linkit oppimistapahtumiin löydät osiosta 2.2.2 Kurssin työnkulku.
Due to the worsening pandemic all teaching on the course will be organised online until 16.1. The Q&A Sessions will be fully online at least during the 3rd period. The course aims to offer some contact teaching on the campuses in small groups as soon as the recommendations allow. Links to the learning events can be found under 2.2.2 Course Workflow.
Show:
0 / 10 1. Permission for use of anonymized course data in research
Monday, 3 January 2022, 12:00 – Thursday, 30 June 2022, 23:59
Assignment | Category | Submissions | Points |
---|---|---|---|
1.1 Permission for Research | |||
1.1.1 Data protection form | tutkimuslupa - research permission | 0 / 10 | 0 / 10 |
0 / 50 2. Welcome to Programming 3: Interfaces and Techniques
Monday, 10 January 2022, 12:00 – Friday, 21 January 2022, 23:59
Assignment | Category | Submissions | Points |
---|---|---|---|
2.1 Welcome to the Course | |||
2.2 Practical Matters | |||
2.2.1 Course Staff and Contact Information | |||
2.2.2 Course Workflow | |||
2.2.3 Grading of the Course | |||
2.3 Java: Programming Environment | |||
2.3.1 Virtual Desktop: TUNI Virtual desktop | |||
2.3.2 Java IDE and the First Program | |||
2.3.2.1 Exercise Java | teoria - theory | 0 / 5 | 0 / 5 |
2.3.2.2 Exercise NetBeans | teoria - theory | 0 / 5 | 0 / 5 |
2.3.3 ⌛ Counting the Mean | |||
2.3.3.1 Average | harjoitus - exercise | 0 / 10 | 0 / 25 |
2.4 Git: Basics | |||
2.5 A more detailed introduction to Java | |||
2.6 Q&A Session | |||
2.6.1 Exercise QA | teoria - theory | 0 / 5 | 0 / 5 |
2.6.2 Q&A session 1 attendance | teoria - theory | 0 / 1 | 0 / 10 |
0 / 95 3. Java as Programming Language
Monday, 17 January 2022, 12:00 – Friday, 28 January 2022, 23:59
Assignment | Category | Submissions | Points |
---|---|---|---|
3.1 More basic features of Java | |||
3.1.1 Java input and output streams | |||
3.1.1.1 Exercise IO | teoria - theory | 0 / 5 | 0 / 10 |
3.1.2 Basic Java containers | |||
3.1.2.1 Exercise Containers | teoria - theory | 0 / 5 | 0 / 5 |
3.1.3 Sorting and lambda functions | |||
3.1.3.1 Exercise Lambda | teoria - theory | 0 / 5 | 0 / 10 |
3.2 ⌛ Median | |||
3.2.1 Median | harjoitus - exercise | 0 / 10 | 0 / 15 |
3.3 ⌛⌛ Parameter table | |||
3.3.1 Parametritaulukko | harjoitus - exercise | 0 / 10 | 0 / 20 |
3.4 ⌛⌛ Currency rates | |||
3.4.1 Valuuttakurssit | harjoitus - exercise | 0 / 10 | 0 / 20 |
3.5 Q&A Session | |||
3.5.1 Exercise QA | teoria - theory | 0 / 5 | 0 / 5 |
3.5.2 Q&A session 2 attendance | teoria - theory | 0 / 1 | 0 / 10 |
0 / 95 4. Programming in the Large
Monday, 24 January 2022, 12:00 – Friday, 4 February 2022, 23:59
Assignment | Category | Submissions | Points |
---|---|---|---|
4.1 Playing Field of Implementing Software | |||
4.1.1 Concept of Abstraction | |||
4.1.1.1 Exercise Abstraction | teoria - theory | 0 / 5 | 0 / 5 |
4.1.2 Information Hiding | |||
4.1.2.1 Exercise Interface | teoria - theory | 0 / 5 | 0 / 10 |
4.2 Introduction to Java classes | |||
4.2.1 The basic structure of a Java class | |||
4.2.2 Java packages | |||
4.3 Exception handling in Java | |||
4.3.1 Exercise Exceptions | teoria - theory | 0 / 5 | 0 / 10 |
4.4 ⌛⌛ Sudoku | |||
4.4.1 Sudoku | harjoitus - exercise | 0 / 10 | 0 / 15 |
4.5 ⌛⌛ Standings | |||
4.5.1 Standings | harjoitus - exercise | 0 / 10 | 0 / 20 |
4.6 ⌛⌛ Student register | |||
4.6.1 StudentRegister | harjoitus - exercise | 0 / 10 | 0 / 20 |
4.7 Q&A Session | |||
4.7.1 Exercise QA | teoria - theory | 0 / 5 | 0 / 5 |
4.7.2 Q&A session 3 attendance | teoria - theory | 0 / 1 | 0 / 10 |
0 / 95 5. Inheritance
Monday, 31 January 2022, 12:00 – Friday, 11 February 2022, 23:59
Assignment | Category | Submissions | Points |
---|---|---|---|
5.1 Modularity: Inheritance | |||
5.1.1 Exercise Objects | teoria - theory | 0 / 5 | 0 / 5 |
5.1.2 Inheritance | |||
5.1.2.1 Exercise Inheritance | teoria - theory | 0 / 5 | 0 / 10 |
5.2 Late (Dynamic) Binding | |||
5.3 Introduction to inheritance in Java | |||
5.3.1 Exercise Java | teoria - theory | 0 / 5 | 0 / 5 |
5.4 Exception handling in Java, part 2 | |||
5.4.1 Exercise Exceptions2 | teoria - theory | 0 / 5 | 0 / 5 |
5.5 ⌛ Date and time | |||
5.5.1 Datetime | harjoitus - exercise | 0 / 10 | 0 / 10 |
5.6 ⌛⌛ Dates | |||
5.6.1 Dates | harjoitus - exercise | 0 / 10 | 0 / 20 |
5.7 ⌛⌛ Word game | |||
5.7.1 Word game | harjoitus - exercise | 0 / 10 | 0 / 25 |
5.8 Q&A Session | |||
5.8.1 Exercise QA | teoria - theory | 0 / 5 | 0 / 5 |
5.8.2 Q&A session 4 attendance | teoria - theory | 0 / 1 | 0 / 10 |
0 / 95 6. Class Hierarchies
Monday, 7 February 2022, 12:00 – Monday, 21 February 2022, 23:59
Assignment | Category | Submissions | Points |
---|---|---|---|
6.1 Modularity: Interfaces | |||
6.1.1 Abstract Base Class | |||
6.1.1.1 Exercise ADT | teoria - theory | 0 / 5 | 0 / 5 |
6.1.2 Interface Classes | |||
6.1.2.1 Exercise interfaces | teoria - theory | 0 / 5 | 0 / 5 |
6.1.3 Multiple Inheritance | |||
6.2 Modeling Class Hierarchies | |||
6.3 Java interfaces, part 1 | |||
6.3.1 Exercise interfaces | teoria - theory | 0 / 5 | 0 / 5 |
6.4 Java Generics, part 1 | |||
6.4.1 Exercise generics | teoria - theory | 0 / 5 | 0 / 5 |
6.5 Java interfaces, part 2 | |||
6.5.1 Exercise interfaces2 | teoria - theory | 0 / 5 | 0 / 5 |
6.6 ⌛ Shapes | |||
6.6.1 Shapes | harjoitus - exercise | 0 / 10 | 0 / 10 |
6.7 ⌛⌛ Comparison interfaces | |||
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 Q&A Session | |||
6.9.1 Exercise QA | teoria - theory | 0 / 5 | 0 / 5 |
6.9.2 Q&A session 5 attendance | teoria - theory | 0 / 1 | 0 / 10 |
0 / 95 7. Generics
Monday, 14 February 2022, 12:00 – Monday, 28 February 2022, 23:59
Assignment | Category | Submissions | Points |
---|---|---|---|
7.1 Polymorphism: Generics | |||
7.1.1 Exercise generics | teoria - theory | 0 / 5 | 0 / 10 |
7.2 Java generics, part 2 | |||
7.3 Java’s functional interfaces | |||
7.3.1 Exercise Java-functional1 | teoria - theory | 0 / 5 | 0 / 5 |
7.4 Functional programming in Java | |||
7.4.1 Exercise Java-functional2 | teoria - theory | 0 / 5 | 0 / 10 |
7.5 ⌛⌛ Movie data vs stream | |||
7.5.1 Movie data vs stream | harjoitus - exercise | 0 / 10 | 0 / 15 |
7.6 ⌛⌛ Movie data vs stream #2 | |||
7.6.1 Movie data vs stream #2 | harjoitus - exercise | 0 / 10 | 0 / 15 |
7.7 ⌛⌛⌛ N-dimensional array | |||
7.7.1 N-dimensional array | harjoitus - exercise | 0 / 10 | 0 / 25 |
7.8 Q&A Session | |||
7.8.1 Exercise QA | teoria - theory | 0 / 5 | 0 / 5 |
7.8.2 Q&A session 6 attendance | teoria - theory | 0 / 1 | 0 / 10 |
0 / 97 8. Packages
Monday, 21 February 2022, 12:00 – Monday, 14 March 2022, 23:59
Assignment | Category | Submissions | Points |
---|---|---|---|
8.1 Returning to Campus | |||
8.1.1 Exercise campus | palaute - feedback | 0 / 2 | 0 / 2 |
8.2 Modularity: Packages | |||
8.2.1 Interface as a Contract | |||
8.2.1.1 Exercise contracts | teoria - theory | 0 / 5 | 0 / 10 |
8.2.2 Error Situations in Interfaces | |||
8.2.2.1 Exercise guarantees | teoria - theory | 0 / 5 | 0 / 15 |
8.3 Managing a Java code project with Maven | |||
8.4 ⌛⌛ Text search inside a 7z file | |||
8.4.1 sevenzipsearch | harjoitus - exercise | 0 / 10 | 0 / 20 |
8.5 ⌛⌛ Country data (XML) | |||
8.5.1 xmlcountries | harjoitus - exercise | 0 / 10 | 0 / 20 |
8.6 ⌛⌛ Country data (JSON) | |||
8.6.1 json countries | harjoitus - exercise | 0 / 10 | 0 / 15 |
8.7 Q&A Session | |||
8.7.1 Exercise QA | teoria - theory | 0 / 5 | 0 / 5 |
8.7.2 Q&A session 7 attendance | teoria - theory | 0 / 1 | 0 / 10 |
0 / 15 9. Winter Break: give mid course feedback
Monday, 21 February 2022, 12:00 – Friday, 1 April 2022, 23:59
Assignment | Category | Submissions | Points |
---|---|---|---|
9.1 Feedback | |||
9.1.1 Exercise feedback | palaute - feedback | 0 / 2 | 0 / 10 |
9.1.2 Exercise feedback2 | palaute - feedback | 0 / 2 | 0 / 5 |
0 / 95 10. Work Distribution and Working in a Team
Monday, 7 March 2022, 12:00 – Monday, 21 March 2022, 23:59
Assignment | Category | Submissions | Points |
---|---|---|---|
10.1 Distribution of Work | |||
10.1.1 Team Work in Version Control | |||
10.1.2 Branching in Version Control | |||
10.1.3 Technical viewpoint: Submodules in Git | |||
10.1.4 Repository-exercise on branches | |||
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 Documentation and Conventions | |||
10.2.1 Documentation Comments - Javadoc | |||
10.3 ⌛⌛ JSON & JavaDoc | |||
10.3.1 javadocjson | harjoitus - exercise | 0 / 10 | 0 / 20 |
10.4 ⌛⌛ Standings & JavaDoc | |||
10.4.1 javadocstandings | harjoitus - exercise | 0 / 10 | 0 / 15 |
10.5 Q&A Session | |||
10.5.1 Exercise QA | teoria - theory | 0 / 5 | 0 / 5 |
10.5.2 Q&A session 8 attendance | teoria - theory | 0 / 1 | 0 / 10 |
0 / 95 11. Functional Program
Monday, 14 March 2022, 12:00 – Friday, 1 April 2022, 23:59
Assignment | Category | Submissions | Points |
---|---|---|---|
11.1 (Unit) Testing | |||
11.1.1 Ways to Test | |||
11.1.1.1 Exercise terms | teoria - theory | 0 / 5 | 0 / 5 |
11.1.2 Unit Testing | |||
11.1.2.1 Exercise unit | teoria - theory | 0 / 5 | 0 / 10 |
11.1.3 Testing Framework JUnit | |||
11.1.3.1 Exercise junit | teoria - theory | 0 / 5 | 0 / 10 |
11.2 ⌛⌛ JUnit tests for course attainment | |||
11.2.1 junitattainment | harjoitus - exercise | 0 / 10 | 0 / 15 |
11.3 ⌛⌛⌛ JUnit tests for order | |||
11.3.1 junitorder | harjoitus - exercise | 0 / 25 | 0 / 40 |
11.4 Q&A Session | |||
11.4.1 Exercise QA | teoria - theory | 0 / 5 | 0 / 5 |
11.4.2 Q&A session 9 attendance | teoria - theory | 0 / 1 | 0 / 10 |
0 / 95 12. Graphical User Interfaces
Monday, 21 March 2022, 12:00 – Friday, 8 April 2022, 23:59
Assignment | Category | Submissions | Points |
---|---|---|---|
12.1 Event-driven Programming | |||
12.1.1 Exercise event-driven | teoria - theory | 0 / 5 | 0 / 5 |
12.2 JavaFX Library | |||
12.2.1 Exercise javafx1 | teoria - theory | 0 / 5 | 0 / 5 |
12.2.2 First JavaFX Program | |||
12.2.2.1 Exercise javafx2 | teoria - theory | 0 / 5 | 0 / 5 |
12.2.3 A Little bit bigger example | |||
12.2.3.1 Exercise javafx3 | teoria - theory | 0 / 5 | 0 / 10 |
12.2.4 FXML | |||
12.3 ⌛ JavaFX calculator | |||
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 Q&A Session | |||
12.5.1 Exercise QA | teoria - theory | 0 / 5 | 0 / 5 |
12.5.2 Q&A session 10 attendance | teoria - theory | 0 / 1 | 0 / 10 |
0 / 15 13. Project Start
Monday, 28 March 2022, 12:00 – Monday, 11 April 2022, 23:59
Assignment | Category | Submissions | Points |
---|---|---|---|
13.1 Project: Sisu Unraveled | |||
13.2 Q&A Session: On Course Project | |||
13.2.1 Exercise QA | teoria - theory | 0 / 5 | 0 / 5 |
13.2.2 Q&A session 11 attendance | teoria - theory | 0 / 1 | 0 / 10 |
0 / 15 14. Round 12
Monday, 4 April 2022, 12:00 – Friday, 22 April 2022, 23:59
Assignment | Category | Submissions | Points |
---|---|---|---|
14.1 TestFX | |||
14.2 Q&A Session: On Course Project | |||
14.2.1 Exercise QA | teoria - theory | 0 / 5 | 0 / 5 |
14.2.2 Q&A session 12 attendance | teoria - theory | 0 / 1 | 0 / 10 |
0 / 15 15. Round 13: Easter break 13.4.-19.4.
Monday, 18 April 2022, 12:00 – Friday, 29 April 2022, 23:59
Assignment | Category | Submissions | Points |
---|---|---|---|
15.1 Project: Documentation | |||
15.2 Q&A Session | |||
15.2.1 Exercise QA | teoria - theory | 0 / 5 | 0 / 5 |
15.2.2 Q&A session 13 attendance | teoria - theory | 0 / 1 | 0 / 10 |
0 / 515 16. Project Turn-in
Monday, 25 April 2022, 12:00 – Friday, 6 May 2022, 23:59
Assignment | Category | Submissions | Points |
---|---|---|---|
16.1 Submission | |||
16.1.1 Turnin your project | projekti - project | 0 / 25 | 0 / 500 |
16.2 Q&A Session | |||
16.2.1 Exercise QA | teoria - theory | 0 / 5 | 0 / 5 |
16.2.2 The course is finished! Have a nice summer. | teoria - theory | 0 / 1 | 0 / 10 |
harjoitus - exercise
0 / 520
palaute - feedback
0 / 17
projekti - project
0 / 500
teoria - theory
0 / 445
tutkimuslupa - research permission
0 / 10