Архив 16 марта 2011

Два мира, две системы

У них (из книги Питера ван дер Линдена Expert C Programming: Deep C Secrets), перевод мой.

В Йельском университете профессор Алан Перлис (один из авторов Алгол-60) давал такое задание (на неделю) своим студентам.

Решите каждую из следующих задач:

1) Прочесть строку и вывести все перестановки ее символов.
2) Задача о восьми ферзях (напечатать все расстановки восьми не бьющих друг друга ферзей на шахматной доске).
3) Дано число N, напечатать все простые числа, не превосходящие N.
4) Написать подпрограмму умножения двух матриц произвольного размера.

На каждом из следующих языков:

1) C
2) APL
3) Lisp
4) Fortran

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

У нас (преподает сей деятель на ВМК МГУ), перевод не требуется.

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

Подробнее – в PDF того же автора:

http://www.stolyarov.info/files/anti_c_v03.pdf

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

Сам не раз был свидетелем того, как студенты уже на зачете (!) начинали “качать права”, мол, преподаватель был обязан научить лично их решать те задачи, которые будут даваться в качестве зачетных (это вообще безотносительно предмета). Кроме того, слышал о печальной истории изучения Java на втором курсе мехмата МГУ. Оказывается, на третьем-четвертом курсе, когда курс “Программирование и работа на ЭВМ” (с Java) превращается в “Практикум на ЭВМ” (не очень сложные с точки зрения программирования вычислительные задачи на C или FORTRAN), студенты жаловались, что их не научили языку C. Необходимый для сдачи “Практикума” объем языка C – это максимум две первых главы тоненькой книжечки Кернигана и Ритчи. Ничего сложного даже для бывшего джависта там нет. Тем не менее, надо нажаловаться, вместо того, чтобы хоть немного “самообразовываться”.

PS Естественно, что даже в случае изучения на первом курсе C и C++ вместо Java подавляющее большинство студентов даже к третьему курсу совершенно не умеет программировать даже в том минимальном объеме, который требуется на мехмате. Но формальных поводов нажаловаться на “злого препода” – меньше.

Про “информационную открытость”

Все выходные, а также понедельник и вторник я включал утром “Вести-24″ и смотрел новости, в которых первым сюжетом обычно шло “они еще один энергоблок загубили“. Журналюги испытывали множественный оргазм от “информационной открытости” и отказывались включать мозг. Один мой знакомый, например, в понедельник дозвонился на радиостанцию “Вести-FM”, где сказал о том, что японцы что-то скрывают или выдают далеко не полную информацию, после чего ведущие продолжили свой милый разговор о все той же “информационной открытости”.

Тем временем запахло жареным, уровень радиации на Фукусиме достиг 400 миллизивертов в час – чтобы получить лучевую болезнь, достаточно поработать там пару часов, персонал со станции якобы был эвакуирован, да еще и ветер подул в сторону Токио, принеся с собой слегка повышенный уровень радиации. Этого стало достаточно для того, чтобы журналюги побежали в Росатом, где им в доступных терминах разъяснили, что японцы выдают далеко не полную информацию. “Вести” перестали выдавать новости с японской АЭС в “желтой строке”, а вечно оптимистичный японец сменился небритыми, угрюмыми и похмельными экспертами Росатома, обещающими Ад и погибель.