Что делать на информатике если учитель бот

Как сделать своего ЧАТ-Бота для учебы без знаний в программировании

Добрый день, дорогие друзья. Данный пост ни в коем случае не реклама сервиса или каких-то услуг в нём, а просто рассказ о том как я немного облегчил себе жизнь при помощи чат-бота в VK.

В процессе учёбы у меня очень часто возникала необходимость пользоваться одними и теми-же учебными материалами в электронном виде (учебники, методички, лабораторные работы и т.д.). И всё время была проблема как их хранить, чтобы и места не занимали и были под рукой и чтобы в случае чего можно было получить доступ в определённой группе материалов без необходимости пролистывать огромные списки файлов.

После нескольких недель попыток использования различных облачных хранилищ, в голову пришла идея сделать чат бота для вк, поскольку в основном все сидят там и переключатся на какие-то сторонние приложения не очень удобно.

И в результате всего 20 минут абсолютно без знания языков программирования и специальных навыков удалось создать бота в сообществе группы, который умеет:

— выдавать необходимые материалы по предмету по ключевому запросу ( напишите «физиология» он вам отправит материалы по предмету «Физиология человека» и т.д. )

— отправлять актуальное расписание
— отправлять случайный ответ в форме (да/нет) на запрос «идти ли сегодня на пары?»

Далее я постараюсь подробно объяснить по шагам как создать и настроить бота под ваши нужды.

Я использовал сервис Robochat.io (прямую ссылку оставлять на всякий случай не буду)

1) Необходимо авторизоваться на сайте (лучше сразу зайти через VK, чтобы сайт получил доступ к группам в которых вы имеете права администратора).

2) Вам необходимо создать стартовый шаблон для бота, нажмите на большую синюю кнопку «+» и выберите в меню пункт «стартовый шаблон» и «добавить»

3) Cтартовый шаблон подключен, теперь необходимо привязать его к какому-либо сообществу.

4) Далее на главной панели у нас появится плитка с добавленным ботом. Переходим в её настройки и видим основное меню настройки бота.

6) В этой вкладке мы может создавать и редактировать команды для бота и создавать свои сценарии. Для того, чтобы создать команду нажимаем на большую красную синюю кнопку.

7) В первом пустом поле мы пишем команду или команды (через запятую) и выбираем тип того, как будет интерпретироваться ввод (только по ключевому слово, или отдельной фразе), а во втором поле мы добавляем ответ, который нам пришлёт бот.

8) Готовый сценарий выглядит так. В настройках можно добавить возможность прикрепления различных документов и фотографий, а так-же различные команды вроде (часы работы, время, дата, имя пользователя и т.д.)

9) Теперь пишем в сообщения группы необходимую нам команду, и бот ответит нам согласно сценарию.

10) Получается очень удобно, сообщение с информацией можно тут-же переслать коллегам или одногруппникам сразу в VK. При помощи бота, можно оптимизировать свою работу с файлами, расписаниями и т.д.

Спасибо большое за то, что дочитали мой пост.

P.S. Я не программист, конечно же наверное есть способы сделать всё намного проще и удобнее, но я просто поделился своим опытом, надеюсь он кому-то будет полезен.

И в результате всего 20 минут абсолютно без знания языков программирования и специальных навыков удалось создать бота в сообществе группы

Эээ. Вы взяли продукт, созданный ровно для того, чтобы человек без всяких навыков мог сделать себе бота. Программисты чуток по-другому работают.

Молодец, что разобрались!

а не удобнее тупо хранить все на гуглодиске? как по мне гораздо удобнее, чем вспоминать команды бота.

Команды в телеграм ботах

В ботах часто используются команды вида “/command”, которые провоцируют бота на то или иное действие.

Кто уже создавал ботов мог видеть их в @botfather.

Давайте разберемся как создать этот список команд и присвоить каждой ту или иную функцию.

С созданием списка команд все довольно просто, это реализуется непосредственно в настройках бота через @BotFather:

1) Вводим команду /mybots

2) Видим список наших ботов

3) Выбираем тот бот, которому присвоим список команд

4) Кликаем Edit Bot

5) Кликаем Edit Commands

Далее, следуя формату, отправляем список команд, например:

Теперь если мы введем “/” в чате с нашим ботом, то он предложит список команд. Проверяем, что список есть:

