Образование по computer science для начинающих

Jun 28, 2016 20:11

Есть три главные проблемы в образовании по информатике для начинающих ( Read more... )

Leave a comment

Comments 23

gray_bird June 28 2016, 17:36:15 UTC
Замечу, что ссылка на пиктомир : https://piktomir.niisi.ru/

Reply

ailev June 28 2016, 18:24:33 UTC
Это редирект туда. Но старая ссылка и впрямь сбоит. Я поправил, работает с www: http://www.piktomir.ru/

Reply

gray_bird June 29 2016, 17:44:59 UTC
Поигрался в пиктомир - он не провоцирует возникновения рефлекса оптимизации алгоритма! Наоборот, можно слепить неоптимальный алгоритм, который с большим оверхедом закрывает задачу и так сойдет! :)
Ребенок с самого начала привыкает так думать!
В этом плане программируемый советский лунный трактор был в разы интересней.

Reply


ext_458325 June 28 2016, 17:50:16 UTC
Хорошо зафиксированная структура данных в алгоритмах не нуждается.

Reply

ailev June 28 2016, 18:26:39 UTC
Вот! А этому не учат вообще. Весь курс школьного программирования крутится вокруг управляющих конструкций сначала и пяти вариантов сортировок в конце.

Reply

ext_458325 June 28 2016, 18:36:35 UTC
Ну, я не умею детей монадам учить. Этому легко учить того, кто или прошел курс алгоритмики и успел понять, как это скучно, или занимался много разной математикой.

Reply


wesel June 28 2016, 18:55:46 UTC
Питон для меня выглядит настолько внезапно интерпретируемым, что идея изучать на нем алгоритмы кажется странной - можно, конечно, считать сложность выполнения понятием целиком абстрактно-математическим, но это как-то слишком свежо. А при попытке подойти практически время выполнения ведет себя как-то очень неясно, и, что хуже, мне вот не удается разъяснить происходящее даже гуглом и документацией ): Наверное, я не умею его готовить, но мне современный питон кажется просто "удобным" средством дать подергать за АПИ на библиотеки на С, как в случае с машинным обучением. Причем структуры данных там так интересно реализованы, что производительность по памяти и/или времени при попытке сделать шаг за туториал буквально-таки расстреливает ( ... )

Reply

ailev June 28 2016, 19:30:47 UTC
Это у вас развёрнутое описание проблемы двух языков, из-за которой была выдумана Julia. Julia обладает сравнимой с Питоном выразительностью, или даже чуток получше (но не объект-ориентирована), а ещё в ней можно по-старинке заглянуть в код на уровне LLVM или даже машинном языке, если очень хочется, а скорость как у Сей и стык с Сями в обе стороны родной (аки твой Фортран). Как раз язык для любителей алгоритмов и их отладки. Ну, и ещё много всяких других штучек, типа "прямого переноса мат.нотации, прямо с греческими буквами".

Но вокруг Julia сейчас учебная пропасть, я её как раз живописал в посту. Пахать, пахать и пахать, чтобы эту пропасть как-то замостить.

Reply

sharpc June 28 2016, 20:14:47 UTC
а скорость как у Сей
Это, мягко говоря, не так. Julia тормознее даже Python порядка в 10 раз.

Reply

ailev June 28 2016, 20:21:14 UTC
Я думаю, тут какое-то недоразумение. Например, в версии 0.3 при первом проходе по библиотеке код компилировался, это иногда влияло на тесты.

Вот тут в конце странички бенчмарк (старой, правда, версии. Сейчас 0.4.6 уже): http://julialang.org/

Reply


coralsteel June 28 2016, 21:54:30 UTC
Встряну и тут со своими старыми учителями.)))
Эдсгер Дейкстра рулит для логики. "дисциплина программирования"
Помню, я удивил программиста его охраняемыми командами.
Который, в свою очередь удивился ошибкам компилятора...
"знание бейсика это детская болезнь типа поноса"(с)

Reply

coralsteel June 29 2016, 15:40:13 UTC
Рискну спросить - в Джулии есть работа с инвариантами цикла?
Если нет, то этот язык отстой и шаг назад в спагетти программирование.)))

Reply

ailev June 29 2016, 15:55:36 UTC
Принципы тут: https://arxiv.org/abs/1411.1607
Нужно также учесть, что Julia существенно ориентируется на параллельные алгоритмы, так что в ней всё чуток посложней уже, чем во времена Дейкстры.

Reply

coralsteel June 29 2016, 16:25:09 UTC
Понятно. "Сложности" замели под ковер.
Программистам инварианты не дают.
Возможно, они внутри Julia и наружу сообщают об ошибках.
Дело вкуса, но я предпочитаю понимать что я делаю и почему мой цикл не заканчивается.
julia> for i = 1:2, j = 3:4
println((i, j))
end

Нееее. ШАГ НАЗАД. Ерунда, а не язык.

Reply


p2004r June 29 2016, 12:01:14 UTC
Огромное количество онлайн курсов по перечисленным в топике областям знаний. Доступных как в режиме "просто посмотреть бесплатно лекции" (прямо с ютюба), так и с нескольких платформ в виде онлайн курса с проверкой заданий (иногда бесплатно) и (после оплаты) выдачей сертификатов. Да 90% доступно на английском, но он обязателен в информатике; и чем дольше оттягивать момент начала его использования, тем хуже.

Что касается разрыва с школьным-дошкольным, то у sicp была специальная серия "Маленький схемер" (The Little Schemer, The Seasoned Schemer (MIT Press) ) которая готовила к основному курсу.

Reply

ailev June 29 2016, 12:33:42 UTC
Про все эти онлайн курсы известно, но количество, качество и проверка заданий в них -- вот лимитирующий фактор.

Про The Little Schemer, The Seasoned Schemer и The Little Prover -- это спасибо, я погляжу. Лиспы разные нужны, лиспы разные важны. Пройти один и тот же SICP на двух-трёх языках -- это может быть самое то, что нужно, в голове тогда точно останется общая часть, вынесенная из языков "за скобки". )))

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

Reply


Leave a comment

Up