Курсовые - как это делается в Астраханском универе
От: LaptevVV Россия  
Дата: 09.07.14 12:19
Оценка: 164 (18) +3 :)))
Напишу-ка я про наши курсовые — чтобы народ понял, что мы "не лаптем щи хлебаем"...

Курсовые у нас по учебному плану выполняются со 2 семестра 1 курса и до самого конца, до бакалаврской выпускной работы.
Первая курсовая пишется на С++ в консольном варианте.
Примерные типовые темы следующие:

Учебно-демонстрационная программа модуля для работы с односвязными списками.
Учебно-демонстрационная программа модуля для работы с двусвязными списками.
Учебно-демонстрационная программа модуля для работы различными видами рекурсий.
Учебно-демонстрационная программа модуля для работы с очередью (массив).
Учебно-демонстрационная программа модуля для работы с очередью (список).
Учебно-демонстрационная программа модуля для работы со стеком.
Учебно-демонстрационная программа модуля для работы с деками
Учебно-демонстрационная программа модуля для работы с односвязными циклическими списками.
Учебно-демонстрационная программа модуля для работы с двусвязными циклическими списками.
Учебно-демонстрационная программа работы с комплексными числами.
Учебно-демонстрационная программа работы с рациональными числами.
Учебно-демонстрационная программа методов сортировок: метод бинарных вставок, шейкер-сортировка.
Учебно-демонстрационная программа методов сортировок: сортировка Шелла, быстрая сортировка.
Учебно-демонстрационная программа эффективных методов сортировок: пирамидальная сортировка.
Учебно-демонстрационная программа эффективных методов сортировок: подсчетом, поразрядная.
Учебно-демонстрационная программа методов сортировки слиянием: сортировка слиянием.
Учебно-демонстрационная программа эффективных методов сортировки: Tim Sort
Учебно-демонстрационная программа: решение системы линейных уравнений методом Гаусса
Учебно-демонстрационная программа: вычисление определителя разложением по строке (столбцу)
Учебно-демонстрационная программа: умножение матриц методом Штрассена и методом Винограда

Возможны индивидуальные темы — по соглашению с преподавателем.

Результатом работы над курсовой должно быть следующее:
1. Работающая программа
2. Пояснительная записка, оформленная в соответствии с гостами ЕСПД и гостом на научный отчет
3. Презентация, по которой осуществляется доклад на защите.

Сама защита происходит публично, с докладом по выполненной работе и показом (с помощью проектора) а) презентации, б) работающей программы.
В присутствии не менее 2 преподавателей и немеряно студентов. Каждый из которых может задать любой вопрос. Как по докладу, так и по программе.

В начале семестра студентам выдается график работ. Примерно такой:

1. Написание ТЗ+список литературы по теме — примерно 2 недели.
2. Обследование предметной области и написание технического проекта — примерно 4-6 недель
3. Разработка программы и написание рабочего проекта — примерно 6 недель
Включает:
— общие сведения
— инсталляция и выполнение программы
— описание программы (по подсистемам, модулям, функциям и т.п.)
— разработанные меню и интерфейсы (все скриншоты)
4. Тестирование и написание программы и методики испытаний — примерно 2 недели
5. Окончательное оформление пояснительной записки — примерно 2 недели

Теперь по существу разработки.
Учебно-демонстрационная программа с нашей точки зрения состоит из 3 подсистем:
— подсистема просмотра теоретического материала
— подсистема демонстрации по теме разработки
— подсистема проверки знаний по теме разработки — тестирование
Естественно, теоретический материал должен быть представлен во внешних файлах, так же, как и набор тестовых вопросов.
Наиболее творческая часть — демонстрация.
Например, в курсовой для работы со списками нужно демонстрировать работу всех операций:
— вставка в начало
— вставка в конец
— поиск элемента
— удаление спереди
— удаление сзади
— удаление заданного элемента.
Программа должна по шагам показывать присваивание указателей.

