Course news
Muutoksia opetuksessa 29.3. ja 31.3. / Changes in teaching on 29.3. and 31.3.
Ajan muutos: keskiviikon klo 14–16 Zoom-kooditorio pidetään 29.3. poikkeuksellisesti klo 11–13. Paikan muutos: englanninkielinen kyselytunti pidetään 31.3. poikkeuksellisesti salissa TB109. / A change in time: Wednesday’s Zoom coditorium will be held on 29.3. from 11 to 13. A change in place: The Q&A session in English is on Friday, 31.3. at TB109.
Poikkeuksia kooditorioajoissa tänään ja huomenna / Exceptions in coditorium times today and tomorrow
Maanantain 20.3. kooditorio pidetään klo 14–16. Tiistain 21.3. klo 8–10 kooditorio pidetään 12.30–14.30. Paikat eivät muutu: molemmat kooditoriot ovat edelleen mikroluokassa TC215. / The coditorium on Monday, 20.3. will be held 14–16 o’clock. In addition, the coditorium on Tuesday, 21.3. 8–10 o’clock takes place 12.30–14.30 o’clock. The place is the same (TC215).
Päivityksiä JSON & Javadoc -tehtävään / Updates in the JSON & Javadoc task
JSON & Javadoc -tehtävä on osoittautunut murheenryyniksi. Tehtävään on päivitetty lihavoidulla tekstillä yksi tarkennus (package-info.java tiedostoa ei pidä tehdä) ja kaksi korjausta (Node-luokalla tulee olla rakentaja, metodien tulee olla kooditiedostoissa samassa järjestyksessä kuin esimerkkidokumentaatiossa). Taustoista on keskustelu Mattermostissa. / The JSON & Javadoc task has turned out to be a headache. The task has been updated (see bold text). There was an excusable omission in the text (do not create or comment package-info.java) and two errors (also the Node class must have a constructor and the order of the functions in the source code must be the same as in the example documentation). The errors were “inherited” from the original task text.
JSON & Javadoc palautus avattu / JSON & Javadoc submission opened
JSON & Javadoc tehtävän automaattitarkistaja on nyt toivottavasti korjattu. Kurssin opettajat pahoittelevat teknisiä ongelmia. Kymmenennen kierroksen tehtävien palautusaikaa on jatkettu maanantaihin 20.3.2023 klo 23.59 saakka. / The automatic tester for the JSON & Javadoc task has been hopefully fixed. The course staff apologises the technical problems. The deadline for the questions of the tenth round has been extended until Monday, 20.3.2023, 23.59.
Aika muodostaa projektiryhmä / Time to create group for project work
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än. Ryhmässä on kaksi tai kolme opiskelijaa. Takaraja rekisteröinnille on 20.3. Jos sinulta vielä puuttuu ryhmä, voit hyödyntää kurssin Mattermost-keskustelualuetta ryhmän löytämiseksi. Keskustelualueelle on tehty oma kiinnitetty ketjunsa ryhmää etsiville opiskelijoille. Löydät ketjun napsauttamalla pinnin symbolia Mattermostin ikkunan yläreunassa. Kysele ryhmäläisiä projektiin vain ja ainoastaan kiinnitetyssä langassa, jotta viestisi ei hukkuisi muiden viestien sekaan. / 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 group. The group can have two or three members. Once you have all the join codes, one team member can register the team through the Form a group selection in Plussa menu. The deadline is 20.3. If you do not have a group yet, you can use the course discussion area in Mattermost to look for one. The discussion area has a pinned thread for those who are seeking a group. You can find this thread easily by clicking the pin symbol in the Mattermost window. Seek group partners for the project work only in the pinned thread. Messages written elsewhere are likely to get lost among the other messages.
Läsnäolopisteistä / About the attendance points
4. ja 5. kyselytuntien läsnäolopisteet ovat Plussassa. / The attendance points of the 4th and 5th Q&A sessions have been stored in Plussa.
Läsnäolopisteistä / About the attendance points
2. ja 3. kyselytuntien läsnäolopisteet ovat Plussassa. / The attendance points of the 2nd and 3rd Q&A sessions have been stored in Plussa.
Fridays's coditorium moves to Hervanta / Perjantain kooditorio siirtyy Hervantaan
Fridays's (12–14) coditorium moves from Central campus to Hervanta. The coditorium will be held at TC215 (Tietotalo, Hervanta) starting from the Friday of this week (3.2.). / Perjantain kooditorion (klo 12–14) paikaksi on vaihdettu tämän viikon perjantaista (3.2.) alkaen TC215 (Tietotalo, Hervanta).
Opiskelijarekisterin palautusongelma korjattu / Submission problem of the student register task fixed
Plussan pitäisi nyt ottaa vastaan palautuksia opiskelijarekisteritehtävään. Neljännen kierroksen palautusaikaa on jatkettu teknisten ongelmien vuoksi vuorokaudella lauantaihin 4.2.2023 klo 23.59 saakka. / Plussa should now accept submissions to the student register task. The deadline of the fourth round has been extended with a day to Saturday, 4.2.2023 23.59 o’clock to compensate the technical problems.
Ongelma opiskeijarekisteritehtävässä / Problem in the student register task
Automaattitarkistuksessa ilmeni ongelma, jonka vuoksi Plussa ei hyväksy toistaiseksi palautuksia opiskelijarekisteritehtävään (luku 4.7). Huomaa, että voit kirjoittaa tehtävässä määritellyt luokat valmiiksi ja testata niitä annetun materiaalin avulla, vaikka Plussa ei suostu ajamaan omia testejään. Kurssin opiskelijat pahoittelevat ja selvittelevät ongelmaa parhaillaan. Palautustakarajaa jatketaan, jos ongelma osoittautuu sitkeäksi. Harjoitukseen voi pyytää lisää palautuskertoja, jos niitä on kulunut hukkaan palautusongelman vuoksi. / There is a problem in the automatic evaluator of the student register task (Chapter 4.7). Please, note that you can implement the required classes and also test them locally with the supplementary material even, if Plussa does not currently accept submissions for this task. The course staff apologizes and tries to solve the problem. The deadline will extended, if the problem persists. Please, ask for an increase of the submission limit, if you have run out of submissions, while trying to figure the problem.
Henkilökohtaiset etätietovarastot / Personal remote repositories
Kurssilaisille on luotu henkilökohtaiset GitLab-etätietovarastot. Tästä varastosta ja ohjelmointitehtävien valmista materiaalia sisältävästä etätietovarastosta on kerrottu luvussa 4.5. Raportoi mahdolliset tekniset ongelmat kurssin sähköpostiosoitteen (prog3@tuni.fi) kautta. / The personal remote GitLab repositories have been created. This repository and the remote repository containing material for the programming tasks are discussed in Chapter 4.5. Please, report any technical programs to the course email (prog3@tuni.fi).
Ensimmäinen kyselytunti on huomenna / The first Q&A session is tomorrow
Kyselytunnit alkavat huomenna (pe 20.1.). Käytänteistä kerrotaan kyselytunnilla. Tule paikalle, jos olet esimerkiksi epävarma, kuinka kyselytunteja etäseurataan. / The Q&A sessions start tomorrow (Friday, 20.1.). The practicalities are explained on Friday. Attend the Q&A session in-person especially, if you are unsure of how to attend the sessions remotely.
Ma klo 12–14 -kooditorio 16.1. klo 10–12 / Monday's 12–14 coditorium is on 16.1. 10–12 o'clock
Maanantain klo 12–14 kooditorio pidetään ensi maanantaina (16.1.) poikkeuksellisesti klo 10–12. Paikkaan ei ole tehty muutoksia. Kooditorio palaa vakiaikaansa klo 12–14 maanantaina 23.1. / Monday's 12–14 coditorium is on 16.1. 10–12 o'clock on the next Monday (16.1.). The place has not been changed. The coditorium will be held at its normal time (12–14) from 23.1. onwards.
Opetustapahtuman seuraaminen etänä / Viewing a learning event remotely
Pääset seuraamaan opetustapahtumaa (luento tai kyselytunti) etänä Panoptossa sivuvalikon Oppimistapahtumat-linkin kautta. Tapahtuma tulee näkyviin Panopton kansioon tallennuksen alettua. / Please, click the Learning event link in the menu to find the steam of a learning event (a lecture or a Q&A session) in Panopto. The learning event appears in the Panopto folder once the event has started.
13.1. kyselytunnit peruttu / 13.1. Q&A sessions cancelled
Kurssin aloitusviikon kyselytunnit (pe 13.1. ) sekä suomeksi että englanniksi on peruttu. Kyselytunnit alkavat perjantaina 20.1. / The first Q&A sessions scheduled on Friday, 13.1. have been cancelled. The Q&A sessions will start on Friday, 20.1.
Show:
0 / 10 1. Permission for use of anonymized course data in research
Sunday, 8 January 2023, 21:45 – Friday, 5 May 2023, 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
Sunday, 8 January 2023, 21:45 – Friday, 20 January 2023, 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, 16 January 2023, 12:00 – Friday, 27 January 2023, 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 / 20 |
3.3 ⌛⌛ Parameter table | |||
3.3.1 ParameterTable | harjoitus - exercise | 0 / 10 | 0 / 35 |
3.4 Q&A Session | |||
3.4.1 Exercise QA | teoria - theory | 0 / 5 | 0 / 5 |
3.4.2 Q&A session 2 attendance | teoria - theory | 0 / 1 | 0 / 10 |
0 / 95 4. Programming in the Large
Monday, 23 January 2023, 12:00 – Saturday, 4 February 2023, 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 Git: Use on This Course | |||
4.6 ⌛⌛ Sudoku | |||
4.6.1 Sudoku | harjoitus - exercise | 0 / 10 | 0 / 25 |
4.7 ⌛⌛ Student register | |||
4.7.1 StudentRegister | harjoitus - exercise | 0 / 10 | 0 / 30 |
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, 30 January 2023, 12:00 – Friday, 10 February 2023, 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 / 20 |
5.6 ⌛⌛ Word game | |||
5.6.1 Word game | harjoitus - exercise | 0 / 10 | 0 / 35 |
5.7 Q&A Session | |||
5.7.1 Exercise QA | teoria - theory | 0 / 5 | 0 / 5 |
5.7.2 Q&A session 4 attendance | teoria - theory | 0 / 1 | 0 / 10 |
0 / 95 6. Class Hierarchies
Monday, 6 February 2023, 12:00 – Friday, 17 February 2023, 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 / 20 |
6.7 ⌛⌛ Comparison interfaces | |||
6.7.1 Comparison | harjoitus - exercise | 0 / 10 | 0 / 35 |
6.8 Q&A Session | |||
6.8.1 Exercise QA | teoria - theory | 0 / 5 | 0 / 5 |
6.8.2 Q&A session 5 attendance | teoria - theory | 0 / 1 | 0 / 10 |
0 / 95 7. Packages
Monday, 13 February 2023, 12:00 – Friday, 24 February 2023, 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 ⌛⌛ JSON | |||
7.3.1 JSON | harjoitus - exercise | 0 / 10 | 0 / 10 |
7.4 ⌛⌛ Text search inside a 7z file | |||
7.4.1 sevenzipsearch | harjoitus - exercise | 0 / 10 | 0 / 20 |
7.5 ⌛⌛ Country data (JSON) | |||
7.5.1 json countries | harjoitus - exercise | 0 / 10 | 0 / 25 |
7.6 Q&A Session | |||
7.6.1 Exercise QA | teoria - theory | 0 / 5 | 0 / 5 |
7.6.2 Q&A session 6 attendance | teoria - theory | 0 / 1 | 0 / 10 |
0 / 95 8. Generics
Monday, 20 February 2023, 12:00 – Friday, 10 March 2023, 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 as a stream | |||
8.5.1 Movie data as a stream | harjoitus - exercise | 0 / 10 | 0 / 30 |
8.6 ⌛⌛ Movie data as a stream #2 | |||
8.6.1 Movie data as a stream #2 | harjoitus - exercise | 0 / 10 | 0 / 25 |
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, 20 February 2023, 12:00 – Friday, 10 March 2023, 23:59
Assignment | Category | Submissions | Points |
---|---|---|---|
9.1 Feedback | |||
9.1.1 Exercise feedback | palaute - feedback | 0 / 2 | 0 / 7 |
9.1.2 Exercise feedback2 | palaute - feedback | 0 / 2 | 0 / 7 |
9.1.3 Exercise feedback3 | palaute - feedback | 0 / 2 | 0 / 1 |
0 / 115 10. Work Distribution and Working in a Team
Monday, 6 March 2023, 12:00 – Monday, 20 March 2023, 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 / 55 |
10.4 Q&A Session | |||
10.4.1 Exercise QA | teoria - theory | 0 / 5 | 0 / 5 |
10.4.2 Q&A session 8 attendance | teoria - theory | 0 / 1 | 0 / 10 |
0 / 95 11. Functional Program
Monday, 13 March 2023, 12:00 – Friday, 24 March 2023, 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, 20 March 2023, 12:00 – Friday, 31 March 2023, 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 / 0 Opens on Monday, 27 March 2023, 12:00 13. Project Start
Monday, 27 March 2023, 12:00 – Friday, 14 April 2023, 23:59
Assignment | Category | Submissions | Points |
---|---|---|---|
13.1 Easter | |||
13.2 Project: Sisu Unraveled |
harjoitus - exercise
0 / 540
palaute - feedback
0 / 15
projekti - project
0 / 500
teoria - theory
0 / 430
tutkimuslupa - research permission
0 / 10