Добавим логику нашим командам

Как уже видно из описания команд, я хочу отправить в чат клавиатуру.

Создам новую ГТ и перейду к написанию скрипта

Назову файл doPost, здесь будет только эта функция

Добавлю следующий скрипт:

let update = JSON.parse(e.postData.contents);

let msg = update.message;

let msg_array = msg.text.split(» «);

let user = msg.from.username;

if (text == «/getkeyboard») <

Demo.send_key(«Галочки», chat_id, API, keyboard)

Demo.send(«Клавиатура сохранена”, chat_id, API)

Все! Для каждой команды теперь добавлен функционал.

Хорошо, расскажу поподробнее))

Итак, если текст сообщения == “/getkeyboard”, мы отправляем в чат некую клавиатуру.

Если мы отправили боту команду “/save”, то он ответит нам сообщением “Клавиатура сохранена”.

Подробно функции send и send_key, а также библиотека Demo рассматривались в постах ранее. Вот ссылки:

Дабы не перегружать дорогого читателя инфой, остановлюсь здесь)

Как всегда жду фидбека и вопросиков ^^ Всегда рады пообщаться!

Типы клавиатур в чат ботах

Сегодня познакомимся с существующими клавиатурами в ботах и тем, как их подключить и настроить.

Всего есть два типа клавиатур:

ReplyKeyboardMarkup используется в случаях, когда вы хотите получить от пользователя конкретный ответ, предоставляя ему возможность не печатать ручками, а выбрать из предлагаемых вариантов. Иными словами, это заготовки текстовых сообщений. Расположены кнопки под полем ввода сообщения

В зависимости от выбранной кнопки могут последовать те или иные действия. Эту логику мы задаем в скрипте для каждой кнопки.

В приведенном примере мы хотим записать пользователя на маникюр и предлагаем ему определиться с днем (в качестве примера приведены только два варианта, но это можно закастомить).

После выбора того или иного дня бот внесет инфу в ГТ, а именно: дату, имя пользователя и ид чата.

Запись через чат имеет следующий вид

Читайте также:  Что будет если хрустеть шеей каждый

Здесь мы выбрали кнопку Сегодня и получили ответ от бота.

В ГТ при этом появилась строчка

Подключение и настройка

Каждая клава (инлайн-клавиатур может быть сколько угодно) записана в соответствующую переменную:

[«Записаться», «Отменить запись»]

Обратите внимание, что синтаксис для инлайн (INLINE_Days) и обычной (KEYBOARD) клавиатур различается.

Клавиатурам можно добавить дополнительные свойства, мы использовали только resize_keyboard со значением true. Их не так много и они есть в документации телеграма.

Далее в коде обращаемся к клавам по имени переменной.

С ReplyKeyboardMarkup все достаточно просто. Она добавляется при первом прогоне скрипта, когда вы отправляете в чат команду /start, например.

Нам нужна функция, которая отправит в чат клавиатуру. Функция та же, что и при отправке сообщения ботом send(), за двумя исключениями:

Ниже скрипт функции отправки обычной клавы в чат:

function send_key (msg, chat_id, api, keyboard)

Вызов функции осуществляется из тела функции doPost(e) одной строкой:

send_key(«Поехали», chat_id, API_TOKEN, KEYBOARD)

Что касается инлайн-клавиатур.

Отправка клавиатуры наступает при определенном условии. Если пользователь отправил в чат слово “Записаться”, то отправляем ему нашу инлайн-клаву:

if (text == «Записаться») <

Demo.send_key(«Выберите день», chat_id, API_TOKEN, INLINE_Days)

Переменная text содержит текст сообщения, которое мы и проверяем на соответствие.

Результатом выполнения функции send_key будет сообщение от бота Выберите день и кнопки под ним.

Далее нужно предусмотреть алгоритм обработки нажатия этих кнопок.

Если мы кликаем на какую-либо из кнопок (“Сегодня” или «Завтра»), то добавляем новую строку в ГТ и отправляем сообщение в чат, что запись создана.

let date = Demo.getNewDate(0);

let ind = get_ind(chat_id);

Demo.send(«Вы успешно записались. «+»Дата визита: «+ date, chat_id, API_TOKEN);

Ниже скрипт полностью (не забываем, что значения глобальных переменных у вас будут свои):

