Изображение квадрата Дюрера

ООО АВТОМАТИКА плюс

Rambler's Top100

Рейтинг@Mail.ru

Лабораторные работы по языку Pascal. Методические указания

Версия от 27.05.2012

Содержание

Введение

Если Вы не являетесь программистом, но мечтаете научиться, то начните с языка Pascal. Вы не ошибетесь!

Язык Pascal (Паскаль) разрабатывался в первую очередь для обучения программированию. Миллионы программистов освоили свою профессию благодаря языку Pascal. Примечательно, что большинство их них, хотя и научились программировать благодаря Pascal, но в дальнейшем выбрали для профессиональной деятельности другие языки программирования (ЯП). Именно для этого и разрабатывался Pascal - это самый быстрый способ научиться программировать! Если Вы научились программировать, то Вам не составит огромного труда освоить другие ЯП.

Язык Pascal позволяет легко и быстро выучить основы программирования, т.е. те приемы, которые в дальнейшем можно использовать в любом другом ЯП.

Язык Pascal значительно упрощает работу преподавателя, т.к. ученики усваивают материал, как правило, с первого раза (в отличие от С, С++, C#, Java и других языков программирования). Мощное обоснование в пользу выбора языка Pascal предлагает Андрей Столяров на своем сайте. Он отмечает многочисленные недостатки языков С / С++ и делает вывод об их неприспособленности для обучения программированию. Я, как преподаватель основ программирования, его полностью поддерживаю.

Забытый Pascal

У меня есть много знакомых программистов, использующих С, С++, С#, Java, 1C, PHP и все что угодно. Все они профессионалы, зарабатывающие на этом хорошие деньги. Каждый из них утверждает, что его ЯП самый лучший, а Pascal - это "ненужный язык, не применяемый на практике", "зря его нам преподавали", "это была пустая потеря времени". Забавно, они ругают язык Pascal, а ведь именно благодаря ему научились программировать и теперь зарабатывают на этом деньги.

Бывают ли хорошие методические указания по Pascal?

Наверно бывают, однако автору не попадались хорошие работы. В интернете имеются неплохие работы, очевидно старание авторов, однако всякий раз в них чего-то не хватает. Преподаватели ВУЗов каждый год разрабатывают учебные пособия, методические материалы, но это, как правило, переписывание из одного места в другое. Иногда попадаются действительно мощные, концептуальные работы, но это лишь капля в море. А нынешнее море образования становится мертвым, хорошие работы выходят все реже.

Разработка хороших методических указаний по Pascal - это очень большой труд. Вряд ли найдутся другие дисциплины, где требуется еще больший труд. Далеко не каждый преподаватель в состоянии его осилить. В данном случае недостаточно быть просто "хорошим преподавателем" (затрудняюсь дать определение этому термину). Нужно быть хорошим программистом, причем знать одновременно несколько ЯП (желательно иметь представление обо всех современных ЯП). Причем нужно быть не просто хорошим программистом, а профессионалом, вникающим во все тонкости. Нужно уметь работать со студентами (вчерашними школьниками), их понимать, их любить. Имея в голове огромные объемы информации, нужно уметь ее фильтровать и выдавать только действительно важную. Нужно иметь много свободного времени, взаимопонимание с членами своей семьи. Нужно быть заинтересованным в высоком качестве выполнения своей работы.

По каждому "нужно" напрашивается отдельное замечание, однако все замечания могут оказаться субъективными, поэтому автор предпочитает не навязывать свое мнение кому-либо.

Недостатки имеющихся методических указаний по Pascal

Автор данной статьи достаточно четко представляет то, какой материал должен быть включен в методические указания по Pascal, поэтому может выявить недостатки существующих работ:

  • Отсутствие теоретического материала. Авторы дают лишь варианты заданий на лабораторные работы, теоретический материал дается в форме лекционных занятий, либо дается ссылка на литературу (например, на Фаронова). Такой методический материал нельзя назвать полноценным, поскольку он должен содержать необходимую теоретическую часть. Кстати, насчет учебников В.В. Фаронова по Turbo Pascal: это поистине беспрецедентная работа, благодаря которой программирование смогли освоить многие тысячи студентов. Пожалуй, истинную ценность такой работы может понять только тот, кто сам преподает программирование.
  • Постепенное ухудшение качества изложения материала. В начале выполнения работы авторы имеют слабое представление о предстоящих объемах, поэтому описывают теоретическую часть слишком подробно. На это уходит основная часть времени. Далее они понимают, что в отведенные сроки не успевают завершить работу, в результате чего качество резко падает, начинаю без раздумья использовать copy/past, пропускают важные разделы.
  • Дословное копирование материала из других источников без должной фильтрации. Очень часто преподаватели не являются профессионалами в своей дисциплине. Раз он доктор технических наук, профессор ВАК, значит, он может преподавать любую техническую дисциплину. Ему за это платят зарплату, а знать предмет вовсе не обязательно! Он профессиональный преподаватель! Он за свою карьеру выпустил десятки и сотни методических указаний по различным дисциплинам, он знает уровень "необходимо и достаточно" для соответствующей "галочки" и за этот уровень не выходит. Для написания методических указаний необходимо наметить работу в учебном плане и в дальнейшем опубликовать с помощью издательства и достаточно перекопировать материал "один-в-один" из любого другого источника.
  • Необоснованно строгий стиль изложения. Авторы предлагают огромное количество различных определений, большая часть которых является лишней. Зачастую используются излишне научные формулировки, непонятные для читателя, в результате чего исчезает всякое желание читать подобные произведения. В действительности же количество "умных" фраз никак не связано с интеллектуальными способностями авторов, а очень часто имеет место обратная зависимость. Любая учебная литература должна быть написана максимально простым языком. Если автору не удается этого достичь, значит, ему самому нужно учиться (правильно формулировать свои мысли).
  • Непродуманная последовательность изложения материала. При изложении материала должен быть соблюден принцип "от простого к сложному". Но в методических материалах по программированию он соблюдается далеко не всегда. Пример. Понятие процедур и функций - одно из сложнейших для новичка, оно должно даваться уже после того, как студент усвоил операторы ветвления, циклов, безусловного перехода, однако иногда авторы считают тему процедур и функций более важной и дают ее чуть ли не в самом начале. Такие необдуманные действия, как правило, убивают у студента весь интерес к программированию. Обратный пример: процедуры и функции даются после материала по обработке строк. Опять неверно проставлены приоритеты! Дело в том, что обработка строк в программировании нужна далеко не всем и не всегда. Если преподаватель обучает программированию будущих литераторов, то это нормально (вы когда-нибудь встречали программистов-литераторов?), но для студентов технической специальности гораздо больший интерес представляет математика, а в этом случае процедуры и функции гораздо важнее, чем обработка строк. "Какая разница, чуть раньше или чуть позже", спросите Вы. Отвечаю - разница огромная и принципиальная. Если студент за отведенное и крайне ограниченное учебное время успел разобраться с процедурами/функциями, но не успел поработать со строками, то в этом нет ничего страшного, он, если потребуется, без труда с ними разберется. А вот если он освоил работу со строками, но не успел разобраться с процедурами/функциями, то, скорее всего он утратит интерес к программированию.
  • Отсутствие описания некоторых важных языковых возможностей. В интернете можно найти очень хорошую работу (методические указания по Pascal), однако в ней есть очень существенный недостаток - пропущена тема процедур и функций. Я убежден, что тема процедур и функций очень важна, и если студент ее не освоил, значит, дорога в программирование для него закрыта.
    Следует отдельно отметить оператор безусловного перехода GOTO. Многие считают его ненужной, вредной конструкцией, однако автор глубоко убежден, что это не так. Создатель языка Pascal, Никлаус Вирт, человек безусловно гениальный, не стал бы вводить в учебный язык лишние и вредные конструкции. Он четко понимал, что делает. GOTO совершенно необходим на этапе изучения операторов перехода и циклов, т.к. дает студенту желаемые возможности. Позже студент разберется с темой процедур и функций и заявит, что GOTO - это лишний и вредный оператор. Но к тому моменту GOTO свою роль уже выполнил, т.е. сослужил свою службу.
  • Изложение лишнего материала. Некоторые авторы методических указаний по Pascal предлагают информацию бесполезную, или даже вредную для изучения основ программирования. К такой информации можно отнести:
    - упоминание указателей и адресов. В этом очень мало смысла, поскольку в современном программировании есть тенденция по исключению этих понятий. Вместо сложных понятий "указатель" и "адрес" предлагаются более полезные и ёмкие понятия: "объект" и "класс". Но вряд ли стоит сразу же предлагать студенту эти понятия.
    - обработка "коротких" строк с доступом к нулевому байту длины. От такого материала только вред, тем более для определения длины строки в Pascal предусмотрена функция Length.
    - обработка "нетипизированных" файлов с помощью функций BlockRead и BlockWrite. Вообще, студент должен понимать, что такое "файл". Желательно умение работать с текстовыми и "типизированными" файлами. Но навязывание студенту указанных функций в начальном программировании - это либо невежество автора методических материалов, либо его склонность к издевательству.
    - изучение объектно-ориентированного программирования. Это очень важная тема, но перед ее освоением студент должен хорошо разобраться с процедурами и функциями.
  • Непродуманные задания на лабораторные работы. Задания на лабораторные работы должны быть выполнимы! Они не должны выходить за рамки той информации, которая приведена в теоретической части методических материалов. К сожалению, у некоторых авторов теоретическая часть и задания друг с другом связаны очень слабо.

Методические указания по Pascal от автора

Автор постарался учесть недостатки имеющегося методического материала и разработал методические указания по выполнению лабораторных работ на языке Pascal. Предлагаются следующие лабораторные работы:

  1. Разработка программы с линейным алгоритмом выполнения
  2. Разработка программы с разветвленной структурой
  3. Разработка циклической программы с известным количеством повторений
  4. Разработка циклической программы с неизвестным количеством повторений
  5. Разработка программы с использованием процедур и функций
  6. Обработка символов и строк на языке Pascal
  7. Работа с файлами на языке Pascal

Описание лабораторных работ содержит весь необходимый теоретический материал, поэтому обучаемому не потребуется никакой дополнительной литературы.

Разработка каждой лабораторной работы - это большой труд, занявший у автора не менее двух недель. Особое внимание уделено описанию первой лабораторной работы "Разработка программы с линейным алгоритмом выполнения". Именно она, несмотря на свою простоту, является главным камнем преткновения: если студент в ней не разобрался, то он не сможет выполнить дальнейшие работы, путь в программирование для него закрыт (преподаватель не должен тратить время на таких студентов).

Скачать методические указания от автора Вы можете по ССЫЛКЕ.

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

Логинов Дмитрий © 2005-2015