Rambler's Top100
 поиск по сайту:

Евгений Роганов. Основы информатики и программирования

Автор: Максим Отставнов
Опубликовано в журнале "Компьютерра" №10 от 18 марта 2002 года

 Учебное пособие - М.: МГИУ, 2001 - 315 с., ил. ISBN 5-276-00187-1Наука программирования, как математическая дисциплина, преподается достаточно просто. Количественный анализ алгоритмов (своего рода «термодинамика» вычислений) и его использование для построения программ - тоже достаточно хорошо разработанный методический пласт. «Разработка программного обеспечения» (как введение в специальность) - более сложный, но также изученный предмет.

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

Учебник Роганова (www.ctc.msiu.ru) вызывает двоякое чувство: с одной стороны, интерес, с другой -сочувствие к студентам Индустриального университета, которым предстоит за семестр «переварить» такой насыщенный курс.

Курс не предполагает предварительных знаний в области информатики и ведет студента от знакомства с элементарными основами (выходящего, впрочем, за пределы школьной программы) в гл. I к решению задач, которые можно охарактеризовать как небольшие, но полные проекты в гл. III.

Необходимый математический минимум (сверх школьной программы) введен в курс: это, прежде всего, элементы математической логики (исчисления предикатов - § I.3) и элементы других дисциплин, излагаемые применительно к решаемым задачам.

Демонстративное решение задач составляет основу изложения материала. «Парадигмальный» вопрос однозначно решен автором в пользу объектно-ориентированного подхода 1.

Знакомство с функциональной и логической парадигмами ограничивается несколькими страничками в § I.2, которые, полагаю, студенты тотчас забудут 2.

Так же однозначно решен и вопрос языка, на котором демонстрируется решение задач - это Java и ничего, кроме Java. Соответственно, примеры маленьких программ выглядят несколько вымученными, а введение понятий доказательного программирования - утяжеленным ненужными деталями: там, где хватило бы нескольких строк на псевдокоде 3 или на чистом директивном языке (Algol-60, Pascal, APL), пример обрастает ненужными подробностями, теряет прозрачность и ясность.

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

Вообще, я думаю, что обучать основам на «боевом» языке - верный путь заставить обучаемого возненавидеть его (во всех подробностях) еще до того, как дело дойдет до задач, где применение развесистого инструментария оправдано. Я понимаю, что введение дополнительного учебного языка - тяжелое решение для разработчика курса (с учетом, что потом из него нужно «выводить»), особенно курса компактного. Оно отягощается еще и тем, что идеальными даже позиционируемые как учебные языки не являются, а построение среды исполнения для псевдокода в бюджет разработки учебного курса никак не втиснешь 4.

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

Пролистав книжку задом наперед, с удовлетворением обнаруживаем, что уровень задач, на которых ООП вводится «в полный рост» (гл. III), выбран очень точно. Из трех проектных задач - построения выпуклой оболочки на плоскости, написания компилятора формул и изображения проекции полиэдра - только решение, пожалуй, первой в чистом директивном стиле будет (при прочих равных) сопоставимо по трудоемкости с ООП-решением, на двух же последних преимущества ООП-подхода уже заметны 5.

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

Вот какие непростые размышления вызвало у меня знакомство с этой книгой - без сомнения, одним из самых интересных отечественных учебных пособий по основам программирования. Студентам книги пусть рекомендуют их преподаватели, а вот самим преподавателям - разработчикам аналогичных курсов - я с чистой совестью рекомендую знакомство с этой книгой (www.ctc.msiu.ru/materials/books.php).


