План-конспект
проведения занятия с 4 классом Школы по основам программирования.

ШКМ г. Кривой Рог

2007

Тема 1: Введение в Веб программирования (общий обзор и предназначение языков программирования для Веб, наиболее распространенные платформы, их краткая характеристика и области применения). Программы, выполняющиеся на сервере и программы, выполняющиеся на клиент-машине.

Время: 1,5 часа:

Цель:1. Напомнить обучаемым общие понятия о программировании.

2. Изучить современные методы используемые в Веб-программировании.

Ход занятия:

1. Вступительная часть – до 7 минут

Проверка и заполнения посещаемости учеников. Краткое знакомство. Контактные данные.

Мои требования: по дисциплине, по посещаемости, изучению материала при отсутствии на занятиях, по выполнению домашних заданий.

Кратко задачи на год и семестр обучения.

2. Основная часть – 80 минут.

2.1. Начальные понятия о общем программировании.

Методом диалога повторить уже известные (наверное) им понятия.

Что такое программа (программный код)? Упорядоченный список команд. Исполняемый файл.

Инструменты программирования – сами программы. Программа пишется при помощи инструментальной программы. Инструментальная программа пишется при помощи другой инструментальной программы. Понятие рекурсии. Машинный код. Система команд процессора. Инструменты программирования – специальные программы, которые читают, то что написал программист (на каком либо языке программирования, удобном ему) и переводят его записи в тот самый машинный код понятный процессору.

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

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

Что значит знать язык программирования? Это значит знать правила кодирования команд при помощи служебных слов этого языка, синтаксис этих слов, умение вызывать стандартные процедуры из библиотек при помощи этих слов этого языка.

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

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

Код ассемблера – машинный код записанный при помощи мнемоник. С мнемониками ассемблера имеет дело намного приятнее, чем с шестнадцатеричным машинным кодом. (Для процессора семейства Х86 мнемоник около тысячи). Опытные программисты и хакеры хорошо знают самые нужные мнемоники и умеют ими пользоваться. Ассемблирование, ассемблер, дисассемблирование.

Как правило встроен в отладчик. Mov (move - переместить), add (сложить, добавить), exchg (exchange - обменять).

Взаимодейстие и уровни языков программирования:

Компилятор несколько раз просматривает текст программы, находит общие повторяющиеся места и переводит текст программы на язык машинного кода так, что длина кода будет минимальной, а скорость работы максимальной. Откомпилированный файл программы имеет расширение. exe или. com – это чистый машинный код.

Недостатки компилирования:

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

