Object-Oriented Programming (5 cr)
Code: 5051125-3038
General information
Enrollment
29.05.2024 - 23.09.2024
Timing
02.09.2024 - 18.12.2024
Number of ECTS credits allocated
5 op
Mode of delivery
Contact teaching
Unit
Engineering and Business
Campus
Kupittaa Campus
Teaching languages
- Finnish
- English
Degree programmes
- Degree Programme in Information and Communication Technology
- Degree Programme in Information and Communications Technology
Teachers
- Timo Haavisto
- Werner Ravyse
Groups
-
ICTMODgameSem
-
PTIVIS23PGame and Interactive Technologies
- 18.09.2024 14:00 - 16:00, Theory, Olio-ohjelmointi 5051125-3038
- 20.09.2024 12:00 - 15:00, Practical work, Olio-ohjelmointi 5051125-3038
- 25.09.2024 14:00 - 16:00, Theory, Olio-ohjelmointi 5051125-3038
- 27.09.2024 12:00 - 15:00, Practical work, Olio-ohjelmointi 5051125-3038
- 02.10.2024 14:00 - 16:00, Theory, Olio-ohjelmointi 5051125-3038
- 04.10.2024 12:00 - 15:00, Practical work, Olio-ohjelmointi 5051125-3038
- 09.10.2024 14:00 - 16:00, Theory, Olio-ohjelmointi 5051125-3038
- 11.10.2024 12:00 - 15:00, Practical work, Olio-ohjelmointi 5051125-3038
- 23.10.2024 14:00 - 16:00, Theory, Olio-ohjelmointi 5051125-3038
- 25.10.2024 12:00 - 15:00, Practical work, Olio-ohjelmointi 5051125-3038
- 30.10.2024 14:00 - 16:00, Theory class, Olio-ohjelmointi 5051125-3038
- 01.11.2024 12:00 - 15:00, Practical work, Olio-ohjelmointi 5051125-3038
- 06.11.2024 14:00 - 16:00, Theory, Olio-ohjelmointi 5051125-3038
- 08.11.2024 12:00 - 15:00, Practical work, Olio-ohjelmointi 5051125-3038
- 13.11.2024 14:00 - 16:00, Theory, Olio-ohjelmointi 5051125-3038
- 15.11.2024 12:00 - 15:00, Practical work, Olio-ohjelmointi 5051125-3038
- 20.11.2024 14:00 - 16:00, Theory, Olio-ohjelmointi 5051125-3038
- 22.11.2024 12:00 - 15:00, Practical work, Olio-ohjelmointi 5051125-3038
- 27.11.2024 14:00 - 16:00, Theory, Olio-ohjelmointi 5051125-3038
- 29.11.2024 12:00 - 15:00, Practical work, Olio-ohjelmointi 5051125-3038
Objective
After completing the course the student can:
- explain the different phases and main methods of the development of a software product
- explain the concepts class hierarchy, inheritance, and polymorphism, and utilize these in software development
- discuss the possibilities of parallel programming
- apply exception handling mechanisms
- design, implement and document a simple user interface application.
Content
- object-oriented structures
- error handling with exceptions
- threads
- database connection
- software development process and methods
- UML diagrams
Materials
Lecture and supplementary material will be made available at the appropriate timing for each topic or upon request from the students.
Teaching methods
The course will combine instructivist theory lectures with cognitivist problem solving by means of programming tasks and assignments.
Exam schedules
This course does not have a formal exam, but there is a summative online quiz that takes place at the end of the course.
Completion alternatives
All theory lessons and practical sessions will be in face-to-face contact mode at TUAS premises.
The location and timing of each of the lessons will be made available in August 2023.
Student workload
OOP is a 5 ECTS course and each student is thereby expected to work 135 hours. The workload will be broken into:
- 25 - 40% theory
- 25 - 40% practical work (under guidance and supervision)
- 20 - 50% self-exploratory work and problem solving
The workload numbers are purely indicators and will vary from student to student (depending largely on experience).
Content scheduling
This course teaches the basics of object oriented programming (OOP) and uses the C# programming language as practical application tool.
OOP runs from September to December and consists of:
- Theory sessions (all students);
- Practical sessions for students who already have experience in C#;
- Practical sessions for students with little to no experience with C#.
The theory lecture sessions will include theoretical unpacking of OOP concepts and demonstrations (in tutorial fashion) of the topic for that specific phase of the course, while the practical sessions will be an opportunity for students to practice the aspects shown during the lecture sessions. The practical sessions are also intended for students to work on their class assignments, under the assistance of the lecturer, Turku Game Lab engineer, or senior student class assistant.
The course content is delivered on a weekly basis and will cover the following topics:
- The C# development environment (Visual Studio) and the basic program structure;
- Data types and how to use them with logical and arithmetical operators;
- Control structures and iteration;
- Overview of OOP principles;
- Abstraction;
- Encapsulation;
- Inheritance;
- Polymorphism
Evaluation scale
H-5
Assessment methods and criteria
This course consists of:
- Practical assignments per topic; and
- An online theory quiz
All work is individual.
Practical assignments are to be returned via ItsLearning and will be graded on a 0-5 basis (failure to return an assignment by the end of the course, will lead to the assignment receiving a grade of 0). The grading criteria (rubric) for each assignment will be made available at the time of receiving the assignment. All practical assignments will be combined to give a practical average.
The theory quiz will be completed via an online delivery platform and transposed to a grade of 0-5. The quiz will only be open at the end of the course for a specified time - failure to complete a quiz during the allocated time slot (unless pertinent reasons are given) will result in the quiz receiving a grade of 0.
All assignments and the quiz will contribute to the respective averages - in other words, an assignment that was not attempted will score 0 and still count toward the final grade.
The course is graded as follows:
(Practical average x 0,5) + (Theory quiz x 0,5)
Assessment criteria, fail (0)
Each student must complete:
- At least 4 practical assignments; and
- The theory quiz
If students do not meet this minimum requirement, they will fail the course.
Qualifications
Introduction to Programming or equivalent programming skills