Бедные и несчастные люди, которые заплатили за обучение по Data Science, при это не разбираясь в смежных областях.
Нашпигуют вас знаниями, которые применять смогут единицы, а потом разобраться не сможете и будете бояться работать.
Попробуйте изучить язык python по книге + сайт для выполнения заданий: codewars
Книга, для базы, подойдёт learning python.
По вашему вопросу:
model.py: класс elem_plan вернёт объект с параметрами x и p.
Класс IO, имеет 1 метод input_plans_from_file, который читает из файла и форматирует ввод.
Открывается на чтение файл, имя которого передано в метод. Далее, читается количество строк для чтения и записывается в n.
В цикле, мы читаем по 2 строки, первую, записываем в x, вторую в p.
При этом, каждая строка конвертируется в список: удаляется перенос строки и разделяется по символам табуляции на элементы.
Полученные данные, формируют запись в списке plan (лень разбирать скобки).
Содержание файла следующее:
N
X
P
...
Где N число пар строк x и p. x и p - данные, разделенные табуляцией.
Полученные данные возвращаются.
Выглядит код, как заготовка под большой проект непонятого гения. Либо новичка в программировании (как я), который не знает куда пихать классы и модульную структуру.
Вместо 2-х объектов с методами, проще было сделать 2 функции и добавить комментарии к коду.