0% found this document useful (0 votes)
10 views20 pages

Python Basics Course Overview

Uploaded by

mezeviclera
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
10 views20 pages

Python Basics Course Overview

Uploaded by

mezeviclera
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd

CS201 Programming Basics

2025/2026, Autumn

Course faculty Serhii Alpatov


e-mail: salpatov@[Link]
phone: +38(063) 1497040

Course Oleksii Mykhniak, Serafym Podolyanchuk, Alla


assistants Kovalchuk

Department Computer Science Department

ECTS credits 5

Class hours Wednesday, 18:00 (online)

Course Ukrainian
language

Course format Offline, blended


Form of study Full-time studies
Overview
Prerequisites
Learners who want to deepen practical Python skills—from core language features
(I/O, data types, control flow, functions, files) to OOP and a small production-style
project. It’s a “first ever line of code” class.

Hard skills:
Computer literacy:

Basic file skills: create folders, rename files, unzip a .zip, find a file path.

Comfortable typing and switching keyboard layouts if needed (e.g., for quotes,
parentheses, underscores).

Soft skills:
Ability to read short technical notes in English

Background and course rationale


Where this course fits
This is a foundational, beginner-friendly Python course that anchors the early stage
of a broader computing pathway. It prepares students for later subjects such as data
structures, web development (Flask/FastAPI), data analysis/ML (NumPy/Pandas),
automation/scripting, and software engineering practices. Within the overall
curriculum, it serves as the on-ramp to programming: we build core fluency with the
language and mental models that transfer across domains.

Why it matters
Modern work increasingly involves automation, data handling, and API interaction.
Python is widely used because it’s readable, has a rich standard library, and an
enormous ecosystem. Students who can translate problems into step-by-step
algorithms, test ideas quickly, and read documentation confidently become more
effective in almost any technical or analytical role. This course emphasizes those
durable skills—thinking in algorithms, decomposing tasks, debugging, and
communicating with code—not just memorizing syntax.

Course aims
Primary goals
1. Build a confident beginner’s fluency in Python: read input, transform data, and
produce correct, readable output.
2. Develop algorithmic thinking: decompose problems, design step-by-step
solutions, and reason about edge cases.
3. Write end-to-end scripts that combine I/O, control flow, functions, data
structures, and files.
4. Practice robustness: anticipate failures and handle them with friendly error
messages (try/except), clear validation, and logging.
5. Learn to use libraries responsibly (pip, venv) and read documentation to
unblock yourself.
6. Apply a gentle OOP mindset (classes/objects) where it simplifies structure.
7. Build and ship a small real project (Telegram bot) that integrates the above
skills.
Key knowledge and skills students will acquire
● Core knowledge:
○ Data types and operations (numbers, strings, lists, dicts), mutability,
slicing, formatting.
○ Control flow patterns (if/elif/else, for/while, loop idioms).
○ Functions & scope (parameters, return values, avoiding mutable
defaults); basic lambdas.
○ Files and simple data formats (text/CSV/JSON).
○ Error handling fundamentals; reading and explaining tracebacks.
○ Package management and imports; module structure; basics of OOP
(class, attribute, method).
● Practical skills
○ Translate a requirement into a clear algorithm and testable steps.
○ Debug systematically (reproduce, isolate, fix, verify).
○ Choose appropriate data structures and string/collection methods for
the task.
○ Automate small tasks (file renaming, text cleanup, simple reports).
○ Integrate an API at a beginner level (Telegram bot with buttons, replies,
and safe token use).
○ Communicate code intent with descriptive names, small functions, and
docstrings.
Real-world relevance
● Automation: batch rename files, parse logs, generate summaries—skills used
in everyday IT and operations roles.
● Data handling: clean text, count frequencies, transform CSV/JSON—
foundations for analytics and ML pathways.
● APIs & messaging: build a Telegram bot to respond to user input, handle
commands, and process callbacks—an authentic event-driven app.
● Reliability: input validation and graceful failure mirror production expectations
for user-facing tools.
● Tooling literacy: virtual environments, dependency management, and
documentation use—habits that scale to any Python job.
Motivation and continued learning
Project-anchored learning: every module feeds into a visible, useful artifact (the bot),
creating momentum and pride.
Frequent small wins: micro-labs and immediate feedback build confidence and
curiosity to explore beyond the syllabus.
Growth mindset: emphasis on reading docs, experimenting safely, and reflecting on
trade-offs (clarity vs. cleverness).
Launchpad for next steps: students finish with a portfolio-ready mini-project and a
roadmap toward web dev, data analysis, or automation at work.
By the end of the course, students will be able to design and implement small,
reliable Python programs; explain their decisions; debug with intent; and
independently learn new libraries—capabilities that transfer directly to real tasks and
future study.

