The latest instance of the course can be found at: COMP.CS.140 Ohjelmointi 3: Rajapinnat ja tekniikat: spring-2024
Course news
Exam
Ohj3. Toinen Exam tentti julkaistu: https://exam.tuni.fi/enrolments/262880?code=COMP.CS.140_otm-7150839f-b799-4b3e-898f-c825e4247323 Prog3. The second Exam published: https://exam.tuni.fi/enrolments/262883?code=COMP.CS.140_otm-7150839f-b799-4b3e-898f-c825e4247323
Arvosanat / Grades
Harjoitustöiden arviointi valmistuu 15.1 mennessä. Tämän jälkeen arvosanoja aletaan syöttään Plussaan. / The evaluation of the projects will be completed by 15.1. After this, the grades start to be entered into Plussa.
Viimeiset harjoitukset / Last Exercises
Ei kyselytunteja enää / No Q&A sessions 8.12.2023 Viimeiset harjoitukset / Last Exercises: Friday 8.12 in Zoom 10-12 Friday 8.12 in Zoom 14-16 Monday 11.12 in Zoom 8-10
23.11.2023 Harjoitusryhmä siirretty Zoomiin / Exercise group moved to Zoom
Tämänpäiväinen harjoitusryhmä on siirretty Zoomiin johtuen julkisen liikenteen lakosta. Zoom linkki(sama kuin maanantaisin): https://tuni.zoom.us/j/64063172298?pwd=MXR5enh4aFE4U2xOWk9KMzNKenJqUT09 meeting id: 640 6317 2298, passcode: 364833 Today's exercise group has been moved to Zoom due to the public transport strike. Zoom link(same as Mondays): https://tuni.zoom.us/j/64063172298?pwd=MXR5enh4aFE4U2xOWk9KMzNKenJqUT09 meeting id: 640 6317 2298, passcode: 364833
Ensimmäinen kyselytunti on huomenna / The first Q&A session is tomorrow
Kyselytunnit alkavat huomenna (Perjanta 1.9) Suomeksi kello 10-12 ja Englanniksi 14-16. / The Q&A sessions start tomorrow (Friday, 1.9.) in Finnish 10-12 o'clock and in English 14-16 o'clock.
Show:
0 / 10
1. Permission for use of anonymized course data in research
Sunday, 27 August 2023, 21:45 – Friday, 22 December 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, 27 August 2023, 21:45 – Friday, 8 September 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 Git: Basics | ||||
2.3.3 Git: The Use on This Course | ||||
2.3.4 Managing a Java code project with Maven | ||||
2.3.5 Preparing for the first programming task submission | ||||
2.4 ⌛ Counting the Mean | ||||
2.4.1 Average | harjoitus - exercise | 0 / 10 | 0 / 25 | |
2.5 Virtual Desktop: TUNI Virtual Desktop | ||||
2.6 A more detailed introduction to Java | ||||
2.6.1 Exercise Java | teoria - theory | 0 / 5 | 0 / 5 | |
2.7 Q&A Session | ||||
2.7.1 Exercise QA | teoria - theory | 0 / 5 | 0 / 5 | |
2.7.2 Q&A session 1 attendance | teoria - theory | 0 / 1 | 0 / 10 |
0 / 95
3. Java as a Programming Language
Monday, 4 September 2023, 12:00 – Friday, 15 September 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, 11 September 2023, 12:00 – Friday, 22 September 2023, 23:59
Assignment | Category | Submissions | Points | |
---|---|---|---|---|
4.1 The Playing Field of Implementing Software | ||||
4.1.1 The 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 / 25 | |
4.5 ⌛⌛ Student register | ||||
4.5.1 StudentRegister | harjoitus - exercise | 0 / 10 | 0 / 30 | |
4.6 Q&A Session | ||||
4.6.1 Exercise QA | teoria - theory | 0 / 5 | 0 / 5 | |
4.6.2 Q&A session 3 attendance | teoria - theory | 0 / 1 | 0 / 10 |
0 / 95
5. Inheritance
Monday, 18 September 2023, 12:00 – Friday, 29 September 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, 25 September 2023, 12:00 – Friday, 6 October 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, 2 October 2023, 12:00 – Friday, 13 October 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 Fetching external libraries 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, 9 October 2023, 12:00 – Friday, 27 October 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. Autumn Break: give mid course feedback
Monday, 9 October 2023, 12:00 – Friday, 27 October 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, 23 October 2023, 12:00 – Friday, 3 November 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, 30 October 2023, 12:00 – Friday, 10 November 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, 6 November 2023, 12:00 – Friday, 17 November 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 / 15
13. Project Start
Sunday, 12 November 2023, 12:00 – Friday, 1 December 2023, 23:59
Assignment | Category | Submissions | Points | |
---|---|---|---|---|
13.1 Project: Weather App | ||||
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, 20 November 2023, 12:00 – Friday, 8 December 2023, 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, 27 November 2023, 12:00 – Friday, 8 December 2023, 23:59
Assignment | Category | Submissions | Points | |
---|---|---|---|---|
15.1 Project: Documentation | ||||
15.2 Q&A Session: On Course Project | ||||
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, 27 November 2023, 12:00 – Friday, 8 December 2023, 23:59
Late submissions are allowed until Friday, 15 December 2023, 23:59.
Assignment | Category | Submissions | Points | |
---|---|---|---|---|
16.1 Submission | ||||
16.1.1 Turn in your project | projekti - project | 0 / 25 | 0 / 500 |
0 / 0
17. Exam
Monday, 4 December 2023, 20:00 – Friday, 22 December 2023, 23:59
Assignment | Category | Submissions | Points | |
---|---|---|---|---|
17.1 Exam |
harjoitus - exercise
0 / 540
palaute - feedback
0 / 15
projekti - project
0 / 500
teoria - theory
0 / 430
tutkimuslupa - research permission
0 / 10