Как стать автором
Поиск
Написать публикацию
Обновить

Комментарии 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.
Ну если в таком разрезе, тогда, да, нормальный вариант.
Просто название топика немного смутило.

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

Публикации