CANOSP

From KDE Community Wiki
Revision as of 19:30, 25 November 2021 by TomazCanabrava (talk | contribs) (→‎What is CANOSP)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

What is CANOSP

Canada Open-Source Projects (CANOSP) is an academic program that connects top students from Canadian universities to work on open-source projects over the course of a semester.

CANOSP is an excellent opportunity for participants to meet other students from across the country, connect with industry, learn about open-source development, bolster their portfolios, and strengthen their skills as software engineers.

Universities Participating

University of Alberta, AB Karim Ali [email] University of British Columbia, BC Meghan Allen, Karina Mochetti McGill University, QC Jin Guo

For Students

This is a heavy, project-based course that requires consistent dedication throughout the semester, timely and clear communication with teammates and mentors, and self-directed research and learning. Each student accepted into CANOSP will be assigned to one of the open-source project teams for the semester. Each team is guided by experienced mentors who will explain the project and goals for the semester, and assign various tasks to complete.

Each semester kicks off with a Code Sprint, which normally takes place Friday to Sunday on the second weekend of the semester. This is your chance to meet your mentors, teammates, fellow CANOSP students, and CANOSP Organizers. You’ll spend the day on Friday and Saturday learning the project, getting your workspace set up, learning about the technologies and toolchains you’ll need to use, and start hacking away on your first tasks! Sunday is a half-day to finish up any outstanding tasks, plan out the rest of the semester, and give student presentations on your projects and goals.

When the Code Sprint ends, you will return to your home universities and continue to work remotely throughout the semester. You will have weekly check-ins with your teams and mentors to help you and keep you on track; your mentors may also assign additional readings and reports during the semester as necessary. There will be a mid-term evaluation, where you will be given feedback from your mentors on how you are doing in the course so far and what grade you can expect to receive if you continue at the same rate for the remainder of the term, and a similar evaluation at the end of the semester with feedback on your work. Your mentors may recommend a final grade, but final grades are assigned by your faculty, not by your mentors or CANOSP organizers.

What's Expected from the Students

English Communication skills with the KDE mentors, a bit of programming experience and knowledge of the common tools (compiler, git, debugger). It's expected that you will be able to download and compile the codebase to be able to run the software with minimal help, but it's also expected that some problems appear (specially if you are not in a linux system, such as windows and mac) - so communication is quite important, in a way that we can fix things quickly.

You will also need an account on invent.kde.org to be able to access and fork the software and libraries that you will be working. Please start here: Getting involved

Programming Language

While the main KDE development occurs in C++, we do have bindings for many other languages, including (but not limited to) Python, Ruby and C#. Some bindings are more stable and more mature than others. Some may not be suitable yet for serious development; be sure to take that into account before making your choice.

C++ will be accepted for any project. Submissions and ideas for projects in any other language should specifically mention the choice.

Participation on KDE Projects

It's the first time that we are trying to participate within CANOSP so we are still trying to understand how to fit into the project. Some projects that could be interesting:

- Krita - Pixmap painting
- Digikam - Photo management application
- KDE Connect - Connection between your phone and the computer
- Plasma - A Desktop Environment - including KWin
- KStars - A Stellarium
- Marble - A Desktop Globe 
- The KDE Edu applications - more than 40 smaller educational programs