Learning outcomes
By the end of the course, students will be able to…
1. Translate a real-world prompt into an algorithm.
Formulate a step-by-step plan (inputs, outputs, control flow) for a small task
(e.g., text cleanup, simple report) and justify the chosen steps in 3–5
sentences.
2. Write basic Python programs that perform I/O.
Implement scripts that read user input and files, format output with f-strings,
and verify correctness on provided examples (all sample cases pass).
3. Select and apply appropriate data types.
Differentiate between numbers, strings, lists, and dictionaries and use

4. Control program flow with conditionals and loops.


Construct solutions using if/elif/else, for/while, and loop idioms
(range, enumerate, zip) that handle at least one edge case per task (as
evidenced by tests).
5. Modularize code with functions.
Define functions with clear parameters/returns, avoid mutable default
arguments, and document behavior with one-line docstrings; peer review
confirms readability/naming.
6. Handle common runtime errors gracefully.
Apply try/except to
catch ValueError, ZeroDivisionError, FileNotFoundError and produce

7. Process files and simple data formats.


Read/parse text/CSV/JSON; compute summaries (counts, minima/maxima,
frequency tables) and export a short report file that matches a provided
template.
8. Use third-party libraries responsibly.
Create a virtual environment, install a package with pip, import it,
and cite the snippet/location in docs used to implement a feature (one-
paragraph rationale).
9. Organize code into modules.
Refactor a multi-function script into at least two modules
and demonstrate correct imports; a basic linter/formatter run shows no
critical errors.
10. Implement a simple Telegram bot.
Create a bot with pyTelegramBotAPI that responds to /start and at least two
commands, uses reply or inline keyboards, and keeps

11. Debug systematically.


Given a failing script, reproduce the bug, isolate the cause using prints or a
debugger, fix, and explain

12. Reflect on trade-offs and next steps.


Compare two alternative solutions (e.g., loop vs. comprehension; list vs. dict)
and articulate pros/cons (clarity, robustness, performance) and a personal
learning plan (3 concrete next skills).
Course Faculty

Serhii Alpatov, Entrepreneur, Ex-developer at IBM, Infopulse, Beetroot. Ex Head of


Learning and Development at Fozzy Group and MODUS X (DTEK)
Career Highlights: I’m a software engineer
with 13 years of experience. For the last 6 years, I have
worked as a head of Learning and development at Fozzy Group, Elogic Commerce
and DTEK.
My main areas of expertise are Object-Oriented Design, WEB and API development
and creating EdTech solutions for miscilinous companies all around the globe.
Research Interests: Programming languages, EdTech solutions, AI and BigData
driven bots
Teaching Philosophy: Learning is not about what you get from teacher, it all about
the passion that will enlight when you learn something,that create value for future
you
Personal Interests & Interesting Facts: I am former cargo pilot at United Nations
Multidimensional Integrated Stabilization Mission in Mali, creator of IT school for kids
with Dmytro Korpachev, for now main interests is angel investments

Teacher Assistants

Oleksii Mykhniak Serafym Podolyanchuk Alla Kovalchuk


Software Developer. 3rd year Software 3rd year student of
Engineering student. Software Engineering and
10+ years in software business analysis
development TA of last year's course
Migrated monolith to "Algorithms and Data Was a mentor for
microservices via Structures" freshmen over a year,
monorepo with zero Enthusiastic about helped them with
downtime learning new technologies programming basics,
Built SaaS platform and creating complex algorithms and data
processing 1M+ B2B/B2C projects. structures
leads daily I love table tennis (and Have some practical
Strong focus on scalable, many other sports) experience as ML
high-availability systems developer; worked with
workflows in N8N
I like painting and drawing
:)
Course Structure

The course consists of:


- 14 prerecorded video lectures;
- 12 practice classes;
- 10 classes dedicated to homework checks;
- 2 hackathons for group problem-solving;
- 4 homework assignments;
- midterm and final exams.
- midterm and final exams.

Video lectures

1 Introduction, concept of abstraction.


2 Variables, data types (integer, float)
3 Boolean data type
4 Modular arithmetics
5 Lists
6 Strings
7 Functions
8 Dictionary data structure, list comprehensions
9 Command line arguments
Video Covered topics
1 Introduction, concept of abstraction.
2 Variables, data types (integer, float)
3 Boolean data type
4 Modular arithmetics
5 Lists
6 Strings
7 Functions, +requests
8 Dictionary data structure, list comprehensions
9 Command line arguments
10 Files
11 Basics of OOP in Python
12 Errors and exceptions
13 Libraries (NumPy, Pandas, matplotlib)
14 Interactive applications (pygame)

Practice classes
1 Introduction, setup, working with variables
2 Data types and operations
3 Strings
4 Lists
5 Functions, dictionaries
6-7 Git
8 List comprehensions and command line args
9 Files
10 OOP Basics & errors
11 Working with libraries
12 Project

Grading Policy
Type of activity Description Total
Points

Active participation in Students can get 0, 1 or 2 Up to 20


practice classes points for an active
participation in single
practice. Total
amount of possible points
is limited
Assignment #1 Introductory assignment 5
focused on basic
structures and operations
Assignment #2 Tic-Tac-Toe game with 5
usage of functions, lists
and cycles
Assignment #3 Creating an app with 7
ability to manipulete data
thrue API (READ)
Assignment #4 Update prevoius task with 8
OOP aproach
Hackathons Successful participation Up to 16
and completion of
all tasks from two
hackathons
Project Project of choice - Up to 14
interactive game or API
based app
Midterm Exam Up to 10
Final Exam Up to 15
Extra tasks Up to 5
Total 100

We consider 100 points as the 100% mark, which corresponds to an A (or 100 on a
100-point scale). Since students can earn up to 105 points, the total possible points
equate to approximately 105%.

Minimum passing value is 60% from 100 = 60 points


For each assignment two deadlines will be provided:
1. Soft deadline- after reaching this deadline, assignment submission is
possible, but the maximum grade is limited to 50% of full value;
2. Hard deadline- students will receive minimum points in case of successfully
submitting an
assignment after this deadline , but submitting is still encouraged to get feedback.

Guidelines and Recommendations on Course Reassessment


Students who do not reach the minimum passing score of 60 points for the course
are eligible to resit the course within 7 days after final grades are posted, but no later
than 3 days before the start of the next academic term.
A resit is permitted only if all of the following conditions are met:
1) The resit is available only once per course.
2) The student received a grade of FX (35–59 points). If the score is below 35,
the course must be retaken
3) All previous coursework and grades are annulled for the purpose of
reassessment.
4) The maximum score achievable upon resit is 60 points.
5) There were no violations of academic integrity during the original attempt.
Academic integrity warning

Academic integrity is highly valued by the KSE community and its vast majority of
students. We do not tolerate plagiarism and cheating. Very competitive essence of
the program calls for absolutely equal treatment of all students. Even a single case
of violation of academic integrity is a serious misdemeanor which may lead to unjust
redistribution of grades and, consequently, overall rankings, possible grants, fee
reductions and other merit-based awards.
The minimum penalty for a student caught cheating or plagiarizing during any
practical task, a presentation or group and final projects will be a zero for this
assignment with the consecutive decrease of the final course grade by at least one
letter-grade. Repetitive violation of academic integrity may lead to the dismissal of
the student from KSE. By enrolling in this course, students affirm that they are
familiar with the KSE Code of Academic Integrity.

AI Tools usage policy

1. Define the Scope: any AI tools strictly not allowed for generating code.
2. Allowed Uses: you may use any AI to generate routine code parts, but not
more than 25% of final project. Can be used to add or create
text/images/videos if necessary.
3. Conditions for Use: Any AI code result needed to be marked with special
commented frame
4. Penalties for Non-Compliance: Any score points for any type of assignment
that will violate rules will be discarded. If the total amount of assignments with
violated AI generated code policy will exceed 50% - retaking the course.
Course Plan
Learning materials

🇺🇦
Python Підручник. Уроки для початківців. W3Schools українською

Підручник з Python — Python 3.11.0b5 documentation

🇬🇧
Welcome to [Link]