// Объявляем все нужные нам переменные. Док важно открывать именно по ID, а не брать активный док, т.к. запуск кода будет производить бот

const API_TOKEN = «1946675042:AAHg1HTHe42GhR9EEt0EdbR94j1G8pDcTWE«;

const DOC = SpreadsheetApp.openById(«1ALJLtLdt-LT7GEF4hawIizVeJXFnoPZCsC0pw7kcp70«);

const Clients = DOC.getSheetByName(«Clients»);

const Calendar = DOC.getSheetByName(«Calendar»);

var update = JSON.parse(e.postData.contents);

var msg = update.message;

var msg_array = msg.text.split(» «);

var user = msg.from.username;

if (text == «Записаться») <

Demo.send_key(«Выберите день», chat_id, API_TOKEN, INLINE_Days)

if (text == «Отменить запись») <

let ind = get_ind(chat_id);

Demo.send(«Запись отменена», chat_id, API_TOKEN)

var text = update.callback_query.message.text;

var user_name = update.callback_query.from.username;

let date = Demo.getNewDate(0);

let ind = get_ind(chat_id);

Demo.send(«Вы успешно записались. «+»Дата визита: «+ date, chat_id, API_TOKEN);

let date = Demo.getNewDate(1);

let ind = get_ind(chat_id);

Demo.send(«Вы успешно записались. «+»Дата визита: «+ date, chat_id, API_TOKEN);

Отдельно ниже представлена доп функция, которая проверяет наличие ид в ГТ. Если ид уже есть в таблице, мы обновляем данные у строки с этим ид. В противном случае создаем новую строку.

let chat_id = 311157431;

let arr = Clients.getRange(1,2,Clients.getLastRow()).getValues()

let ind = arr.indexOf(chat_id)

ID для подключения библиотеки Demo: 1JkXEW_zfhr6v0TKsvU_ZbygNLpXEczxZcC46fMF_ffk-noMk8UKcMitz

Здесь также заметим, что клик по кнопке в инлайн клавиатуре отправляет боту JSON со свойством callback_query. Это значит, что нам нужны дополнительные переменные, в которые мы запишем значения из этого JSON пакета.

Это краткая вводная в мир клавиатур. Скоро будут посты про простые сервисы, куда будут добавлены и доработаны те же клавиатуры и доп функции.

Чат с прогнозом погоды и триггеры в гугл таблицах (GS6)

Глобально задача в следующем:

Отсюда я забрал прогноз:

Подробнее о том как спарсить данные с сайта в таблицу в этом посте: Парсинг данных с сайтов в гугл таблички (GS1)

Тут приведу только формулу:

Для этого нам необходимо сохранять ид чата отдельно в таблице и обращаться к этому значению как к значению переменной chat_id.

Соответственно, нам нужна функция, которая будет это делать:

//записывает ид чата в таблицу

Demo.send(«ID записан», chat_id, API_TOKEN);

Вызывать ее мы будем из тела функции doPost(e) при условии, что боту отправлена команда /link. В коде это выглядит вот так:

Теперь соберем все вместе и сформируем сообщение для отправки в чат.

Все, что в кавычках, должно быть изменено на ваши значения.

Функция для подключения веб хука:

Функция link(chat_id) для запоминания id чата

Функция daily() для формирования и отправки прогноза в чат:

На данный момент функция daily() не вызывается другой функцией или командой типа /link или /hello.

Мы добавим триггер, который будет вызывать функцию автоматически каждое утро.

Переходим на вкладку Triggers

Добавляем новый триггер

В окне задаем необходимые параметры.

Результат работы скрипта ниже.

