Page tree
Skip to end of metadata
Go to start of metadata

We are looking for enthusiastic individuals to develop open-source software for educational needs. You will be joining the Educational technology and integration team (EDIT) or course staff for a specific course. The EDIT team supports teachers in using technology in their teaching, and develops technology for educational needs at the Department of Computer Science. Core services supported by EDIT are the A+ learning management system and JupyterHub. For A+ we do in-house development and for JupyterHub we do integration and develop grading tools.

The Department of Computer Science at Aalto University provides world-class research and education in modern computer science to foster future science, engineering and society. The work combines fundamental research with innovative applications. With over 40 professors and more than 400 employees it is the largest department at Aalto University and the largest Computer Science unit in Finland. It is routinely ranked among the top 10 Computer Science departments in Europe and in the top 100 globally. The department is part of the School of Science in Aalto University, located on the Otaniemi campus.

We invite applications for internships in multiple areas of interest!

Please get acquainted with the following themes and list your preferred interests in your application. Some topics have additional requirements in addition to the common requirements mentioned below. Please note that we may have multiple open positions per topic.

1. A+ Python Web Development topics (CS topics 46-51)

Services within A+ family aim to provide efficient development and delivery of interactive online learning materials. The environment is used at Aalto University and Tampere University. At Aalto, there are around 25 courses, 4,000 Aalto users, 1,000 MOOC users and 500,000 exercise submissions per year. You can read more about A+ learning management system at

As a developer within the topics below, you will impact the learning experience for thousands of current and future students in Finnish Higher Education, and in a starting international community!

1.1. Electronic examinations (CS topic 46): come and develop the concept of and needs for electronic examinations for programming and other subject-specific needs in Computer Science! The Exam studio concept is already available at Aalto University, and it includes the possibility to take, for example, programming exams using A+. Now, the electronic lecture hall exams with students’ own computers should be developed to be more straight-forward and appealing for teachers, so that an increasing number of teachers could provide students with electronic exams instead of exams with pen and paper.

1.2. Accessibility, usability, multilingual and ethical issues (CS topic 47): The user experience of A+ for teachers and students can always be developed. We invite you to come and tackle some of the major concerns and promote aspects close to your heart. Tasks range from fixing problems around multilingual use to evaluating our systems against the EU accessibility directives. We hope that you are creative, have some insight into usability and want to take stand to the accessibility needs. Teachers also need further instructions, which we want you to develop. In addition, this is a splendid position to learn about ethical concerns or issues!

1.3. Analytics in A+ (CS topic 48): Students submit numerous assignments in A+, but teachers don’t yet have versatile and clear views for the weekly overall status of the situation. Come and help our teachers get a better picture of the situation, so that the course overall situation and per-student status can be visualized. This way, students who need additional support can be found more easily and could be given more support for their learning.

1.4. Interactive feedback (CS topic 49): The Jutut service is used to collect student feedback regularly throughout a course. It is designed for interactive use and handling of massive amounts of submissions. Teachers are able to answer students' questions or react to issues in the course whenever something arises. Furthermore, teachers analyse the feedback, so that they can improve and develop their courses. In this position, the focus of development is in the teacher's interface to make it more reactive and streamlined. Additionally, we are prepared for using machine learning in assisting teachers with the large amount of messages.

1.5. Radar (CS topic 50): The Radar service is a code similarity analysis engine. Currently, it is mainly used for, though not limited to, detecting plagiarism cases in our programming courses. Development areas range between improving stability and performance, particularly the usability of the teacher interface and extending analytical features of the system.

1.6. A+ development (CS topic 51): while using A+ for your studies, did you notice anything that could have worked better and you had an idea how to achieve this? Come and develop A+ to make it even better! We have a long list of development ideas. You can also suggest your own ideas and get hired to implement them!

Special requirements for the above positions:

  • Basic knowledge in Python or work experience in another high level programming language
  • Basic knowledge in web technologies including HTTP, HTML, CSS, Javascript
  • Familiarity with Django is beneficial, but not required