- после запуска скомпилированной программы операционная система практически теряет контроль над ней. Машинные команды, из которых состоит исполняемый модуль программы, выполняются последовательно одна за другой. Операционная система получает управление лишь по инициативе выполняющейся программы в те моменты, когда необходимо выполнить системную функцию. Если скомпилированная программа самостоятельно (без помощи операционной системы обратится к ресурсам компьютера, никто не в силах ей помешать.

НЕ нашли? Не то? Что вы ищете?

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

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

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

В программу, написанную на интерпретируемом языке, можно внести изменения в любой момент, даже во время ее работы, а в машинный код откомпилированной программы, не имея исходного текста, внести изменения крайне трудно – это законченный продукт

Классы языков программирования:

Класс языков и основное использование

Представление программ и данных

Представление о работе программы

Связь частей программы между собой

Процедурные:

Basic, Fortran, Pascal, C, :

при создании коротких программ

Программа и обрабатываемые данные представляют собой отдельные вообще говоря, не связанные друг с другом, элементы

Работа программы рассматривается как последовательное выполнение операторов

Связь частей программы осуществляется только через данные, которые могут обрабатываться ими совместно.

Логические:

ЛИСП, ПРОЛОГ:

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

Данные и правила их обработки объединены в рамках единого логического структурного образования

Работа программы рассматривается как преобразование («упрощение) этого образования в соответствии со строгими логическими правилами

Разбиение программы на отдельные независимые части затруднительно

Объектно-ориентированные:

С++, Java, Java-script, PHP: при разработке больших и сложных программ (КИ, движки сайтов)

Данные и методы их обработки инкапсулированы в рамках единого объекта

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

Отдельные части программы могут наследовать методы и элементы данных друг у друга.

2.2 Программирование для Веб.

Некоторые базовые понятия:

Web-программирование - разработка любых программных продуктов, предназначенных для работы на сайтах World Wide Web. Строго говоря, даже разработка web-страниц на чистом HTML является web-программированием, ведь при просмотре страницы браузер фактически исполняет код HTML, форматируя текст согласно инструкциям этого языка. В настоящее время под web-программированием понимают создание CGI-приложений и использование на web-странице технологий JavaScript и VBScript для достижений сложных эффектов.
Web-сервер - программа, запущенная на узле сети Интернет и выдающая посетителям этого узла web-страницы по запросам. Также web-сервером часто называется узел, на котором эта программа запущена, или даже компьютер, являющийся таким узлом.

Кроме обычной классификации языков программирования, которую мы рассмотрели языки программирования для Веб нужно разделить еще на две категории:

1. Языки, программы, написанные на которых, путешествуют по сети вместе со страницами в которые они встроены, и выполняются на клиент-машине. (Java-апплеты, Java-scriptы)

2. Языки, программы написанные на которых, выполняются на сервере и обмениваются информацией с клиентом (CGI – сценарии, SSI – вставки, JAVA - сервлеты).

CGI (сокращение от Common Gateway Interface) - технология, позволяющая запускать на web-сервере программы, имеющие возможность получать данные от посетителей сайтов, поддерживаемых этим web-сервером, и в свою очередь выдавать им обработанные данные в виде web-страниц или других файлов. Для использования технологии CGI программа web-сервер должна удовлетворять определенным критериям - "поддерживать CGI". Если программа, запускаемая на web-сервере, представлена не двоичным кодом (т. е. скомпилированным файлом), а текстовым, то для ее выполнения требуется программа-интерпретатор того языка, на котором написана эта программа. Такой интерпретатор включается в состав web-сервера и вызывается им при необходимости заняться выполнением программного кода.
CGI-сценарий (CGI-скрипт) - программа (в текстовом виде), предназначенная для исполнения на web-сервере. Для создания CGI-скриптов можно использовать любой язык программирования - важно лишь, чтобы на том web-сервере, где предполагается эту программу запускать, имелся интерпретатор этого языка. (C++, Java, Perl, PHP)
Препроцессор - программа, работающая совместно с web-сервером, которая просматривает все или некоторые файлы, выдаваемые web-сервером посетителям, и выполняет над ними определенные действия в зависимости от содержащихся в этих файлах инструкций.

Языки программирования для Веб:

1. HTML и его расширения DHTML, XHTML (XML), AJAX, CSS, SSI

Dynamic HTML или DHTML — это способ создания интерактивного веб-сайта, используя сочетание статичного языка разметки HTML, встраиваемого (и выполняемого на стороне клиента) скриптового языка JavaScript, CSS (каскадных таблиц стилей) и DOM (объектной модели документа).

Конкурирующая техника включает в себя Macromedia Flash для анимации и апплеты (applets).

AJAX (от англ. Asynchronous JavaScript and XML — «асинхронный JavaScript и XML») — это подход к построению интерактивных пользовательских интерфейсов веб-приложений. При использовании AJAX веб-страница не перезагружается полностью в ответ на каждое действие пользователя. Вместо этого с веб-сервера догружаются только нужные пользователю данные. AJAX — один из компонентов концепции DHTML.

AJAX по-английски произносится эй-джэкс, по-русски довольно распространено ая́кс.

Модель AJAX:

- Пользователь заходит на веб-страницу и нажимает на какой-нибудь её элемент.

- Скрипт (на языке JavaScript) определяет, какая информация необходима для обновления страницы.

- Браузер отправляет соответствующий запрос на сервер.

- Сервер возвращает только ту часть документа, на которую пришел запрос.

- Скрипт вносит изменения с учётом полученной информации (без полной перезагрузки страницы).

Flash стек технологий в dblt ActionScript 3, Flex, Flash Remoting составляет технологическую основу так называемых RIA (Rich Internet Applications) активно продвигаемых Macromedia (теперь часть Adobe). RIA являются главными конкурентами Ajax.

XHTML (англ. Extensible Hypertext Markup Language — Расширяемый язык разметки гипертекста) — язык разметки веб-страниц, по возможностям сопоставимый с HTML, однако является подмножеством XML. Как и HTML, XHTML соответствует спецификации SGML. Вариант XHTML 1.1 одобрен в качестве Рекомендации Консорциума Всемирной паутины (W3C) 31 мая 2001 года.

SSI (Server Side Includes — включения на стороне сервера) — несложный язык для динамической «сборки» веб-страниц на сервере из отдельных составных частей и выдачи клиенту полученного HTML-документа. Реализован в веб-сервере Apache при помощи модуля mod_include.

Синтаксис SSI позволяет включать в текст страницы другие SSI-страницы, вызывать внешние CGI-скрипты, реализовывать условные операции (if/else), работать с переменными и т. п. Благодаря крайней простоте языка, сборка SSI-страниц происходит очень быстро, однако многие возможности полноценных языков программирования, например, работа с файлами, в SSI отсутствуют.

Отдельные элементы синтаксиса SSI используются и в других скриптовых языках, например в ASP.

ASP (англ. Active Server Pages — «активные серверные страницы») — технология от Microsoft, позволяющая легко разрабатывать приложения для World Wide Web. ASP работает на платформе операционных систем линии Windows NT и на веб-сервере IIS. ASP не является языком программирования — это лишь технология предварительной обработки, позволяющая подключать программные модули во время процесса формирования Web-страницы. Относительная популярность ASP основана на простоте используемых языков сценариев (VBScript или JScript) и возможности использования внешних COM-компонент.

Технология ASP получила своё развитие в виде — новой технологии создания веб-приложений, основанной на платформе .

2. JAVA – одновременно является и компилируемым, и интерпретируемым языком. Исходный текст программы обрабатывается компилятором, но в результате компиляции генерируется не исполняемый, а байтовый код. Он гораздо компактнее исходного текст, но это все же не машинные команды. Чреду для выполнения байтового кода создает интерпретатор, реализующий JVM - виртуальная машина Java. Java-script это не JAVA.

3. PHP - РНР расшифровывается как "PHP: Hypertext Preprocessor" (в названии используется такой прием, как рекурсия: наличествующая в расшифровке аббревиатура "РНР" вновь может быть расшифрована как "РНР: Hypertext Preprocessor" - и так до бесконечности). Этот язык благодаря своей простоте и мощности быстро завоевал огромную популярность среди web-мастеров, и количество сайтов, использующих РНР, увеличивается с каждым днем. Немаловажно и то, что он бесплатен для использования всеми желающими.

4. PERL - Это сокращенное название языка программирования Practical Extraction and Report Language (Практический язык извлечений и отчетов).

2. Заключительная часть – 3 мин.

Подвести итог занятия, дать домашнее задание.

http://www. *****/users/scriptteacher/