Дополнительно: триггеры на то и триггеры, что работают автономно (без участия пользователя или разработчика, с закрытым доком или чатом. В любой ситуации сообщение будет отправлено в чат в установленное время с установленной частотой.

Когда друг сказал, что покупает Ладу за 1,2 млн, стало понятно, что с рынком что-то не то. Делаем робота для поиска авто

Привет! Меня зовут Лев. Мы с командой развиваем «умного» робота HomeBro, который с недавних пор помогает бесплатно находить не только жилье, но и автомобили.

Для тех, кто еще не знаком с Бро – я рассказывал про создание робота по поиску жилья в этой статье.

В последние месяцы мы все чаще слышали запросы от наших пользователей и знакомых на аналогичного бота для поиска автомобилей. Оказалось, что купить хорошую машину за вменяемые деньги сейчас очень непросто.

Пообщавшись с людьми, мы выявили целый ворох проблем. Вот некоторые из них:

Взлет цен. Из-за коронавируса и кризиса полупроводников произошли серьезные сбои в поставках новых автомобилей. В ситуации дефицита и роста стоимости металла цены на машины в салонах резко повысились. Следом закономерно выросли цены и на авто с пробегом.

Засилье перекупщиков. Эти ребята постоянно мониторят рынок и успевают перехватить большинство адекватных вариантов на вторичном рынке. Они пользуются различными инструментами, в том числе и платными чат-ботами.

В итоге купить машину по хорошей цене, не имея мгновенных оповещений о новых вариантах – очень сложно.

У каждой крупной площадки по продаже авто есть приложение, в котором можно настроить push-уведомления. Но дело в том, что предложения разбросаны по разным площадкам. Ставить несколько аппов, повторно настраивать поиск в каждом из них, а затем переключаться между ними очень неудобно. Как итог, многие просто забивают на это и пропускают бОльшую часть интересных предложений.

Читайте также:  что такое apple wallet андроид

Еще один сложный момент — проверка автомобилей с пробегом. Обычные люди все реже разбираются в том, как устроены автомобили, а машины становятся все сложнее. Часто люди тратят серьезные деньги на кота в мешке. А если и понимают, что нужна помощь специалиста, то нередко вынуждены тратить время на его поиск.

Имеющиеся наработки позволили нам быстро разработать новый сценарий поиска. Конечно, все проблемы авторынка разом не решить, но вот что мы имеем на данный момент:

— Бот присылает новые объявления с 4-х сайтов – Авто.ру, Авито, Дром, СберАвто.

— Делает это шустро – в течение пары минут после публикации. За счет этого наши пользователи могут составить конкуренцию перекупщикам и поймать авто по хорошей цене.

— Одну машину присылает один раз, фильтруя повторяющиеся объявления с разных сайтов.

— Ищет и авто с пробегом, и новые машины.

— Позволяет нанять рекомендованного нами специалиста для проверки авто.

Как и в поиске жилья, в этом боте нет навязчивой рекламы и он бесплатный. А еще он работает по всей России!

Сначала думали, не назвать ли бота CarBro, но все же решили, что HomeBro (с американского сленга — «братишка с района») – достаточно универсальное название. Заодно сделали единую точку входа, которая дает возможность искать и авто, и жилье, и интересных людей, живущих рядом (про последнее писал в отдельной статье).

На то, чтобы собрать первую тысячу человек в боте по поиску жилья, полтора года назад понадобилось 4 месяца. А в боте для авто мы собрали 1000 подписок за один день, просто разослав информацию про запуск нашим пользователям. Мы получили позитивные отзывы, рекомендации друзьям и донаты, а значит все не зря.

Каждый раз кайфуем, когда читаем такие комменты к донатам Показать полностью 3

Источник

Что не так с уроками информатики в школе: полный обзор

© Коллаж Chips Journal

Чего не хватает ученикам, учителям и родителям

«Атлас новых профессий» утверждает, что к 2030 году в мире появится 186 новых профессий. Большая часть из них связана с IT-сферой, но информатику в школе изучают всего час в неделю. ЕГЭ по ней стали проводить на компьютерах только недавно.

Разбираемся вместе с онлайн-школой программирования Кодабра, что происходит на уроках информатики, что думают об этом учителя и ученики и как сделать этот предмет полезным в реальности.

Что происходит на уроках информатики в школе

В школе информатика начинается с 7-го класса, занимаются по уроку в неделю. В некоторых школах её больше — уроки начинаются 5 или 6 класса, тратят больше 2 часов в неделю. Как правило, это происходит в школах с углубленным изучением физики и математики или в школах, где родители смогли убедить директора в необходимости информатики.

Чаще всего в школах занимаются по программе Босовой, хотя учитель может выбирать и другие программы. Программу Босовой выбирают из-за того, что она просто написана, укомплектована не только учебником, но и презентациями и заданиями для проверки.

Но есть минус — она создавалась для деревенских школ, и детям из школ с углубленным изучением математики и физики она кажется скучной.

Содержание уроков зависит и от программы, и от учителя. Как говорят сами учителя, они часто преподают то, что им нравится, а не то, что нужно по программе. Также содержание урока зависит от уровня школы.

В физико-математическом лицее большую часть курса будет занимать программирование — дети изучают классические алгоритмы, языки программирования, машинное обучение и веб-разработку. Ученики многое делают сами, а учитель больше выполняет роль консультанта. В обычных школах больше времени уделяют обработке информации, знакомятся с коммуникационными технологиями.

Учителя стараются включать в уроки побольше практических заданий. Так уроки становятся интересными и полезными для детей.

Сергей Анохин, учитель информатики:

Я стараюсь объяснить теорию за 10–15 минут, а потом перехожу к практике, решаем задачи. Конечно, есть теоретические занятия, где они считают биты и байты и работают только в тетрадях. Но я почти всегда готовлю практические работы по всем темам. Разобрали пять-десять минут и дальше работаем.

Математика и информатика сами по себе смысла не имеют, какой смысл сидеть и на кнопки нажимать, уравнения решать. Смысл рождается, когда ты в каком-то деле начинаешь их использовать. И практические работы у меня бывают с материалом из истории, географии и математики. Что-то делаете не просто так, а можете это применить.

Дети лучше реагируют именно на практические задачи. Причем не так важно, чтобы их проводили на компьютере, важнее, чтобы у них был смысл.

Даша, Санкт-Петербург, 7 класс:

За три месяца мы еще ни разу не включили компьютер. С одной стороны, это странно. С другой стороны, мы изучаем базу, например, биты и байты. И мне интересно, потому что компьютер я включать и так умею, а базы не знала.

На уроке мы прорабатываем тему с помощью практических заданий. Нам рассказывают, мы конспектируем, а потом на интерактивную доску выводят практические задания. Например, спрашивают в какой строчке поисковых запросов будет больше.

Давид, Москва, 6 класс:

До дистанционки мы больше изучали приложения. В 5 классе печатали текст, потом изучали пейнт. Сейчас все больше решаем логические задачи. Я хожу на информатику без особого желания, потому что слишком легко.

Но задания и содержание меняются на дистанционке. Многое изменилось после перехода на дистанционное обучение — это говорят и учителя, и ученики. Они отмечают, что по информатике у учеников накопились академические задолженности. Это связано с тем, что ребята не понимают сложную тему, но стесняются спросить при всех. Раньше они могли подозвать преподавателя, он подсаживался, намекал на правильное решение и ребенок занимался дальше.

Чего не хватает урокам информатики

У учеников мало мотивации.

Учителя отмечают, что не все дети настроены учиться, когда приходят в среднюю школу. И на дистанционном обучении это становится заметнее — если на живых уроках дети делают хоть что-нибудь, то дома начинаются проблемы.

Читайте также:  Что было третьего сентября 1945г

Дмитрий Михалин, учитель информатики:

Информатика не является жизненно необходимым предметом. Без нее дети могут спокойно жить и получать профессию. Но сложно назвать образованным человека, который не понимает, как работать с информацией, как ее представить, защитить и отличить достоверную от недостоверной.

Родители не совсем согласны с учителями. Они считают, что информатика нужна, а в плохой мотивации детей виноваты неинтересные пособия и уроки.

Элеонора, мама семиклассника:

Уже мое настоящее происходит в онлайне, а значит их будущее точно будет там. В Москве можно найти работу курьером, но с ноутбуком можно за два-три часа сделать больше, реализоваться лучше и без стрессов и пробок.

Мой сын, например, хотел бы заниматься, если бы не примитивный формат. Я видела современную методичку по информатике. В ней рассказывали, как сделать игру «Змейка». Такую же методичку я читала в своем детстве двадцать лет назад.

Не хватает базовых знаний.

По мнению учителей дети приходят с очень разными знаниями и уровнем грамотности.

В одном классе дети делают самостоятельную работу за урок, в другом — за три. Возможно, это связано с тем, что сейчас, когда техники вокруг много, дети не особо пытаются разобраться, как она работает. Дети понимают, как использовать смартфон и на этом останавливаются.

Мало времени на изучение предмета.

Чаще всего дети занимаются час в неделю. За этот час можно дать только базовые знания. Некоторым детям их будет мало, а некоторым — много. В результате интерес теряется и у первых, и у вторых.

Дмитрий Михалин, учитель информатики:

Часто те, кто хочет и может серьезно заниматься программированием, в старших классах переходят в школы с углубленным изучением математики и информатики. Но некоторые остаются в своих школах, а программировать ходят на кружки и курсы. Было бы здорово, если бы в каждой школе были подходящие кружки для всех желающих.

Не хватает компетентных учителей.

Учителя информатики в один голос говорят, что найти новых коллег сложно.

Найти учителя, который даст базовые занятия легко, но найти специалиста, который умеет пользоваться разными приложениями и программировать на трех языках — нет. Возможно, это связано с тем, что подкованные технари не идут в школу, они находят высокооплачиваемую работу в IT-секторе или других компаниях.

Но может быть и другая проблема — технарю без педагогических навыков сложно в школе.

Сергей Анохин, учитель информатики:

Нужно уметь общаться с детьми. Если преподаватель очень умный, но будет только читать лекции, не будет вкладываться в общение с детьми, дети будут переходить в другие группы к другим преподавателям.

Дети знают, но не понимают предмет.

Из-за того, что уроков мало, а нужно охватить большую область знаний, учителя преподают по верхам. И с одной стороны, этого может быть достаточно, чтобы заинтересовать детей, но недостаточно, чтобы дети поняли всю суть.

Николай Ведерников, преподаватель Кодабры:

Что происходит, когда мы тыкаем на ярлык, как запускается приложение, как работает оперативная память, как процессор проводит вычисления. Общее представление нужно иметь обо всем. Если ты хочешь углубляться, ты пишешь код — но если ты при этом не понимаешь, почему один вариант решения лучше другого, не понимаешь, что происходит в компьютере, то ты плохой специалист.

Каким должен быть учитель информатики

Детям предстоит применять цифровые навыки на практике, значит, учитель должен и сам это уметь и должен показать разные способы решения одних и тех же задач. И чем больше он работал с программами из разных сфер жизни, тем лучше.

Андрей Кост, преподаватель Кодабры:

Учитель информатики — это цифровой трудовик. У него не абстрактные знания, он умеет делать руками многое. Важнее даже не техническое образование, а опыт и умение быть на «ты» со многими программами.

Практические занятия помогают ребенку понять, где пригодятся полученные знания. И эти занятия должны соответствовать интересам ребенка: хочешь, делаешь игру, не хочешь — разрабатываешь сайт.

Николай Ведерников, преподаватель Кодабры:

Мы проходим условные операторы и ребенок должен понимать, где это пригодится. Не с точки зрения информатики. Ребенок приходит игры создавать и ему объясняют, что если персонаж упал, у него минус жизнь — вот он условный оператор.

Меня в школе осенило — мы прошли циклы и этого хватит, чтобы сделать любую программу. А учителя не обращали на это внимание.

Чем меньше времени на изучение предмета, тем лаконичнее и ярче должен быть преподаватель. Тем важнее, чтобы он мог зацепить ученика и правильно подать материал.

Николай Ведерников:

Я лучше всего помню преподавателя схемотехники. Он никогда не рассказывал голую теорию, а добавлял рассказы, байки, анекдоты. И все эти рассказы помогали перейти от одного учебного момента к другому, он приводил примеры или проводил параллели.

Также на школьных уроках учителю важнее вовлечь детей, чем быть супертехнарем. Важно показать, что информатика помогает жить и работать, а подход можно найти к любому: кому-то захочется сделать сайт, кому-то — создать игру, а кому-то — написать сценарий для умного дома.

Андрей Кост:

И уроков информатики немного, 35 занятий в год. Каждый урок можно сделать безумно интересным — показывать фильмы про технику и компьютеры, рассказывать про ученых и интересных людей. Младшим классам давать историческую справку, со старшими разбирать кейсы и задачи решать.

Что в итоге

В будущем любая профессия потребует от ребенка цифровых знаний и навыков. И похоже, что школьных уроков по информатике будет недостаточно. При этом школы уже сейчас готовы к тому, что соответствовать запросам учеников и родителей — для этого есть оборудование и методические пособия. Не хватает учителей и времени на изучение предмета. Как отмечают сами учителя, дети, которым интересно изучать IT-технологии, уходят «на сторону». Но нужно ли школе, чтобы дети получали все знания именно в ее стенах, это другой вопрос.

Источник

Универсальный бизнес портал