Основной целью данного курса является ознакомление студентами с основами профессионального программирования с использованием языка Java.
- Основы языка программирования Java
- Базовые операции
- Работа с массивами
- Работа с коллекциями (java.util), HastMap.
- Многопоточное программирование и синхронизация
- Сетевое программирование
- Современные инструменты разработки ПО
- IDE IntelliJ, Eclipse
- Система контроля версий git, github.
Все выполненные задания публикуются на github ссылка на готовые задания отсылается преподавателю
- Настройка github
- Создать пользователя на github
- "fork" https://github.com/artem-aliev/java-template/ репозиторий в свое пространство
- Клонировать его на рабочую машиную
- провести изменения кода сделать "commit" и "push"
- Прислать преподавателю ссылку на созданный репозиторий
- Настройка IntelliJ/Eclipse
- Экспортировать проект в IDE
- Запустить unit test IntSortTest.java
- Знакомимся с Java. Сортировка
- Заменить в файле IntSort.java стандартный вызов на свой собственный алгоритм. Подходит любой алгоритм с средней вычислительной сложностью n*log(n)
- Объектно-ориентированное программирование.
- Matrix.java интерфейс матрицы с одной операцией: умножение
- Задача: создать два класса DenseMatrix и SparseMatrix: плотная и разряженная матрица с соответствующими способами хранения
- Имплементировать метод "mul" умножение таким образом что была возможность умножения разных типов матриц друг на друга
- Написать юнит тесты лоя всех вариантов умножения. Пример: MatrixTest.java
- Многопоточное программирование
- Добавить в DenseMatrix и SparseMatrix метод умножающий матрицы в несколько потоков
- Написать тесты, убедиться в росте скорости при увеличении количества потоков
- Сетевое программирование
- Написать простой http server способный отдавать html файлы из папки
- Написать простой http клиент способный послать "GET" запрос и распечатать полученный ответ на экране
- Проверить работу client/server между собой
- Проверить что сервер работает со стандартным браузером
- Проверить что клиент получает информацию с любого web сервера в Интернет