На в курсе у нас уже добавляются такие темы (2 штуки — по 1 в каждом семестре):
1. Учебно – демонстрационная программа для работы со слоеным списком.
2. Учебно – демонстрационная программа для работы с АВЛ – деревьями.
3. Учебно – демонстрационная программа для работы с красно-черными деревьями.
4. Учебно – демонстрационная программа для работы со скошенными деревьями.
5. Учебно – демонстрационная программа по алгоритмам поразрядного поиска
6. Учебно – демонстрационная программа для работы с В – деревьями.
7. Учебно – демонстрационная программа для работы с хеш-таблицами
8. Учебно – демонстрационная программа по алгоритмам обхода графа и поиска компонент связности
9. Учебно – демонстрационная программа по алгоритмам поиска кратчайшего пути на графе
10. Учебно – демонстрационная программа по алгоритмам поиска минимального остовного дерева
11. Учебно – демонстрационная программа по алгоритмам поиска подстрок
12. Учебно – демонстрационная программа по алгоритмам обхода графа и поиска компонент связности
13. Учебно – демонстрационная программа по жадным алгоритмам
14. Учебно – демонстрационная программа по динамическому программированию
15. Учебно – демонстрационная программа по переборным алгоритмам и методам сокращения перебора
16. Учебно – демонстрационная программа по алгоритмам кластеризации
17. Учебно – демонстрационная программа по алгоритмам минимизации конечного автомата
18. Учебно – демонстрационная программа по Марковским алгоритмам
19. Учебно – демонстрационная программа по муравьиному алгоритму поиска
20. Учебно– демонстрационная программа по алгоритму отжига
21. Учебно – демонстрационная программа по нечёткому выводу
22. Учебно – демонстрационная программа по алгоритму LL-разбора
23. Учебно – демонстрационная программа по алгоритму LR-разбора
24. Учебно – демонстрационная программа по алгоритмам сборки мусора
25. Учебно – демонстрационная программа по алгоритмам управления динамической памятью
26. Учебно – демонстрационная программа по алгоритмам сборки мусора
27. Учебно – демонстрационная программа по конечным автоматам
28. Учебно – демонстрационная программа вычисления интегралов методом Монте-Карло
29. Учебно – демонстрационная программа LUP-разложения матриц

Объявляем и индивидуальные темы — с расчетом на продолжение до выпускной бакалаврской работы:
1. Тренажер по UML с оценкой результатов работы (с генерацией кода)
2. Тренажер по Дракону с оценкой результатов работы (с генерацией кода)
3. Тренажёр по блок-схемам с оценкой результатов (с генерацией кода)
4. Тренажёр по конечным автоматам (с генерацией кода)
5. Тренажер по модульному тестированию (xUnit) с оценкой результатов работы (по языкам)
6. Тренажёр по программированию на ассемблере для виртуальной машины с оценкой результатов
7. Тренажер по программированию на ассемблере GAS с оценкой результатов
8. Тренажер по методу разработки сверху-вниз с пошаговым уточнением
9. Тренажер по выражениям с оценкой результатов тестирования (с генерацией выражений)
10. Тренажёры по синтаксическим конструкциям ЯП (по языкам, по темам, с генерацией заданий и оценкой)
11. Тренажёры по функциям (по языкам, с генерацией заданий и оценкой)
12. Тренажёры по классам (по языкам, с генерацией заданий и оценкой)
13. Инструментальная система подготовки модели предметной области с оценкой сложности
14. Инструментальная среда – генератор упражнений по UML
15. Инструментальная среда – генератор упражнений по Дракону
16. Инструментальная среда – генератор упражнений по языку программирования
17. Система автоматизации тестирования
В этих темах уже исследовательская работа по оцениванию деятельности студента начинается.

Требования к реализации усложняются.
Необходимо реализовать уже оконную программу.
Не индивидуальные темы должны быть реализованы на С++ с использованием какой-нибудь оконной библиотеки.
На выбор предлагается QtSDK, vxWidget, MFC/ATL/WTL, FLTK (описана в книге Страуструпа для студентов)
Соответственно и среды — на выбор.
Большинство предпочитают QtSDK — дофига литературы.

Принцип тот же: должно быть реализовано 3 подсистемы, только теперь уже в оконном виде.
Таким образом за 2 курс в течение года большинство народа вполен себе осваивает начальный уровень Qt, от которого можно отталкиваться дальше в профессиональном программировании.

