Партнерка на США и Канаду по недвижимости, выплаты в крипто

  • 30% recurring commission
  • Выплаты в USDT
  • Вывод каждую неделю
  • Комиссия до 5 лет за каждого referral

Второй год обучения

(Веб-программирование PHP)

Раздел 1. Вводное занятие. Техника безопасности.

Основные правила и требования техники безопасности и противопожарной безопасности при работе в компьютерном классе. Цели и задачи программы «Современное программирование» 2-го года обучения, модуль «Язык программирования РНР».

Раздел 2. Введение в PHP.

Тема 2.1. Протокол HTTP. Программное обеспечение сервера. Взаимодействие с PHP.

Назначение и устройство протокола передачи данных HTTP: методы, заголовки, перенаправления, отличия от FTP. Использование программ: apache, denwer, xampp. Функции php: echo, header, redirect. Встраивание PHP в HTML.

Тема 2.2. Сравнение С++ и PHP. Синтаксис PHP.

Комментарии и культура правильного кода. Переменные (функции isset, unset). Константы и предопределённые константы. Типы данных и их преобразование. Конструкции языка: операции сравнения, тринарный оператор, if/elseif/else, switch, циклы. Подключение модулей: include и require.

Практическая часть. Решение простых алгоритмических задач с одним или двумя циклами.

Тема 2.3. Массивы.

Итерация массивов. Функции для работы с массивами. Многомерные массивы. Функции для работы с массивами: count, is_array, сортировки (sort, asort, rsort, …), соединение/разъединение нескольких массивов (array_splice, array_merge), обработки (shuffle, reverse, …).

Практическая часть. Решение нескольких простых задач на хранение и обработку данных в массиве.

Тема 2.3. Функции.

Принципы процедурного программирования. Необязательные параметры, передача аргумента по ссылке, глобальные и статические переменные, контексты видимости. Особенности вызова функций в PHP: динамическое создание функций, callback, вызов функции по переменной, хранящей её имя.

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

Практическая часть. Решение задач, требующих разделение на подзадачи. Использование особенностей PHP при работе с функциями.

Тема 2.4. Обмен данными с клиентом: массивы $_GET, $_POST. Обработка форм.

Простая передача данных скрипту методом GET. Описание структуры скрипта, формирующего POST-запрос. Обработка входящих данных с помощью глобальных массивов.

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

Раздел 3. Возможности PHP.

Тема 3.1. Cтроки. Регулярные выражения.

Работа со строками в PHP: конкатенация, сравнение, поиск подстроки, разбиение, простые преобразования. Хеширование md5 и sha1. Регулярные выражения. Функции для работы с регулярными выражениями: preg_match, preg_replace, preg_split.

Практическая часть. Решение задач по обработке текста с использованием встроенных функций PHP для работы со строками. Решение задач на построение регулярных выражений.

Тема 3.2. Побитовые операции. Встроенные функции: даты и времени, математические. Работа с электронной почтой.

Использование побитовых операций в качестве битовых флагов. Функции date, time. Математические функции. Особенности работы с огромными числами. Функция mail, класс для работы с электронной почтой.

Практическая часть. Решение простых задач по теме. Реализация классов-обёрток для работы с почтой, датами, большими числами.

Тема 3.3. Работа с файловой системой сервера.

Безопасная загрузка файлов на сервер. Файловый дескриптор. Функции чтения и записи файлов.

Практическая часть. Реализация классов-обёрток для работы с загруженными файлами, для работы с файловой системой сервера.

Тема 3.4. Работа с изображениями.

Форматы jpeg и gif. Получение расширенной информации об изображении. Функции библиотек GD и EXIF.

Практическая часть. Решение задач по генерации изображений: CAPTCHA, thumbnail.

Тема 3.5. Работа с XML.

Язык XML. Чтение и генерация XML средствами библиотек DOM и SimpleXML.

Практическая часть. Чтение и обработка XML. Реализация класса-обёртки для генерации XML.

Тема 3.6. Сессии и cookies.

Сookies в браузере. Работа с сессиями в PHP. Авторизация и хранение персональных данных посетителя сайта. Безопасность.

Практическая часть. Реализация веб-страницы, которая запоминает посетителей и их персональные настройки.

Тема 3.7. Сетевое взаимодействие: работа с сокетами.

Понятие сокета в операционной системе. Простое клиент-серверное приложение.

Практическая часть. Работа с библиотекой curl: установление соединения, чтение заголовков HTTP, отправка и получение данных.

