Code Monkey home page Code Monkey logo

web-development-course's Introduction

Курс "Web-программирование" | ПГНИУ

О курсе

Цель курса

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

Web-приложения, создаваемые в рамках НИР, чаще всего нетиповые приложения. На работе студенты работают с современными технологиями веб-разработки: SPA приложениями, JS фреймворками, используют самые разные языки на серверной части.

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

Тезисы

1. Практический курс с вниманием к теории.

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

2. Больше о клиентской части, чем о серверной.

Серверная часть веб-приложения ближе к "обычному" приложению. Студенты изучаю работу с БД на курсе "БД и СУБД", сетевое взаимодействие, разработку веб-сервисов и распределённых приложений на курсе "Технологии разработки распределённых приложений". Важно научиться разрабатывать приложение для веб-браузера и понимать, как применять навыки, полученные на других курсах, в разработке серверной части веб-приложения.

3. Вёрстка - только основы.

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

4. Изучение как традиционных, так и современных подходов, и их сравнение.

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

5. Изучать конкретные языки или фреймворки не так важно.

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

6. Простые задачи на минимальную оценку, сложные на максимальную.

Не всем интересна и нужна веб-разработка. Курс должен быть как можно полезнее для заинтересованных, но не становиться ночным кошмаром для тех, для кого это "просто ещё один курс, который надо сдать". Для получения проходного балла достаточно сдать простые лабораторные работы.

План

> Подробный план

Лекции Практики
1. Введение: о курсе, история web, основные понятия 1. HTML (лекция + практика)
2. JavaScript: основы языка 2. CSS. Блочная модель (лекция + практика)
3. JavaScript: DOM, BOM, jQuery 3. Flex. Вёрстка (лекция + практика вёрстки)
4. Введение в серверную часть: основные компоненты, формы 4. Сдача лабораторных: 1, 2
5. Аутентификация, хранение данных на клиенте, сессия 5. UI фреймворки (лекция + практика с примером)
6. AJAX; API 6. Практика по традиционной серверной части
7. JS-Фреймворки (c примерами на Vue.js) 7. CMS и конструкторы сайтов (лекция + практика по AJAX)
8. Современный Front-End: Node.js, инструменты разработки 8. Сдача лабораторных: 3, 4
9. SPA 9. Практика: Современный JS
10. Доклады: React, Angular, Ember (?) 10. Практика: SPA
11. Аутентификация 2; Инфраструктура современного веб-приложения 11. Практика: аутентификация в SPA
12. Доклады: PHP, Go, Java, dotnet, Node.js 12. Сдача лабораторных: 5, 6
13. Развёртывание: On-Premise, IaaS, PaaS, SaaS, FaaS 13. Практика: пример развёртывания; Досдача лабораторных
14. Что ещё есть в веб-разработке 14. Экзамен

Материалы

Материалы находиться в директории > materials.

Практика

Лабораторные работы реализуют части проекта - Мини-почту.

Проект

Мини-почта - реализация простой почты.

Зарегистрированный пользователь может отправить "письмо" другому зарегистрированному пользователю по его имени. Каждый пользователь видит список всех своих сообщений: исходящих и входящих. Письмо может находиться в состоянии "прочитано" и "не прочитано". Непрочитанные письма можно удалять.

Лабораторные работы

  1. Входной контроль: работа с БД (> ссылка)
  2. HTML, CSS: вёрстка страницы проекта по эскизу
  3. JS: разработка маленькой игры на JavaScript
  4. Традиционное Web-приложение: реализация части проекта традиционным подходом без JS
  5. AJAX: добавление AJAX в проект
  6. SPA: реализация клиентской части как SPA приложения
  7. Проект: Окончательная реализация Web-приложения с SPA и API

Экзамен

Информация об экзамене и вопросах к экзамену на странице > Экзамен

Вклад в курс

Это открытый курс, выложенный на GitHub репозитории. Вы можете помочь сделать его лучше и внести в него вклад!

  • Есть предложения по улучшению плана?
  • Знаете, как сделать задания полезнее и интереснее?
  • Нет идей, как сделать лучше, но знаете, что не нравится в текущем курсе?
  • Нашли фактическую ошибку в материалах?
  • Нашли опечатку?
  • Или просто хотите высказать своё мнение?

Помогите сделать этот курс лучше для вас или будущих студентов!

Подробности в разделе (> CONTRIBUTING).

Разработка курса

Техническая информация о разработке курса (сборка презентаций, преобразование в HTML и PDF файлы) в разделе > DEVELOPMENT

web-development-course's People

Contributors

shgkme avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.