27 из 39 крупнейших факультетов программирования (69%) в университетах предлагают курсы обучения на Python по программам CS0 или CS1 (introductionary courses). Ситуация изменилась в последние три года. В частности, недавно на Python перевели вводные курсы программирования Массачусетский технологический институт и Калифорнийский университет в Беркли.
На втором месте по популярности находится Java http://www.sakana-ichiba.com/ (22 из 39), далее следуют MATLAB (8), C++ (6), C (6), Scheme (4), Scratch (3).
Автор исследования в журнале Communication of the ACM проделал хорошую работу, собрав информацию с названиями курсов программирования во всех университетах. Список постепенно обновляется, по мере того, как читатели присылают уточнённую информацию из своих вузов.
По крайней мере, теперь понятно, на каком языке лучше всего изучать программирование с нуля, даже в рамках самообразования.
Курсы на Python предлагают и сайты дистанционного обучения edX, Coursera и Udacity. Популярность специализированных обучающих ресурсов вроде
Вообще это печально, что у нас зеленые студенты часто больше в тренде современных технологий, чем преподаватели и образование в целом. Как результат: более подготовлен к реальной трудовой деятельности тот, кто учился самостоятельно или работал параллельно с универом, а не изучал мертвые языки. Если базовый курс программирования еще как-то можно объяснить тем, что учат алгоритмизации и логическому мышлению в целом, мол язык в данном случае не особо важен, важны принципы (с чем я впрочем не согласен), то предметы посвященные, например, веб-разработке заставляют плакать и смеяться — так далеки они от современных реалий.
upd: однако нужно заметить что всем, кто заранее высказал желание сдать предмет сразу — это желание позволили реализовать.
В наше время азами программирования считались программы типа черепашка или бейсик. А сейчас азами называются промышленные ЯП? Ого…
Так они и не изучают язык, как профессиональный инструмент. Они используют питон для преподавания основ теории алгоритмов: сортировки, структуры данных, динамическое программирование, рекурсия, и т.д. Теория алгоритмов — это не программирование, уже лет 20, а то и больше. Как только появились стандартные библиотеки коллекций, реализованные сортировки и т.д. Современный программист должне уметь всем этим пользоваться, а не изобретать это все заново.
Мне кажется, что большая проблема обучения программированию в наше время состоит в том, что более не существует аналогов черепашке и Бейсику. В наши дни все простые языки необычайно развились и, фактически, стали промышленными. Я вот даже не могу себе представить, на каком более-менее настоящем языке надо обучать. Ну сначала, положим, какой-нибудь Scratch, а дальше? Склоняюсь к Python.
Не, ну эмуляция черепашки, конечно, есть. Я о другом. Вот был язык Visual Basic 3, например. С одной стороны, его можно было ЦЕЛИКОМ выучить, не погружаясь в какие-то сложности, а с другой стороны, это был полноценный язык для создания Windows-приложений.
уровня. SQL, все-таки, это весьма специфична штука, которая изучается на специальных курсах, которых в самом деле тоже тьма.
Мне показалось неожиданным, что в MIT и в Беркли вообще существуют курсы программирования начального уровня. По-моему, это школьная программа (а если нет, то таким знаменитым вузам ничего не стоит брать только тех абитуриентов, которые уже владеют азами программирования).
SICP ни разу не школьная программа ) Хотя и начльного уровня. На первой странице предполагают, что вы не умеете программировать. но где-то к 160й уже вы реализуете символьное дифференцирование.
Ну вот это и довольно странное видение своего студента, как будто бы он вырос в вакууме и ничего не знает о программировании, зато всё схватывает на лету и уже через семестр способен реализовывать вот это самое дифференцирование.
Ну выше упоминали, что хорошо, дескать, что курс студент сам выбирает, а не с 1968 года сверху его спускают. Видимо, что-то спускают с 1968 года.
У нас в школе вообще не было программирования- тупо комп класс появился уже после моего выпуска. И к первому семестру я не знал о программировании ничего. Но это не помешало мне выучиться на программиста:)
Ты же не обязан их брать. Само собой, студент-программист это уже знает, но в т.ч. есть и биологи, которым необходимо считать белки, например, а они в программах ни в зуб ногой. Вот для них и есть эти курсы. В университетах вообще много чего есть, разного уровня, и это прекрасно — можно взять, что нравится, а не то, что велено минобром в 1968 г.
По мне так не очень положительная тенденция. Настолько высокоуровневые языки не должны быть в основе обучения программированию. Роют они себе яму этим. Получат через несколько лет огромную кучу людей пишущих функции подсчета пробелов вроде
Например, следующая конструкция для подсчёта числа пробелов по сути происходящего практически эквивалентна pascal-style решению, но при этом умещается в одну строчку:
>>> timeit.timeit( ‘opt in of com’.count(‘ ‘) , number=1000000)0.25260305404663086>>> timeit.timeit( x = 0nfor c in ‘opt in of com’:n if c==’ ‘:n x+=1 , number=1000000)1.0578958988189697>>> timeit.timeit( len([i for i in ‘opt in of com’ if i == ‘ ‘]) , number=1000000)1.126028060913086>>> timeit.timeit( sum((1 for c in ‘opt in of com’ if c==’ ‘)) , number=1000000)1.4912290573120117
Всё очень и очень зависит от качества курсов. Заметьте, это что-то типа курса основ программирования и теории алгоритмов. Думаю, уж они дадут курс по тому, как писать эффективно =)
И потом, мне кажется, как раз высокоуровневые языки помогают не писать велосипеды. Ну а если человек не умеет пользоваться Гуглом — то какого бы уровня ни был язык, он напишет велосипед в любом случае.