Additional information with further requirements, positions and instructions for the applications: and EDIT's technical lead Markku Riekkinen <>

2. JavaScript Developer topics (CS topics 52-53)

2.1. (CS topic 52) Development with program animation library JSVEE (, annotation library Kelmu ( and algorithm exercise library JSAV ( Tasks range from creating Scala transpiler, updating authoring workflow to core development and making JSAV more independent.

  • Special requirements:

    • Working knowledge in Javascript

  • Experience with following will be beneficial but not required and will be included in what you will learn:

    • Compilers, transpilers and scala internals (for JSVEE)

    • Container technologies and/or Docker

  • Additional information with further requirements, positions and instructions for the applications: and EDIT's technical lead Markku Riekkinen <>

2.2. (CS topic 53) Design and development of next generation Javascript API for interactive exercises in A+

3. Cloud Native Learning Environment Initiative (CS topic 54)

A+ provides automated assessment for a range of use cases and A+ is even implemented using modern technologies. We are now in the progress of maturing the project and migrating components to cloud-based technologies. Our major goal is to make the A+ learning management system a cloud-native service. The positions below include development tasks from local material production and automated cloud deployment to supporting massive open online courses in scale.

The current focus is to support teachers by implementing course CI/CD tools with an easy-to-use and minimalistic interface. The service would facilitate building the course material and configuring our Kubernetes cluster for the course specific needs. Development areas range from user interface design to Kubernetes configuration and implementing deployment interfaces to backend services.

Special requirements:

  • Working experience in Python
  • Basic knowledge about web APIs, e.g. RESTful

Experience with following is beneficial, but not required and will be included in what you will learn:

  • Python web frameworks like Flask or Django
  • Kubernetes clusters
  • DevOps, CI/CD tools

  • Orchestration

Additional information with further requirements, positions and instructions for the applications: and A+ lead developer Jaakko Kantojärvi <>

4. Integration and research topics (CS topics 55-57)

4.1. (CS topic 55) PeerWise via A+: PeerWise ( supports students in creating, sharing and answering peer questions, which in turn supports students in learning, and reaching the intended learning outcomes in the course. Now, PeerWise will be be taken to use at the CS department, integrated in a meaningful way in the existing system setup. This includes at least authentication and grading interfaces, but can also include design and implementation of a research setup, in which case the work can continue as a Master's thesis in collaboration with e.g. the course TRAK Y in Autumn 2020.

4.2. (CS topic 56) Assignment grades and other points that affect the course grade are collected at the CS department in a specific gradebook service called Osasuoritusrekisteri. The idea of the services is to a) save the data, e.g. count the course grades, and b) use the data for follow-up and learning analytics. Similar systems are used at the Math department at Aalto and the CS department at the University of Helsinki, among others. All the services are reaching the ends of their life cycles, and should be replaced. We are looking for an intern who can support us in finding a meaningful solution for the future. The tasks range from comparing tools to requirements engineering. This topic suits for either a summer intern or, preferably, for a Bachelor's or Master's thesis.

4.3. (CS topic 57) The CS department at Aalto provides the A+ learning management system for subject-specific needs in Computer Science. Corresponding systems are provided at the University of Helsinki (TMC), at Jyväskylä University (TIM), at Tampere University (Weto) and at the University of Turku (ViLLE).  We are looking for an intern who can provide us with deeper, comparative knowledge on the systems, their pros and cons, and the innovative, unique elements in them that provide added values for students and teachers. This topic suits for either a summer intern or, preferably, for a Bachelor's or Master's thesis.

5. Course developers (CS topics 58-62)

We look for course assignment developers to assist the teachers for the academic year 2020-2021 courses. Course developers are responsible of tools for course specific needs or needs for specific language for multiple courses. Please note that this is different from being a teaching assistant; there will be a separate call for that later in the spring.

5.1. (CS topic 58) Developing Scala exercise testing framework and tools. These tools support automated assessment on many of our courses including Programming 1 and 2, Studio 1 and 2 and maybe others in the future.

5.2. (CS topic 59) Developing Python exercise testing framework and tools. These tools support automated assessment on many of our courses including ohjelmoinnin peruskurssi Y1 and Y2, Tietorakenteet ja algoritmit Y and hopefully others in the future.

5.3. (CS topic 60) O1 a.k.a. Programming 1 ( has a number of development projects. Join the O1 teachers and head TAs in developing this popular introductory course!

5.4. (CS topic 61) Assignments for language studies: the teachers at the Language Centre want to provide students with more versatile assignments with rich feedback. Come and help teachers in creating the assignments and course contents! In addition to the salary, you have an opportunity to earn some language credits, depending on the languages used during the summer.

5.5. (CS topic 62)  We need people for creating new learning resources for Programming studio 2 (  These include building new programming exercises and improving current ones, as well as developing new resources for learning how to build graphical user interfaces.

We offer:

  • small development teams where your voice matters

  • the office space located at the Otaniemi campus of Aalto University

  • all the platform-level code is open source and available at Github (e.g. course contents are usually closed source), so it will serve as an excellent reference in your CV

  • you will be in direct contact with course staff and researchers, as they are the main stakeholders, but they are also a source for knowledge and support
  • hands-on experience with agile software development
  • a possibility to impact studying experience for thousands of students, and support teachers in providing students with student-centered study environments
  • the salary follows the general guidelines of Aalto CS for project workers, which means it depends on how far you are in your studies (if a student) or your degree and experience (if a graduate)

In addition, the location and flexible hours enable working while studying. For students, the recommended working amount is two to three days per week during semesters and full time in summer. We typically create fixed-term contracts to September 2020 and it is very likely that there will be opportunities to continue working with us afterwards, too. In addition, you have a good change to find a subject for the Bachelor’s or Master’s thesis and continue with the subject in a research group.

What we expect (in addition to the position-specific requirements):

  • Studies in Computer Science or a related field
  • Some programming skills, e.g. from Aalto courses Programming 1 and 2, Basics in Programming Y1 and Y2, Ohjelmointistudio 2 and so on
    • Some topics have higher requirements, but just first year studies in CS will be suited for many of the topics!
    • Remember to describe your experiences and some projects you have done (can be personal, school or work projects; link to the source code if possible)
  • You are familiar with the Linux shell and git
  • You have some knowledge about web technologies
  • Good spoken and written skills in English (Finnish is a plus, but not mandatory for most of the topics)
  • You are interested in working as a member of a team
  • You are enthusiastic about developing high-quality software that serves real users!
  • You have motivation to learn!

What we hope for:

  • Working experience or advanced studies in the topic area
  • Software development skills and experience
  • Team working skills

Applying and the process

Apply at the latest on January 19th, 2020, through our recruitment system (do not send applications to personal emails). Remember to include:

  • your open-ended motivation letter; remember to tell how your skills fit with the requirements
  • an excerpt of the study register and, if you have graduated, the diploma
  • a prioritized list of numbered positions you are interested in (you can write down more details about your interests, too)
  • descriptions on your programming skills, references to public software projects you have done or contributed to (e.g. github/gitlab/bitbucket link)
  • remember to tell us when you are available, i.e. when you can start and end the internship and if you might be interested to continue working during the fall, and how many hours per week you are looking for

We start reading the applications on January 20th, and aim at sending out requests for interviews during the same week. It might be possible to start work as early as in March.

Currently, we are recruiting as part of CS department summer job positions, so please follow instructions on the following page:

Please use CS topic numbers in applications, so they can be routed correctly to us.

The Educational technology and integration team welcomes you to our growing open-source community and to help us make online learning better than ever before!

  • Team leader Anni Rytkönen, 0504155301 (7.-17.1.2020 Mon-Fri 8-16),
  • Technical lead Markku Riekkinen,
  • A+ lead developer Jaakko Kantojärvi,

Please contact the HR team at for issues concerning the general application process or the recruitment system.

  • No labels