Arnia Software is a leading software development company that has been committed to excellence and education since its founding in 2006. As part of this commitment, Arnia has established a Partnership for Education with The University of Bucharest. This partnership allows Arnia to share its expertise and experience with the university community, while also providing valuable learning and development opportunities for Arnia employees. The partnership has been in place since 2015 and has helped to strengthen the relationship between Arnia and the university, as well as promote the growth and development of both institutions. Through this partnership, Arnia is able to make a positive impact on the community and contribute to the education and development of the next generation of professionals.
7 years
This year marks 7 years since we have started our Partnership for Education alongside the University of Bucharest. It has been a wonderful experience and we are actively working to grow the partnership by extending our curricula with new courses.
Our collaboration with the university has started with two courses, “Machine Learning in Visual Arts” and “Server-side JavaScript”, carefully curated and designated to cover the latest trends of two very important, complementary, computer science fields: web development and computer vision research. During these years our team of teachers and supervisors has continuously worked on improving the materials and experience overall, making sure that our courses are always up to date with state-of-the-art research and development practices.
We want to share our journey and dive into the challenges we had to tackle along these years, on both the technical and “logistics” side.
Server-side JavaScript
When we first set out to design this course, back in 2015, NodeJS was viewed as an emerging framework, gaining in popularity but not as widespread as other server-side technologies. It was actually one of the main reasons we introduced such a course: the students could learn both server-side concepts and the JavaScript programming language and explore the novel concepts introduced by a new technology.
The first three years (2015-2017) heavily relied on the internals of NodeJS and its core aspects: event-loops, the package manager and various modules. Its design was very dynamic, hands-on and fast-paced: each session would start with a short, theoretical lecture and continue with small exercises that would set the backbone for a future assignment.
However, as we gathered feedback from our students and fresh ideas came into mind, we decided that one simply cannot neglect the frontend when teaching web development. We’ve had a shift of paradigm and switched our philosophy to something similar to a coding bootcamp. The course was now centered on the objective that students learn how to write a full-stack app based on NodeJS in the backend by the end of the semester. This made the course more challenging and aimed at enhancing the students’ skills with REST, SQL and ReactJS.
In 2020 the university decided that we should allocate a full-fledged 4 hours/week to the course, rather than the previous 3 hours/week, given its importance. This was a great opportunity for us and the students to delve into details on backend development. We’ve increased the complexity of the proposed projects on the backend side and introduced ORMs into the pipeline. This led to reducing the focus on SQL (knowledge which is gained during other mandatory courses) and introducing the new concept of ORM. The focus on the frontend part was kept to a minimum, but not excluded, so that students still maintain the big picture of a web application.
Previous end-of-year feedback forms led us to the understanding that more focus on the JavaScript syntax is needed, so we shifted the course around a bit to include more practical examples, documentation and course material in this area. Since we now mark the end of the pandemic and the university has returned to live sessions, we have also included a lot more one-on-one material and live programming in the laboratory section.
Machine Learning in Computer Vision
The course started out in 2017, when machine learning had demonstrated its power in computer vision tasks and the hype was just starting. Companies were starting their seeking for machine learning solutions and engineers for their problems, while most universities had just started designing their syllabus to include these concepts and had not included a mandatory course yet. It was perfect for us and the University of Bucharest, as we had the resources to create a course that would set the layout for future AI engineers, ready to research and implement production-ready solutions.
Given the above context and the increase in AI’s popularity and demand, it was a natural consequence that our lecture became more popular every year. The demographics of this course was a special one, as there were around 50 A-grade students enrolled every year (a high number for an optional course), of which 20% were National/International Algorithms Olympiad participants.
A lot of research in this field was concentrated on image input at that time. As we selected some special practical tasks related to arts, such as style transfer or art-style recommendations, we found it fit to name the course “Machine Learning in Visual Arts”. Two years later, as applying such algorithms on video inputs became practical, we redesigned our practical exercises and updated the name to a more soothing “Machine Learning in Computer Vision”.
Our mission was two-fold: to challenge such an audience and to always update the curricula to match the rapidly evolving state-of-the-art. However, it was not as fluid in structure as the Server-side JavaScript course. Since we aimed at teaching the students the fundamentals of deep learning applied in computer vision, most of the syllabus has remained untouched. We have only tweaked the practical examples so that they best fit the challenges of the industry.
We went through data preprocessing (various image augmentations using opencv and PIL), training (forward/backpropagation) concepts of gradients, optimizer, learning rate, epochs, checkpoint saving, and loading, as well as the concept of fine-tuning.
Throughout the years we have changed the technical stack as well, switching from the initial, heavyweight TensorFlow/Keras to PyTorch. We’ve found the latter framework to greatly help the young researchers in their first encounters with deep learning.
What’s next
There is a lot to be said in this open chapter!
In the near future we will definitely design a new course, “Relational Database Management System Programming”. Database engines stand out as the oldest user software, right next to word processors and operating systems. They encapsulate a tremendous amount of information, hovering over almost all fields of computer science: system programming, networking, compiler theory, memory management, even AI. Research has been actively pursued since the early ‘60s and innovation has not stopped. Top universities around the world offer such a course and it is time for expansion. Given our immense expertise in this area, we feel we must share it with the students.
Fun fact: the intro of this article was written with the help of https://chat.openai.com/! Surely this is the right time to include a course or several lectures on Machine Learning applied on text or sound input.
We will also seek out to extend our partnerships with other universities around the country: University of Cluj, Politehnica University, Transilvania University of Brasov etc.
In the long run, we hope to design our own master’s program and offer the student’s the possibility to develop their Masters or PhD thesis inside the company. We are involved in a lot of innovative projects that bring forward a lot of challenges. Difficult theoretical problems are tackled and they are surely of the magnitude fit for academic research.
Join our Ongoing Partnership for Education
Because we acknowledge the power of education and we try to get invested as much as possible in lending a hand in forming the new generations of IT professionals, we are always open to establish new partnerships with higher education institutions that wish to offer their students advanced hands-on technical training. By organizing and conducting practical courses, workshops and mentoring programs, we aim to share our knowledge and expertise, and make a difference in the life of today’s students and tomorrow’s specialists. We work on a daily basis with state-of-the-art technologies and our trainers have the ability and necessary skills to inspire young talent to pursue their interests. And the positive feedback and great results that we have seen, stand as witness to our commitment to education. If you are interested in a hands-on approach on technology training, fill in the form below and we’ll get back to you.