This repository contains my solutions for the tasks from the SoftUni course Programming Advanced & OOP with Python-January-2023.
Course duration: 12 weeks
Course start: 10.01.2023
Course tutors:
• Python Labs: Mario Zahariev
• Python Exercises: Diyan Kalaydzhiev
Advanced | OOP |
---|---|
1. Resources |
1. Resources |
2. Course Info |
2. Course Info |
3. Lists as Stacks and Queues • Stacks (creating, adding and removing elements); • Queues (creating, adding and removing elements). |
3. First Steps in OOP • Project Architecture; • Basic Concepts of OOP; • A First Look at Classes; • Scope and Namespace. |
4. Exercise: Lists as Stacks and Queues |
4. Exercise: First Steps in OOP |
5. Tuples and Sets • Tuples (definition, usage, methods); • Sets (definition, operators, methods). |
5. Classes and Objects • Class Objects; • Instance Objects; • Method Objects; • Class and Instance Variables. |
6. Exercise: Tuples and Sets |
6. Exercise: Classes and Objects |
7. Exercise: Stacks, Queues, Tuples and Sets |
7. Inheritance • Inheritance; • Forms of Inheritance; • Mixins. |
8. Multidimensional Lists • Definition and Usage; • Creating Multidimensional Lists; • Traversing and Manipulation; • Other Nested Structures. |
8. Exercise: Inheritance |
9. Exercise: Multidimensional Lists |
9. Encapsulation • Encapsulation Definition; • Access Modifiers in Python; • Getters and Setters. |
10. Exercise: Multidimensional Lists |
10. Exercise: Encapsulation |
11. Functions Advanced • Packing Arguments; • Unpacking Arguments; • Recursion; • Decorators. |
11. Static and Class Methods • Static Method; • Class Method; • Overriding a Class Method. |
12. Exercise: Functions Advanced |
12. Exercise: Static and Class Methods |
13. Error Handling • Errors and Exceptions; • Common Error Types; • Custom Exceptions; • Catching Exceptions. |
13. Polymorphism and Abstraction • What is Polymorphism?; • Overriding Magic Methods; • What is Abstraction?; • Abstract classes and methods; • Duck-typing. |
14. Exercise: Error Handling |
14. Exercise: Polymorphism and Abstraction |
15. File Handling • Python File Object; • Opening a File; • Reading File; • Writing and Creating a File; • Deleting a File. |
15. SOLID • Single Resposibility; • Open/Closed; • Liskov Substitution; • Iterface Sugregation; • Dependency Inversion. |
16. Exercise: File Handling |
16. Exercise: SOLID |
17. Workshop |
17. Iterators and Generators • What are Iterators?; • What are Generators? (the yield statement). |
18. Exercise: Workshop |
18. Exercise: Iterators and Generators |
19. Modules • Module Definition; • Build-in Modules; • External Modules (PIP); • Custom Modules. |
19. Decorators • Functions Returning Functions; • Decorators; • Accepting Arguments in Decorators; • Passing Arguments to Decorators; • Class Decorators. |
20. Exercise: Modules |
20. Exercise: Decorators |
21. Exam Preparation |
21. Testing • What is Unit Testing?; • Unit Testing Basics; • Unit Testing Framework - unittest; • Mocking. |
22. Exam Preparation |
22. Exercise: Testing |
23. Regular Exam |
23. Design Patterns • Design Patterns; • Definition of Design Patterns; • Benefits and Drawbacks; • Types of Design Patterns. |
24. Retake Exam |
24. Exam Preparation |
25. Exam Preparation |
|
26. Workshop |
|
27. Workshop |
|
28. Regular Exam |
|
29. Retake Exam |