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