The latest instance of the course can be found at: COMP.CS.140 Ohjelmointi 3: Rajapinnat ja tekniikat: spring-2024
Course news
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.
Show:
0 / 10 1. Permission for use of anonymized course data in research
Monday, 22 August 2022, 12:00 – Friday, 30 December 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, 29 August 2022, 08:00 – Friday, 9 September 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 Java IDE and the First Program | |||
2.3.1.1 Exercise NetBeans | teoria - theory | 0 / 5 | 0 / 5 |
2.3.2 ⌛ Counting the Mean | |||
2.3.2.1 Average | harjoitus - exercise | 0 / 10 | 0 / 25 |
2.3.3 Virtual Desktop: TUNI Virtual desktop | |||
2.4 A more detailed introduction to Java | |||
2.4.1 Exercise Java | teoria - theory | 0 / 5 | 0 / 5 |
2.5 Q&A Session | |||
2.5.1 Exercise QA | teoria - theory | 0 / 5 | 0 / 5 |
2.5.2 Q&A session 1 attendance | teoria - theory | 0 / 1 | 0 / 10 |
0 / 95 3. Java as Programming Language
Monday, 5 September 2022, 12:00 – Friday, 16 September 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 ParameterTable | harjoitus - exercise | 0 / 10 | 0 / 20 |
3.4 ⌛⌛ Currency rates | |||
3.4.1 CurrencyRates | 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, 12 September 2022, 12:00 – Friday, 23 September 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 Git: Basics | |||
4.5 ⌛⌛ Sudoku | |||
4.5.1 Sudoku | harjoitus - exercise | 0 / 10 | 0 / 15 |
4.6 ⌛⌛ Standings | |||
4.6.1 Standings | harjoitus - exercise | 0 / 10 | 0 / 20 |
4.7 ⌛⌛ Student register | |||
4.7.1 StudentRegister | harjoitus - exercise | 0 / 10 | 0 / 20 |
4.8 Q&A Session | |||
4.8.1 Exercise QA | teoria - theory | 0 / 5 | 0 / 5 |
4.8.2 Q&A session 3 attendance | teoria - theory | 0 / 1 | 0 / 10 |
0 / 95 5. Inheritance
Monday, 19 September 2022, 12:00 – Friday, 30 September 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, 26 September 2022, 12:00 – Friday, 7 October 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. Packages
Monday, 3 October 2022, 12:00 – Friday, 14 October 2022, 23:59
Assignment | Category | Submissions | Points |
---|---|---|---|
7.1 Modularity: Packages | |||
7.1.1 Interface as a Contract | |||
7.1.1.1 Exercise contracts | teoria - theory | 0 / 5 | 0 / 10 |
7.1.2 Error Situations in Interfaces | |||
7.1.2.1 Exercise guarantees | teoria - theory | 0 / 5 | 0 / 15 |
7.2 Managing a Java code project with Maven | |||
7.3 ⌛⌛ Text search inside a 7z file | |||
7.3.1 sevenzipsearch | harjoitus - exercise | 0 / 10 | 0 / 20 |
7.4 ⌛⌛ Country data (XML) | |||
7.4.1 xmlcountries | harjoitus - exercise | 0 / 10 | 0 / 20 |
7.5 ⌛⌛ Country data (JSON) | |||
7.5.1 json countries | harjoitus - exercise | 0 / 10 | 0 / 15 |
7.6 Q&A Session | |||
7.6.1 Exercise QA | teoria - theory | 0 / 5 | 0 / 5 |
7.6.2 Q&A session 7 attendance | teoria - theory | 0 / 1 | 0 / 10 |
0 / 95 8. Generics
Monday, 10 October 2022, 12:00 – Friday, 28 October 2022, 23:59
Assignment | Category | Submissions | Points |
---|---|---|---|
8.1 Polymorphism: Generics | |||
8.1.1 Exercise generics | teoria - theory | 0 / 5 | 0 / 10 |
8.2 Java generics, part 2 | |||
8.3 Java’s functional interfaces | |||
8.3.1 Exercise Java-functional1 | teoria - theory | 0 / 5 | 0 / 5 |
8.4 Functional programming in Java | |||
8.4.1 Exercise Java-functional2 | teoria - theory | 0 / 5 | 0 / 10 |
8.5 ⌛⌛ Movie data vs stream | |||
8.5.1 Movie data vs stream | harjoitus - exercise | 0 / 10 | 0 / 15 |
8.6 ⌛⌛ Movie data vs stream #2 | |||
8.6.1 Movie data vs stream #2 | harjoitus - exercise | 0 / 10 | 0 / 15 |
8.7 ⌛⌛⌛ N-dimensional array | |||
8.7.1 N-dimensional array | harjoitus - exercise | 0 / 10 | 0 / 25 |
8.8 Q&A Session | |||
8.8.1 Exercise QA | teoria - theory | 0 / 5 | 0 / 5 |
8.8.2 Q&A session 6 attendance | teoria - theory | 0 / 1 | 0 / 10 |
0 / 15 9. Autumn Break: give mid course feedback
Monday, 17 October 2022, 12:00 – Friday, 21 October 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, 24 October 2022, 12:00 – Friday, 4 November 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 / 25 | 0 / 20 |
10.4 ⌛⌛ Standings & JavaDoc | |||
10.4.1 javadocstandings | harjoitus - exercise | 0 / 25 | 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, 31 October 2022, 12:00 – Friday, 11 November 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, 7 November 2022, 12:00 – Friday, 18 November 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
Friday, 11 November 2022, 12:00 – Friday, 25 November 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. Testing a Graphical User Interface
Monday, 21 November 2022, 12:00 – Friday, 2 December 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. Documenting the Project
Monday, 28 November 2022, 12:00 – Friday, 9 December 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 / 500 16. Project Turn-in
Monday, 14 November 2022, 12:00 – Friday, 9 December 2022, 23:59
Late submissions are allowed until Friday, 16 December 2022, 23:59.
Assignment | Category | Submissions | Points |
---|---|---|---|
16.1 Submission | |||
16.1.1 Turnin your project | 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