Тема 3.8. Зачёт.

Зачёт по теоретической части раздела 3.

Практическая часть. Зачёт по практической части раздела 3.

Раздел 4. Объектно-ориентированное программирование в PHP.

Тема 4.1. Классы и объекты.

Конструктор и деструктор. Компонентные переменные и функции. Создание экземпляра класса.

Практическая часть. Начало реализации объектно-ориентированного фреймворка для PHP. Паттерн синглтон.

Тема 4.2. Инкапсуляция, наследование и полиморфизм.

Ключевые слова: public, protected, private, static, final. Переменная $this. Принципы ООП.

Практическая часть. Реализация базовых родительских классов. Решение проблем проектирования классов системы.

Тема 4.3. Волшебные функции. Статические члены класса.

Функции __get, __set, __call, __toString в классе. Функция __autoload.

Практическая часть. Реализация класса, контролирующий доступ к своим данным незаметно для пользователя класса.

Тема 4.4. Обработка исключений.

Механизм исключений в PHP.

Практическая часть. Определение своего типа исключений, наследника класса Exception.

Тема 4.5. Зачёт.

Зачёт по теоретической части раздела 4.

Практическая часть. Зачёт по практической части раздела 4.

Раздел 5. Взаимодействие с базами данных (БД).

Тема 5.1. Введение в БД. Программное обеспечение: MySQL, консоль MySQL, phpmyadmin.

Понятия «Базы Данных» и «Системы Управления Базами Данных». Разновидности систем. Работа с СУБД MySQL на уровне пользователя через консоль и веб-приложение phpmyadmin.

Тема 5.2. Язык SQL. Простые запросы для работы с одной таблицей.

Создание и редактирование структуры таблиц с помощью CREATE TABLE и ALTER TABLE. Выбор данных из таблицы при помощи SELECT. Использование: LIMIT; ORDER BY; GROUP BY и агрегирующих функций. Редактирование, изменение и удаление данных в таблице при помощи INSERT, DELETE, UPDATE, REPLACE.

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

Тема 5.3. Реляционная модель данных.

Связи: один-к-одному, один-ко-многим, многие-ко-многим. Внешние ключи и связывающие таблицы. Запросы к нескольким таблицам. Объединение таблиц при помощи JOIN.

Практическая часть. Построение запросов на чтение данных из нескольких таблиц.

Тема 5.4. Проектирование структуры БД. UML.

Проектирование структуры БД при помощи ER-диаграмм. Формализация структуры БД при помощи UML-диаграмм.

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

Тема 5.5. Работа с БД из PHP: библиотеки mysqli, adodb.

Встроенная библиотека mysqli. Реализация обёртки вокруг mysqli. Работы с библиотекой adodb. Преимущества и недостатки её использования. SQL-инъекции и экранирование пользовательских данных.

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

Тема 5.6. Object-relational mapping (ORM).

Постановка проблемы ORM. Использование ORM Doctrine.

Практическая часть. Реализация своего класса ActiveRecord.

Тема 5.7. Зачёт.

Зачёт по теоретической части раздела.

Практическая часть. Зачёт по практической части раздела.

Раздел 6. Программирование на стороне клиента.

Тема 6.1. Введение в javascript: переменные, функции, события.

Основы синтаксиса javascript: переменные и их типы, массивы, функции, события. Document Object Model.

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

Тема 6.2. Библиотека jquery.

Принципы работы jquery. Селекторы, события, плагины.

Практическая часть. Реализация своего плагина для jquery.

Тема 6.3. AJAX и PHP.

Подход Asynchronous Javascript And XML. Использование библиотек jquery и JsHttpRequest.

Практическая часть. Работа со страницей, принимающей и отправляющей данные на сервер, не обновляясь. Реализация PHP-обработчика ajax-запросов.

Тема 6.4. Зачёт.

Зачёт по теоретической части раздела.

Практическая часть. Зачёт по практической части раздела.

Раздел 7. Фреймворки и CMS.

Тема 7.1. Принцип MVC. Шаблоны проектирования.

Принцип Model-View-Controller. Шаблоны проектирования на примере MVC.

Тема 7.2. Yii.

Обзор фреймворка yii.

Практическая часть. Построение тестового веб-приложения средствами yii.

Тема 7.3. Symfony.

Обзор фреймворка symfony.

Практическая часть. Построение тестового веб-приложения средствами symfony.

Тема 7.4. Drupal.

