Как стать автором
Обновить

Комментарии 16

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

Если бы мне предложили поучаствовать в open source проекте, когда попал в универ, я бы с радостью бы присоединился к разработке, но тогда я думал, что языки пишут и участвуют в open source проектах только боги :)
да уж, думаю стоит у нас в универах ввести подобную практику участия в опенсорс для студентов да еще и совместить с курсовиками и лабами по некоторым предметам, в любом случае больше пользы.
Действительно, участие в open-source проекте — всегда очень интересно. Чужой код, аккуратный или не очень, необходимость сотрудничать с незнакомым человека…

Как мне кажется, подобная инициатива должна исходить от преподов. Например курсовая или расчетная работа, в рамках которой студент должен внести определенные изменения в OSS-проект, скажем, университета или общественный. Либо запустить собственный, начиная от общественного репозитория, заканчивая практическим применением.
В принципе, всё верно, но есть и проблемы.
В теории, дипломная работа должна решать некоторую научную задачу. В этом смысле чисто технический проект («запрограммировать») не катит, даже если требуются нетривиальные навыки программирования и разработки архитектуры.

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

Хотя, конечно, о пользе участия в реальных проектах спорить нечего, всё тут ясно.

ЗЫ: «достаточно уникальный» режет слух — это из стиля «немножко беременна».
Да какая к чёрту научная новизна. Обычно научные руководители изобретают какую то жесть, которую сами страшно нахваливают, но которая уже или устарела морально и во всём мире на неё уже забили (а они думают, что это таки новое слово и ни у кого этого нет), или же что-то страшно узкое и потому этого нет, ибо никому нахуй не нужен Неуловимый Джо. (Во всяком случае в моём вузе, который далеко не самый хреновый).
Это чистая теория. На практике адекватные люди понимают какой научной новизны можно добиться от студента. А неадекватным не так сложно и вынушить её наличие.
Ох, сколько я видел программ автоматизированного составления расписания! Каждая — такая научно-новая, што писец :) А CMS на PHP уж сколько — каждый год десяток пишут, чтобы забыть. Так что в этом плане тот же Nemerle сто очков вперед даст любому упомянутому проекту, особенно если там будет какой-никакой матан.
И тем не менее на выводе типов, использованном в nemerle один из авторов защитил диссер.
На самом деле продолжения (continuations) на nemerle уже есть ввиде монады (в тестах).
Только выглядит не очень. Мне очень понравилось как это сделано в F# через computation expressions. Намного привлекательней выглядит сначал реализовать возможность удобно создавать монады. А потом уже на них сделать continuations.
К сожалению scala не знаю. С реализацией cps разобраться не смог.
Есть continuations и в mono только там они реализованы как unmanaged патч к компилятору.
А вообще если делать как предлагает Влад, получится интерпретатор (т.к в nemerle доступа к стеку нет). Еще варинт конвертить все в Expression tree — его можно сериализовать.
… когда студент выполняет работу, но не видит в ней смысл.
Тут либо студент бездырь, либо преподаватель плохо объяснил (чаще бывает первое).

Без обид, но идея бредовая по целому ряду причин:
1) Не смотря на то, что задачи преподавателей кажутся надуманными, они решают конкретную фундаментальную задачу, решив которую, студент получит важные для него в будущем навыки. Именно на таких «сферических в вакууме» задачах нужно учиться.
2) В реальных проектах куча тонкостей и заморочек, которые студенту до поры, до времени знать не надо.
3) Некоторая часть студентов не сможет разобраться в проекте, в котором уже есть солидные наработки. Поэтому будет довольно большой процент проваленных курсовых и дипломных работ.
4) Руководство опенсорс-проекта не доверит студенту что-то толковое… (Я бы не доверил^^)
5) Преподавателю сложно проконтролировать вовлечённость студента в проект.
6) Проблемы с языком.
7) Опенср-проектов на всех не хватит;)

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

Зачастую фундаментальные задачи решает преподаватель, а студенты помогают ему делать черновую работу. Кроме того, фундаментальную задачу преподаватель решает в течении, например, лет 10. Получается, что студент не видит результата своей работы, а это сильно демотивирует. Кроме того, решая черновую работу, студент не получит «важные для него в будущем навыки».
В реальных проектах куча тонкостей и заморочек, которые студенту до поры, до времени знать не надо.

Какие?
Некоторая часть студентов не сможет разобраться в проекте, в котором уже есть солидные наработки. Поэтому будет довольно большой процент проваленных курсовых и дипломных работ.

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

Ну и пусть — репозиторий открыт бери, делай а если получиться что-то толковое, то замечательно. А разработчики всегда рады будут ответить на несколько вопросов про устройство архитектуры, я бы был бы рад :)
Преподавателю сложно проконтролировать вовлечённость студента в проект.

Логи системы контроля версий + переписка студента с разработчиками + результат работы.
Проблемы с языком.

Хороший способ подтянуть язык=)

P.S. Я сам придумал тему своего диплома, нашел преподавателя, который занимается максимально близкой темой в моем универе. Переписывался с людьми из Германии и Италии, которые работают в той же области и чувствую себя отлично, потому что понимаю, что мой проект нужен по-крайней мере мне. Что не могу сказать про своих однокурсников, которые не понимают чем они занимаются.
Какие-то не правильные у вас преподаватели были — когда я учился, на студентов не возлагали какую-то «черновую работу» из диссертации. Максимум такое задание могло достаться сотрудникам кафедры и то по обоюдному согласию.

Даже если с разработкой ничего не получиться, всегда можно проанализировать корреляцию между интенсивностью разработки на основе коммитов системы контроля версий и метрик проекта, а на этой основе написать курсовую по управлению рисками, например. Нужно помнить, что из любого провала можно выйти победителем.
Только я сомневаюсь, что курсовая по управлению рисками (хоть и в проекте по разработке компилятора) подойдёт под курс «Системное программное обеспечение». Да и в случае с дипломом: результат должен соответствовать теме, утверждённой за пол-года до сдачи.

Можно глупый вопрос.
Какой процент студентов способен за семестр проанализировать структуру, вникнуть в код проекта, осознать как реализовать новую функциональность и начать вносить свой вклад в проект?
Как тема дипломного проекта возможно, но только не курсового, ИМХО времени маловато.
Если рассматривать эту активность только для сдачи курсовой то времени мало, а если эта тема интересна человеку, что он её заниматься, а параллельно делать курсовые и диплом на основе этой активности.

Например, я занимаюсь разработкой uniquation.ru, потому что мне интересна эта тема, а алгоритм работы системы я защищу как свою дипломную работу. Если бы мне предложили вариант участвовать в open source проекте, и на основе этой работы делать курсовые и диплом, или я сам бы догадался до этого, то занимался бы сейчас, например, nemerle.
Ну если в таком разрезе, тогда, да, нормальный вариант.
Просто название топика немного смутило.

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

Публикации