Cursul de Dezvoltare Liberă v6
Ce este CDL?
Cursul de dezvoltare liberă este un curs/laborator alternativ, cu o durată de 8 - 9 săptămâni, dedicat tuturor elevilor și studenților pasionați de programare, despre dezvoltarea de software liber, despre unelte utile și despre ce înseamnă o comunitate open source.
În urma succesului cursului de anii trecuți ne bucurăm să vă anunțăm că anul acesta va avea loc cea de-a șasea ediție a cursului, iar componența cursului va fi asemănătoare celei de anul trecut.
Aflați mai multe în acest blog post. :)
Alte ediții: 2012, 2011 toamna, 2011 primăvara, 2010, 2009.
Urmărește ultimele noutăți despre CDL pe Facebook, Google+ și Twitter.
Notă: Cursul nu intră în programa școlară și nu aduce credite în plus.
Cursanți CDL
Nume | Grupa | Proiect |
---|---|---|
Adrian Mihai Iosif | 311CC | Moodle |
Alexandru Tifrea | Anul 1 | CMUSphinx |
Andrei Dincu | 324CB | WHC:IDE |
Andrei Preda | 323CA | WHC:IDE |
Andrei Vasilescu | 311CC | Moodle |
Andrei Dorian Duma | 315CA | vmchecker+mozaic.js |
Andrei Gabriel Macavei | 314CB | I, GameBot |
Bogdan Breșug | 323CC | vmchecker+mozaic.js |
Bogdan Gabriel Ciobanu | 312CB | vmchecker+mozaic.js |
Constantin Eduard Stăniloiu | 314CC | kreator.js |
Cornel Radu | 323CC | WoUSO on Android |
Cosmin Boacă | 314CC | CMUSphinx |
Cristian Alexandru Mocanu | 315CC | Audacious |
Cristian Ojog | 321CA | Firefox Add-ons |
Dragoș Georgian Corlătescu | 315CA | WoUSO on Android |
Georgiana Diana Ciocîrdel | 315CC | WoUSO on Android |
Horia Cărbune Cosac | 311AC | DexOnline |
Ionel Popescu | 312CC | WoUSO |
Mădălina Hristache | 313CC | Audacious |
Nicolae Bădescu | 314CC | WoUSO |
Robert Marian Bindar | 312CC | Firefox Add-ons |
Vă mulțumim tuturor pentru interesul acordat Cursului de Dezvoltare Liberă. Fiecare aplicant, inclusiv cei care nu au fost acceptați, va primi un feedback detaliat în curând, feedback ce sperăm să vă ajute la următoarele aplicații.
Curs 1
- Prezentarea proiectelor Detalii
Curs 2
- Open Source Collaborative Tools
- Git Detalii
Curs 3
- Vim
- POO Detalii
Curs 4
- Code Readability
- JavaScript Detalii
Curs 5
- Oportunități IT
- GTK
Curs 6
- ###
- ###
Curs 7
- ###
- ###
Curs 8
- ###
- ###
Curs 9
- ###
- ###
Calendar
Proiecte
Dacă ești unul dintre studenții înscriși la ediția de anul acesta a Cursului de Dezvoltare Liberă, te invităm să afli mai multe despre proiectele la care ai putea să lucrezi semestrul acesta!
Contact
Ne găsiți pe canalul de IRC #rosedu pe Freenode sau ne puteți trimite un mail la cdl@rosedu.org.
Organizatori și organizare
Cursul de Dezvoltare Liberă (în engleză Community & Development Lab) vă este adus de Echipa ROSEdu.
Despre site
Puteți găsi repository pentru acest site pe GitHub
Credits
(în ordine alfabetică):
Taygun Agiali, Dragoș Badea, Teodora Băluță, Mihai Bivol, Marius Coțofană, Răzvan Deaconescu, Cosmin Didii, Gina Dobrescu, Mihnea Dobrescu-Balaur,
Alex Eftimie,
Andrei Ismail, Gabriel Ivănică,
Mihai Maruseac,
Veaceslav Munteanu,
Andrei Oprea,
Mihai Oprea,
Andrei Petre, Sorina Sandu, Bogdan Săndulescu, Ioan-Mihail Stan, Dan Șerban,
Mihai Tiriplică, Alex Tomescu, Mihai Trifu, Laura Vasilescu, Bogdan Vlad, Mihai Zamfirescu și prietenii.
Condiții și drepturi de folosire
ROSEdu deține drepturile asupra întregului conținut al acestui sait.
ROSEdu, în calitate de deținător al drepturilor de autor, eliberează conținutul acestui sait sub licența GNU Free Documentation License v1.2. În acest sens, accesul, distribuția și modificarea conținutului sunt libere, cu condiția păstrării autorilor inițiali. Se recomandă folosirea sintagmei "Documentație originală scrisă de membrii asociației studențești ROSEdu".
Pentru informații suplimentare, te așteptăm pe lista generală a ROSEdu sau pe canalul IRC #rosedu.
What is CDL all about?
The free Open Source Community and Development Lab is a course organized by ROSEdu at University Politehnica of Bucharest.
Currently, at
its 5th edition, the course aims to help enthusiast undergraduate
students at University Politehnica of Bucharest to make their first contributions within an open source project and to get a feeling of what real world software development actually means.
The topics covered by this course range from programming language specifics (such as C++/Python/Java/PHP), highlighting object oriented programming concepts and design patterns, to proper project management tools and community integration.
The main components of our course are:
- Theoretical presentations combined with practical laboratories to help students gain technical expertise using various programming languages and open source tools
- Development sessions under the guidance of experienced mentors to help students work on specific features of an open source project
- Presentations held by invited guests, industry leaders of the Romanian IT community with various topics (careers in software engineering, startups, technology).
CDL v5.0
Another CDL edition is over!
We had the lucky 13 number of participants. All the students worked on their projects, and at first some didn’t know what to expect of the project. They received constant support from their mentors, had hackathons, technical presentations (git, vim, python, gsoc opportunities and more), and also soft skills presentations (about leadership, innovation, open source etc.). According to the students’ feedback, most of their expectations were greatly exceeded.
The projects we had were Pidgin, openSIPS, DEXonline (as always), digiKam (a former CDL student now mentoring for it) and awouso (android + WoUSO, another traditional project of ROSEdu). The Dexonline team implemented a very fun Hangman game that’s playable on Dexonline’s homepage. This enjoyed so much popularity that it got featured in a newspaper article. It includes difficulty levels, try it yourself at http://www.dexonline.ro.
Thanks to Ixia’s constant support, we’ve managed to have fun after CDL yet again. This time we went on a trip to Bran, Brasov. One can tell we all had a great time by just looking at 10 facebook pictures. Eau de Web brought joy to all of us with a lot of technical books personally recommended by Eau de Web’s employees. And last but not least, Google has offered swag for everybody, including some t-shirts with G+ (very cool).
CDL v4.0
The 4th edition of the Open Source Development Course is over!
After 9 weeks of hard work, commitment and enthusiasm on behalf of both the participants and the mentors, it is safe to say that this was a truly successful edition of the course!
The outcome was, undoubtedly, remarkable! At the end of the course each team put forward new functionalities that were implemented as patches to the main projects, and that made it back into the mainstream.
And because we are not the only ones to believe in the importance of this course, this year Eau de Web, Google and IXIA contributed by rewarding the participants with prizes!
Eau de Web offered books on Open Source and development to each student while IXIA offered a trip to Busteni for the participants and the organizers. Thank you!
CDL v3.0
The 3rd edition of the Open Source Development Course is over!
After 9 weeks of hard work, commitment and enthusiasm on behalf of both the participants and the mentors, it is safe to say that this was a truly successful edition of the course!
The outcome was, undoubtedly, remarkable! At the end of the course each team put forward new functionalities that were implemented as patches to the main projects, and that made it back into the mainstream.
And because we are not the only ones to believe in the importance of this course, this year Google and IXIA contributed by rewarding the participants with prizes!
We especially received support from the IXIA company: a trip to Busteni for the participants and the organizers! In addition to that, we owe the facilities in the laboratory where the CDL takes place exclusively to the effort and implication IXIA has demonstrated within the faculty and within ROSEdu! Thank you!
Projects
Throughout this course, each student is assigned to work on an open source project, under the guidance of a mentor actively involved in the development and in the community of the project. We aim to bring new contributors to existing open source/free software projects.
We consider this an immense opportunity for our participants, as they can easily overcome difficulties encountered when setting up the working environment (compiling the code, getting to know how it is organized and so on). Moreover, the mentors assist the development sessions within the course, are able to directly answer technical questions and plan the feature evolution, step by step.
Last, but not least, we would like to say a big THANK YOU to all the mentors who have dedicated numerous hours of their precious time for the benefit of the participants and the success of this course.
Testimonials
Results are best measured in time, and we are delighted to hear success stories from our former participants in the software engineering field, where knowledge gained through this course has proven to be vital.
"Through the course, I have learned not only essential technical aspects, but new ways of looking at things"
"I participated in my first year as a student and in my second as a mentor. This proves how you can personally evolve through the CDL course. The experience gained through CDL helped me get involved in important open source projects, such as Google Summer of Code."
"CDL represented for me a turning point. Until then, I had no idea about how an open source project works. It turned out that I was wrong in many ways: how I should contribute code, how I should work within a team, how I would present the project I’m working on..."
"CDL has opened the doors for me to the open-source world. During this course, I learned a lot about different tools and practices that are mostly used in open-source projects, which made me a better programmer. It has also helped me a lot during my Google Summer of Code project in 2010. I am always up-to-date with the evolution of this course and I can say that the team is improving it every year. Congrats to everyone for helping new students learn the ways of open source development and Computer Science in general."
"I particularly enjoyed this course because I was able to gain knowledge in so many different fields of Computer Science."
Get involved!
We have currently limited our students contributions to communities and projects where we are able to find mentors from our university, to physically be present during the weekend hackatons within the course. This helps a lot ensuring quality for our freshman students, the target audience for CDL, since they can be easily guided on writing code efficiently for the features they are willing to work on.
However, our upcoming project is ROSEdu Summer of Code, inspired from Google's Summer of Code and sponsored (with a smaller remuneration) by our University. It has a slightly different target and stands as mandatory curricular practice for some of our university students, interested in working within an open source project. Particularly, this is a very good opportunity to attract new contributors to your project! Write us, at cdl@rosedu.org, if you are interested.
Înscriere
Trimiteți aplicația voastră pe VMChecker până marți, 19 februarie 2013 ora 23:59. Dacă nu aveți cont pe VMChecker sau primiți orice fel de eroare timiteți un mail la cdl@rosedu.org.
Aplicația constă într-o arhivă de forma "nume_prenume.zip" ce trebuie să conțină:
- Un fișier text în care să ne vorbiți despre voi: de ce vreți să vă treziți în fiecare sâmbătă dimineața pentru a veni la CDL, ce așteptări aveți de la acest curs, ce experiență aveți (dacă aveți), dacă ați mai lucrat sau nu în echipă (nu neapărat programare), cu ce limbaje de programare sunteți familiari, ce v-ar plăcea să învățați în urma acestui curs etc. Acest fișier va conține și datele personale: nume, prenume, adresa de mail și numărul de telefon (pentru a vă putea contacta)
- Rezolvarea problemei. Problema poate fi rezolvată în ce limbaj de programare doriți. Apreciem un cod curat și eficient, care aderă la un coding style acceptat.
- Un Makefile pentru compilare. Acesta trebuie să genereze un executabil numit invertedindex
- Un fișier text numit "language"care să conțină limbajul folosit: C, C++, Java.
Problema
Exemplu: dacă vă numiți Titi Gheorghiță, arhiva voastră se va numi Titi_Gheorghita.zip
Bonus! Dacă crezi că cineva poate să ne povestească ceva despre tine, contactează-l si dă-ne adresa de e-mail/nr de telefon al lui. Noi îl vom contacta pentru a afla mai multe.
Pentru a te putea pregăti pentru interviu, îți propunem o listă de taskuri / probleme model de rezolvat.
Dacă aveți orice nelămurire, puteți să trimiteți oricând un mail la cdl@rosedu.org sau pe canalul de IRC #rosedu pe Freenode.
Problema: Inverted Index
Un query este o propoziție logică de forma:
token(1) operator(1) token(2) operator(2) ... operator(k-1) token(k)
Unde token(i) este un cuvânt format din caractere alfanumerice oricare ar fi i, iar operator(i) aparține mulțimii {'|','&'} oricare ar fi i. Operatorul '&' este echivalent cu "și" logic, iar operatorul '|' este echivalent cu "sau" logic. Pentru simplitate, se consideră că cei doi operatori ('|' și '&') au aceeași prioritate.
Cerință
Având date n fișiere și m query-uri să se stabilească pentru fiecare query fișierele care îl respectă(la evaluarea acestui query se obține valoarea true). Pentru a determina valoarea de adevăr a unui query veți folosi InvertedIndex.
Date de Intrare
- Un fișier numit input.in. Acesta va conține pe prima linie numărul de fișiere n. Pe următoarele n linii se vor afla numele fișierelor pe care vor fi testate query-urile. Pe linia n+2 se va afla numărul de query-uri m. Pe următoarele m linii se vor afla cele m query-uri.
- n fișiere text. Numele fișierelor trebuie să corespundă cu cele din fișierul input.in.
Date de Ieșire
- Fișierul de ieșire se va numi output.out. Acesta va conține m linii de forma:
query: index_fisier1 ... index_fisier_k
unde index_fisier_1, ..., index_fisier_k sunt numerele de ordine ale fișierelor pentru care valoarea query-ului este true.
Schelet de Cod
- Scheletele de cod pentru C, C++ și Java le găsiți pe GitHub.
Observații
- n, m - numere naturale nenule mai mici decât 500
- lungimea unui query este variabilă
- între token-uri și operatori este un singur spațiu
- Lungimea unei linii dintr-un fișier este de maxim 2000 de caractere
- Trebuie respectat scheletul de cod pentru limbajul ales
- Problema se testează pe Linux, dar terminatorii pentru fișierele de intrare sunt CLRF !
- Aveți grijă la separatorii din fișierele de text! Nu orice nu este alfanumeric este considerat separator. Spre exemplu, cratima nu este considerată separator, dar semnele de punctuație și spațiul da.
Exemplu
Pentru fișierul de intrare:
2 data1.in data2.in 3 Ana Ana | mere Ana & mere
și fișierele:
- data1.in
Ana are mere si pere
- data2.in
In copac sunt mere
se va obține ieșirea:
Ana: 0 Ana | mere: 0 1 Ana & mere: 0
Exemplu test
Puteți găsi un exemplu de test pe GitHub.
Explicații
- Primul query are valoarea true dacă în fișier se găsește cuvântul "Ana".
- Al doilea query are valoarea true dacă în fișier există fie cuvântul "Ana", fie cuvântul "mere", fie ambele cuvinte
- Al treilea query are valoarea true dacă în fișier există și cuvântul "Ana" și cuvântul "mere"
Informații utile
http://en.wikipedia.org/wiki/Inverted_index
Cursul 1
Project Management / Redmine
- Autor: Răzvan Deaconescu
- Prezentare: pdf
Despre GSoC
- Autor: Mihai Bivol
- Prezentare: pdf
Proiect CDL: World of USO
- URL:http://wouso.rosedu.org/wousodjango
- Repo and Development: https://github.com/rosedu/wouso
Descriere
World of USO este o platformă online de învățare, asemănătoare cu un joc de cunoștințe. O modalitate interactivă și distractivă prin care studenții pot învăța noținui legate de Linux și cultură IT.
Jocul este destinat studenților de anul I la Calculatoare, la materia Utilizarea Sistemelor de Operare, dar în viitor sperăm să-l extindem și pentru alte materii.
World of USO este dezvoltat in Django. Informații despre Django găsiți aici
TODO
- Rezolvarea cât mai multor bug-uri:Issues
- Un nou mod de atac, RAID
Este necesar să
- Vreți să lucrați la WoUSO
- Vreți să învățați Python, Django, eventual și JavaScript/JQuery
Mentori
- Iulian Stana
Proiect CDL: VMChecker + mozaic.js
In this project we want to build a responsive web interface using mozaic.js that will streamline the usage of vmchecker.
vmchecker is an open source tool for automatic homework evaluation, developed by the ROSEdu community.
mozaic.js is an open source framework developed by @ubervu for building complex single page applications for the browser (think GMail and Twitter).
Details
You have all used vmchecker before and you know that sometimes it's a pain.
In this project we want to fix two urgent issues about it:
- the inefficient way in which a student can check his/her homework grades and TA's observations, constantly having to refresh the application to see if their homework has been graded.
- the TA's have difficulties checking the homework's source code, running the automated test suite and making observations on the code itself. For example to see the source code of your homework they have to ssh into the server storing the homeworks and review it from there.
Solution
Inspired by github's interface, the solution we're proposing is a single page application where:
- Students can easily see the problems text, their grades, the TA's observations, and the tests results all in one page.
- The app will automatically email all this information to the student when a TA has finished checking his homework, so no more frantic refreshes needed.
- For TA's we will implement an interface where they can see the results of the test suite, the source code of the homework and make comments on individual source lines.
- Below is a screenshot from github that approximates what we have in mind for the TA's interface:
Tasks
- Use mozaic.js to rebuild the ui for the homework results page.
- Use mozaic.js to build the TA's ui and help them grade the homeworks easily.
- Implement a python email alerts system to notify the student when his/her homework is graded.
- If we will have enough time, we will try to implement more features for the applicatons.
Tech
The project implemetation will be done using mozaic.js which was designed to help you build single page apps that will run on any platform, browser or form-factor.
Mozaic is built on top of great open source projects.
Intimate knowledge of these projects is not required. What is required is the will and interest to learn them.
- coffeescript - is a programming language that transcompiles to javascript code. Its syntax is similar to ruby and python. The coffeescript code is concise and expressive. The compiled javascript code is easy to read and is teeming with best practices. It's actually a good way to learn javascript.
- backbone.js - minimalist application framework. It's the backbone of mozaic providing Models and Collections that sync data with server, Views and basic Router functionality.
- underscore.js - is a small toolset that offers useful functionality missing from standard js. It's also a dependency for backbone.
- jquery.js - levels up all browser inconsistencies (e.g. DOM events, DOM traversal, AJAX) and provides an excellent base for javascript applications.
- require.js - indispensable tool for large apps, require.js helps keep mozaic code modular. It also manages module dependencies.
What will you learn on this project
First and foremost, you will learn the startup's approach to doing projects: getting things done!
You will learn the tools, techniques, tricks and hazards of developing state of the art web applications.
You will learn to develop code socially using github.
You will learn to create high quality code by testing it in a behavior driven way.
Proiect CDL: WHC:IDE
- Development: https://github.com/veaceslav/WHC-IDE
Descriere
WHC Core este destinat executării pogramelor în sisteme distribuite precum sunt clusterele sau o rețea de calculatoare. Pentru a folosi la maxim toate resursele disponibile, programele sunt bazate pe OpenCL, folosind atât resursele disponibile pe partea de CPU cât și pe partea de GPU(Placa grafică).
WHC IDE este destinat dezvoltării programelor care rulează pe clustere. Compilează și rulează proiectele local, însă e în stare să folosească atât procesorul, cât și placa grafică. Include un editor text, diagramă pentru reprezentarea workflow-ului și creare/management proiect. Aici este un model grafic despre organizarea unor module în WHC IDE și interdependențele:
Model Grafic
Descriere Task-uri
La moment WHC IDE este în proces de trecere la TDD(test driven development), deci se acceptă in repo doar teste, sau features+ teste. Pentru a vă familiariza cu codul, la început vor fi propuse câteva task-uri ușoare(10 min pentru mine, dar eu cunosc tot codul):
- [BUG] Execuția eșuează dacă folderul Execute nu este prezent in directoriul task-ului. De adaugat o verificare suplimentară a directoriului unde se scrie.
- [BUG] Programul nu poate copia fișierele de output daca Data Folder-ul nu există. De creeat directoriul inainte de copiere.
- [BUG] La redenumirea unui Task/Data, elementele din diagramă nu se redenumesc.
- [TESTS] Teste, la alegere pentru oricare componentă netestată.
Task-uri Intermediare
Task-urile intermediare nu sunt dificile însă, trebuie scris mai mult decât câteva rânduri de cod:
- [FEATURE] La crearea proiectului, este necesar să fie creeată o clasa main.c sau .cpp în care să se exemplifice modul de utilizare a argumentelor folosite de IDE la rulare
- [FEATURE] Parsarea fișierului CMakeList.txt pentru identificarea numelui executabilului creat de acesta.
- [REFACTORIZARE] Unificarea tuturor setărilor într-o singură clasă(structură)
Task-uri Heroes Needed
- [BUG] Syntax Highlighting-ul din setări corupe fișierele de configurare.
Tehnologii folosite
- C++/Qt
- Qt Unit Test Suite
- cmake
- OpenCL
Cunoștințe necesare
- C/C++,OOP (cel puțin, C + partea de structuri in C sa o cunoașteți foarte bine)
- Git - foarte important. înainte de a începe lucrul la proiect, creați-vă un cont pe github.com și exersați comenzi de git (creare, pull, push, creare branch-uri, rezolvare conflicte).
- Qt API - opțional, dar binevenit
Parcurgeți
Recomandăm să citiți/parcurgeți următoarele:
Observații
- Pentru lucrul la acest proiect, aveți nevoie de un sistem, preferabil Linux, cu Qt SDK instalat + QtCreator
- În repo-ul de git este disponibil un .pro pentru QtCreator și un CMakeLists.txt pentru cmake.
- Aveți nevoie de un calculator cu un procesor dual-core(nu conteaza de ce tip)
- Pentru a fi eficienți, vă sfătuiesc să parcurgeți tutorialul Qt + să experimentați cu git înainte de începerea cursului. Cunoștințele de git vă vor ajuta la orice proiect open-source, nu doar la WHC IDE sau cele prezentate la acest curs.
- Pentru întrebări suplimentare nu ezitați să mă contactați Veaceslav Munteanu slavuttici at gmail punct com
Responsabili
- Veaceslav Munteanu slavuttici at gmail dot com
Proiect CDL: Firefox Add-ons
- Development:
Descriere
Dezvoltarea de add-ons pentru cel mai popular browser open source -
Mozilla Firefox. Utilizând noul SDK se pot crea extensii atât pentru platformele
desktop, cât și pentru cele mobile (Android). Asemenea browser-ului majoritatea
extensiilor sunt proiecte open source, cei interesați putând foarte ușor să contribuie
atât la extensiile existente cât și să dezvolte unele noi.
Popularitatea browserului Firefox se datorează în principiu acestor extensii.
Oricine se poate alătura comunității de sute de dezvoltatori.
Tehnologii
ADD-on SDK: https://addons.mozilla.org/en-US/developers/docs/sdk/latest/
Cunoștințe necesare
- JavaScript (cel puțin cunoștințe de bază despre JavaScript - dezvoltarea se va face în JavaScript)
- GHTML, DOM, parsare XML (necesare pentru parsare, aterare structură HTML)
- CSS (nu obligatoriu)
- module CommonJS (nu obligatoriu)
- XUL și XPCOM (tehnologiile folosite pentru interfața grafică a browserului - se învață pe parcurs)
Resurse disponibile
- Mozilla MDN - pentru orice informație despre Firefox și tehnologii web
- XPCOM - https://developer.mozilla.org/en-US/docs/XPCOM
- Module CommonJS - http://www.commonjs.org/specs/modules/1.0/
- Pentru codul sursă al extensiilor existente - http://www.commonjs.org/specs/modules/1.0/
- Codul sursă al browserului, dacă este necesarhttp://mxr.mozilla.org/
Despre proiecte
Nivelul de cunoștințe necesare depinde foarte mult de complexitatea extensiei
dezvoltate: de la JavaScript basic + HTML până la extensii ce necesită comunicarea
cu un server (PHP, Ruby sau orice alt limbaj server side).
Studenții pot lucra la propriile lor idei de extensii sau pot alege una din
variantele propuse.
Informații suplimentare
- Se poate lucra pe orice platformă OS (Windows, Linux, Mac).
- Recomand folosirea unui IDE pentru JavaScript, HTML și CSS. Spre exemplu, Aptana (atât pe Linux, cât și pe Windows).
- Pentru orice alte informații sau idei de proiecte, vă rog să mă contactați
la adresa:
gabriel(dot) ivanica(at)gmail(dot)com.
Responsabili
- Gabriel Ivănică
Proiect CDL: DexOnline
- URL: http://dexonline.ro/
- Development: http://wiki.dexonline.ro/
- Contact: dexonline@lists.rosedu.org
Descriere
DEX online este transpunerea pe internet a unor dicționare de prestigiu ale limbii române, fiind accesat în fiecare lună de peste 1,5 milioane de vizitatori unici (locul 2 în top site-uri educație/învățământ, conform trafic.ro).
Proiectul, creat și întreținut de un colectiv de voluntari, este open source, oricine dorește având posibilitatea de a ajuta la dezvoltarea acestuia.
Descriere Task-uri
Se poate lucra la unul sau mai multe dintre task-urile:
- Test de vocabular (#233) (ceva asemănător cu http://testyourvocab.com/)
- Jocul „Moara cuvintelor” trebuie să aleagă cuvinte similare folosind trigramele (#288)
- Joculețe lingvistice în HTML5 (#257)
- Log analyzer (#206)
Cunoștințe necesare
- PHP
- MySQL
- Opțional: HTML, CSS, JavaScript, XML
Recomandări
- Recomandăm să parcurgeți tutorialele de la W3School
Responsabili
- Mihai Trifu
Proiect CDL: WoUSO on Android
Descriere
Fiind reprezentativ pentru cursul de Utilizarea Sistemelor de Operare, WoUSO on Android se dorește a fi o aplicație rapidă, interactivă și de bună calitate.
Ceea ce ne dorim noi este să aducem proiectul existent pe dispozitivele Android ale tuturor studenților ce dețin un smartphone, crescând astfel numărul de utilizatori și odată cu acesta, popularitatea aplicației.
TODO
- Îmbunătățire:
- UI
- Messages
- Question Of The Day
- Challenges
- Other Profiles/Groups
- Integrare push notifications
- Implementare search feature
- Bug fixing
De ce WoUSO on Android?
- Vă veți îmbunătăți skillurile de programare dobândind cunoștinte despre arhitectura Android OS, JDK, HTTP, JSON, XML, GIT, etc.
- Veți contribui semnificativ la dezvoltarea jocului.
- Veți stăpâni o serie de instrumente și tehnici ce vă vor permite, pe viitor, să dezvoltați chiar și propriile aplicații pentru această platformă.
Tehnologii folosite
- Pentru mediul de dezvoltare vom folosi limbajul Java. Familiarizarea cu acesta o puteți face accesând: http://docs.oracle.com/javase/6/docs/
- Android SDK:http://developer.android.com/sdk/index.html
- OAuth
- XML
Cunoștințe necesare
- Java elementar
- Arhitectură Client-Server
- POO (de preferat)
- Motivație, răbdare pentru a parcurge toate resursele pe care vi le punem la dispoziție
Resurse disponibile
- http://developer.android.com/sdk/index.html
- http://android.rosedu.org
- Beginning Android
- http://androidforums.com
Informații suplimentare
- Se poate lucra pe orice platformă OS (Windows, Linux, MAC).
- Se va folosi ca IDE Eclipse + plugin de Android.
- Ca și recomandări, instalați SDK-ul de Android și încercați să rulați pe emulator programul inițial “Hello World!”.
Responsabili
- Gina Dobrescu
- Bogdan Vlad
Proiect CDL: kreator.js
- Development: https://github.com/piatra/kreator.js
- Demo 1: http://kreator.herokuapp.com
- Demo 2: http://lab.hakim.se/reveal-js
- Demo 3: http://www.rvl.io
About
As HTML5 is getting more and more powerful, more and more people start creating presentations as HTML pages instead of PowerPoint or Keynote. A number of frameworks for HTML presentation have also been created (such as Akim El Hatab's Reveal.js framework). However, as cool as these new presentations are, creating them requires manual coding.
The goal of this project is to create a web-based slide authoring tool to author Reveal.js slides. The UI would let the users edit the content visually, chose transitions for the slides, apply shaders etc
Why this project?
- You get to learn and use JavaScript and maybe some Node.js
- It’s a fun and interesting project and practical
- It doesn’t have to be compatible with IE8
- The web is fun
Features to implement
- Save the presentation state if the user leaves the page without downloading the application
- Using 1. you could make a modification stack so that the user could roll back to previous versions (+keybindings CTRL-Z)
- Save the presentations online. Easier to share / can be viewed by others
- Code refactoring ? Interface improvements
- More options for the presentation, different effects for transitions. (see kreator or http://rvl.io)
Nice to know
- JavaScript
- HTML
- CSS
- Node.js
Resources
- http://jsforcats.com
- http://www.codecademy.com
- Contact me at andrei.br92@gmail.com, Andrei@an_rei
Mentors
- Andrei Oprea
Proiect CDL: Audacious
Descriere
Un player audio Open-Source, Audacious este un descendent direct al XMMS (read Winamp on Linux) și se ocupă doar de redarea muzicii, fără a consuma resurse pentru alte taskuri. Majoritatea funcționalității extra se obține prin intermediul unor plugin-uri.
TODO
- În principiu, vom rezolva bug-uri de la http://redmine.audacious-media-player.org/projects/audacious/issues dar dacă apar idei noi le vom putea implementa. Comunitatea este foarte deschisă.
- http://redmine.audacious-media-player.org/issues/238
- http://redmine.audacious-media-player.org/issues/237
- http://redmine.audacious-media-player.org/issues/214
- http://redmine.audacious-media-player.org/issues/190
- http://redmine.audacious-media-player.org/issues/180
- http://redmine.audacious-media-player.org/issues/163(check only, există deja un patch dar nu merge complet)
- http://redmine.audacious-media-player.org/issues/162(de văzut dacă poate fi implementat un workaround pentru limitare)
- http://redmine.audacious-media-player.org/issues/185
- http://redmine.audacious-media-player.org/issues/183
- http://redmine.audacious-media-player.org/issues/10
- http://redmine.audacious-media-player.org/issues/8
De ce?
- Majoritatea bug-urilor necesită câteva ore pentru înțelegerea codului și puțin design pentru a rezolva câte limitări ale framework-ului
- În urma proiectului, cunoștințele de C, coding style și design vor fi îmbunătățite semnificativ
- Este singurul player audio GTK care nu face lucruri inutile și este utilizabil
Tehnologii Folosite
- GTK - majoritatea bugurilor sunt legate de interfață
- Encoding MP3, etc.
- Există două repository-uri: unul pentru core app și unul pentru plugins. De fapt, pentru a putea compila de mână tot codul sunt necesare 4 repository-uri cu biblioteci diverse (libguess, libmowgli, libmcs - de la Atheme Project)
Necesar
- Cunoștințe de C
- Cunoștințe de linkare, încare biblioteci, LD_LIBRARY_PATH, etc
- Minime cunoștințe Git - se pot învăța pe parcurs dacă nu există
Resurse
Responsabili
- Mihai Maruseac (mihai at rosedu dot org)
Proiect CDL: Moodle
Descriere
Moodle este o platformă Open Source pe Internet, folosită pentru ușoara administrare a cursurilor (vezi cs.curs.pub.ro). Printre facilitățile ei, se numără încărcarea de resurse (separate între cursuri) și posibilitatea adăugării de forum pentru fiecare materie.
Ce ne propunem?
Să vă învățăm lucruri noi, și să îmbunătățim http://cs.curs.pub.ro
Task-uri
Acestea vor fi, în principal, implementate ca noi module pentru proiect:
- generarea unui orar personalizat pentru fiecare student în funcție de serie/grupă
- în cazul unei postări noi pe un thread în care utilizatorul a participat, să poată să ajungă direct la prima postare necitită de acolo
- progress bar pentru termenul limită de predare (upload) al temelor
- alte idei care ar putea fi practice
Cunoștințe Necesare
- PhP (cea mai mare parte)
- HTML
- MySQL
- Javascript
- Git
Nu este nevoie să stăpâniți dinainte tehnologiile de mai sus; până la urmă, scopul acestui curs este să învățați ceva nou :)
Resurse
- http://xref.schoolsict.net/moodle/2.3/nav.html?index.html
- https://moodle.org/
- http://swarm.cs.pub.ro/~mzamfirescu/cdl_2013/books/OReilly.Head.First.HTMLwithCSSXHTML.pdf
- http://swarm.cs.pub.ro/~mzamfirescu/cdl_2013/books/OReilly.Learning.PHP.MySQL.and.JavaScript.Jul.2009.pdf
Responsabili
- Dragoș Badea (badea dot dm at gmail dot com)
- Ioan-Mihail Stan (stanioanmihail at gmail dot com)
- Mihai Zamfirescu (mihai dot zamfirescu93 at gmail dot com)
Proiect CDL: I, GameBot
Development: https://github.com/rosedu/I.GameBot
Descriere
I, GameBot își propune să fie o platformă pentru organizarea de concursuri de programare cu codul-sursă la vedere. Majoritatea platformelor existente le permit participanților să țină ascuns algoritmul cu care concurează. Făcând public accesul la algoritmii tuturor participanților, "I, GameBot" va scoate în evidență dinamica interacțiunilor sociale spontane dintr-un ecosistem free-libre software - mai precis, simbioza dintre colaborare si competiție.
Proiectul îl veți implementa de la zero urmând cu strictețe metodologia TDD (Test-Driven Development) și design pattern-ul "Functional Core, Imperative Shell".
TODO
Cunoștințe necesare
- Ruby - intermediar
- unit testing - intermediar
- SQL - elementar
- bash/GNU/Linux - avansat (experiență cu chroot, named pipes)
- git - intermediar
- (opțional) back-end web development
Materiale utile
Citiți/parcurgeți următoarele:
- The Github team's Ruby coding style guide
- TDD coding challenge
- Introduction to SQL
- Discussion of the "Functional Core, Imperative Shell" design pattern @ The Ruby Rogues Podcast
Mentor
Dan Șerban, dserban01 => gmail
Proiect CDL: CMUSphinx
Proiect: http://sourceforge.net/projects/cmusphinx/
Wiki proiect: http://cmusphinx.sourceforge.net/wiki/
Descriere
CMUSPhinx este unul dintre cele mai bune toolkit-uri de recunoaștere automată a vorbirii, folosită pentru crearea de aplicații bazate pe vorbire. Acest toolkit are un numar mare de programe pentru diferite probleme și aplicații. Acestea sunt:
- Pocketsphinx - biblioteca minimală de recunoaștere a vorbirii scrisă în C
- Sphinxbase - biblioteca de suport pentru PocketSphinx
- Sphinx4 - recognizer de vorbire ajustabil și modificabil scris în Java
- CMUclmtk - tool pentru modele de limbă
- Sphinxtrain - tool pentru antrenarea de modele acustice
- Sphinx3 - decodor de recunoaștere a vorbirii scris în C
Avantajele folosirii CMUSphinx pentru construirea de aplicații de recunoaștere a limbii:
- Algoritmii state-of-the-art pentru recunoașterea eficientă a vorbirii. Tool-urile CMUSphinx poti fi folosite și pe platforme cu puține resurse
- Design flexibil (!)
- Concentrare pe dezvoltarea de aplicații practice și nu pe cercetare
- Suport pentru multe limbi cum ar fi engleza US/UK, franceza, chineza, germana, olandeza, rusa și posibilitatea de a construi modele pentru altele (există un laborator în UPB care se ocupă de modelul limbii române)
- Licență BSD
- Dezvoltare activă
- Comunitate activă
- Multe tool-uri pentru scopuri similare recunoașterii vorbirii (keywork spotting, alignment, pronunciation evaluation)
Proiect propus
Speaker Diarization - SD (separarea vorbirii în funcție de vorbitori)
Acest proiect va fi o îmbunătățire importantă a toolkit-ului. Presupune împărțirea vorbirii în funcție de vorbitori, fără cunoașterea anterioară a numărului total și are aplicații în multe domenii.
Pași în realizarea proiectului:
- familiarizarea cu teoria implicată în recunoașterea vorbirii
- familiarizarea cu toolkit-ul CMUSphinx (realizarea unei aplicații de recunoaștere de mici dimensiuni)
- cercetare de paper-uri care au ca temă SD
- implementarea unei soluții în cadrul toolkit-ului
Pași ulteriori (opționali, dar încurajați):
- îmbunătățirea proiectului
- contribuții în cadrul comunității CMUSphinx
- aprofundarea temei
SD papers:
- https://www.dropbox.com/s/xc1p86gjjzjbaox/speaker_recognition_overview.pdf
- https://www.dropbox.com/s/cm6aoaw8xicbwg9/InTech
- A_review_of_recent_advances_in_speaker_diarization_with_bayesian_methods.pdf
Requirements
- cunoștințe de Java (mainly) și/sau C și OOP
- curaj în fața teoriei stufoase
- curiozitate
- cunoștințe de structuri de date
Beneficii în participare la acest proiect
- cunoștințe privind recunoașterea vorbirii
- integrarea într-o comunitate open source
- lucru in echipa
- dezvoltarea capacității de a citi paper-uri și de a lucra și cu modele matematice și noi structuri de date (Model Markov Ascunse)
Alex Eftimie
Răspunde la cereri pe alex(at)rosedu(dot)org. Folosește și recomandă Ubuntu. Îi place web-ul. Legendele spun că face widgets. Are și blog, cheamă studenții la planetă - condiție: să scrie despre Counter Strike.
Mihai Maruseac
Warning: info is old, update is planned.
- Nume complet: Mihai Maruseac
- Nume scurt: MM
- Alint rețea: mm, MM, Mithrandir, mmaruseacph2, mmaruseac, pilgrimgray, etc.
- Aniversare: 15 ianuarie
- Origine: Suceava, România
- Interese: FOSS, AI, Linux, Calculatoare, Metode Numerice, Computers, programare, SF/Fantasy Literature, SO, Math, Python, OpenGL, Game Design, Arimaa, Game Programming, companii plăcute, discuții libere, Andromeda, etc.
- Blog: pilgrimgray - blogul principal
- Fav quote: All that we have to decide is what we do with the time that is given to us
Andrei Petre
- îmi place să aflu lucruri noi
- interese: linux, programare, AI, bere, FOSS, android, python, respond_to?(:ruby), discuții interesante, algoritmi, plimbări în aer liber, șah ...
- sper ca într-o zi să învăț și C++
- un viitor blog probabil aici
- contact la p31 andrei #at# gmail #dot# com
Mihai Oprea
- About: Bachelor & Masters in Computer Science from UPenn, building the next best software development team @ uberVU
- Interese: Web Development, Product Design, Team Management & Development, Personal Productivity, Online Marketing, Social Psychology
- Tehnologii curente: Python, Django + Tastypie, Coffeescript, Mozaic, Angular JS, Backbone JS
- Twitter: mishu21
- MicroBlog: blog.mihaioprea.com
Veaceslav Munteanu
- Just try and say that I can't do something
- If you know C you have no class, if you know java you have no friends :)
- Professional head banger \m/, intermediate guitar player and novice sk8ter
- Thing that got my attention: C++, Qt, Javascript ... searching
- Other stuff that I know: C, Java, Bash, HTML, CSS, OpenCL
- contact la slavuttici #at# gmail #dot# com
Cursul 1 - 2 martie 2013
WHC:IDE
- Autor: Veaceslav Munteanu
- Prezentare: WHC:IDE
Firefox Add-ons
- Autor: Gabriel Ivănică
- Prezentare: Soon
Dex Online
- Autor: Mihai Trifu
- Prezentare: DexOnline
VMChecker + mozaic.js
- Autor: Cosmin Didii, Valentin Goșu, Andrei Ismail, Bogdan Săndulescu
- Prezentare: VMChecker + mozaic.js
WoUSO on Android
- Autor: Gina Dobrescu, Bogdan Vlad
- Prezentare: WoUSO on Android
kreator.js
- Autor: Andrei Oprea
- Prezentare: kreator.js
Audacious
- Autor: Mihai Maruseac
- Prezentare: Audacious
Moodle
- Autor: Dragoș Badea, Ioan Stan, Mihai Zamfirescu
- Prezentare: Moodle
I, GameBot
- Autor: Dan Șerban
- Prezentare: I, GameBot
CMUSphinx
- Autor: Alex Tomescu
- Prezentare: CMUSphinx
WoUSO
- Autor: Iulian Stana
- Prezentare: WoUSO
Cursul 2 - 9 martie 2013
Open Source Collaborative Tools
- Autor: Răzvan Deaconescu
- Prezentare: Soon
Git
- Autor: Andrei Petre, Mihai Maruseac
- Prezentare: Soon
Cursul 3 - 16 martie 2013
Vim
- Autor: Alexandru Juncu
- Prezentare: Soon
POO
- Autor: Mihai Bivol, Veaceslav Munteanu
- Prezentare: Soon
Cursul 4 - 23 martie 2013
Code Readability
- Autor: Teodora Băluță
- Prezentare: Soon
JavaScript
- Autor: Soon
- Prezentare: Soon