Обзор CMS Drupal.

Практическая часть. Построение тестового веб-приложения средствами Drupal.

Тема 7.5. Wordpress.

Обзор CMS Wordpress.

Практическая часть. Построение тестового веб-приложения средствами Wordpress.

Раздел 8. Итоговая работа.

Тема 8.1. Постановка технического задания. Проектирование структуры страниц веб-приложения.

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

Практическая часть. Проектирование функционала системы и его формализация с помощью ТЗ. Разделение задачи на итерации.

Тема 8.2. Выбор средств реализации. Проектирование: структуры базы данных, структуры классов.

Практическая часть. Выбор средств реализации: фреймворк, CMS или своя структура классов. Проектирование базы: ER - и UML-диаграммы.

Тема 8.3. Реализация системы.

Практическая часть. Реализация первой итерации спроектированной системы.

Раздел 9. Организационное занятие.

Практическая часть. Тематический вечер (экскурсия).

Раздел 10. Итоговое занятие.

Практическая часть. Подведение итогов учебного года. Аттестация обучающихся.

МЕТОДИЧЕСКОЕ ОБЕСПЕЧЕНИЕ

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

Для разработки и отладки программ используется интегрированная среда разработки (ИСР) QtCreator, которая обладает достаточной простотой использования и значительными возможностями. Используемый указанной средой компилятор соответствует всем стандартам языка C++. Библиотека Qt, используемая ИСР QtCreator, может быть существенно расширена за счёт добавления к ней собственных компонентов и компонентов сторонних разработчиков, свободно распространяемых по сети Internet. Расширения языка C++, вносимые средой разработки, во многом схожи с некоторыми стандартными возможностями других современных языков программирования, что существенно упростит в будущем знакомство с этими языками.

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

На занятиях применяются технологии личностно-ориентированного, диалогового обучения. Для более интересного изучения введения в ООП перед разделом 6 «Основы объектно-ориентированного программирования» вводится раздел 5 «Графика»: с помощью графики и ООП строятся простые игры.

В ходе первого года обучения обучающиеся под руководством педагога разрабатывают итоговый проект. Тема выбирается и обсуждается с педагогом. После утверждения педагогом темы обучающийся самостоятельно разрабатывает свой проект, как правило, в виде элементарных игр, таких как «Змейка», «Стрелок», с использованием элементов объектно-ориентированного подхода. В ходе работы над проектом обучающийся обсуждает с педагогом возникающие вопросы.

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

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

В качестве дидактического материала на занятиях используется «Задачник по программе «Современное программирование» для 1 и 2 года обучения», разработанный авторами данной программы. Задачник содержит примеры задач и их решения по всем разделам данной программы. Задачник может использоваться как педагогом, так и обучающимися для самостоятельной работы во время занятий и дома.

Пример задания с решением к теме «Алгоритм. Условные операторы» (1-й год обучения).

Пример условного оператора. Пусть ёж понимает логическую команду «ГОЛОДЕН»: если в течение игры ёж не съел ни одного яблока – команда является правдой, иначе – ложью. Пусть по полю разбросаны яблоки. Став на клетку с яблоком, ёж немедленно его съедает. Известно, что яблоко точно присутствует в одной из двух клеток: первая – над ежом, вторая – над первой. Написать алгоритм для ежа в виде блок-схемы: съесть яблоко и остановиться в той же клетке.

Решение.

Примеры задач к теме

a.  С клавиатуры вводятся два числа. Вывести на экран наибольшее число.

b.  Два числа вводятся с клавиатуры, если наибольшее число больше 5, то вывести их разницу, если наименьшее число меньше 5, то вывести сумму введённых чисел.

c.  Числа и вводятся с клавиатуры, вывести на экран площадь прямоугольника .

d.  Два числа и вводятся с клавиатуры, если больше , то вывести их сумму, если меньше, то вывести разность.

e.  Три числа вводятся с клавиатуры, вывести на экран максимальное и минимальное из этих чисел.

f.  Три числа вводятся с клавиатуры вывести на экран наибольшее из положительных чисел и наименьшее из отрицательных.

Примеры контрольных вопросов к теме

5.1. Что такое алгоритм?

5.2. Из каких типов блоков строится блок-схема?

5.3. Что такое переменная?

5.4. Как работает операция присваивания?

5.5. Что такое цикл?

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

Примеры задач к теме:

Программирование под платформу Win32 в среде C++Builder

