Основы проектирования приложений

Новосибирск, весна 2019

Описание

Курс знакомит слушателей с основами проектирования приложений.

Предварительная программа:

  • Введение в объектно-ориентированное программирование. ООП как развитие идеологии процедурного программирования. ОО подход для решения задач структурирования информации
  • Основные концепции ООП: инкапсуляция, полиморфизм, наследование. Принципы SOLID. ОО подход к тестированию приложений
  • Паттерны проектирования, шаблоны GRASP
  • Разбор примеров архитектур реальных приложений

Оценка по курсу

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

  • >= 1 баллов - зачёт
  • >= 3 баллов - хорошо
  • >= 6 баллов - отлично

Оформление и сдача

  • Рекомендуемые языки - C++, C#, Java, Kotlin. Использование другого языка лучше заранее согласовать с преподавателем;
  • Все ошибки должны быть обработаны, все ресурсы - освобождены. Причины ошибок, вызванных действиями пользователя, должны быть доведены до его сведения;
  • Для всех компонентов системы должны быть юнит-тесты;
  • Сдача осуществляется через репозиторий на GitHub. Репозиторий должен быть приватным, доступ к нему должен быть открыт для проверяющих домашние задания - пользователей GitHub PurplePowder и alex-ks;
  • Ваш код должен находиться в ветке csc-design-taskX (где X - номер задания), в ветку master должен быть открыт pull-request. Ссылку на pull-request нужно отправить на сайте центра в форме сдачи задания. Вы можете делать все задания в одном репозитории, но тогда а) каждое задание должно быть в своей директории, б) каждый pull-request должен содержать только код, относящийся к одному заданию;
  • В корне репозитория должен находиться файл README.md с описанием работы программы, инструкцией по сборке приложения и запуску юнит-тестов, списком аргументов командной строки (с пояснениями) для каждого исполняемого файла. Если ваше приложение работает только под конкретной ОС, также включите это в инструкцию;
    • Если вы используете стороннюю библиотеку для сериализации данных, включите её подключение в инструкцию по сборке. Запись в стиле перейдите на сайт http://foo.bar, следуйте инструкции на сайте таковой не считается!
  • Код должен быть оформлен в соответствии с некоторым code-style на ваш выбор. Ссылку на этот code-style также включите в README.md.

Преподаватели