Индивидуальные темы мы последнее время даем на C# в технологиях либо WPF, либо ASP.NET — зависит от задач...
Как правило, последнее время это задачи, которые необходимо состыковать с нашей обучающей системой Semantic IDE.

Хотя для отдельных студентов позволительно писать на любом языке, например, на Питоне.

На 3 курсе у нас ранее было две курсовые по базам данных, причем вторая — по MS SQL Server. Она и сейчас такая же.
А вот первая изменилась, и мне придется еще составить перечень тем.
Поскольку я веду в первом семестре 3 курса Системное ПО, то это будут темы либо по компиляторам, либо по операционным системам.

Но по Системному ПО у меня лабы — серьезные.
Первая лаба — написать интерпретатор виртуальной машины в объектно-ориентированном стиле.
Пример виртуальной машины:

Двухадресная, с Регистрами Общего Назначения, один операнд в регистре
PSW = IP + Flags, 16+16 = 32 бит.
Память – байтовая, объединяются в 2 и 4 байта. Размер адреса – 16 бит.
Данные:
Целые знаковые, беззнаковые – 2 байта
Дробные – 4 байта

РОН – 8 штук, 16 бит; содержимое – целое со знаком, целое без знака (адрес)
Они же – 4 регистра с плавающей точкой по 32 бита, номера – четные.

Структура команд: 2 байта, 4 байта; результат по первому
16 бит: КОП – 7 бит, s – 1 бит, r1 – 4 бита, r2 – 4 бита
32 бита: КОП – 7 бит, s – 1 бит, r1 – 4 бита, r2 – 4 бита, оff – 16 бит
s – размер операнда
s = 0 – 2 байта
s = 1 – 4 байта
Адрес = регистр + смещение (если регистр используется)
Адрес = смещение (если регистр не используется)
Смещение = адрес = константа
Особые случаи: s=1, номер регистра – нечетный
Это формат пересылок, арифметики целой, арифметики дробной;
Пересылка:
Регистр-регистр, Регистр-память, Память-регистр
арифметика дробная, арифметика целая – то же самое
Переходы:
Безусловный (использование битов s), r1 – не используется
– s = 0: прямой, IP = адрес
– s = 1: относительный, IP = IP + адрес
Условный — то же самое, только проверяются флаги
Вызов подпрограммы: адрес возврата запоминается в регистре – первый операнд
Воврат – безусловный прямой переход
Если регистр в команде не используется, то на месте номера регистра стоит 1xxx;
Можно использовать для дополнительных кодов операций!

Требования к реализации:
1. Объектно-ориентированный подход.
2. Модульный подход.
2.1. Процессор – отдельный класс, разделение на интерфейс и реализацию;
2.2. Выполнение команд – вызов функтора (не использовать оператор-переключатель!)
2.3. Память – динамический массив – поле-указатель в классе
2.4. Команды – иерархия классов-функторов;
2.5. Базовый класс – абстрактный класс Command с перегруженной операцией operator()

Далее варианты меняются.
1. народ тестирует не свой вариант, отлавливает ошибки и исправляет их.
2. народ пишет простейший транслятор с ассемблера.
Далее варианты меняются.
1. народ тестирует не свой вариант, отлавливает ошибки и исправляет их.
2. народ пишет консольный отладчик.

Далее там у меня написание профайлера.
И собираюсь дать доработку. Например, доработать консольный отладчик до оконного.

Как-то так.
Это только то, что я веду.
А там жеж еще есть дисциплины и по веб-программированию, и по технологиям разработки,
и по проектированию, и по интерфейсам, и по требованиям, и по тестированию,
и по базам данных, и по графике...

Если есть вопросы — задавайте.
Хочешь быть счастливым — будь им!
Без булдырабыз!!!
Re: Курсовые - как это делается в Астраханском универе
От: Dym On Россия  
Дата: 09.07.14 12:46
Оценка:
LVV>Если есть вопросы — задавайте.
А часов на все это счастье сколько приходится? Хватает? Много-мало?
Счастье — это Glück!
Re[2]: Курсовые - как это делается в Астраханском универе
От: LaptevVV Россия  
Дата: 09.07.14 12:55
Оценка:
Здравствуйте, Dym On, Вы писали:

