Темы курсовых работ
Темы курсовых работ для второкурсников.
1. Обнаружение узлов в сети. Инструмент.
Имеется сеть, состоящая из коммутаторов и компьютеров. Есть необходимость по MAC или IP адресу компьютера определить его физическое местонахождение - коммутатор и номер порта, в который воткнут искомый компьютер.Задача: реализовать подобную утилиту.
Технологии: snmp, bridge-mib, automake/autoconf, networking, TCP/IP.
Языки: C/C++ или по согласованию.
2. Обнаружение узлов в сети. Обзор.
Имеется сеть, состоящая из коммутаторов и компьютеров. Есть необходимость по MAC или IP адресу компьютера определить его физическое местонахождение - коммутатор и номер порта.Задача: сделать подробный обзор имеющихся утилит.
3. Сетевая безопасность
(берет Чередник)Есть веб сайт, который аутентифицирует пользователей (например, ВКонтакте). Изучить какой-нибудь подобный ресурс на предмет безопасности, описать возможные технические (не социальная инженерия) способы получить доступ к чужим данным.
Задача: описать возможные методы и способы защиты (!) от них.
Технологии: стек TCP/IP, криптография, SSL, sniffing.
4. Модель разработки Open Source
Выбрать какой-нибудь активно развивающийся проект с открытым исходным кодом, реализовать в нем что-нибудь толковое и добиться принятия патчей в основную ветку разработки.Можно попробовать свои силы в проекте wine.
5. Поисковики по сайтам интранет
(берет Филатов)В компании есть веб сайт, по которому необходимо осуществлять поиск. В качестве быстрого решения можно пользоваться Гуглом с параметром site:www.example.com, но в таком случае недавние изменения не будут учтены. Поэтому внедряется отдельная система индексирования и поиска.
Задача: сделать подробный обзор таких систем.
6. Многопоточное программирование
Имеется большой пул небольших задач и несколько вычислительных элементов (процессоров). Требуется раскидать эти задачи на процессоры таким образом, чтобы все процессоры были заняты и не простаивали.Задача: реализовать подобную систему. Изучить или придумать способы межпоточного взаимодействия, реализовать и сравнить их. Например, нити могут общаться между собой при помощи сокетов, неименованных каналов, рукописных очередей, и т.п.
Технологии: thread, mutex, semaphore, queue, lock-free interaction.
7. Базы данных (2 человека?)
Требуется реализовать простую, но эффективную систему выполнения SQL запросов на чтение.1) модуль высокого уровня выполняет взаимодействие с пользователем и некоторые реляционные операции.
2) модуль низкого уровня отвечает за построение индекса и выполнение некоторых реляционных операций.
Языки: C/C++ или по согласованию.
Технологии: реализация SQL, индексирование БД, деревья.
8. Роутер
Современные коммутаторы и маршрутизаторы предоставляют администратору специальный консольный интерфейс для конфигурирования, называемый cisco-style CLI (command-line interface). Имеется компьютер (скорее всего, это будет виртуалка с линуксом на борту) с несколькими сетевыми интерфейсами, выполняющий роль маршрутизатора. Требуется сделать из компьютера маршрутизатор: снабдить его CLI и конфигуратором интерфейсов.Языки: C/C++ или по согласованию.
Технологии: cisco-style CLI
В качестве решения обзорных задач ожидается подробный отчет листов на 4-6 (или больше) с итоговой таблицей.
От задач на программирование (кроме "модели разработки Open Source") ожидается ХОРОШИЙ код в специальном svn-репозитории.