• A
  • A
  • A
  • ABC
  • ABC
  • ABC
  • А
  • А
  • А
  • А
  • А
Regular version of the site

Applied Mathematics and Information Science: How to Develop a New Educational Program in Computer Science

Anton Konushin

Associate Professor, Programme Academic Supervisor: Applied Mathematics and Information Science National Research University Higher School of Economics

 
Michael Levin

Head of Big Data Specialization, The Yandex School of Data Analysis, Yandex

 
Vladimir Podolskii

Associate Professor, National Research University Higher School of Economics

 

 

When developing a new educational program, it is vitally important to study similar curricula already in place at other universities, both Russian and abroad. When it comes to computer science (CS) — there is another important source of information, namely Computer Science Curricula recommendations by the Association for Computing Machinery (ACM) and Institute of Electrical and Electronics Engineers (IEEE). These recommendations cover the courses that are believed to be crucial for CS education. The curricula have to be checked against the requirements set for the alumni eventually.

We will use bachelor’s program Applied Mathematics and Information Science offered at the Faculty of Computer Science of Higher School of Economics as an example to show in what ways Russian CS programs differ from international ones, how such differences can be used to strengthen one’s competitive position, how to manage the problem of freshmen’s level of qualification, and how to arrange efficient project work.

The Particularities of Russian CS Education

Comparative analysis of Russian and foreign CS programs reveals several interesting differences. First of all, Russian programs imply a much higher workload than most foreign ones, which allows more time for extra study courses and other components, so Russian students also earn significantly more ECTS-points. Secondly, Russian programs are traditionally much more math-oriented: the country’s leading CS programs take roots in mathematical departments, so the time spent teaching such classical disciplines as mathematical analysis or linear algebra has remained more or less the same. If at Stanford the obligatory part of the curriculum is half math, half computer disciplines, at Russian universities the total volume of computer disciplines is the same while math workload is twice higher.

A lot of math subjects is a significant advantage but this is not necessarily the case in practice. Actually, basic training in computer science has to differ from professional mathematicians training yet this is not always true for some Russian programs. Our goal was to bring this advantage to life in the first years of study by prioritizing math disciplines most relevant for computer science, e.g., discrete math, probability theory and mathematical statistics. At the same time, we manage to teach enough computer disciplines in accordance with Computer Science Curricula recommendations thanks to the fact that our program encompasses more than many foreign ones.

Elective Courses

Another important difference between Russian and foreign programs lies in the range of elective courses. Each area of computer science requires a specific set of courses, so the curriculum for the final years of study has to be as flexible as possible.

Traditionally in Russian universities curricula are department-based, i.e., one department within a given faculty is responsible for one particular educational specialization and, therefore, develops relevant curriculum. At CS programs, in addition to the courses offered by specific departments there are usually also some general obligatory and elective courses, with little time allocated for them. Another typical situation is when obligatory courses do not match departmental specialization due to the fact that it is impossible to find courses that would match all specializations.

In American universities, however, curricula are composed for each student individually. Students have to earn a certain number of credits, they have a wider choice of disciplines and are allowed substantial flexibility in deciding when to take which course.

Such flexibility is possible due to decreased obligatory workload requirements, lower contact hours, and a decrease in the number of courses to be taken simultaneously. The way of teaching is usually more intense and course duration is usually shorter (about 2 months).

We found a compromise by combining specialized (i.e., department-based) courses with a lot of elective courses. The former are given the same amount of time as the latter. Elective courses are divided into spring and fall blocks, so students can choose to take them either in their third or fourth year. The number of obligatory courses is minimal.

Final Projects

US university curricula always include a final project, which is similar to bachelor’s thesis in Russia. Students also have to work on various yearly projects for many classes. Besides final projects, Russian curricula sometimes include interdisciplinary yearly projects that are not related to any specific discipline. There is also a system of research workshops which students are assigned to when choosing a specialization or academic supervisor.

When should students start to engage in research? There is no unique question to this answer. Higher School of Economics believes that it should be done as soon as possible, so even freshmen already have to complete a yearly project. Our experience shows that very few first-year students are capable of doing research in computer science due to lack of theoretical knowledge and practical skills. By the end of the first year students learn enough to be able to code. Interest for research develops when they choose a specialization. We have adopted the following system: second-year students have to complete a programming project, while third- and fourth-year students have to do a yearly project and bachelor’s thesis respectively; they can choose between applied and research-related topics.

First-years’ Varying Level of Qualification

Another important feature of the Russian education system that needs to be taken in account while planning curriculum is heterogeneity of first-year students in terms of their level of qualification. The system of high school math training in Russia, which dates back to the Soviet times, is traditionally very good: there are quite a lot of special math-oriented high schools where respected scientists often teach; many high school students participate in various Olympiads. Soviet — and later Russian — high school has always been well represented at numerous international competitions. On the other hand, many regular high school graduates who have not had special training in math successfully pass university admission exams.

This means that freshmen’s entry level varies significantly: graduates of math-oriented schools often know most of the university curriculum for the first two years, while other have to start from scratch when it comes to math. It is therefore difficult to teach the two groups together because they actually need to be taught different things.

We have tried two solutions to this problem with Applied Mathematics and Information Science program students. First, we identified a “pilot” group of students with advanced understanding of math among 2014 freshmen. In order to be selected, students had to do a test. All the students took the same lectures but the pilot group could attend separately organized practice-oriented classes where they were offered more difficult tasks. Such a solution helped us optimized the process of teaching but could not solve the existing problem in full. When all the students take the same lectures, there is little flexibility when it comes to deciding the sequence of topics to be discussed. Moreover, it turned out to be difficult to make the lectures equally interesting both for specially-prepared and regular students.

Later we tried another approach: we formed several pilot groups, who had their own lectures, which made it easier to adapt the contents to students’ needs. Such an approach gives students more flexibility in choosing what they want to study more deeply. Pilot groups can differ in terms of the practice-oriented classes they are taking.

It is also possible to identify groups that would go for indepth study of parts of the curriculum. This is actually makes a lot of sense at our program: we formed an advanced math & informatics pilot group, an advanced math group, and advanced informatics groups. The first and the second groups take the same lectures on math, while the first and the third groups share the same lectures on informatics. Our experience shows that this approach works best.

Such a system has another advantage: students have more freedom in choosing their priorities and, therefore, time management. It also allows us to handle well-prepared students more effectively. However, this implies more complicated logistics, especially scheduling.

Individual Projects

Since software development training is one of our program’s goals, we can add project work to the usual computer science disciplines, so that the students get a chance to use their knowledge in practice, to see whether it is relevant in real life, and to identify the areas where they see room for improvement for themselves.

We believed from the very beginning that students should be involved into project work as soon as possible, in their first or second year already, and as often as possible. The idea was that by giving only classical homework one can only test basic skills. Let’s draw a comparison: architecture students are given separate home tasks to design rooming plans, electricity schemes, etc., while in real life one has to design all the systems and details at once. One cannot learn to develop a complete product within the framework of traditional higher education, which does not include project work, by only designing separate elements.

We use the following approach: in their second semester first-year students get to develop an individual software product under the supervision of a mentor who represents either the industry or academic circles. In the end, they have to develop a program with an interface that can be used anywhere by anyone, i.e., in the browser, on the smartphone or just in command line. In any case, the product has to imply some interaction rather than just be some project report.

Our students have been developing both research- and industry-oriented projects in the sphere of neural networks and machine-based learning. The results of their work include games, financial apps, social media analysis, synthetic vision systems, bioinformatics, etc. One of the most impressive examples is our first-year students’ AlphaGo-similar project: an end-to-end system that teaches itself backgammon. We believe that the quality of projects is rather high but we have postponed the start of project work to the second year so that the students can learn more before they begin.

Team Projects

We have recently decided to expand the scope of project work. As of this year, third- and fourth-year students can also participate in team projects as an alternative to the traditional yearly projects. Team projects proposals come from IT companies, who are therefore really interested in their success. The companies also assign team mentors who understand how industrial team programming is organized. Mentors will help students with managing their work, teach them team work principles and skills, and monitor and review the results.

We were initially planning to start this as a small experiment with 4-5 companies launching projects for 4-5 participants each. The companies turned out to be much more responsive than we had expected, so in the end 10 such projects were launched in November 2016. It is still too early to say anything about the results but the interest on behalf of both IT companies and students is quire surprising. We believe this is very beneficial for our faculty.

First of all, we get a chance to introduce team work in realistic conditions as part of the educational process, which would have been difficult to organize otherwise. Secondly, participation in such projects provides students with a small extra income, so they have less need in working alongside their studies, which can often be harmful for their academic performance. Finally, this is a wonderful opportunity to introduce our students to IT companies, to show their real qualifications and to attract the attention of potential employers. This has a positive effect both on our graduates’ career prospects and our reputation.

Results

Our program aims at training researchers, R&D engineers and product engineers in the sphere of theoretical and applied informatics. It was developed based on the experience of EPFL (Switzerland) and Stanford University (USA), as well as Yandex Data School, which focuses on data mining and big data processing, machine-based learning, etc.

Our program was only launched two years ago, which is of course too little to make any substantial conclusions about whether we have managed to reach our goals or not. Our students often become interns at famous companies like Yandex, Facebook or Google, and participate in international CS conferences. This, together with the industry’s interest in project work with students, gives us a signal that we are going in the right direction.