статического держателя для переходника в дерево подбора вставляется соответствующая папка с выделенными строками тех блоков, к которым можно крепить переходник.
В результате алгоритмизации к переходу подбираются режущий и вспомогательный инструменты в автоматизированном режиме. Это снимает с технолога задачу поиска необходимой оснастки по таблицам базы данных системы, а также анализа совместимости (собираемости) отдельных частей инструментальной системы, т.к. для выбора выдаются записи, удовлетворяющие этому условию. Таким образом, сокращается время на проектирование технологического процесса и, как следствие, на технологическую подготовку производства.
Литература
1. Куприянчик А.М., Гинзбург Е.М. и др. TechCard. Версия 7.0/ Руководство пользователя. -Мн.: ОДО «Интермех», 2006. - 328 с.
2. ISO513:2004 «Материалы твердые режущие для снятия стружки с определенными режущими кромками. Классификация и применение. Обозначение основных групп по снятию стружки и групп по применению»
УДК 519.682.4, 371.32
ПРОБЛЕМЫ ИЗУЧЕНИЯ ОБЪЕКТНО-ОРИЕНТИРОВАННОГО ПРОГРАММИРОВАНИЯ В ВЫСШИХ УЧЕБНЫХ ЗАВЕДЕНИЯХ
Синельникова Ирина Владимировна, Преподаватель ЦК «Автоматизированные системы обработки информации и управления», Воронежская государственная технологическая академия, Россия, Воронеж, [email protected] Калинникова Людмила Алентиновна, Преподаватель ЦК «Автоматизированные системы
обработки информации и управления»
Воронежская государственная технологическая академия, Россия, Воронеж
Программное обеспечение, безусловно, относится к категории сложных систем. За последние 25 лет было придумано много ученых теорий о сложных системах, однако для разработки ПО нужны были не теории, а технология. Объектно-ориентированная технология - специальная технология реализации сложных систем в виде рабочих программных продуктов. Технологию создают не ученые-теоретики, а первую очередь практики. Так и объектная технология родилась из опыта разработки реальных систем [1].
В начале 80-х годов целые коллективы, разрабатывающие крупные системы автоматизации, с успехом применили новинку - объектно-ориентированные языки программирования, а также объектно-ориентированные методы анализа проблемы и проектирования решения [3]. Программист получил в руки инструмент, позволяющий из объектов создавать программы. И то, что объекты были созданы не согласно некой абстрактной теории, а из реальных потребностей - неоспоримый факт. Оказалось, что объектные технологии имеют свою философию и методологию.
В настоящее время методология объектно-ориентированного программирования является одной из ключевых в подготовке будущих специалистов.
Объектно-ориентированное программирование имеет свое собственное множество понятий. Большую часть затруднений студенты испытывают на начальном этапе обучения. Для подготовки студента к объектно-ориентированному анализу и проектированию математических и информационных моделей реальных объектов необходимо в первую очередь ознакомить его с понятием объекта, поведением объекта, а также объяснить основные принципы объектно-ориентированного программирования на примерах [4]. Причем данные примеры должны быть понятны как для хорошо ориентирующихся в данном направлении людей - практикующих программистов, так и для тех, чья база знаний, по
72
меньшей мере, не достаточна. К сожалению, большинство обучающихся испытывают затруднения даже с пониманием основных терминов объектно-ориентированного программирования. Именно неподготовленность студентов в области программирования является одной из ключевых проблем обучения объектных технологий.
В настоящее время в школе, как правило, изучается процедурное программирование, объектно-ориентированному внимание может вовсе не уделяться. Школьная подготовка студентов по программированию в большинстве случаев является недостаточной для изучения этого курса в соответствии с требованиями государственного образовательного стандарта. Нужно заметить также, что в школах изучаются разные языки программирования. Уровень изучения данных языков также является разным. Первоначальный теоретический материал по программированию, который выдается, часто не закрывает пробелы в знаниях студентов.
Объектный подход стал широко применяться в программировании уже после того, как информатика стала школьным предметом. Появляющиеся в периодической печати и всемирной сети Интернет публикации посвящены, в основном, попыткам знакомства школьников с Delphi или VisualBasic. До сих пор этот уровень воспринимается как экзотический и необязательный для массовой школы. Однако только этот уровень направлен на создание полноценных проектов. Именно его изучение позволит ликвидировать в сознании школьника понятийную пропасть между программами, с которыми он постоянно имеет дело, и так называемыми программами, которые ему приходится писать на уроках информатики.
Программирование должно изучаться в школьном курсе информатики. Возражения против этого утверждения основаны, в основном, на неудачном опыте преподавания.
До сих пор широко распространена методика преподавания программирования, предполагающая сначала освоение учащимися структурного подхода и лишь затем переход к изучению других моделей программирования: функциональной, логической, объектноориентированной [5]. Такая методика сложилась исторически; она имеет определённые преимущества и недостатки перед другими методиками. Одной из заметных объективных проблем является трудность для учащихся переходить от ставшей привычной структурной парадигмы программирования к другим, особенно к объектно-ориентированной.
У большинства студентов сформирован алгоритмический стиль мышления. Смена стиля мышления у студентов обычно происходит тогда, когда они начинают понимать преимущества, которые предоставляет методология объектного программирования.
У начинающего объектного программиста велик соблазн разработать программу в более привычных для него структурных понятиях. Критериями самооценки своей работы в основном являются корректность, устойчивость и быстродействие программы [5]. В результате у учащегося формируется недопонимание объектного программирования, возникают трудности с восприятием новых идей, закладывается основание будущих проблем с проектированием крупных программных систем, проблем его профессионального роста.
Чтобы в полной мере не только «ознакомить» студентов с объектным программированием, но и дать возможность свободно ориентироваться в данном направлении, необходимо в первую очередь ввести основы изучения по данному направлению, как на первых курсах среднеспециальных учебных заведений, так и в старших классах школы [6]. Например, перед изучением языка C++ в высшем учебном заведении необходимо получить как базовые знания по принципам алгоритмизации, пониманию процесса работы программы и обработке компьютерных данных, так и знания основных принципов объектно-ориентированного программирования на примере использования соответствующих конструкций языка С++ .
В свою очередь можно отметить, что изучение данного языка в высших учебных заведениях представляется возможным вести параллельно с изучением другого языка, например Delphi. Так как здесь в большей степени начинает работать принцип «сравнения», что облегчает восприятие и понимание. Но данный принцип может работать только в том
73
случае, когда основы одного из языков пройдены в полной мере, в связи с чем, можно рекомендовать изучение языка Delphi с первого курса института, а начиная с 3 семестра введение второго языка программирования.
Хотелось бы также отметить проблему, связанную с обеспеченностью литературой по объектно-ориентированному программированию. По сути, многообразие изданий по данной дисциплине положительно сказывается на процессе обучения, особенно это касается самостоятельной работы студентов. Однако, преобладающая часть литературы содержит слабо структурированную тематику.
Большинство авторов предпринимают попытки реализовать полный курс программирования средствами одного-единственного программно-методического комплекса. Следствием такого подхода являются невозможность дозированного введения новых понятий и необходимость преподавания обширного курса в виде непрерывного блока с жёстко определённой последовательностью изучения отдельных его разделов.
Одним из возможных путей разрешения проблемы может стать структурное разделение курса программирования на формально независимые модули, вместе составляющие целостную систему. Каждый модуль тогда может изучаться с помощью оптимально подобранного программно-методического комплекса, а формальная независимость позволит изучать курс в любом порядке следования модулей.
Следует заметить, что большинство преподавателей высшей школы - это люди старшего поколения. Как правило, они получили опыт использования технологии структурного проектирования программ, основанной на алгоритмической декомпозиции больших систем. Поэтому обучение объектно-ориентированному программированию находится под влиянием идей структурного проектирования программ.
Немаловажным фактором является и студенческий контингент. Некоторые студенты приходят учиться, потому что хотят получить определенные навыки, профессию. Другие обучаются ради «корочки». В таком случае преподавателю порой приходится сделать выбор, на кого необходимо ориентироваться при изучении предмета, и, как правило, выбирается технология преподавания, в большей степени направленная на «слабых» студентов. А если еще и учесть, что практические занятия опережают теоретические занятия, то и организация самостоятельной работы студентов осуществляется по предварительному овладению теоретическими знаниями.
Перед преподавателем постоянно стоит проблема оценки знаний и навыков студентов в области объектно-ориентированного программирования, которая в значительной мере затрагивает интересы студента. Учитывая, что обсуждаемая технология ориентирована на создание сложных программ, преподавателю приходиться преодолевать серьезные трудности при выборе адекватных средств контроля или упрощать картину.
Хорошие примеры объектно-ориентированных программ с комментариями по выбору решений практически отсутствуют, даже глобальная сеть с ее многообразием и богатством информационных ресурсов данного пробела восполнить не может. По этой причине, предлагая примеры программ студентам, преподаватель действует субъективно, зачастую рассматривая примеры реализации программ, «не интересные» обучающимся.
Студенты должны учиться: применять свои знания в реальных ситуациях; выражать свои идеи на изучаемом языке, расширять сферу возможного применения объектноориентированного программирования. Для этого рекомендуется решать сюжетные задачи и задачи, имеющие объекты, прототипами которых являются реально существующие объекты.
Наука программирования очень быстро развивается, и гарантии, что через 10 лет объектное программирование останется столь востребованным, как и сейчас, никто дать не сможет. Поэтому учебный процесс должен в первую очередь ориентироваться на получение специалистом качества оперативной реакции на новые идеи и технологии программирования
[7].
Выпускник высшего учебного заведения, получивший образование в области информатики и вычислительной техники на примере простых программ, под руководством
74
«структурно-ориентированных» преподавателей и на примере успешных «структурноориентированных» программ, вынужден во время получения образования и на начальном этапе профессиональной деятельности самостоятельно отфильтровывать идеи структурного проектирования программ, несовместимые с идеями объектно-ориентированного программирования.
Литература
1. Синтес А. Освой самостоятельно объектно-ориентированное программирование за 21 день - М.: «Вильямс», 2002. - 672 с.
2. Камаев В.А., Костерин В. Технологии программирования: учебник. М.: Высшая школа, 2006 г. - 454 с.
3. Дал У., Дейкстра Э., Хоор К. Структурное программирование. -М.: Мир, 1975. -247с.
4. Грэхем И. Объектно-ориентированные методы. - 3-е изд. — М.: «Вильямс», 2004. -880 с.
5. Бертран М. Объектно-ориентированное конструирование программных систем / Пер. с англ. - М.: Издательско-торговый дом «Русская Редакция», 2005. - 1232 с.
6. Р. Лафоре «Объектно-ориентированное программирование в C++» , М.: Питер, 2003. 511 с.
7. Иванова Г.С., Ничушкина Т.Н., Пугачев Е.К. Объектно-ориентированное программирование: Учебник для вузов. - 3-е изд., М.: Изд-во МГТУ им. Н.Э. Баумана, 2007. - 368 с.
УДК 519.685.1
РАЗРАБОТКА ПЛАТФОРМЫ ДЛЯ АВТОМАТНОГО МОДЕЛИРОВАНИЯ И ПРОВЕДЕНИЯ СОРЕВНОВАНИЙ АВТОМАТНЫХ ИНТЕЛЛЕКТОВ С ТРЕХМЕРНОЙ ВИЗУАЛИЗАЦИЕЙ
Столяров Леонид Владимирович, ученик 10 класса, лицей «Вторая школа», Россия, Москва,
Петряйкин Федор Алексеевич, ученик 10 класса, лицей «Вторая школа», Россия, Москва,
Уваров Никита Сергеевич, ученик 8 класса, лицей «Вторая школа», Россия, Москва,
Введение
В последнее время приобретают актуальность платформы, моделирующие поведение взаимодействующих интеллектуальных агентов [1] в виртуальной среде [2], которые осуществляют визуализацию происходящих процессов. Такого рода платформы могут использоваться как для исследования программных и интеллектуальных агентов, так и для проведения соревнований между ними.
В основе таких платформ лежит мультиагентная система [2, 3], представляющая собой совокупность множества интеллектуальных агентов и виртуальной среды. Агенты, управляемые искусственным интеллектом (ИИ) [3], существуют в виртуальной среде и взаимодействуют между собой и с окружением по законам этой среды. При этом законы виртуальной среды, как правило, близки к реальным физическим законам. Из основных свойств мультиагентной системы можно отметить:
1. Автономность агентов.
2. Ограниченность знаний агентов о состоянии системы.
3. Децентрализация - ни один агент не управляет всей системой.
Интеллектуальных агентов разделяют на две группы: обучаемые и необучаемые [1]. В
данной работе рассматриваются необучаемых агенты. В большинстве случаев
75