Проект по созданию учебных проектов (ПО, утилиты, полезные скрипты.)

Модератор: Модераторы разделов

Аватара пользователя
MUTOgen
Сообщения: 343
Статус: i like the way you move
ОС: OpenSuse 11.1

Проект по созданию учебных проектов

Сообщение MUTOgen »

В голове родилась мысль. Точнее идея...

Держал в руках книги Страуструпа, Шилдта, Прата и др. авторов по теме программирования на С/С++. На страницах этих книг конечно же к каждой главе имеются упражнения. Но вот например:

Б.Страуструп "Язык программирования С++. Специальное издание"
"Напишите законченый шаблон Vector с исключениями Range(диапозон) и Size(размер)."

Г.Шилдт "Самоучитель С++"
"Модифицируйте решение предыдущей задачи так, чтобы доступ к массиву осуществлялся через указатель."

Эти упражнения я просто открыл наугад... Немного узковатые задания. Не правда ли? Хотя хочу отметить то, что в случае Страуструпа задание было высокой сложности.

Так вот. Когда читаешь книги более выского уровня, хочется применить занания на деле. В книгах очень мало заданий которые смело можно отнести к разряду "Проект", ведь упражнения идут к главе а проект по моему мнению подразумивает более комбинирований подход.

Моя мысль заключается в том, что многим людям (в том числе и мне) тяжело придумывать самому себе задание на те или иные комбинации средств. Лично у меня сразу в голове прокручивается сперва решение а потом условие, это как-то не правильно. :) Я не говорю чейчас о масштабных проектах корпоративной направлености. Речь идет о небольших учебных проектах, в которых бы люди получали опыт написания хорошего кода, его отладки и теста.
Поэтому я хотел бы предложить в этом топике выкладывать идеи учебних проектов. Никаких решений, просто сами идеи. Это могут быть ПО с визуальным выполнением или же возможен консольный вариант, различные идеи по созданию утилит, полезных скриптов - вобщем всего того что носит название "учебный", и что помогает людям получить опыт в работе.

Возможно из этой темы получится неплохой сборник, кто знает :)

P.S. Если идея плоха не пинайте сильно :)
Спасибо сказали:
Аватара пользователя
Hater
Сообщения: 165
ОС: Archlinux

Re: Проект по созданию учебных проектов

Сообщение Hater »

MUTOgen писал(а):
13.08.2008 14:21
P.S. Если идея плоха не пинайте сильно

Если ты студент, то мне кажется отличной идеей подойти с этим вопросом к преподавателям. Они с огромным удовольствием тебе придумают задачу. Я вот на свою беду подошёл с этим вопросом к своему зав. кафедрой :). Теперь он от меня не может отстать с идеями. Сейчас с его помощью пишу проект для ОЭМК.

По теме: предлагай спектр тем, инструментов - попробую придумать задачу.
last.fm user Hater-X
Спасибо сказали:
Аватара пользователя
Crazy
Сообщения: 862
Статус: Адепт Дзен.
ОС: Mint, Win7.

Re: Проект по созданию учебных проектов

Сообщение Crazy »

Начни изучать проектирование.
Например "Объектно-ориентированный анализ и проектирование с примерами приложений" Г. Буч.
Как сказал Парнас
Любыми средствами можно писать и плохие, и хорошие программы.
Если не учить людей проектированию, то языки не имеют
большого значения. Результатом будут плохие разработки с помощью этих
языков и малая выгода. А если выгода невелика, то ООП не войдет в моду.

Desipere in loco
Спасибо сказали:
Аватара пользователя
MUTOgen
Сообщения: 343
Статус: i like the way you move
ОС: OpenSuse 11.1

Re: Проект по созданию учебных проектов

Сообщение MUTOgen »

Hater писал(а):
13.08.2008 14:53
По теме: предлагай спектр тем, инструментов - попробую придумать задачу.

Ну спектр тем можно предложить например такой: управление процессами, многопоточность, возможно что-то из разряда сетевого программирования... Если для новичков, то например: работа с файлами/директориями, управление вводом/выводом.... даже не знаю что еще можно... хотелось бы чтобы форумчане что-нибудь по напридумывали тоже :)
Спасибо сказали:
Аватара пользователя
Hater
Сообщения: 165
ОС: Archlinux

Re: Проект по созданию учебных проектов

Сообщение Hater »

MUTOgen писал(а):
13.08.2008 21:03
Если для новичков, то например: работа с файлами/директориями, управление вводом/выводом....

Совсем недавно брату курсач по ОС делал: эмулятор командной строки linux для windows (к формулировке не придерайтесь - не я придумал). Суть в реализации некоторых команд: ls, chmod, diff, mkdir, cat, more, egrep и что-то ещё с заданным набором ключей и опций + перенаправление ввода-вывода + реализация масок. Например такая задача :rolleyes:
last.fm user Hater-X
Спасибо сказали:
Аватара пользователя
MUTOgen
Сообщения: 343
Статус: i like the way you move
ОС: OpenSuse 11.1

Re: Проект по созданию учебных проектов

Сообщение MUTOgen »

Hater писал(а):
13.08.2008 21:31
MUTOgen писал(а):
13.08.2008 21:03
Если для новичков, то например: работа с файлами/директориями, управление вводом/выводом....

Совсем недавно брату курсач по ОС делал: эмулятор командной строки linux для windows (к формулировке не придерайтесь - не я придумал). Суть в реализации некоторых команд: ls, chmod, diff, mkdir, cat, more, egrep и что-то ещё с заданным набором ключей и опций + перенаправление ввода-вывода + реализация масок. Например такая задача :rolleyes:

отличная задачка! ждем еще предложений в топик :)
Спасибо сказали:
Аватара пользователя
whirlwind
Сообщения: 67

Re: Проект по созданию учебных проектов

Сообщение whirlwind »

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

Так что лучше первые пять тысяч (а еще лучше десять) строк кода напишите для себя. Поставьте простую задачу, хотя бы текстовый редактор. Главное, четко сформулируйте вначале и заставьте себя реализовать больше 80 процентов этого задания. Однозначно, выполнение такого квеста сделает вас намного мудрее.

Ну, поскольку с предидущим абзацем вряд ли кто-то согласится, вот вам идея. В библиотеке QT не хватает компоненты для отрисовки графиков. Есть какая-то, но она довольно сильно навороченная и сложная (с руководством на сотни страниц). В общем, точно нет ничего, что могло бы сравнится по удобству с TeeChart в Delphi (интересно, знает ли сейчас кто-нибудь, что такое Delphi?;)).

Можно взять уже существующий проект и попробовать его допилить до правильного состояния. Проект, видимо, все еще пребывает в заброшенном состоянии, можно смело пробовать брать. Наверное. Там система обьектов, которую стоило бы упростить, отсутствие документации и комментариев. Практически боевые условия ;) В общем, советую. Сам к нему никакого отношения не имею, просто случайно наткнулся. пробовал допилить, но не сложилось
Добро всегда побеждает зло. Мы победили, значит мы - добро.
Спасибо сказали:
Аватара пользователя
MUTOgen
Сообщения: 343
Статус: i like the way you move
ОС: OpenSuse 11.1

Re: Проект по созданию учебных проектов

Сообщение MUTOgen »

whirlwind писал(а):
13.08.2008 23:36
не обижайтесь, но, чесно говоря, я бы студенту ничего серьезного не доверил бы. С одной стороны, вдруг интерес упадет, результат будет глючным и кривобоким. А самые старательные могут уйти в другую крайность, понапихают в код обьектов, паттернов и всяких прочих идеологий, там где можно было бы и обойтись. Это я так, вспоминая себя и своих друзей 3-5 лет назад, да...

Нет, ну конечно понятно, что студенческие программы не отличаются идеальной проектной основой, и компактным, продуманным, строго организованным исполнением. Это хотя бы оттого, что иногда программки делаются "на коленке" и отсюда все их недочеты (сам помню случай у себя когда по хорошему надо было бы сделать динамическое выделение памяти исходя из других данных, но т.к. требовалось чтобы все работало через минуту - пришлось просто в начале выделить массиву памяти аж на 10000 элементов ;) ).

Но писать все равно нужно, и нужно запоминать ошибки и не допускать их в дальнейшем. Это я считаю и есть опыт.
Спасибо сказали:
Аватара пользователя
Ben Aceler
Сообщения: 185
ОС: Various Linux

Re: Проект по созданию учебных проектов

Сообщение Ben Aceler »

Почитайте опыт Berkeley, они же всё-таки с помощью студентов написали BSD.
Участник NNLUG и KDE, директор ООО "Элсис".
Спасибо сказали:
Аватара пользователя
Lady
Сообщения: 14

Re: Проект по созданию учебных проектов

Сообщение Lady »

hi
Я училась программировать ледующим образом:
Брала учебник по программированию (а лучше два-три), читала от корки до корки, выполняя все задания, которые попадаются после глав. Это дает очень хорошую возможность еще глубже понять пройденный материал. Да, проектом это не назовешь, поэтому я додумывала сама и доводила каждое задание до "своего" логического конца. Это не так хорошо работает, когда просто учишь программирование по таким книгам как Прата. Вот когда вы переходите на системное программитрование, или опускаетесь еще глубже (это уже об ассемблере), вот тут уже действительно появляется простор для воображения.
Я обычно редко когда читаю какую-то одну книжку. Обычно что-то по программированию и что-то по безопасности/взлому, поэтому идей занять себя придостаточно.
Спасибо сказали:
Аватара пользователя
RasenHerz
Сообщения: 1341
ОС: Arch Linux amd64

Re: Проект по созданию учебных проектов

Сообщение RasenHerz »

Lady писал(а):
14.08.2008 00:21
Вот когда вы переходите на системное программитрование, или опускаетесь еще глубже (это уже об ассемблере), вот тут уже действительно появляется простор для воображения.
Я обычно редко когда читаю какую-то одну книжку. Обычно что-то по программированию и что-то по безопасности/взлому, поэтому идей занять себя придостаточно.

Я в принципе так и учился; вот ток книжка по хакингу у меня была всего одна - Джон Эриксон "Хакинг. Искусство Эксплойта", которую прочел только для того чтобы сделать свои программы правильней и безопасней, а от эксплойтинга я отказался - у меня включена рандомизация адресного пространства, так что написание эксплойта на моей системе просто пытка))).
Но на мой взгляд, самым эффективным способом обучения является помощь какому-нибудь проекту, во-первых, вы научитесь работать в команде, что очень важно, во-вторых, у вас есть возможность учится у более опытных программистов, которые если что помогут советом; ну и в-третьих, у вас есть шанс заработать себе имя)))
Спасибо сказали:
Аватара пользователя
MUTOgen
Сообщения: 343
Статус: i like the way you move
ОС: OpenSuse 11.1

Re: Проект по созданию учебных проектов

Сообщение MUTOgen »

RasenHerz писал(а):
14.08.2008 07:14
Но на мой взгляд, самым эффективным способом обучения является помощь какому-нибудь проекту, во-первых, вы научитесь работать в команде, что очень важно, во-вторых, у вас есть возможность учится у более опытных программистов, которые если что помогут советом; ну и в-третьих, у вас есть шанс заработать себе имя)))

Согласен с этой мыслью. Это было как раз одним из "за" для меня, когда я думал создавать ли тему. Возможно кто-то найдет для себя новые задумки, идеи и возможно откроет новый проект по созданию какого-нибудь ПО в соседней теме :)
Спасибо сказали:
Аватара пользователя
Hater
Сообщения: 165
ОС: Archlinux

Re: Проект по созданию учебных проектов

Сообщение Hater »

Раз уж тема создана, то прошу придумать задачу на использование удалённых объектов. Что-то в голову никаких идей не приходит...
last.fm user Hater-X
Спасибо сказали:
Аватара пользователя
MUTOgen
Сообщения: 343
Статус: i like the way you move
ОС: OpenSuse 11.1

Re: Проект по созданию учебных проектов

Сообщение MUTOgen »

Hater писал(а):
14.08.2008 23:13
Раз уж тема создана, то прошу придумать задачу на использование удалённых объектов. Что-то в голову никаких идей не приходит...

не очень понял о чем идет речь... :unsure:
Спасибо сказали:
Аватара пользователя
Hater
Сообщения: 165
ОС: Archlinux

Re: Проект по созданию учебных проектов

Сообщение Hater »

MUTOgen писал(а):
14.08.2008 23:32
Hater писал(а):
14.08.2008 23:13
Раз уж тема создана, то прошу придумать задачу на использование удалённых объектов. Что-то в голову никаких идей не приходит...

не очень понял о чем идет речь... :unsure:

Ну вызов методов удалённых объектов (CORBA, SOAP, RMI).
last.fm user Hater-X
Спасибо сказали: