Clone wiki

teaching / Courseworks

Список ниже немного устарел. Текущий список смотрите в https://medium.com/@cblp/92d8db5e9f8b


Темы курсовых работ

Творческие — придумай сам

01. Совсем творческая

Взять область, которая вам интересна, и придумать, какие задачи в ней можно решить с помощью программирования. Или взять область профессиональной деятельности мамы/папы/дяди/тёти/брата/сестры и найти в них задачи, которые можно решить с помощью программирования.

02. Игровая

Взять игру (компьютерную или нет) и запрограммировать, или перенести на новую платформу, или склонировать и внести существенное изменение (например, Тетрис из треугольников). Изобрести свою игру, в конце концов!

03. Модельная

Моделирование реального процесса. Физического. Или не физического (блуждание туриста по городу, например).

04. Blast from the Past

Взять сложную технологию 10/100/1000-летней давности и реализовать её на современных компьютерных технологиях, при этом сделав ещё лучше.

Готовые — я уже придумал

1. Программирование на естественном языке

Выполнена Полиной Кириченко

2. Система автоматической сборки универсальных программных пакетов из разных источников

Из CPAN, CTAN, PyPI, Hackage... в deb, rpm...

3. Система управления версиями на основе Git

Git — распределённая система управления версиями с идеальным внутренним устройством, за что он любим многими программистами по всему миру. Однако его пользовательский интерфейс нарушает все правила дизайна, он страшен, как вся моя жизнь. Я хочу исправить это — создать систему, использующую Git как движок, но имеющий собственный, человечный интерфейс.

Ссылки для вдохновения:

4. Структурный редактор

Разработать формат хранения вложенных данных произвольных типов и приложение-редактор для него. Например, в таблице список, в списке другая таблица, а в ней изображение и форма. Можно за основу взять HTML или TeX и дополнить его расширяемым WYSIWYM-редактором.

5. WYSIWYM редактор для wiki-разметки

Текстовый редактор для wiki-разметки в стиле WYSIWYM по мотивам Texts, чтобы разметка одновременно отображалась и спецсимволами, и стилями.

6. Аппаратный конструктор пользовательских интерфейсов

Современные компьютерные интерфейсы — это только движущиеся картинки на плоских экранах. Но человек умеет пальцами не только тыкать в плоскость, есть ещё множество способов взаимодействовать с предметами — хватать, сжимать, тянуть и др.

Необходимо создать электронный конструктор интерфейсов из платы и набора кнопок, рычагов, переключателей — реализация haptic UI. Взял плату, воткнул в неё дюжину индикаторов-кнопок-ползунков, подключил к компьютеру, настроил взаимодействие с ПО — получил удобный интерфейс с тактильной обратной связью. Можно продавать готовые наборы.

Ссылка для вдохновения:

Updated