LVV>>Если есть вопросы — задавайте.

DO>А часов на все это счастье сколько приходится? Хватает? Много-мало?
Преподам выделяется по 2 часа на курсовую.
Но мы тратим ГОРАЗДО больше.
Ибо ЧИТАЕМ ВСЕ!
Все, что написал студент, мы прочитываем примерно по 5 раз за семестр.
Вычищаем ляпы, исправляем форматирование, показываем правильный стиль, исправляем орфографические ошибки — постепенно
приближая документ к тому, как положено писать технические документы.
И кроме того, студентам не возбраняется, а даже и приветствуется, приходить в свободное время и беседовать за курсовую по любым проблемам.
Не все это делают, но все же примерно половина такие "беседы с заказчиком" регулярно проводит.
Хочешь быть счастливым — будь им!
Без булдырабыз!!!
Re: Курсовые - как это делается в Астраханском универе
От: Kernan Ниоткуда https://rsdn.ru/forum/flame.politics/
Дата: 09.07.14 13:25
Оценка: +1 -1
Здравствуйте, LaptevVV, Вы писали:

LVV>Если есть вопросы — задавайте.

Было бы здорово, если бы не было ереси в виде Дракона.
Sic luceat lux!
Re[3]: Курсовые - как это делается в Астраханском универе
От: smeeld  
Дата: 09.07.14 14:03
Оценка:
Здравствуйте, LaptevVV, Вы писали:

LVV> показываем правильный стиль, исправляем орфографические ошибки

LVV>приближая документ к тому, как положено писать технические документы.

Понял откуда берутся спецы, считающие код bind-а говнокодом, только потому, что написан
без стиля и непонятно.
Re[2]: Курсовые - как это делается в Астраханском универе
От: LaptevVV Россия  
Дата: 09.07.14 15:36
Оценка:
Здравствуйте, Kernan, Вы писали:

LVV>>Если есть вопросы — задавайте.

K>Было бы здорово, если бы не было ереси в виде Дракона.
А что вы против него имеете?
Хочешь быть счастливым — будь им!
Без булдырабыз!!!
Re[4]: Курсовые - как это делается в Астраханском универе
От: LaptevVV Россия  
Дата: 09.07.14 15:38
Оценка:
Здравствуйте, smeeld, Вы писали:

LVV>> показываем правильный стиль, исправляем орфографические ошибки

LVV>>приближая документ к тому, как положено писать технические документы.

S>Понял откуда берутся спецы, считающие код bind-а говнокодом, только потому, что написан

S>без стиля и непонятно.
Ну, код bind-a не предназначен для развития и рефакторинга...
И сам код курсовых мы не правим. Только документ.
Но на защите — можем посмотреть и спросить.
Хочешь быть счастливым — будь им!
Без булдырабыз!!!
Re: Курсовые - как это делается в Астраханском универе
От: smeeld  
Дата: 09.07.14 17:29
Оценка:
Здравствуйте, LaptevVV, Вы писали:

> Много букоф.


А если, вместо всего перечисленного, просто реализацию TCP сервера в качестве задания?
Тут, кроме очередей, графов ещё будет продемонстрировано умение продумывать архитектуру
системы и дизайн приложения, без которого на одних сортировках и матрицах далеко не уедешь.
Re[2]: Курсовые - как это делается в Астраханском универе
От: Trrrrr  
Дата: 09.07.14 17:50
Оценка: 24 (1) +3
один напишет, остальные даже в код смотреть не будут.
Помню когда задания были чуть сложнее начального уровня, код писало 1-2 человека на всю группу.
Re[2]: Курсовые - как это делается в Астраханском универе
От: LaptevVV Россия  
Дата: 09.07.14 18:09
Оценка:
Здравствуйте, smeeld, Вы писали:

S>Здравствуйте, LaptevVV, Вы писали:


>> Много букоф.


S>А если, вместо всего перечисленного, просто реализацию TCP сервера в качестве задания?

S>Тут, кроме очередей, графов ещё будет продемонстрировано умение продумывать архитектуру
S>системы и дизайн приложения, без которого на одних сортировках и матрицах далеко не уедешь.
Я описал только СВОИ курсовые.
Это — первая половина учебы.
ТСР сервер пусть реализуют на старших курсах.
Подскажу народу.
Хочешь быть счастливым — будь им!
Без булдырабыз!!!
Re[3]: Курсовые - как это делается в Астраханском универе
От: LaptevVV Россия  
Дата: 09.07.14 18:17
Оценка: :)
Здравствуйте, Trrrrr, Вы писали:

T>один напишет, остальные даже в код смотреть не будут.

T>Помню когда задания были чуть сложнее начального уровня, код писало 1-2 человека на всю группу.
Не.
Вы слишком плохо думаете
а) о студентах
б) о преподах...
Вы думаете, я не знаю, кто за кого написал?
Это в группе из 12-15 человек вычисляется на счет раз.
В нынешнем 2 курсе одной девице "помогает" влюбленный пацан...
Я его уже предупредил... У самого почти хвост — посмотрим на днях.
Кроме того, есть два человека, которые сами написать вовремя не способны.
Им помогает один из хороших ребят — но только после сессии, а не во время семестра.
Остальные пишут сами, даже девочки.

Вот например, одна девица пишет конкретно для одного нашего преподавателя прогу для работы с рейтинговой системой.
У нее МАС, она с этой преподавательницей на моих глазах беседовала за семестр 4-5 раз...
Другая девушка писала редактор Дракона — она со мной постоянно разговаривала по различным вопросам реализации.
И так — все.
И пацаны тоже...
Хочешь быть счастливым — будь им!
Без булдырабыз!!!
Re: Курсовые - как это делается в Астраханском универе
От: novitk США  
Дата: 09.07.14 18:22
Оценка: +2
Здравствуйте, LaptevVV, Вы писали:

а) Если акцент алгоритмы, почему C++?
б) Если акцент алгоритмы, почему нужно делать столько реализаций? Думаю Кнут за всю жизнь не отладил и 1/10 этих алгоритмов.
в) Если акцент подготовка инженер, почему нет специализации? Если человек хочет стать системщиком, зачем ему реализовывать LUP декомпозицию? Если квантом, зачем минимизация конечного автомата? Если формовебоклепателем, зачем и то и другое?
г) Если акцент подготовка ученого, почему нет ФП-языка, лямбда исчисления и теории категорий?
Re[4]: Курсовые - как это делается в Астраханском универе
От: Trrrrr  
Дата: 09.07.14 18:27
Оценка: -2
Я был одним из тех двух на группу, кто всем проги делал за сок и шоколадки
Но так как не очень люблю просто так помогать без воспитательного эффекта так сказать,
то называл функции и переменные местами очень матерными словами, так что если ктото из друзей просто пытался сдать не заглядывая в код выглядело это смешно
Точнее смешно было мне, возможно преподам
А предподаватели были разные, помню тетка была, которая заставляла по паскалю контрольные на листке писать, что считал невообразимым бредом так как компов всем хватало в аудиториях. Ну и задачи типа какие то мат формулы переписывать,
вот там в формуле было x^9 степени, так я от скуки и написал x*x*x*x*x*x*x*x*x. За такое автоматом двойбан получил и с трудом 4 вытянул в том семестре, невзлюбила она меня, хотя был олимпиадником и паралельно неплохо высутпал на всеукраинских олимпиадах.
x
Re[2]: Курсовые - как это делается в Астраханском универе
От: smeeld  
Дата: 09.07.14 18:42
Оценка: :)
Здравствуйте, novitk, Вы писали:

N>г) Если акцент подготовка ученого, почему нет ФП-языка, лямбда исчисления и теории категорий?


Кстати да. Нужно учить студентов Лиспцу, мозг выравнивает как раз под задачу построения систем
автоматизации обработки информации и вычислительных процесов. На C++ мы пишем машину, на Лиспе-организм, кибернетический.
Re[2]: Курсовые - как это делается в Астраханском универе
От: LaptevVV Россия  
Дата: 09.07.14 18:49
Оценка: -5 :)
Здравствуйте, novitk, Вы писали:

