Летняя практика 2005 года

Летняя практика в лаборатории SW-Soft НГУ проводится с 27 июня по 17 августа, поэтому, прежде чем посылать заявку, проверьте, имеете ли вы возможность посещать практику в указанное время.

Невозможность участвовать в летней практике сама по себе не означает невозможности сотрудничать с лабораторией в учебном году. Хотя, конечно, участие в этой практике - большой плюс для такого сотрудничества.

Заявка на летнюю практику

  1. Ф.И.О
  2. Учебное заведение.Факультет.Курс.Группа
  3. Средний балл за предыдущие сессии
  4. Необходимость в общежитии
  5. Какими технологиями интересуетесь(какого сорта проектами интересуетесь)

Заявки присылать до 31 мая по адресу fat[at]nsu.ru. Тем, кто не пришлет заявку в указанный срок, общежитие не гарантируется. Также, имейте в виду, что должников по летней сессии мы к практике не допустим.

Студентам 3 и 4 курсов, у которых есть зарегистрированный научный руководитель, необходимо будет также представить письменное согласие научного руководителя на ваше участие в летней практике лаборатории SW-Soft.

Проекты

  1. Распределенное хранилище данных
  2. Аудио синтез
  3. Аудио анализ
  4. Разработка игр (для студентов 1 курса)
  5. Сжатие звука
  6. Сжатие изображений
  7. Антиспам
  8. Распределенное обнаружение вторжений
  9. Удаленная консоль
  10. Распределенная система тестирования

Заявки принимаются по адресу fat[at]nsu.ru


Задачи на испытательный срок

1. Работа с графическими файлами
Цель: научится работать с файлами в форматах JPG, BMP, PCX, PNG, применять фильтры. Показать умение грамотно и эффективно писать программы на языке С.
Задание: написать утилиту, которая через командную строку получает набор входных параметров: действие (вырезать часть изображения, выполнить поворот, наложить фильтр (указать какой), масштабировать, выделить канал, преобразовать формат, вывести информацию о файле, для JPG при сохранении указать коэффициент сжатия) и входные/выходные файлы. Выполняет соответствующее действие (набор действий)
Дополнительно: набор команд может расширяться по усмотрению студента
Для изучения: форматы файлов, фильтры, методы сжатия
Для исследования: эффективная работа с памятью

2. 3D графика
Цель: Научиться выполнять преобразования объектов в пространстве, освоить работу с графикой под Windows/Linux, показать умение эффективно и грамотно писать программы.
Задача: Из входного файла считывается сцена, которая состоит из объектов: параллелепипед, сфера, плоскость, конус, прямая. Объекты могут объединяться в группы и к ним (группам/объектам) могут применяться операции преобразования: поворот вокруг какой-то оси/смещение/(растяжение?). Полученная картинка в виде проволочной модели выводится на экран. Как параметр задается коэффициент детализации. (Вращение полученной схемы с клавиатуры).
Дополнительно: может применяться алгоритм скрытия невидимых граней.
Для изучения: матрицы поворота и их применение.
Для исследования: оптимальное представление данных в памяти, эффективные методы отрисовки.

3. Заполнение форм
Цель: Научиться работать с базами данных, формами ввода, текстовыми документами.
Задача: Дана некоторая форма (на листе бумаги). В ней должны быть заполнены поля с указанными ограничениями. Все вводимые данные должны сохраняться в базу данных (XML/MySQL). По шаблону и данным в БД строится документ (PDF/PS, HTML, DOC/RTF). Работа на примере личной карточки студента, договоров подряда.
Дополнительно: рассмотреть возможность нормализации данных и автозаполнение полей.
Для изучения: интерфейсы для заполнения форм, методы представления данных в текстовых файлах.
Для исследования: поиск и обзор библиотек работы с различными форматами файлов, архитектура системы.

4. MyICQ
Цель: Научиться работать с протоколом TCP, разрабатывать собственные протоколы и приложения вида ?клиент-сервер?
Задача: Создать собственную реализацию аналога ICQ - клиент+сервер (не Web)
Дополнительно:
Для изучения: TCP/IP, принципы построения многопользовательских систем
Для исследования: разработка протокола и архитектуры

5. Простейший mail-клиент
Цель: Научиться работать с протоколами TCP, POP3, IMAP ?,
Задача: Создать собственный почтовый клиент с возможностями получения почты по протоколам POP3 (IMAP) с нескольких почтовых аккаунтов, корректного отображения писем, хранения писем в формате XML и т.д.
Дополнительно:
Для изучения: TCP, POP3, IMAP, XML
Для исследования: разработка архитектуры

6. Система сериализации объектов C++
Цель: Научиться работать с объектной персистентностью
Задача: Создать собственную систему сохранения графов разнотипных объектов в (формате XML) и их восстановления. Можно пользоваться только стандартными библиотеками C++.
Дополнительно: отложенное восстановление объектов
Для изучения: XML
Для исследования: разработка архитектуры

7. Система управления персоналом
Цель:
Задача: Создать многопользовательскую систему с Web-интерфейсом, позволяющую описывать иерархию подчинения сотрудников и дающую возможность менеджерам ставить задачи подчиненным на определенный срок и требовать отчетности (также посредством системы).
Дополнительно: управление должностями и персоналом; планирование проекта (диаграммы Гантта ?)
Для изучения: JavaServlets (как вариант), Lotus
Для исследования: разработка архитектуры

8. Банкомат
Цель:
Задача:
Для изучения:
Для исследования:

9. TCP forwarder
Цель:
Задача: Написать программу, которая будет пересылать соединения TCP с одного порта на другой порт удаленной машины (аналог SOCKS proxy). Одна программа должна обрабатывать множество соединений. Сервер должен быть однопоточным неблокирующимся (задержки в работе каждого из соединений не должны отражаться на работе других соединений).
Для изучения: TCP/IP socket API, poll/select.
Для исследования: Неблокирующиеся событийно-ориентированные серверы.

10. Расписание
Цель: создание системы, позволяющей отслеживать расписание студентов
Задача: Создать веб-приложение, которое позволяет студентам заполнять данные о своем расписании на неделю с точностью до пары. Приложение должно также предоставлять функциональность, позволяющую определить, подходит ли данное время (свободно ли оно) для указанной группы студентов. Если останется время, можно реализовать поиск свободного времени.
Для изучения: Задача составления расписания