1. Создать приложение, состоящее из метки Label и кнопки. Метка должна отображать фразу «Привет, мир!». Нажатие на кнопку должно приводить к завершению приложения.

2. В приложение из задачи 0 ввести дополнительную кнопку, при нажатии на которую должно появляться сопровождаемое звуковым сигналом сообщение: «Вы нажали кнопку 2!».

3. Добавить в приложение из задачи 0 окно Edit. При нажатии на 2-ю кнопку сообщение должно содержать текст из этого окна, а если текста нет, то фразу – «Окно пусто!».

4. Дополнить приложение из задачи 0 кнопкой CheckBox с тремя положениями переключателя. Если переключатель выключен, то при нажатии на кнопку 2 ничего не должно происходить. Если переключатель включён, то выполняются действия из задачи 0. В промежуточном положении переключателя приложение действует как в задаче 0.

5. Создать приложение, состоящие из окна Edit и кнопки. В окне Edit вводится целое число. По нажатию кнопки должна производиться проверка правильности введённых данных и преобразование их в число. Если введённые в окне данные не являются целым числом, приложение должно информировать пользователя сообщением. Проверку данных необходимо реализовать до преобразования с помощью отдельной функции.

Авторами программы разработано учебное пособие «Принципы современного программирования» к данной программе, предназначенное как педагогам, так и обучающимся для самостоятельной проработки тем.

Для успешной реализации программы «Современное программирование» необходим компьютерный класс: компьютеры уровня PIII/PIV, оснащённые мультимедиа, объединённые в сегмент локальной сети с возможностью выхода в Интернет с каждого рабочего места.

СПИСОК ЛИТЕРАТУРЫ

Литература для обучающихся

C++Builder 6. Справочное пособие. Кн. 1. Язык C++. – М.: Бином-Пресс, 2002. – 544 с., ил.

C++Builder 6. Справочное пособие. Кн. 2. Классы и компоненты. – М.: Бином-Пресс, 2002. – 528 с., ил.

Джосаттис C++: Справочник разработчика / Пер. с англ. – М.: Изд. дом «Вильямс», 2003. – 544 с., ил.

Кнут программирования. Т. 1. Основные алгоритмы. 3-е изд. / Пер. с англ. – М.: Изд. дом «Вильямс», 2001. – 720 с., ил.

Кнут программирования. Т. 3. Сортировка и поиск. 2-е изд. / Пер. с англ. – М.: Изд. дом «Вильямс», 2001. – 832 с., ил.

Коплиен Дж. Программирование на C++. Классика CS. – СПб.: Питер, 2005. – 479 с., ил.

Литература для педагога

C++Builder 6. Справочное пособие. Кн. 1. Язык C++. – М.: Бином-Пресс, 2002. – 544 с., ил.

C++Builder 6. Справочное пособие. Кн. 2. Классы и компоненты. – М.: Бином-Пресс, 2002. – 528 с., ил.

Джосаттис C++: Справочник разработчика / Пер. с англ. – М.: Изд. дом «Вильямс», 2003. – 544 с., ил.

Кнут программирования. Т. 1. Основные алгоритмы, 3-е изд. / Пер. с англ. – М.: Изд. дом «Вильямс», 2001. – 720 с., ил.

Кнут программирования. Т. 3. Сортировка и поиск. 2-е изд. / Пер. с англ. – М.: Изд. дом «Вильямс», 2001. – 832 с., ил.

Коплиен Дж. Программирование на C++. Классика CS. – СПб.: Питер, 2005. – 479 с., ил.

Подбельский C++: Учеб. пособие. 4-е изд. – М.: Финансы и статистика, 1999. – 560 с., ил.

Объектно-ориентированное программирование с использованием C++ / Пер. с англ. – К.: НИПФ «ДиаСофт Лтд», 1995. – 480 с.

C++. Стандартная библиотека. Для профессионалов / Н. Джосьютис. – СПб.: Питер, 2004. – 730 с., ил.

Язык программирования C++. Специальное издание / Пер. с англ. – М.: -Пресс», 2006. – 1104 с., ил.

Уоррен трюки для программистов. Испр. изд. / Пер. с англ. – М.: Издательский дом «Вильямс», 2004. – 288 с., ил.

Borland C++Builder 6. Руководство разработчика / Пер. с англ. – М.: Изд. дом «Вильямс», 2003. – 276 с., ил.

К содержанию

[1] © , , 2011

Из за большого объема этот материал размещен на нескольких страницах:
1 2 3 4