Open Academy
The hypothesis Facebook is exploring with Open Academy is that the best way to learn about software engineering is to do software engineering. As simple as that sounds, we have not traditionally done a good job with this in academia. CS departments may provide a project experience as part of the curriculum, but it typically does not map well to a real world software engineering experience. Facebook and the partner universities wants to do better.
To help bridge this gap between school and industry, last spring Facebook teamed up with Jay Borenstein, a computer science professor at Stanford, to launch Open Academy. Open Academy is a program designed to provide a practical, applied software engineering experience as part of a university student’s CS education. The program works closely with key faculty members at top CS universities to launch a course that matches students with active open source projects and mentors and allows them to receive academic credit for their contributions to the open source code base.
How it works
- A student team of 3-8 students, potentially spanning multiple universities, is formed
- A matching process is run that puts a student team with an open source project
- The team and a "mentor" from the open source project are flown to a location for a weekend ramp up hackathon (the location is Facebook headquarters in Menlo Park, CA). The students can work on improving the project in two ways: by knocking out low hanging fruit issues that already exist or by identifying and pursuing new functionality
- The students will work on projects for between 8-20 weeks depending upon the schedules of the universities involved Univerisity faculty will be closely involved and consult with the mentor when determining final student grades. Expectations will be set with the students that states the coding contributions they make - the quality and ambition of them - will be the main factor determining their grade
- Start date: January-Feb depending on university
- Feb 7-9 Hackathon at Facebook Headquarters in Menlo Park, CA
- Midterm Acknowledgment (tbd)
- End date: Mar - Jun depending on university
Expectations from mentors
- Attend Kickoff Hackathon at Facebook HQ Feb 7-9, 2014 (your flight and hotel will be paid for)
- Meet the students working on your project(s)
- Help the students select project goals and develop plans to achieve them
- Set expectations for how you like to communicate with the team
- Be responsive to requests from the team during the course
- As often as possible, attend weekly, 30 minute remote team meetings (IRC, Hangout or equivalent)
- Be prepared to provide the course instructor with a grade recommendation at the end of the course.
- Overall time comittment: You are obviously in control of this and it is also proportional to the number of students you decide to have, but not counting the hackathon, 3-5 hours per week is our expectation
Project proposals
1. Improving Ruby Language Support in KDevelop IDE
What is this project about?
Students will take existing Ruby language support code in KDevelop IDE and improve the language parser, code completion, refactoring, user-visible features, integration with various ruby development tools and much more. There's a lot to do and students will be able to pick things that are most interesting to them, group into teams as they see fit and dig into the most exciting part of any programmer's editor/IDE - the programming language support.
Who is it for?
This project is ideal for students interested in systems programming, compilers and interpreters. If your university compilers class left you wanting to write your own language implementation, this is your chance to get more real world experience in the area.
Prerequisites
KDevelop language support is written in C++, so you should already know it. At least slight familiarity with Qt will definitely be helpful. KDE and Ruby knowledge is not required at all. At the end of this project you'll become Ruby and KDE expert anyways.
Most likely your university has automata/compilers/languages class and it is mandatory that you either complete it or be at the end of it before you start on this project. It will simply be too hard to do this project without understanding how things work behind the scenes.
I'm willing to mentor 3 students working on this project. Maximum 4 people. Due to my other commitments I'll simply have no time for larger groups.
Who will be the mentor?
My name is Alexander Dymo (http://www.alexdymo.com/, https://github.com/adymo). I've been KDE and KDevelop developer since 2002. I'll be glad to introduce you into the exciting world of open source development. Also for 10 years I worked as university professor, so that might help us to make this project an academic success as well.
At this time I'm located in Chicago, US.
How this will work?
We'll use some project management tool (like Acunote that I've developed) to keep track of project goals and progress. We'll make detailed plans every week and have an IRC meeting each Friday to discuss the results.
2. Porting and Packaging KDE on Mac OS X
What is this project about?
Students will port, patch and package to make sure KDE applications run perfectly on Mac OS X. The most curious students will work on porting KDE Frameworks 5 to Mac.
Who is it for?
This project is ideal for students interested in software porting, packaging and distribution. It is a good chance to take the large software suite, understand how it's organized and built. Unlike other projects, this one is good for dedicated people that like to make perfectly usable software and can dig deeply to understand the core reason why things might not work.
Prerequisites
You should be using Mac as your primary operating system and be at least familiar with C++.
I'm willing to mentor 3 students working on this project. Maximum 4 people. Due to my other commitments I'll simply have no time for larger groups.
Who will be the mentor?
My name is Alexander Dymo (http://www.alexdymo.com/, https://github.com/adymo). I've been KDE and KDevelop developer since 2002. I'll be glad to introduce you into the exciting world of open source development. Also for 10 years I worked as university professor, so that might help us to make this project an academic success as well.
At this time I'm located in Chicago, US.
How this will work?
We'll use some project management tool (like Acunote that I've developed) to keep track of project goals and progress. We'll make detailed plans every week and have an IRC meeting each Friday to discuss the results.
3. Natural language dialog manager
What is this project about?
In this project, students will build on the foundation of Simon's dialog plugin to build a natural language, conversational dialog manager.
Who is it for?
Students that are interested in natural language parsing will feel right at home in this project, but such a background is not required to get involved. Any team working on this project can influence the specific direction they want to take as there is obviously vast ground to cover (natural language understanding, conversation planning, etc.). Therefore, this project is especially well suited for students that are genuinely interested in the subject matter at hand and eager to explore their area of interest.
Prerequisites
Familiarity with C++ is required. While previous experience with KDE application development is not technically required, students will be expected to review beginner documentation before the project starts.
Who will be the mentor?
My name is Peter Grasch (http://grasch.net). I am a co-founder and the maintainer of the Simon speech recognition solution that will lay the foundation for this project. I've been working on Simon and open source speech recognition in general for close to 7 years now.
Through Google Summer of Code, where I mentored 4 students working on Simon over the course of two years, I was also already have experience mentoring students.
Starting at the end of January 2014, I will be located in Austria.
How this will work?
A project plan, detailing the weekly goals is expected to be developed by the students (with feedback from the mentor, of course).
In the beginning we will start of with short, daily progress assessments. This can be a 2 minute call or a 5 minute IRC meeting - longer if necessary. If progress is apparent, we can then slowly stretch these reports out to larger, weekly updates.
4. Improving social integration in KDE Workspaces
What is this project about?
There is an existing infrastructure in Akonadi for social media things, we just have nothing using it and nothing putting the data in it. This project would be about making use of that infrastructure and basically bringing the social media to the desktop. That consists of improving the Facebook resource (fixing couple bugs), finishing the Twitter resource (needs Twitter API revision, adding missing functionality - at least notifications and searching), creating one for Identi.ca (based on pump.io - at least getting and posting content and notifications), exploring the possibilities of G+ resource (if and what API is available) and finally finishing the user interface for the content consumption.
Who is it for?
Ideally for heavy social networks users, who know what social media aggregators and social sharing is all about. No point doing this if you're not on Facebook and/or Twitter.
Prerequisites
C++/Qt4 and QML2 and at least basic knowledge of how to build stuff in Linux. Oh and git, please.
One option for the GUI is integration with Choqok (it's based on Qt plugins), on that road QML is not really needed, but its usecase should still be considered when creating things.
Who will be the mentor?
Martin Klapetek <[email protected]>, currently living in Czech republic (GMT+1)
How this will work?
Regular online meetings + project tracking through appropriate tools, like Trello. Discussions should be held on the KDE PIM mailing list and of course private emails if needed.