Programming II 1100-3INZ27
Object-Oriented Programming
1) Advanced Python constructs: decorators, named arguments
2) Basics of object-oriented programming: defining classes and their components
3,4) Object-oriented programming: class inheritance; building relationships between classes. Encapsulation and polymorphism. Abstract classes and interfaces
5) SOLID principles
6) Decorator design pattern
7) Strategy design pattern
Best Programming Practices
8) Code versioning with Git: merging changes, creating branches, pull requests, etc.
9) Code organization into modules and packages, creating documentation
10) Writing unit tests (pytest, unittest), tools supporting code quality (e.g., pylint, black)
Working on Large Projects
11) Popular Python libraries (e.g., pandas, matplotlib, requests, pytorch)
12) Introduction to frameworks (e.g., Flask)
13) Discussion of final projects
Main fields of studies for MISMaP
chemistry
computer science
Mode
Prerequisites (description)
Course coordinators
Learning outcomes
The student understands:
1) The basics of object-oriented programming, including concepts such as classes, objects, inheritance, polymorphism, and encapsulation.
2) The importance of good programming practices, such as following PEP 8 conventions, writing readable code, and documenting designs.
3) The principles of object-oriented design, including SOLID rules and the use of design patterns such as Decorator and Strategy.
4) The importance of software testing and its impact on the quality and reliability of code.
5) The difference between libraries and frameworks and their use in application development.
Students will be able to:
1) Create classes and objects in Python, defining their attributes and methods and building relationships between classes.
2) Apply design patterns (e.g. Decorator, Strategy) in practical programming projects.
3) Perform code versioning using the Git version control system, including managing branches, merging changes and performing pull requests.
4) Create unit tests using libraries such as pytest or unittest and analyze test results.
5) Organize a large programming project using libraries (e.g., pandas, matplotlib) or frameworks (e.g., Flask) and document and test code accordingly.
Assessment criteria
To pass the course, you must:
1) have a minimum of 2/3 attendance at classes (assuming 15 classes per semester, at most 5 absences from classes are allowed)
2) send the solutions to the tasks carried out in the exercises within 2 weeks of completion
3) Turn in a credit project
4) Pass a written exam
The final grade is the sum of the grade from the exercises (2/3 points; awarded for the solutions of the tasks + project) and the grade from the exam (1/3 points)
Additional information
Additional information (registration calendar, class conductors, localization and schedules of classes), might be available in the USOSweb system: