Курсовая работа: «Азы» программирования и обучающие программы
Ну, а теперь, после того, как мы получили некоторое представление о программировании, поговорим о том, что нужно для того, чтобы «объяснить» свою задачу.
Для начала было бы неплохо, если бы Вы сами имели четкое представление о том, что Вы хотите. Под четкостью имеется в виду не то простое обстоятельство, что «я хотел бы иметь хорошую программу по истории философии, которая бы работала со мной в режиме диалога». Этого, конечно, мало. Это только начало постановки задачи и, как Вы, вероятно, догадываетесь, исходя из предыдущего, на такое благопожелание компьютер вряд ли отзовется.
Когда мы с вами составляли предыдущие программы, мы поняли, что компьютер «понимает» ряд команд (например, «печатай», «перейди к строке такой-то», «если», «то», «иначе», «конец», «ввести символ»). Набор этих команд (общее их количество в BASIC примерно сорок-пятьдесят) составляет язык, который «понимает» компьютер. Так вот, на этом языке мы и должны описать все наши действия.
Однако сразу с листа программу написать сложно. Так как нам неудобно держать в голове все логические связи между различными частями программы. Конечно, если программа простая (ну вроде тех, что нам с Вами знакомы), то, при некотором кавыке это можно делать достаточно легко. Но, если она достаточно разветвленная, имеет несколько вариантов ответа на предъявленный вопрос, то без графического описания программы обойтись довольно трудно.
Проиллюстрируем эту мысль примером.
Здесь уже не раз упоминалось имя Платона. Давайте возьмем один из его диалогов, скажем, диалог «Тимей» (См. Платон. Соч.: В 3-х т. T.3. ч.I. M. I97I. C.455-543) и попытаемся на основе этoгo произведения создать программу.
Очевидно, что вначале мы должны будем описать то, что мм хотим получить в самом общем виде. Пусть это будет программа, предназначенная дляобучения студентов. Далее, пусть это будет программа, которая работает в режиме диалога, то есть она будет предлагать вопрос и некоторый набор ответов, из которых студент должен будет выбрать наиболее предпочтительный. Затем мы должны будем указать машине, какие ответы правильные, а какие нет, а также, что делать в случае того или иного ответа, как верного, так и неверного. Итак, в общих чертах задача поставлена. И теперь дело за частностями, которые, как и во всех других делах, в конечном счете, все и определяют. Если Вы еще раз пробежите глазами приведенные выше условия, Вам станет ясно, что без глубокого знакомства с диалогом Платона и с комментариями к нему, с научной литературой, посвященной творчеству Платона, не обойтись. Это Вы должны запомнить хорошо. Если Вы хотите, чтобы компьютер помогал Вам в учебной, научной и всякой другой деятельности, Вы должны будете наполнить его содержанием. Содержательная сторона всегда будет определять выбор средств представления философских знаний в компьютерных системах.
Итак, берем диалог Платона «Тимей», внимательно читаем его, обдумываем, какие вопросы взять из этого произведения, в какой формулировке, в авторской или собственной. Подбираем ответы на эти вопросы, как правильные, так и не очень. Расставляем эти вопросы в определенном порядке, устанавливая, какой будет первым, какой вторым и так далее. И после этого начинаем разрабатывать алгоритм программы.
Давайте же подберем эти вопросы. Чтобы программа не была для нас слишком большой, так как мы еще начинающие программисты, остановимся на пяти вопросах.
А) Первый вопрос будет выглядеть так:
«Содержит ли диалог Платона Тимей концепцию Космоса как живого существа, одаренного умом?»
Далее мы должны предложить какой-то выбор ответов, так как все возможные варианты мы не можем представить сами и, соответственно, зал ожить в маши ну. Давайте для простоты остановимся на трех вариантах. Первый (назовем его «1») пусть будет неверный, второй («2») -правильный, третьим будет «не знаю» («3»). Учитывая вариант «А», мы даем возможность студенту не согласиться с первыми предложенными и ознакомиться с точкой зрения самого Платона.
Если Вы знакомы с содержанием диалога Платона «Тимей», то наверняка скажете, что проще всего варианты ответов выразить таким образом:
Нет
Да
Не знаю
А теперь попробуйте сообразить, что машина должна будет сделать (что нужно заставить ее сделать) в случае, если студент решит нажать клавишу «1» или «2» или «3».
Поскольку ответ «1» (Нет) неправильный, давайте сделаем так. Выдадим диагностику ответа:
«Вы ошиблись, подумайте еще раз!»
А затем вернем студента к первому вопросу с тем, чтобы дать ему возможность ответить правильно. (Заметим, что в этой программе наша задача научить студента, а не проконтролировать его знания!) Правильность второго ответа (Да) надеюсь, прозрачна, и поэтому мы переведем студента, нажавшего вторую клавишу, ко второму вопросу Или нет, давайте, чтобы у него не оставалось сомнений в солидной глубине собственных знаний сначала сообщим ему, что ответ верен, а затем предложим следующий вопрос («Б»).
В том случае, если студент нажмет на клавишу «3», то есть предпочтет вариант «не знаю», мы дадим такую диагностику:
«Почитайте, пожалуйста, разделы 29е-31в диалога Платона Тимей».
(В принципе, здесь можно привести и само содержание этих разделов).
Затем переведем студента опять к первому вопросу, то есть, как мы выражались раньше, «зациклим» эту часть программы.
Б) следующий вопрос, если не возражаете, будет выглядеть так:
«Отождествлял ли Платон понятия Космос и Человек?»
I. Да
2. Нет
3. Не знаю.