В рамках данного курса:
- Создать свой репозиторий c задачей на https://github.com.
- Получится Ваш первый открытый проект, который можно показывать будущему работодателю, что характеризует Вас, как специалиста.
- Тесты
- Отладка багов
- Доказательство работоспособности решения
- Подумать, чем отличаются следующие виды описаний и для чего нужны:
- комментарии,
- readme (цель проекта, решаемая задача),
- getting-started (шаги установки/развёртывания, метод и способ использования в своём коде),
- список зависимостей,
- документация
- Документация
- Если скачать программу doxygen.nl и выбрать папку с вашим правильно оформленным кодом, то doxygen автоматически сверстает документацию в формат html/doc/pdf и др.
- Правила оформления комментариев в коде для получения документации
- Пример такой сгенерированной документации на сайте Данный справочник по функциям и методам удобно читать (лишён ненужных подробностей в отличие от кода) и может быть показан пользователям Вашего проекта
- Класс ThreadSafeList2D – thread safe двусвязный список, шаблонный класс, который может хранить произвольное число пользовательских классов, обращаться на вставку, чтение и удаление элемента могут одновременно несколько потоков.
- Класс LockFreeQueue – thread safe очередь, шаблонный класс, который может хранить произвольное число пользовательских классов, обращаться на вставку в конец, чтение сначала, забор элемента сначала могут одновременно несколько потоков. В реализации нельзя использовать любые методы синхронизации, кроме atomic.
- Разработайте многопоточное приложение, выполняющее вычисление произведения матриц С = A×B, где A (m×n) и B (n×k) (размер матриц динамический). (приветствуется реализация cache-friendly рекурсивного алгоритма)
- Параллельная реализация обращение матрицы A (m×n) (размер матрицы динамический). (приветствуется реализация cache-friendly рекурсивного алгоритма)
- Параллельная реализация сортировки слиянием.
- Параллельная реализация сортировки QuickSort.
- Параллельная реализация сортировки пузырьком.
- Параллельная реализация вычисления N-мерного интеграла методом прямоугольников или трапеций с заданной точностью. N задаётся в runtime при старте нужного теста.
- Параллельная реализация вычисления N-мерного интеграла методом Симпсона с заданной точностью. N задаётся в runtime при старте нужного теста.
- Параллельная реализация Фурье преобразование сигнала.
- Параллельная реализация Вейвлет преобразование сигнала.
- Параллельная реализация свёртки сигнала.
- Параллельная реализация метода Гаусса решения СЛАУ.
- Параллельная реализация метода Крамера решения СЛАУ.
- Параллельная реализация метода Холецкого решения СЛАУ.
- Параллельная реализация решения систем нелинейных уравнений методом Ньютона.
- Параллельная реализация решение систем нелинейных уравнений методом Зейделя.