Легкий рівень

Python Tutorial

Середній рівень

Introduction To PYTHON - GeeksforGeeks

Складний рівень

Python Tutorials – Real Python

[Link]
Science-courses-with-video-lectures-1-c8c6ffa0c1a642e59a4a58dee9562295?
pvs=25

1. [Link]
258e349f78c480078a9bed4a7ca8f892?source=copy_link
2. Python Crash Course, 3rd ed. — Eric Matthes
3. Automate the Boring Stuff with Python, 3rd ed. — Al Sweigart
4. Think Python, 3rd ed. — Allen Downey
5. Effective Python, 3rd ed. — Brett Slatkin
6. Python for Data Analysis, 3rd ed. — Wes McKinney

Schedule
Week Topics Learning outcomes & activities
1 Introduction, setup,
● Вміти налаштовувати систему для роботи.
working with
variables ● Пояснити, що таке абстракція, відрізнити рівні
(концептуальна, процедурна, модульна, ADT) на прикладах
● Скласти покроковий алгоритм з побутової задачі.

● Навчитись роботі з базовими поняттями змінних

2 ● Використовувати help() для отримання довідки по тип


Спеціальні методи функціях, класах і модулях, уміти навігувати й виходити (q)
Числа ● Застосовувати dir() для огляду простору імен та перел
атрибутів/методів об’єктів
Оператори ● Визначати тип об’єкта за допомогою type() і робити корек
висновки про доступні операції
● Оцінювати довжину колекцій через len() і розуміти, які об’є
підтримують протокол довжини
● Обережно користуватися eval() для виконання виразів, ум
передавати globals/locals і пояснювати ризики безпеки
● Конвертувати рядкові подання структур у реальні об’єкти
допомогою eval()
● Перераховувати та відрізняти базові числ
типи: int, float, complex, bool (і те, що bool наслідує int)
● Обирати додаткові типи [Link] і [Link] д
точних фінансових і раціональних обчислень
● Записувати числові літерали (роздільники _, 0b/0o
експоненційний запис, комплексні)
● Виконувати перетворення типів: int(x, base), float(), complex(), st
● Коректно застосовувати арифметичні оператори + - * / // %
урахуванням пріоритетів
● Уникати пасток пріоритету: розуміти різницю між -3**2 і (-3)**
● Пояснювати зв’язок // і % та правильно працювати
від’ємними операндами
● Використовувати вбудовані числ
функції: abs, round (банківське округлен
на .5), min, max, sum, divmod, pow
● Розуміти двійкову природу float, пояснювати похи
(напр., 0.1+0.2) і порівнювати з допуском
● Працювати зі спеціальними значеннями float('inf'), flo
inf'), float('nan') і знати поведінку порівнянь із NaN
● Застосовувати math для коренів і підлоги/стелі/обрізан
(sqrt, floor, ceil, trunc) та констант (pi, e)
● Виконувати арифметику з комплексними числа
отримувати real/imag, обчислювати модуль через abs
● Використовувати побітові операції для int: & | ^ ~ <<
форматувати числа в інші основи (format(n, "b"), "x")
● Форматувати числа й відсотки у рядках через f-рядки
специфікатори (:,.2f, #x, b, .0%)
● Розрізняти / (завжди float) і // (цілочисельне), вибир
оператор під задачу

3 ● Створювати рядки: '...', "...", багаторядкові """...""", сирі r'...'


Рядки
● Розуміти незмінність str та що методи повертають нов
Усічення даних рядок
● Індексувати й робити зрізи: s[i], s[a:b:c]
Списки
● Об’єднувати рядки: +, ефективне збирання через " ".join(list)
● Розбивати текст: split, rsplit, splitlines
● Змінювати регістр
нормалізувати: lower, upper, title, capitalize, swapcase, casefold
● Обрізати пробіли/символи: strip, lstrip, rstrip
● Шукати й підраховувати: find, rfind, index, count
● Перевіряти початок/кінець: startswith, endswith
● Замінювати підрядки: replace (та за потреби translate + maketra
● Перевіряти
вміст: isalpha, isdigit/isdecimal/isnumeric, isalnum, isspace, islower/
isupper/istitle
● Вирівнювати/заповнювати: ljust, rjust, center, zfill
● Ділити на 3 частини: partition, rpartition
● Працювати з Юнікодом: ord(char), chr(code)
● Форматувати за допомогою f-рядків із специфікаторами (
^, ширина, ,, .точність, типи d/f/e/x/%), екранувати {
використовувати f"{var=}" (Py 3.8+)
● Знати альтернативи форматування: .format(...), %-стиль

● Перевіряти належність підр Створювати спис


літерал [...], list(iterable), list comprehension
● Індексувати та зрізати: a[i], a[i:j:k], від’ємні індекси
● Мутувати: присвоєння за індексом/зрізом, del a[i]
● Методи списків: append, extend, insert, remove, pop, clear, index, co
● Сортувати та розвертати: [Link](key
reverse=...), sorted(...), reverse() vs a[::-1]
● Копіювати коректно: a[:], [Link](), lis
різниця shallow vs deepcopy; уникати [[0]*3]*3
● Ітерувати ефективно: for, enumerate, zip; розпакування *
● Використовувати як структури даних: стек (append/pop), че
— [Link]
● Агрегати: len, sum, min/max, any/all (часто з генераторни
виразами)
● Перевіряти належність: x in a, x not in a
● Знати оператори: арифметичні + - * / // % ** (д
послідовностей + — конкатенація, * — повтор)
● Порівняння == != < <= > >= (лексикографія для списк
ланцюжки a < b < c
● Присвоєння =, скорочені += -= *= /= %= **= //=; багатоцільо
розпакування a, b = ...
● Логічні and, or, not (коротке замикання; порожні коле
— False)
● Входження in, not in (для списків/рядків/словників за ключам
● Тотожність is, is not vs рівність ==; діагностика через id()
● Побітові & | ^ ~ << >> (для int)
● Пріоритет і дужки: / vs //, ^ — не степінь, унарний - з **
● Розширене розпакування: first, *mid, last = seq
● Оператор «морж» := — присвоєння всередині виразу (Py 3.

● ядка: in, not in

4 ● Пояснювати модель виконання «послідовність інструкцій


Керуючі конструкції. роль відступів (блоки коду)
Послідовності

: ( )
If-else
● Писати умовні конструкції: if, elif, else з коректними відступам
● Створювати вкладені умови та багатогілкові перевірки б
«драбинки» помилкових відступів
● Використовувати тернарний вираз: x if cond else y для корот
виборів
● Комбінувати умови через and, or, not з урахуванням коротк
замикання
● Застосовувати ланцюжні порівняння: a < b < c
● Перевіряти належність та тотожність у умовах: in/not in,
not vs ==
● Коректно працювати з «правдивістю» об’єктів (поро
колекції, None, 0, "" False)
● Писати «guard clauses» (ранній вихід/return) для спрощен
розгалужень
● Обробляти крайові випадки (нульові/порожні значення)
гілках умов
● Тестувати гілки умов (позитивні/негативні кейси) та уника
логічних пасток пріоритетів

5 Цикли, Словники ● Писати for по ітерабельних об’єктах; використовувати range


● Контролювати індекс через enumerate, паралельну ітера
через zip
● Будувати while (у т.ч. sentinel-цикли) та шаблон while True
break
● Керувати потоком: break, continue, pass; розуміти for/while … else
● Уникати зміни колекції під час ітерації; оцінювати складні
вкладених циклів
● Використовувати comprehensions (list/dict/set) і генерато
вирази
● Застосовувати баз
інструменти itertools (product, permutations, islice, groupby)
● Тестувати умови завершення, запобігати нескінченн
циклам

● Створювати: {}, dict(), з пар/итерованих, через comprehensi


ключі — хешовані та незмінні
● Розуміти унікальність ключів і порядок вставки (Py 3.7+)
● Опановувати доступ: d[k] vs [Link](k, default); перевірка k in d
● Користуватися
методами: keys, values, items, update, pop, popitem, setdefault, clear
mkeys
● Обходити й сортувати пари: for k, v in [Link](), sorted(..., key=lam
kv: kv[1])
● Об’єднувати словники: d1 | d2, d1 |= d2 (Py 3.9+)
● Копіювати безпечно: [Link](), dict(d); глибока ко
— [Link]
● Типові патерни: підрахунок частот (Counter або d[k]=[Link](k,0)
групування (defaultdict(list)), інверсія мапи

6 ● Локалізувати помилки мінімальним try-блок


try–except ловити конкретні винятки (except ValueError as e)
Файли ● Використовувати else (коли помилок не бу
і finally (гарантоване прибирання ресурсів)
GIT ● Підіймати винятки (raise), створювати власні класи винятків
● Перелоговувати, перевикидати винятки та зберіг
traceback (exception chaining)
● Обирати EAFP замість LBYL там, де це доречно
Відкривати файли безпечно через контекст-менеджер:
open(..., mode, encoding='utf-8') as f

● Обирати режими: r/w/a/x, текст/бінарний (t/b), керувати new


буферизацією
● Читати/писати: read, readline, ітерація по файлу, write, writelin
позиціюватися seek/tell
● Працювати з шляхами через pathlib, виконувати операції з o
● Обробляти типові помилки (FileNotFoundError, PermissionErro
робити атомарні rename)
● Зчитувати/записувати структуровані формати: csv, json

● Ініціалізувати/клонувати репозитор
налаштувати [Link]/email
● Виконувати стейджинг і коміти: status, add, restore --staged, comm
m
● Переглядати зміни та історію: diff, log, sh
налаштовувати .gitignore
● Працювати з гілками: branch, switch/checkout, merge; розв’язув
конфлікти
● Синхронізуватися з віддаленим: rem
add, fetch, pull, push (tracking-гілки)

7 Функції ● Оголошувати функції: def, виклик, return, None


● Писати докстрінги та базові анотації типів
● Розрізняти параметри: позиційні, ключові, із значеннями
замовчуванням
● Використовувати позиційно-тільки (/) і ключові-тільки
параметри
● Застосовувати *args / **kwargs та розпакування аргументів
● Розуміти область видимості (LEGB), global і nonlocal
● Уникати мутованих значень за замовчуванням; писа
безпечні сигнатури
● Повернути кілька значень (кортеж), іменовані результа
(namedtuple/dataclass)
● Трактувати функції як об’єкти першого класу (передава
повертати, зберігати)
● Створювати замикання (closures) і керувати захоплени
змінними
● Використовувати lambda для коротких виразів без надмірнос
● Будувати генератори: yield, yield from; генераторні вирази д
«ледачих» обчислень
● Застосовувати itertools для ітеративних патернів замі
вкладених циклів
● Реалізовувати рекурсію з коректною базою; знати обмежен
стеку в Python
● Підіймати й обробляти винятки всередині функ
(raise, try/except)

8 Хакатон №1

9 Модули, біблиотеки, · Створювати модулі (.py) і пакети (у т.ч. namespace), проектува


requests структуру каталогу

· Імпортувати правильно: import, from ... import ... as ..., відносні імпо
(./..)

· Використовувати if __name__ == "__main__": для точок входу

· Ізолювати залежності: venv, pip, pipx; [Link], pip freeze


[Link]

· Фіксувати версії та діапазони (PEP 440, ~=, >=,<)

· Виконувати HTTP через requests: get/post/put/patch/delete

· Передавати params, data/json, headers, cookies

10 ООП ч.1 · Розуміти 4 стовпи ООП: інкапсуляція, наслідування, поліморфі


абстракція
· Створювати класи/екземпляри; ініціалізація через __init__

· Відрізняти атрибути класу й екземпляра; порядок пош


атрибутів

· Писати методи: звичайні, @classmethod, @staticmethod

· Використовувати властивості: @property, сеттери/делетери

· Формувати інтерфейс через абстрактні базові кла


([Link], @abstractmethod)

11 ООП ч.2 · астосовувати duck typing і протоколи ([Link])

· Наслідування: одно/множинне; super(), розуміти MRO

· Обирати композицію замість зайвого наслідування

· Перевантажувати оператори
гачки: __repr__, __str__, __eq__, __lt__, __hash__, __add__ тощо

· Забезпечувати узгодженість __eq__ і __hash__

· Робити об’є
ітерабельними/контекстними: __iter__/__next__, __enter__/__exit__

· Керувати доступом до атрибутів: __getattr__, __getattribute


дескриптори

· Створювати компактні мод


даних: @dataclass, frozen=True, slots=True/__slots__

· Розуміти мутабельність/копіювання: shallow vs [Link]

· Дотримуватись SRP/LSP (базові принципи SOLID)

12 Хакатон №1

13 Проект

14 Захист проекту

You might also like