RSS    

   Дипломная работа: Развитие умений программирования c использованием пакета Maple при обучении информатике на профильном уровне

Альтернатив много. Ныне есть целый зоопарк (экосистема) языков программирования, которые постоянно эволюционируют, расщепляются и сливаются. Это уже упомянутые выше языки Форт, Ruby и Python. Перечислим ключевые факторы, управляющие отбором:

Предоставление языком высокоуровневых средств контроля за целостностью и безошибочностью кодa на первом этапе сборки проектов. Это относится в первую очередь к языкам Java, Haskell, и Python. Языки стараются делать такими, чтобы программист просто не мог допускать ошибок. А если ошибки все-таки делаются, то на этапе компиляции (трансляции) они должны находиться. В частности, опечатка в одном символе не должна приводить к тому, что программа компилится и запускается (а такое бывает, например, в языках Бейсик и Perl, если не указан явно специальный режим strict. Язык Java создавался в контексте анализа типичных ошибок и проблем, возникающих в проектах на языке Си++. Создатели Java постарались внести в синтаксис и базовую парадигму такие ограничения, чтобы типичные ошибки программистов на Си++ просто не могли появиться в проектах на Java. Это очень важная идея: если умело заключить себя в рамки, можно получить выгоду. Следует отметить, что в крупных корпорациях часто программистам выдаётся список правил оформления программ и набор конструкций, которые нельзя использовать в коде, несмотря на то, что сам язык их допускает. Излишняя гибкость языка иногда вредна, так как позволяет программистам писать мутные и запутанные программы. Новые языки программирования делают так, чтобы не искушать программистов и не давать им возможности писать путано и с ошибками.

Чистота и ясность кода, читаемость кода. Далее всего здесь продвинулся, видимо, Руби. Сегодня на всех официальных сайтах программных средств среди первых достоинств указывается "естественность синтаксиса" или "близость к естественному языку" (обычно английскому). Конечно, это немаловажный фактор. Давно прошло время, когда люди подстраивались под компьютеры и кропотливо переводили свои идеи и алгоритмы в машинный язык нулей и единиц. Сегодня компьютеры все более и более подстраиваются под человеческий язык. Это удобно. Увеличивается скорость написания программ, хотя обычно это идёт в ущерб скорости выполнения и вообще рациональности получающейся программы.

Чистота и целостность парадигмы, заложенной в основу языка. Например, языки Smalltalk и Ruby базируются на чистой объектно-ориентированной парадигме, а Haskell — на чистой функциональной парадигме. Эта чистота полезна, чтобы программист чётко представлял модель, которой он ограничен, и в терминах которой ему нужно мыслить при проектировании программы.

Простота синтаксиса, прозрачность интерпретации языковых конструкций. Например, синтаксис языка Python настолько прост, что его описание помещается на одну страницу. Это позволяет программисту всегда понимать то, что он написал. Простота синтаксиса, которая с одной стороны является ограничением, может быть очень полезной, так как позволяет писать ясные, читаемые программы и не думать о том, как же именно компилятор (интерпретатор) оттранслирует ту или иную конструкцию.

Многогранность и гибкость, возможность писать сложные программы коротко и красиво. Таким свойством обладают сейчас языки Perl, Ruby, Python. Но следует отметить, что такая универсальность языков может иметь и недостатки, так как часто приводит к излишнему усложнению синтаксиса. Например, очень многогранен Perl, он богат различными конструкциями и хитрыми штучками, которые позволяют записывать сложную логику очень коротко ("коротко о многом"). В итоге очень легко написать программы, которые потом невозможно читать. Впрочем, то же самое касается и языков Си и Си++. Языкам Ruby, Python многогранность даётся с меньшими потерями, нежели Perl и Си++.

Наличие стандартных библиотек и наличие средств интеграции проектов друг с другом и с другими системами и технологиями. Cегодня все уважающие себя языки предоставляют средства для работы с базами данных, для создания графических интерфейсов, для работы с сетевыми протоколами и создания приложений с архитектурой клиент-сервер. Сегодня идёт непрерывное соревнование между скриптовыми языками программирования типа PHP, Ruby, Python, Perl и др. в том, насколько хорошо развиты в них средства интеграции с различными технологиями. Кто-то умеет работать с OpenGL, а кто-то нет.

Возможность разрабатывать адаптивные системы. Язык должен быть таким, чтобы программы, написанные на нём, не были косными и неповоротливыми. Язык должен допускать возможность внесения малых изменений в код, чтобы подстроится под динамически меняющуюся и усложняющуюся задачу. Краеугольными камнями адаптивности языковых программных средств являются гибкая многоуровневая модульность (как у языков Java, Ruby, Python, Tcl) простота средств экспорта и импорта функциональности (имеются в виду средства, направленные на то, чтобы проекты могли делится друг с другом классами, объектами и функциями) и средства поддержки рефакторинга — глобальных революционных изменений кода, проходящих сквозь модули и направленных на улучшение читаемости кода и избавление от накопившегося в процессе эволюции груза ненужной функциональности.

Есть и другие номинации. Язык Python сегодня победитель в номинации "простота синтаксиса", а Perl более, чем какой-либо другой язык удобен для обработки текстов и CGI-скриптинга. Язык Python в принципе создавался как язык интегратор. С его помощью можно интегрировать различные приложения и создавать свои собственные пакеты и новые макроязыки.

Итак, Perl многогранен, Python прост, Python красив, Ruby тоже молодец, Java и Си технологичны. Номинаций много и явного победителя нет, так же как и нет одежды, которая одинаково хорошо подходит под летнюю, дождливую или зимнюю погоду. Температура и влажность — всего лишь два параметра, а в языках программирования их гораздо больше.

Преподавание программирования в школах с математическим уклоном преследовало большей частью специальные, профессионально-направленные интересы. Однако в это же время настойчиво велось исследование общеобразовательного влияния ЭВМ и программирования как новой области человеческой деятельности на содержание обучения в массовой средней школе. С самого начала было ясно, что общеобразовательная сила идей и методов, заимствованных из области программирования, несет в себе огромный потенциал для развития новых фундаментальных компонентов содержания общего школьного образования. Выявлению общеобразовательных ценностей практического программирования способствовала также происходящая как раз в это время (60-70-е гг. XX века) быстрая смена его внешнего облика, направленная на развитие естественных форм общения человека и ЭВМ. Что из общеобразовательных ценностей программирования и новых подходов к решению задач на основе применения ЭВМ должно войти в общее образование и как оно может влиять на содержание и методику школьного обучения? - вот вопросы, которые вызывали активный интерес ученых-педагогов задолго до эпохи персональных компьютеров и появления школьной информатики.

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

Фундаментальные основы алгоритмизации лежат в сугубо теоретической области современной математики - теории алгоритмов, однако, алгоритмизация в широком практическом смысле понимается как набор определенных практических приемов, основанных на особых специфических навыках рационального мышления об алгоритмах. Хорошо известно, что представления об алгоритмических процессах и способах их описания формировались (хотя и неявно) в сознании учащихся при изучении школьных дисциплин еще до появления информатики и вычислительной техники. Основная роль среди школьных дисциплин при этом выпадала математике, в которой операционные и алгоритмические действия изначально составляли один из существенных элементов учебной деятельности. Действительно, умение формулировать, записывать, проверять математические алгоритмы, а также точно исполнять их всегда составляли важнейший компонент математической культуры школьника, хотя сам термин "алгоритм" мог при этом в школьных учебных программах и не употребляться.

С распространением ЭВМ и программирования этот сектор математической культуры стал приобретать самостоятельное значение, требовалось только дополнить его за счет наиболее общезначимых компонентов алгоритмизации. Образованная таким образом совокупность специфических понятий, умений и Навыков, определяющая новый элемент общей культуры каждого современного человека и претендующая по этой причине на включение в общее школьное образование (как и в разряд новых понятий теории и методики школьного обучения), получила название алгоритмической культуры учащихся. Ниже приведены перечень и описание компонентов алгоритмической культуры, составлены общеобразовательных основ алгоритмизации.

1. Понятие алгоритма и его свойства. Понятие алгоритма является центральным понятием алгоритмизации и, соответственно, основным компонентом алгоритмической культуры. В обучения алгоритмизации нет необходимости (да и возможности) использовать строгое математическое уточнение этого понятия, достаточно его толкования на интуитивно-наглядном уровне. Существенное значение при изложении приобретают такие содержательные свойства алгоритмов, как понятность, массовость, детерминированность и результативность.

Страницы: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15


Новости


Быстрый поиск

Группа вКонтакте: новости

Пока нет

Новости в Twitter и Facebook

                   

Новости

© 2010.