Библиотека матричных операций (проект) — различия между версиями
Материал из Wiki - Факультет компьютерных наук
м (→Что это за проект?) |
м (→Чему вы научитесь?) |
||
Строка 15: | Строка 15: | ||
* Использованию объектно-ориентированного подхода на практике | * Использованию объектно-ориентированного подхода на практике | ||
* Основам линейной алгебры | * Основам линейной алгебры | ||
− | * Разнице между теоретической и вычислительной | + | * Разнице между теоретической и вычислительной математикой -- не все, что можно сделать в теории, можно сделать на практике (например определить ранг матрицы) |
* Практике тестирования кода | * Практике тестирования кода | ||
Версия 16:54, 29 декабря 2014
Ментор | Архангельский Сергей |
Учебный семестр | Весна 2015 |
Учебный курс | 1-й курс |
Проект можно развивать на летней практике | |
Что это за проект?
Задача проекта -- разработать библиотеку, позволяющую выполнять различные операции над матрицами.
Чему вы научитесь?
- Использованию объектно-ориентированного подхода на практике
- Основам линейной алгебры
- Разнице между теоретической и вычислительной математикой -- не все, что можно сделать в теории, можно сделать на практике (например определить ранг матрицы)
- Практике тестирования кода
Какие начальные требования?
- Владение одним из языков программирования (C++ / Python) в рамках прослушанного курса
- _Базовое_ знание линейной алгебры.
Какие будут использоваться технологии?
Те, которые предполагаются форматом проектного семинара, git, github, возможно среды разработки.
Темы вводных занятий
- Основые алгоритмы линейной алгебры
Направления развития
- Поддержка разреженных (sparse) матриц
- Реализация консольного интерфейса к библиотеке, по аналогии с Matlab и R.
- Реализация с помощью библиотеке простейших методов машинного обучения, например линейной регрессии, метода PCA.
Критерии оценки
- Удовлетворительно: Реализация базовых операций, чтение / запись в файл и на консоль, транспонирование, доступ к элементам, сложение, умножение, решение системы линейных уравнений.
- Хорошо: Реализация дополнительных операций -- обращение матрицы, вычисление ранга, подсчет определителя и следа матрицы.
- Отлично: Реализация нескольких алгоритмов декомпозиции матриц, eigen-decomposition (нахождение собственных значений и векторов), LU-разложение.