SylabUZ

Generate PDF for this page

Object oriented programming - course description

General information
Course name Object oriented programming
Course ID 13.2-WF-FizP-OP-S17
Faculty Faculty of Physics and Astronomy
Field of study Physics
Education profile academic
Level of studies First-cycle studies leading to Bachelor's degree
Beginning semester winter term 2022/2023
Course information
Semester 3
ECTS credits to win 6
Available in specialities Computer Physics
Course type obligatory
Teaching language english
Author of syllabus
  • dr Marcin Kośmider
Classes forms
The class form Hours per semester (full-time) Hours per week (full-time) Hours per semester (part-time) Hours per week (part-time) Form of assignment
Lecture 15 1 - - Exam
Laboratory 45 3 - - Credit with grade

Aim of the course

The aim of this course is to introduce the Object Oriented Programming techniques required to develop and create modern applications related to the „every day” and science problems. This is an active course where students solve realistic problems from beginning. Students learn how to analyse problem in the object oriented way and how to implement code according to the standards.

Prerequisites

The efficient use of the Linux system (both in the terminal and in the graphical environment), knowledge of the basics of programming including procedural programming.

Scope

1. Introduction

- object and procedural programming

- class, object and methods

- constructor and destructor

- encapsulation

- special methods

 

2. Inheritance, polymorphism

- inheritance

- polymorphism

- abstraction

 

3. Organization of the code

- code naming and formatting standards

- modules and packages

- namespaces

- code documentation

- version control systems

 

4. Object-oriented modeling and programming

- problem analysis and construction of its model

- software development process

- UML diagrams

 

5. Design patterns

- the concept of design patterns

- creative patterns

- structural patterns

- functional patterns

 

6. Frameworks

- the concept of framework and application

- a selected example of a framework

Teaching methods

Lecture:

Convencional lecture, work with problems, discusiion, workshop

Laboratory:

Laboratory exercise, project, work in group, presentation, work with documentation, independed work, brain storm

Learning outcomes and methods of theirs verification

Outcome description Outcome symbols Methods of verification The class form

Assignment conditions

Lecture:
A practical exam consisting in solving a given problem (chosen from the list of problems). Final evaluation is subject to problem analysis, presentation of problem solving algorithms, source code as well as evaluation and verification of obtained results

Laboratory:
The final grade consists of: average marks obtained during laboratories with activity and short tests to check learning progress (50% of final grade), semester project assessment (50% of final grade). The condition for passing the semester project is its implementation, preparation and delivery of the project report and its presentation within the prescribed period. Before taking the exam the student must get a pass from the exercises.

Final grade: weighted average of exam grades (60%) and exercises (40%).

Recommended reading

1. "Zaawansowany Python. Jasne, zwięzłe i efektywne programowanie", R.Luciano, APN Promise

2. "Learning Python. Powerful Object-Oriented Programming. 5th Edition", M.Lutz, Helion

3. "Python 3 Object-Oriented Programming"  D.Philips, Helion

4. "Clean Code in Python" M.Anaya, Helio

5.  Steve Holzner, Design patterns for dummies, Willey Publishing Ing. Indianapolis 2006.

 

Further reading

[1] Internet

Notes

The lecture should take place in a room with Internet access. Computer laboratories should take place in groups enabling independent work at the computer of every student and not more than 12 people.


Modified by dr Marcin Kośmider (last modification: 04-04-2022 20:46)