Как Chat GPT повлияет на текущую систему образования?

от автора

Чтобы ответить на данный вопрос, я решил воспользоваться алгоритмами chat gpt для решения достаточно простой задачи по программированию на python. Данная задача была взята из курса ВШЭ по python, и, я полагаю, что её уровень сложности сопоставим с лабораторной работой по информатике на 1 курсе ВУЗа. Вполне вероятно её использование и в обучении на популярных онлайн-курсах. Данная задача была выбрана, как реальный пример для обучения Python. Понятно, что для опытных программистов данная задача покажется легкой прогулкой.

Задача

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

  • пополнение счета клиента

  • снятие со счета

  • запрос остатка денег по счету

  • перевод между клиентами

  • начисление процентов по вкладу

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

# входные данные 7 DEPOSIT Ivanov 100 INCOME 5 BALANCE Ivanov TRANSFER Ivanov Petrov 50 WITHDRAW Petrov 100 BALANCE Petrov BALANCE Sidorov

На выходе программа должна вывести только функцию запроса баланса (остатка) по счету клиента. Если такого клиента нет в банке, то программа выводит «Error»

# вывод 105 -50 ERROR

Решение chat gpt

После достаточно простого перевода формулировки задачи на английский язык бот выдал следующую программу:

class BankAccount:     def __init__(self, name):         self.name = name         self.balance = 0              def deposit(self, amount):         self.balance += amount              def withdraw(self, amount):         self.balance -= amount              def transfer(self, other, amount):         self.balance -= amount         other.balance += amount              def income(self, p):         self.balance += int(self.balance * p / 100)          class Bank:     def __init__(self):         self.accounts = {}              def deposit(self, name, amount):         if name not in self.accounts:             self.accounts[name] = BankAccount(name)         self.accounts[name].deposit(amount)              def withdraw(self, name, amount):         if name not in self.accounts:             self.accounts[name] = BankAccount(name)         self.accounts[name].withdraw(amount)              def balance(self, name):         if name in self.accounts:             return self.accounts[name].balance         else:             return "ERROR"              def transfer(self, name1, name2, amount):         if name1 not in self.accounts:             self.accounts[name1] = BankAccount(name1)         if name2 not in self.accounts:             self.accounts[name2] = BankAccount(name2)         self.accounts[name1].transfer(self.accounts[name2], amount)              def income(self, p):         for account in self.accounts.values():             if account.balance > 0:                 account.income(p)  bank = Bank()  # Example usage bank.deposit("John Doe", 1000) bank.deposit("Jane Doe", 500) bank.withdraw("John Doe", 200) print(bank.balance("John Doe")) # 800 print(bank.balance("Jane Doe")) # 500

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

def bank_operations(n, operations):     bank = {}     for i in range(n):         operation = operations[i].split()         if operation[0] == "DEPOSIT":             name = operation[1]             amount = int(operation[2])             if name in bank:                 bank[name] += amount             else:                 bank[name] = amount         elif operation[0] == "WITHDRAW":             name = operation[1]             amount = int(operation[2])             if name in bank:                 bank[name] -= amount             else:                 bank[name] = -amount         elif operation[0] == "BALANCE":             name = operation[1]             if name in bank:                 print(bank[name])             else:                 print("ERROR")         elif operation[0] == "TRANSFER":             name1 = operation[1]             name2 = operation[2]             amount = int(operation[3])             if name1 in bank and name2 in bank:                 bank[name1] -= amount                 bank[name2] += amount             elif name1 in bank:                 bank[name1] -= amount                 bank[name2] = amount             elif name2 in bank:                 bank[name1] = -amount                 bank[name2] += amount             else:                 bank[name1] = -amount                 bank[name2] = amount         elif operation[0] == "INCOME":             p = int(operation[1])             for name in bank:                 if bank[name] > 0:                     bank[name] += bank[name] * p // 100     return bank

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

К чему это всё?

На мой субъективный взгляд появление chat gpt полностью изменит текущую систему обучения. Ведь теперь, чтобы решить ту или иную задачу онлайн-курса или написать код для лабораторной работы в ВУЗ, достаточно просто вбить формулировку упражнения в chat gpt и спустя минуту вы получаете готовый код, который сразу же проходит все тесты.

Изменения на рынке труда

Думаю, что это повлечет за собой то, что на рынке будут невостребованными профессия junior — разработчика, так как его функции с быстротой и легкостью исполнит ИИ (косвенно об этом свидетельствуют массовые увольнения IT — специалистов в ведущих компаниях мира). Следовательно, системы обучения должны будут подстроиться под подготовку разработчиков уровня middle/senior. На данный момент такое образование на выходе получают только выпускники престижных российских вузов, обучающиеся на топовых специальностях, у которых за плечами большой портфель из разного рода проектов.

Изменения в образовании

Появление chat gpt явно поставит проблемы перед рынком онлайн-курсов по IT с целью обучения той или иной профессией, который был и без того сомнительным. Однако полагаю возрастет важность «понимания» кода ( в частности ответа chat gpt), причем не только 1 конкретного языка программирования, а нескольких языков. Что касается ВУЗов, то программа обучения должна существенно усложниться, чтобы выпускать разрботчиков более высокого уровня. Приведенный пример использования chat gpt позволяет понять, что текущие обучающие задачи ИИ щелкает, как орешки)

Изменения в стеке программистов

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


ссылка на оригинал статьи https://habr.com/ru/post/714002/


Комментарии

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *