Семестр 3
 Домашнее задание 1
-  Задать несколько классов, описывающих взаимодействующие сущности окружающего мира. 
 
 Домашнее задание 2
-  Поэкспериментировать с GUI. 
 
 Домашнее задание 3
-  Хеш-таблицу прошлого семестра сделать классом с интерфейсом, позволяющим пользоваться ею в .NET стиле.
 Ориентироваться можно на интерфейс, выданный Виктором Сергеевичем своей подгруппе. http://pastebin.com/jsR7xzH3 
 
 Домашнее задание 4
-  Написать проверку e-mail на валидность с помощью регулярных выражений. Можно добавить GUI. Не забываем о unit-тестах. 
 
 Домашнее задание 5
-  Для набора текстовых файлов, содержащих формальное описание вычислительных задач, организовать параллельные вычисления. Сравнить производительность при разном количестве процессов.
 
 Семестр 2
 Домашнее задание 1
- Бинарное дерево
 
 Домашнее задание 2
- Интерпретатор мини-ассемблера стековой машины
 
- На мини-ассемблере: НОД, НОК, 1001-ое простое число, сумма четных чисел Фибоначи, не превышающих 2000000
 
 Домашнее задание 3. F#
- Пройти первые три уровня (строчки) игры
http://pcottle.github.io/learnGitBranching/
 
- Посчитать корни квадратного уравнения. Кубического. Вернуть кортеж
 
- Обратить список
 
- Добавить элемент в конец списка
 
- Длина списка
 
- Сумма элементов списка
 
- Отфильтровать список по заранее заданному критерию
 
- Фильтр с использованием переданной функции
 
- Преобразовать все элементы списка переданной функцией
 
 Домашнее задание 4. F#
- Сумма цифр факториала 100
 
- Три задачи из второго десятка project Euler
 
- Упростить дерево разбора арифметического выражения (полное описание взять со страницы Полозова В. С.) 
 
 Домашнее задание 5. F#
- Кодирование по Хаффману
 
 Контрольная. F#
-  Разбить список слов на список линий по заданной ширине с учетом вида разбиения (по левому краяю, по центру, по ширине, по правому краю)
 
 Домашнее задание 6. F#
-  Код двух предыдущих заданий снабдить unit-тестами
 
Архив:
Семестр 1
 Домашнее задание 1
- Посчитать целую степень числа: a^n.
 
- Реализовать программу, проверяющую, является ли строка палинромом.
 
- Заданы две строки: S и S1. Найти количество вхождений S1 в S как подстроки.
 
- Написать программу, печатающую все простые числа, не превосходящие заданного числа.
 
- Реализовать подсчет n-го числа Фибоначи.
 
 Домашнее задание 2
- Четыре сортировки.
 
 Домашнее задание 3
- Умножение двух целых чисел без использования операции умножения.
 
- Вывести биты целого числа.
 
- Вывести биты floаt и double в виде (-1)^s*m*2^exp.
 
- Сохранить и загрузить целое число в бинарном файле. Обеспечить корректность работы на машине как с little-endian, так и big-endian
 
 Домашнее задание 4
- Реализовать strcmp, strlen, strcpy. 
 
- Испортить адрес возврата вводом за пределы массива. Добиться эффекта вызова третьей функции.
 
 Домашнее задание 5
- Написать библиотеку работы со связными списками. 
 
- Проверить список на цикличность. Желательно, используя O(1) дополнительной памяти.
 
- Реализовать стековый калькулятор, управляемый вводом пользователя в текстовое меню.
 
- Развернуть список.
 
 Домашнее задание 6
- Реализовать ассоциативный массив с помощью hash-таблицы 
 
-  Подсчитать количество вхождений слов в текст какого-либо романа из public domain. Сравнить производительность константной функции, заведомо плохой функции и одной из рекомендуемых к использованию (найти в сети). Собрать другую статистику, характеризующую перечисленные функции (средняя длина списка, максимальная, минимальная ненулевая, ...) 
 
(найти в сети). Собрать другую статистику, характеризующую перечисленные функции (средняя длина списка, максимальная, минимальная ненулевая, ...)
 Домашнее задание 7
- Реализовать калькулятор методом рекурсивного спуска 
 
Примечание: арифметические операции должны быть левоассоциативными.