Skip to content

artem-aliev/java-template

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

17 Commits
 
 
 
 
 
 

Repository files navigation

Практикум на ЭВМ

Основной целью данного курса является ознакомление студентами с основами профессионального программирования с использованием языка Java.

Основные темы курса:

  • Основы языка программирования Java
    • Базовые операции
    • Работа с массивами
    • Работа с коллекциями (java.util), HastMap.
    • Многопоточное программирование и синхронизация
    • Сетевое программирование
  • Современные инструменты разработки ПО
    • IDE IntelliJ, Eclipse
    • Система контроля версий git, github.

Практические задания

Все выполненные задания публикуются на github ссылка на готовые задания отсылается преподавателю

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

About

Пример оформления задачи

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages