Преподавание языков программирования при обучении программистов, Виталий Николаевич Брагилевский
Профессиональный программист обычно владеет несколькими языками программирования. Но заранее обучить программиста всем языкам невозможно. В процессе обучения могут появиться новые языки, или какие-то языки неожиданно становятся популярными. В этих условиях следует обучать наиболее «типичным» языкам, не обязательно самым актуальным, но облегчающим освоение новых языков программирования.
Язык программирования – это инструмент, способ выражения мысли, и даже способ самого мышления. Кроме того, язык программирования – это ещё и некий стиль работы. При обучении языкам программирования необходимо также обучать и стилю написания программ, а именно, какие конструкции принято использовать и как они связаны между собой.
Многие языки программирования начинают оцениваться и с точки зрения того, насколько правильно их использовать в качестве инструмента для обучения. Рассмотрим два языка, часто используемых для обучения. Например, язык Python идеален как язык программирования, когда мы готовим специалистов в разных областях: химиков, математиков, биологов, лингвистов, историков. Но для обучения программистов не стоит его использовать. Python – это язык с устаревшим синтаксисом, пришедшим из начала 90-х годов. У него неудачная система типов. Слишком большая свобода для написания кода. Кроме того, переход от Python к другому языку гораздо сложнее и опаснее, чем в обратную сторону.
Язык С также создаёт проблемы при обучении программистов. Это сложный язык, который всё время развивается и его трудно полностью изучить. С его помощью легко написать «работающую», но некорректную программу. Практически невозможно быстро перейти к решению прикладных задач.
Был проведён опрос вновь поступивших студентов 1-го курса Факультета математики и компьютерных наук СПбГУ о том, какими языками программирования они владеют. Большинство (89%) владеют языками C или C , больше половины (63%) знают Python. Можно в этом случае учить языку, который все якобы «знают». Но не понятно какой процент обучающихся его знает, насколько хорошо знают. Можно переучивать на профессиональные подходы к написанию кода, но это достаточно сложно, к тому же не все будут согласны переучиваться. А что же делать с теми, кто совсем не умеет программировать или обучен другому языку? Возможно решением этих проблем станет обучение студентов менее знакомым им языкам программирования, например, , Julia, Kotlin. При этом необходимо сразу же обучать «хорошо» писать на них программный код. Основные характеристики качества кода: удобство сопровождения, гибкость, портируемость, возможность повторного использования, удобочитаемость, тестируемость, понятность.
Некоторые считают, что нужно обучать языку Java, поскольку это главный объектно-ориентированный язык программирования. Этот взгляд уже устарел лет на 15-20. Есть мнение, что нужно преподавать Javascript или PHP, поскольку, зная их студенты смогут быстро начать работать в компаниях, но вузы в этом не заинтересованы. Некоторые предлагают начать с низкоуровневости, с языка ассемблера, С, чтобы студенты знали, как всё устроено изнутри. Кто-то предлагает начинать с функционального программирования на языке Haskell. Но пригодятся ли эти знания студентом позже, в том числе, для перехода на другие языки программирования?
Каждая образовательная программа или преподаватель делают свой выбор относительно преподаваемых языков программирования, который зависит от многих факторов. Нужно думать о том, как этот выбор будет влиять на дальнейшее обучение, как изучаемый язык программирования будет применяться в последующих дисциплинах. Языки программирования все разные и заставляют нас думать по-разному. Навыки программирования просто так не переносимы с одного языка на другой.
На образовательной программе «Современное программирование» Факультета математики и компьютерных наук СПбГУ на первом курсе обучения в сентябре-октябре реализуется курс «Основы программирования» (язык Kotlin). Параллельно реализуется дисциплина «Основы Linux» (язык Bash). В ноябре-декабре преподаётся дисциплина «Введение в объектно-ориентированное программирование» (язык Kotlin), и параллельно дисциплина «Низкоуровневое программирование» (Язык C ). Кроме того, на первом курсе используется Python для решения задач в курсе «Дискретная математика».
Во втором семестре первого курса на языке Kotlin реализуются проекты, в том числе и командные. Студенты приближаются к решению промышленных задач. С тоже изучается в полной выкладке, и одновременно начинается курс «Алгоритмы и структуры данных».
На втором курсе стоит задача расширить кругозор студентов, и в третьем семестре они изучают язык Haskell. В четвёртом семестре в рамках курса математической логики изучается язык логического программирования Prolog. Не третьем курсе обучения в рамках дисциплины «Машинное обучение» используется Python. C 5-го по 8-ой семестры студентам предлагаются дисциплины по выбору: Python, Scala, Java, C#, Rust, Javascriptm PHP.
2 views
686
185
4 weeks ago 00:08:21 1
Дени Дидро. Повеса, ставший отцом первой энциклопедии. (рус.) Исторические личности
4 weeks ago 01:05:43 1
Дзогчен. Осознать свою Основу и достичь Освобождения. Намкай Норбу Ринпоче редкая лекция Москва 1996
4 weeks ago 01:01:22 6
Работа учителем на море во Вьетнаме сразу после получения диплома | Работа во Вьетнаме
4 weeks ago 00:14:44 1
«Школа в стрессе»: Путин узнал, до чего докатилось российское образование
4 weeks ago 00:10:37 1
ТРЕЙДИНГ С НУЛЯ ТОРГОВЫЕ ИДЕИ И ТОЧКИ ВХОДА #профессиональный_трейдер #обучение_трейдингу
4 weeks ago 00:10:05 1
Сергей Рубцов: Свобода, пробуждение, здоровье в твоих руках.
4 weeks ago 00:50:17 1
Потерянное поколение культуры отмены. Культуролог Валерия Тимофеева
4 weeks ago 00:05:00 1
Woche der russischen Sprache 2024 in Berlin // Неделя русского языка 2024 в Берлине
1 month ago 01:32:09 4
Почему обучения не работают? Метод который гарантированно изменит твою жизнь и ты получишь результат
1 month ago 00:07:27 1
Как снимать в LOG на 8-бит камерах? Советы и обучение по работе с S-Log2
1 month ago 01:12:31 2
Ортодонт и Остеопатия как и чем это связано? | Остеопат Марина Просветина
1 month ago 00:12:19 1
Я ПРЕДЕЛА YouTube
1 month ago 00:00:58 1
To introduce значения глагола introduce, кроме “Let me introduce myself” #АнглийскийДляТестировщиков
1 month ago 00:08:19 1
ТРЕЙДИНГ С НУЛЯ ТОРГОВЫЕ ИДЕИ И ТОЧКИ ВХОДА #профессиональный_трейдер #обучение_трейдингу
1 month ago 00:09:22 1
ЗАЧЕМ ИЗЪЯЛИ СТАЛИНСКИЙ БУКВАРЬ. СОВЕТСКИЕ УЧЕБНИКИ - ЛОГИКА И ПСИХОЛОГИЯ ДЛЯ СРЕДНЕЙ ШКОЛЫ
1 month ago 00:08:25 1
Шок ! Предложено тратить миллиарды на обучение русскому языку детей мигрантов !
1 month ago 00:59:46 1
Жизнь в Бразилии: Эмиграция, адаптация и реалии бразильской жизни - история Милицы Бакич Пуцигер
1 month ago 00:06:43 1
Почему нельзя спать головой на север? Лучшее положение для сна.
1 month ago 00:11:22 1
ТРЕЙДИНГ С НУЛЯ ТОРГОВЫЕ ИДЕИ И ТОЧКИ ВХОДА #профессиональный_трейдер #обучение_трейдингу