Новинарски форум

Примерни теми за курсови работи

Примерни теми за курсови работи

от Лазар Кирчев -
Number of replies: 2
Здравейте,

Ето списък от по-конкретни задачи, които могат да свършат работа за курсови проекти. Напълно свободни сте да предложите собствена идея за курсова работа и да работите по нея, стига да има връзка с предмета на курса. Ако имате такива идеи, моля свържете се с нас, за да преценим дали идеята е подходяща за курсова работа.




Application projects


Тук сме набелязали по-end2end приложения, които е разумно да работят в Cloud. Не държим да има fancy и eye catching UI :). Основната идея е да се предостави някаква смислена услуга, която да е лесно хоризонтално скалируема, благодарение на ползваната отдолу PaaS.
  1. Търсене във филмови ревютаДа се напише приложение, което търси по ключови думи във филмови ревюта. За събиране на филмови ревюта може да се използва някое (като например , http://developer.nytimes.com/docs) . Събраните данни могат да се индексират с библиотека за индексиране, по-конкретно – . Търсенето може да бъде извършено с Приложението трябва да позволява търсене по различни критерии – филмови заглавия, имена на актьори, оценки за филма (, или произволни ключови думи от самото ревю. За филмите, включени в резултата от търсенето, трябва да се извеждат и връзки към трейлърите. Търсене в базата с филми на Да се напише приложение, което търси по ключови думи в базата с филми на . Базата може да се намери в текстов формат на http://www.imdb.com/interfaces#plain. Базата може да се индексира с библиотека за индексиране, по-конкретно – . Търсенето може да се реализира с Приложенито трябва да позволява търсене по различни критерии – филмови заглавия, имена на актьори, оценки за филма (, или произволни ключови думи от самото ревю. За филмите, включени в резултата от търсенето, може да се извеждат и връзки към трейлърите. Филтър за новиниДа се напише приложение, което филтрира новини по предварително зададени ключови думи. За събиране на новини може да се използва някое (като например А, http://developer.nytimes.com/docs). Събраните новини могат да се индексират с библиотека за индексиране, по-конкретно – . Търсенето трябва да бъде извършено с

    Филтър за постовеДа се напише приложение, което филтрира постове по предварително зададени ключови думи. За събиране на постове да се използва Tweeter API (http://developer.nytimes.com/docs). Събраните постове могат да се индексират с библиотека за индексиране, по-кокретно – Apache Lucene. Търсенето трябва да бъде извършено с

    Търсене в електронна пощаДа се напише приложение, което търси по ключови думи в писмата от електронна поща. Първоначалният вход от писма може да се получи като се свалят писмата от уеб базирана електронна поща посредством пощенски клиент (като например Събраните писма могат да се индексират с библиотека за индексиране, по-кокретно – . Търсенето трябва да бъде извършено с Филтър за спамДа се напише прост спам филтър. За целта трябва да се обработи голямо първоначално количество от спам писма, като от тях се определи от кои електронни адреси се изпращат най-много писма с често повтарящ се . Филтърът трябва да спира писмата от тези адреси. Също така трябва да позволява и задаване на ключови думи, по които да филтрира писмата. Писмата могат да се индексират с библиотека за индексиране, по-кокретно – . Търсенето трябва да бъде извършено с

    приложениеДа се напише уеб базиран чат за Приложението трябва да използва следните за пазене на потребителски за изпращане/мултикастинг на съобщенияМail API

    - Users API (за автентикация с -и)

    Както видяхме по време на упражненията, има слабости в съществуващите поддръжки за различни бази, както и например за В тази категория слагаме всякакви задачи, които допринасят за по-добрия В основни линии, позволяваме максимална гъвкавост – може да изберете да напишете за популярно , или да добавите своя принос към вече съществуващ такъв проект. Можете да разработите и самостоятелно приложение, което да предложи нещо полезно и ново, макар и малко. Основната ни цел е да си изберете нещо, с което ще ви е интересно да се занимавате – да прочетете за самия да разучите съответните -та и т.н. усмивка. Да се подобри съществуващия Eclipse plug-in за Hadoop. Например, може да се добави някаква автоматична помощ към с която по-лесно да се разработват приложения – да се помогне при избора на конкретна версия на то, за да не се губи време в „чудене” с коя ще сработят нещата, и с коя не.Да се разработи графичен клиент за HDFS, който да позволява лесна интуитивна работа, доближаваща се до тази с обикновена файлова система.Вече съществува такъв така че за начало ще е добре да се провери какво предлага той, за да не се застъпиме. Конкретно, ще е добре да се направи поддръжка за описание на документи, при ползване на базата с клиента. Вместо да се описват като -ове, трябва да може да се описват в Тук ще е полезно да се разучи поддръжката в и да се прецени дали не може да се направи интеграция с нея.програми. Да се напише програма, която може да визуализира последователността от MapReduce job-ове, до която се компилира една програма (т.нар. execution plan).6. Мобилно приложениеНе забравяйте, че има и още -ци, като базата , които не сме разглеждали в курса, но за които ще е напълно валидно да си набележите някаква смислена задача, и да я реализирате като курсов проект. Ако вашият проект се не към някакъв по-голям такъв (а и да не стане това), ще може той да просъществува далеч по-дълго от курса усмивка, и да го развивате с времето. Всъщност, това ще е истински ценното нещо от цялата работа.


    Малко полезни линкове:


    Работа с HBase колони

    По-лесна работа с HBase API-то

    Eclipse plug-in за MongoDB

    MapReduce обработка върху HBase



    MapReduce vs. Dryad

    Който не се чувства комфортно с Java, или пък има желание за разработка, по-близка до Microsoft технологиите, може да ни представи идея за проект на DryadLINQ. Погледнете например тук.



    Забележка 1: Когато става дума за Hadoop MapReduce, напълно е допустимо да ползвате и някой по-high level layer, като например Pig.

    Забележка 2: Ако някой студент не е напълно наясно как да подходи с дадена задача, но пък му е интересна и би желал да я вземе, то ние сме напълно свободни, например по мейл, за постоянна консултация и съвети по време на разработката. Моля, не се притеснявайте да ни питате, и да ни пишете.

    Забележка 3: Напълно допустимо е да се разработи групов проект - т.е. няколко студенти да си изберат обща задача.

    Забележка 4: Имате свободата сами да си решите как да се оформи приложението. Например, на определено място (в идеалния вариант това е някакъв cloud) слагате backend-a, а front end-ът е някакъв прост, елегантент, примерно за iPhone :) - или каквото друго там искате и ви е приятно да разцъкате ...

    Забележка 5: Остава в сила вариантът да се включите с early appearance - доклад. Ще преценим заедно какъв процент от оценката да ви донесе това. Има още време, не е късно ! :)

    Забележка 6: Дадените от нас примери могат да се модифицират, т.е. условията, описани по-горе, не са напълно строги, и може да работите върху някакъв по-различен вариант, стига да го уточним заедно. Особено податливи на измисляне на такива етюди са tooling задачите. Съществуват доста започнати open source tooling проекти, и вашата курсова работа може да се изразява в създаването (и евентуалното contribute-ване) на няколко feature-а към някой такъв проект.


    Вашите предложения ? :)

    Както писахме в другата тема във форума, ще имате приблизително месец за работа върху проектите.

    Поздрави,
    Илиян, Крум, Лазар.
In reply to Лазар Кирчев

Re: Примерни теми за курсови работи

от Лазар Кирчев -
Като добавка към tooling темата, наскоро ми попадна следния проект: http://robots.thoughtbot.com/post/6037147900/radish-dig-deep-into-redis, което е някакъв administrative/monitoring tool за NoSQL базата Redis.
Изглежда наистина това е активна и плодотворна област за работа. Например наскоро се появи Cassandra Query Language - CQL: http://nosql.mypopescu.com/post/6152676064/cassandra-0-8-featuring-a-query-language-and, който проект също дава не малко идеи за tooling интеграция.

Поздрави,
Крум.