1 (обратно к тексту) - Хотя в первой половине пособия, при решении простых задач («программирования в малом») - а именно на них вводятся и элементы доказательного программирования (отсюда исчисление предикатов как часть курса), и понятие о квалиметрии алгоримов - используется практически чистый директивный стиль.
2 (обратно к тексту) - Отчего предвижу массу проблем в их дальнейшей жизни и работе.
3 (обратно к тексту) - Как это сделали Дейкстра в монографии «Дисциплина программирования» и Грис в, на мой взгляд, наикрутейшем учебнике «Наука программирования».
4 (обратно к тексту) - Возможно для кого-то и сегодня окажется такой же новостью, как и для меня, то, что это весьма сложная задача. Именно потому, что псевдокод («алгоритмический язык») должен быть простым, его реализация оказывается нетривиальной. Например, учащегося весьма желательно, в целях простоты изложения основ доказательного программирования, максимально освободить от (пока) ненужных подробностей, связанных с особенностями компьютерного представления чисел. А в той мере, в которой это удастся (а это означает не только «арифметику произвольной длины» для целых, но и символьное представление действительных), квалиметрические характеристики смоделированных в такой среде алгоритмов будут радикально отличаться от квалиметрии «настоящих» программ.
5 (обратно к тексту) - Правда все три весьма красиво решаются и в функциональном подходе, о чем студенты не узнают - см. примечание 2.
Читайте на сайте тему номера Делай - раз! Делай - два!.. и другие статьи из журнала "Компьютерра" от 18 марта 2002 года.

Обсудить статью в форуме (1)

Версия для печати | Послать другу | Написать в редакцию

Автор: Максим Отставнов. Другие статьи автора


Ничего странного!

Назвать настоящее имя автора этой книги я не смог бы даже на допросе четвертой степени.

Прикладная криптография

Брюс Шнайер. Прикладная криптография. Протоколы, алгоритмы, исходные тексты на языке Си. - М.: "Триумф", 2002 - 816 с.: ил. Тир. 3000 экз., ISBN 5-89392-055-4.

Linux для дома и офиса

Вопреки названию, книга популярных на Украине, да и в России тоже, авторов не содержит учебного курса по операционной системе. Описанию собственно операционных систем вообще и Linux в частности посвящено лишь двадцать из четырехсот страниц.

3,5 дюйма, или Как продавать свои программы через Интернет

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

Технологии защиты информации в Интернете

Максим Мамаев, Сергей Петренко. "Технологии защиты информации в Интернете. Специальный справочник". - СПб.: "Питер", 2002. - 848 с., ил.

О проекте | Карта сайта | Реклама | Рассылки сайта | Контакты | Вакансии | Архив | КПК-версия
РЕГИОНАЛЬНАЯ КОМПЬЮТЕРРА | Подписка в регионах | RSS 2.0

© ООО "Компьютерра-Онлайн", 1997-2008
Редакция сайта: site@computerra.ru
Техподдержка сайта: websupport@computerra.ru
Редакция журнала: inform@computerra.ru
Отдел рекламы: reklama@computerra.ru
Телефон: (495) 232-22-61, (495) 232-22-63
Работает на «Битрикс: Управление сайтом»
Почта защищена сервером СПАМОРЕЗ

Сайт работает на сервере DEPO Computers

  TopList  Rambler's Top100

Nokia 8800 Arte: искусство дорого стоить


СЕГОДНЯ В "КОМПЬЮТЕРРЕ"

Музей советских игровых автоматов  #

В музее игровых автоматов "15 копеек" есть около 40 аппаратов. Обычно, правда, половина находится в ремонте: старость - не радость. Впрочем, не только игровыми автоматами едиными. Там есть и работающий аппарат с газировкой!

» Прочитать

Wii Fit: Худеем вместе  #

Внимание! Это не "Гербалайф"! Совершенно реальный способ похудеть! Электронный тренажёр-весы от известного японского производителя! Спешите, количество ограничено!

» Прочитать

Blu-ray на свалке истории  #

Пока новый формат прокладывает дорогу к кошелькам пользователей, он уже успел безнадежно устареть. В Японии придумали такое четкое видео, что на один Blu-ray умещается всего... 7 секунд фильма!

» Прочитать

Как ускорить Windows Vista: советы разработчика  #

Тема оптимизации "Висты" заезжена донельзя. Тем не менее, спустя почти два года после выхода Windows Vista, редмондцы отважились опубликовать документ, рассматривающий вопросы ускорения операционной системы.

» Прочитать

Веб-десктопы: выбираем лучший  #

В интернете есть немало сервисов, реализующих идею переноса визуального пользовательского интерфейса внутрь браузера и представляющих собой некое подобие удалённого рабочего места.

Прочитать

» Статьи, тестирования, обзоры
» Каталог "железа" - Цены

» Форум "Терралаба"