Object-oriented programming

Prerequisite

Programming, IP-18fPROGEG

Requirements

As for grades, the best grade is 5, the passing grade is 2.

Final grade is calculated as the average of ten grades: the two assignments and two multiplied by the paper-based tests plus the computer-based tests.

All of the submitted projects are going to be checked against plagiarism at the end of the semester. Anybody involved in it might fail the course.

Considering the increasing number and length of arguments related to the students who cannot accept the failure, anybody involved in it might face a disciplinary procedure which might mean loosing the possibility of retaking the course again with the dean's approval.
Every student has to understand how many possibilites he/she has: if it is the last chance for somebody before loosing a scholarship, before going home, or just before realizing that he/she cannot finish in 3 years, that student has to prepare accordingly and not begging for extra attempts. It is inappropriate and will not happen. Every student has to take responsibility for his/her actions and accept that any violation of the university rules causes failure immediately. There are no excuses for anybody.

Classes: 2-hour video lecture (online), 1-hour video-based practice (online), 1-hour practice in classroom, and a 2-hour lab at the university per week.
Students are expected to attend all classes. Three absenses are allowed for each.
The videos can be found on Canvas, the extension of the files is .mkv. The lecture is divided into multiple videos.

Semester schedule

Assignments

The assignments have to be user-friendly.
Automatic testing and electronic documentation have to be included for both.
The code has to contain classes. Global variables are not allowed.
In the documentation, test cases have to be included with inputs and expected outputs.
They have to be compressed to neptuncode.ZIP (where neptuncode means your Neptun code) and submitted in Canvas.
They have to be defended.

  1. assignment - type realization via class

    It has to be foolproof.
    In the documentation, type values, operations, representation, and implementation have to be included. In the implementation, used algorithmic patterns have to be named.

  2. assignment - generalization and specialization by inheritance

    Inheritance, runtime polymophfism with virtual methods, and design patterns have to be used.
    In the documentation, UML diagram and the algorithm that solves the problem have to be included.

Support

Algorithmic patterns for different kind of data structures

Lectures

Topic Slides Code Other

Procedural vs. Object-oriented programming
Type and class