/SPBU-Homework-3

Programming homework for the third semester

Primary LanguageKotlinThe UnlicenseUnlicense

SPBU-Homework-3

Here you can find conditions and solutions to problems for the third semester.

Navigation menu

Homework

Homework №1

  1. Смоделировать работу локальной сети:
    a) в сети есть несколько компьютеров, связанных друг с другом (каким образом - можно задавать, например, матрицей смежности);
    b) на каждом компе стоит ОС (Windows, Linux, etc...);
    c) в сети гуляют вирусы, так что для каждой машины есть ненулевая вероятность заразиться (вероятность зависит от типа ОС), заражаются компьютеры, непосредственно соединённые с заражёнными;
    d) заражения (и проверки, заразился компьютер или нет) происходят дискретно - по ходам.
    Требуется периодически выводить состояние сети. Нужны тесты, проверяющие правильность процесса заражения. [Solution]

Homework №2

  1. Нарисовать диаграмму классов для игры "реверси", с несколькими видами "ботов", которые могли бы играть вместо человека. Диаграмма должна быть довольно подробным проектом системы. Реализовывать этот проект не нужно. [Solution]

  2. Нарисовать диаграмму состояний для класса MicrowaveOven, реализующего ПО СВЧ-печи. [Solution]

Homework №3

  1. Есть автостоянка с ограниченным количеством мест, на стоянку могут заезжать машины и со стоянки могут уезжать машины. Надо реализовать класс, который бы сообщал машине при въезде, есть ли свободные места, и регистрировал уезжающие машины. На парковку есть несколько въездов, на каждом из которых планируется поставить такой автомат и сделать так, чтобы автоматы синхронизировались друг с другом. Реализация должна быть lock-free. [Solution]

Homework №4

  1. Реализовать Android-приложение "Калькулятор". Пользователь должен вводить выражение, которое состоит из вещественных чисел, операций "+-*/" и скобочек. По нажатию на равно должно показываться значение выражения. [Solution]

Homework №5

Доклад (Паттерн "Одиночка")

Homework №6

Доклад (Паттерн "Фабричный метод")

Homework №7

  1. Разработайте простое web-приложение с использованием ktor. Выберите тему на свой вкус, например, показ случайной цитаты с баша. Приложение должно быть простым, не более 5 роутингов. После его реализации, упакуйте исходный код в контейнер. При этом, при запуске контейнера, должно запускаться само приложение.

    Прикрепите Dockerfile к pull request. В качестве 1 слоя контейнера используйте alpine. Для определения "точки запуска" рекомендуется установить ENTRYPOINT [/bin/bash] и CMD [<args>], где args — команды для запуска вашего сервера. Более подробно можно почитать, например, тут.

    [Solution]

Homework №8

Доклад (Паттерн "Посредник")

Homework №9

Доклад (Анти-паттерн "Hard coding")

Coursework

Lonely Boardgamer