N>а) Если акцент алгоритмы, почему C++?

N>б) Если акцент алгоритмы, почему нужно делать столько реализаций? Думаю Кнут за всю жизнь не отладил и 1/10 этих алгоритмов.
N>в) Если акцент подготовка инженер, почему нет специализации? Если человек хочет стать системщиком, зачем ему реализовывать LUP декомпозицию? Если квантом, зачем минимизация конечного автомата? Если формовебоклепателем, зачем и то и другое?
N>г) Если акцент подготовка ученого, почему нет ФП-языка, лямбда исчисления и теории категорий?
Если жить в НьюЙорке, то зачем интересоваться учебой в провинциальном российском вузе?
Приезжайте — посмотрите, возможно, разберетесь в наших реалиях, специализациях и прочем.
Хочешь быть счастливым — будь им!
Без булдырабыз!!!
Re[3]: Курсовые - как это делается в Астраханском универе
От: novitk США  
Дата: 09.07.14 19:04
Оценка: +4
Здравствуйте, LaptevVV, Вы писали:

LVV>Если жить в НьюЙорке, то зачем интересоваться учебой в провинциальном российском вузе?

LVV>Приезжайте — посмотрите, возможно, разберетесь в наших реалиях, специализациях и прочем.

Какое отношение местопребывание, тем более мое, имеет к CS или его обучению? В чем заключается ваша астраханская специфика?
Re[4]: Курсовые - как это делается в Астраханском универе
От: LaptevVV Россия  
Дата: 09.07.14 20:38
Оценка: -7 :)))
Здравствуйте, novitk, Вы писали:

N>Здравствуйте, LaptevVV, Вы писали:


LVV>>Если жить в НьюЙорке, то зачем интересоваться учебой в провинциальном российском вузе?

LVV>>Приезжайте — посмотрите, возможно, разберетесь в наших реалиях, специализациях и прочем.

N>Какое отношение местопребывание, тем более мое, имеет к CS или его обучению? В чем заключается ваша астраханская специфика?

По постам "наших американских партнеров" видно, что вы "очень далеки от народа".
То есть вы гораздо больше американцы. чем россияне.
И просто не понимаете то. что для нас очевидно.
Чтобы ответить на твои вопросы, я должен рассказать тебе весь учебный процесс и весь учебный план...
Без надежды, что тебе будет понятно.
Так что давай уж сам приезжай...
Хочешь быть счастливым — будь им!
Без булдырабыз!!!
Re[5]: Курсовые - как это делается в Астраханском универе
От: kleng  
Дата: 09.07.14 22:20
Оценка:
Здравствуйте, LaptevVV, Вы писали:

LVV>То есть вы гораздо больше американцы. чем россияне.


И вот на этом месте неплохо бы вспомнить, что львиная доля успешного софта делается в США, а успехи России на этом поприще крайне скромны.
Re[5]: Курсовые - как это делается в Астраханском универе
От: novitk США  
Дата: 09.07.14 23:16
Оценка:
Здравствуйте, LaptevVV, Вы писали:

LVV>То есть вы гораздо больше американцы. чем россияне.

LVV>И просто не понимаете то. что для нас очевидно.
Какие это мы такие американцы? Я в СССР/РФ учился.

LVV>Чтобы ответить на твои вопросы, я должен рассказать тебе весь учебный процесс и весь учебный план...

LVV>Без надежды, что тебе будет понятно.
Так все сложно? Ладно. Тупой американец пошел отдыхать.
Re: Курсовые - как это делается в Астраханском универе
От: Aртём Австралия жж
Дата: 09.07.14 23:57
Оценка:
Здравствуйте, LaptevVV, Вы писали:

LVV>18. Учебно – демонстрационная программа по Марковским алгоритмам

LVV>19. Учебно – демонстрационная программа по муравьиному алгоритму поиска
Это из математики. Такое дают первокурсникам?


LVV>Требования к реализации усложняются.

LVV>Необходимо реализовать уже оконную программу.
Прогресс
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.