Web-программирование: программа курса
(С) Филипп Тоукач, 2005 (адаптировано в 2016)
оглавление
Общая информация
Отладка программ
Разметка web-страниц (HTML)
Стили и классы (CSS)
Основы программирования
Программирование на PHP
Работа в базами данных (SQL)
Программы на стороне клиента (JS)
Основы web-дизайна
1. Общая информация
- Программы, данные и скрипты
- Отображение данных броузером
- Броузер как среда для Web-интерфейса программ
- Консольные приложения PHP
- Модель "клиент-сервер", понятие сетевого протокола (wiki)
- Web-сервер, протокол HTTP и CGI-скрипты, интеграция PHP и HTML
- Язык разметки страниц (HTML)
- Скриптовые языки для сервера и для клиента (PHP, JS)
- Конфигурационные файлы сервера и PHP
- Понятие базы данных
- Простейшие примеры index.html и index.php
- Передача параметров
- Источники информации о PHP / CSS / JS / SQL / HTML
- Базовая информация о системах управления контентом
ДЗ: Установить и настроить web-сервер Apache 2.x, PHP 4.х и 5.x, проверить работоспособность ("Hello world").
2. Отладка программ
- Редакторы с подсветкой синтаксиса
- Интегрированная среда разработки
- Трассировка программ, наблюдение за значениями переменных
- Работа со стеком
- Профилировка программ
ДЗ: Установить HTML-редактор, настроить хелп (HTML и CSS), установить Nusphere или аналогичную среду, настроить контекстный help, проверить работоспособность отладчика и профайлера.
3. Разметка web-страниц
- Основы HTML
- Потоковые тэги
- Блочные тэги
- Специальные символы
- Фреймы
- Таблицы
- Секция HEAD
- Формы и элементы ввода данных
- Мета-информация
ДЗ: Написать домашнюю страничку: в левом фрейме меню, в правом содержимое. Обеспечить отправку содержимого формы обратной связи почтой.
4. Стили и классы
- Декларация стилей
- Цвет, фон, фон документа
- Рамки, их цвет, тощина, стиль
- Выравнивание, шрифт, кегль, стиль текста
- Внешние и внутренние отступы
- Позиционирование блочных элементов, слои
- Видимость элементов
ДЗ: Вынести все оформление сайта из предыдущего ДЗ в style.css
5. Основы программирования
- Важность комментирования, индентов и контроля версий
- Переменные, арифметические операции, константы, "магические числа"
- Типы данных, индексированные и ассоциативные массивы, unset, count
- Echo, exit
- Условия, логические операции, бинарные операторы, оператор "?", if..else, switch..case..default
- Циклы for, while, do..while, foreach..as, continue, break
- Функции, return, передача параметров, область видимости переменных, global, local, static
- Рекурсия
ДЗ 1: Модельные задачи (посмотреть) по работе со структурированными данными.
ДЗ 2: Решить задачу о Ханойских башнях для произвольного числа блинов. Визуализировать решение в виде последовательности инструкций типа "переложить блин с 1-й стойки на 3-ю".
КОНТРОЛЬ: разбор программ построчно и их оптимизация.
6. Программирование на PHP
- Include, require, восходящее и нисходящее программирование
- Обработка ошибок, возврат false по восходящей линии, "@"
- _SERVER, _POST, _GET, передача параметров из формы и из командной строки
- Битовые сдвиги и логические операции
- Функции работы с массивами (сортировка, сравнение, slice, unique, keys, key_exists и т.д.)
- Математические функции, random, date
- Строковые функции (substr, strpos, и др.)
- Регулярные выражения
- Парсинг форматированных данных и строк в типизированные структуры данных, explode, implode, preg_*
- Объектно-ориентированное программирование, классы, методы, конструкторы (=имя класса), деструкторы, new, "->", "->$" this
- Наследование, extends
- Работа с файлами и потоками (fopen, fread, fwrite, fclose, file и т.д.)
- Отправка почты средствами PHP (в том числе с вложениями)
- Расширение GD (опционально)
ДЗ 1: Написать программу, выводящую в броузер таблицу умножения, деления и др. операций. Число строк, столбцов, и выбор операции получите из формы ввода. Сделайте пункт "пользователькая операция", куда ползователь сможет ввести собственное арифметическое выражение (кроме умножения и деления), например "(A*5+B)/(A-B)". В этом случае таблица должна заполняться результатами этой операции. Проверьте пользовательский ввод на все возможные ошибки и выдавайте соответствующие сообщения. Сделайте возможность выбора шкалы по осям: линейная (1,2,3,...) или логарифмическая (1,10,100,...). Добавьте поле ввода основания логарифма, чтобы при выборе опции logarythmic по осям были не степени десятки, а степени этого числа. Сделайте цвет результата в таблице зависящем от его значения: 0 серый, по мере роста положительного числа - все краснее и краснее, а если число отрицательное - то чем дальше от нуля, тем синее. Придумайте сами, как еще развить эту тему.
ДЗ 2: Написать программу, которая получает из формы текст, содержащий фразы типа "red box with black border", "filled blue circle", "italic green text: ABC" и т.д. и визуализирует все это с помощью HTML/CSS без применения графических функций. Количество одинаковых объектов должно учитываться в виде размера итогового объекта. Последовательность описаний должна отражаться в порядке, в котором объекты накладываются друг на друга. Сначала обрабатывайте типизированный ввод, по мере усложнения проекта переходите к анализу текста на естественном языке. Проверяйте все возможные ошибки ввода. Добавьте движение объектов, столкновения, слияния и т.д. Придумайте сами, как еще развить эту тему.
КОНТРОЛЬ: Разбор программ построчно и их оптимизация. Проверка работы при большом числе объектов.
7. Работа с базами данных
- Реляционная модель данных
- Декларация таблиц, CREATE TABLE, DROP TABLE, INSERT и UPDATE
- Выборка данных, SELECT.. FROM... AS.. WHERE.. ORDERBY
- Выборка из нескольких таблиц с кросс-условием
- Функции-агрегаторы, GROUPBY
- Функции PHP для работы с базами данных
ДЗ: Установить MySQL, модифицировать программу из предыдущего ДЗ так, чтобы она вместо визуализации создавала БД. Написать web-страницу, визуализирующую содержимое БД описанным выше способом после ввода CAPTCHA и пароля.
8. Программы на стороне клиента
- Логика JavaScript и его интеграция в HTML
- Alert, confirm, document.write
- Объектная модель броузера
- ID, NAME, innerText, innerHTML
- Доступ к поименованным тэгам
- Предопределенные коллекции
- Управление отображением элементов и CSS-классами
- Доступ к данным в формам, return(0)
- Доступ к параметрам GET и адресной строке
- Адресация окон и фреймов
- Операторы управления потоком исполнения
- Обработка событий, виды событий
- Строковые функции
ДЗ: Установить плагин, отображающий дерево DOM, поизучать DOM с его помощью, добавить в форму из ДЗ по HTML проверку на допустимые значения. Сделать автоматически появляющиеся и исчезающие элементы, в зависимости от выбранных значений. Обеспечить совместимость с IE и FF.
9. Основы web-дизайна
- Взаимодействие дизайн-контент-код
- Шрифты и оформление текста
- Цветовое оформление сайта
- Об анимации и прочих вредных вещах
- Юзабилити, дружественный интерфейс и справочная система
В начало документа
Дом : Преподавание
Домой