Teaching a Massive Open Online Course on Natural Language Processing (2021)

Abstract: In this paper we present a new Massive Open Online Course on Natural Language Processing, targeted at non-English speaking students. The course lasts 12 weeks, every week consists of lectures, practical sessions and quiz assigments. Three weeks out of 12 are followed by Kaggle-style coding assigments. Our course intents to serve multiple purposes: (i) familirize students with the core concepts and methods in NLP, such as language modelling or word or sentence representations, (ii) show that recent advances, including pre-trained Transformer-based models, are build upon these concepts; (iii) to introduce architectures for most most demanded real-life applications, (iii) to develop practical skills to process texts in multiple languages. The course was prepared and recorded during 2020 and so far have received positive feedback.

## introduction the vast majority of recently developed online courses on artificial intelligence (ai), natural language processing (nlp) included, are oriented towards english-speaking audiences. in non-english speaking countries, such courses' audience is unfortunately quite limited, mainly due to the language barrier. students, who are not fluent in english, find it difficult to cope with language issues and study simultaneously. thus the students face serious learning difficulties and lack of motivation to complete the online course. while creating new online courses in languages other than english seems redundant and unprofitable, there are multiple reasons to support it. first, students may find it easier to comprehend new concepts and problems in their native language. secondly, it may be easier to build a strong online learning community if students can express themselves fluently. finally, and more specifically to nlp, an nlp course aimed at building practical skills should include languagespecific tools and applications. knowing how to use tools for english is essential to understand the core principles of the nlp pipeline. however, it is of little use if the students work on real-life applications in the non-english industry. in this paper, we present an overview of an online course aimed at russian-speaking students. this course was developed and run for the first time in 2020, achieving positive feedback. our course is a part of the hse university's online specialization on ai and is built upon previous courses in the specialization, which introduced core concepts in calculus, probability theory, and programming in python. outside of the specialization, the course can be used for additional training of students majoring in computer science or software engineering and others who fulfill prerequisites. the main contributions of this paper are: the remainder of the paper is organized as follows: section 2 introduces methodological choices made for the course design. section 3 presents the course structure and topics in more details. section 4 lists home works. section 5 describes the hosting platform and its functionality. ## course overview the course presented in this paper is split into two main parts, six weeks each, which cover (i) core nlp concepts and approaches and (ii) main applications and more sophisticated problem formulations. the first six weeks' main goal is to present different word and sentence representation methods, starting from bag-of-words and moving to word and sentence embeddings, reaching contextualized word embeddings and pre-trained language models. simultaneously we introduce basic problem definitions: text classification, sequence labeling, and sequence-to-sequence transformation. the first part of the course roughly follows yoav goldberg's textbook @xcite , albeit we extend it with pre-training approaches and recent transformerbased architectures. the second part of the course introduces bertbased models and such nlp applications as question answering, text summarization, and information extraction. this part adopts some of the explanations from the recent draft of "speech and language processing" @xcite . an entire week is devoted to topic modeling, and bigartm @xcite , a tool for topic modeling developed in mipt, one of the top russian universities and widely used in real-life applications. overall practical sessions are aimed at developing text processing skills and practical coding skills. every week comprises both a lecture and a practical session. lectures have a "talking head" format, so slides and pre-recorded demos are presented, while practical sessions are real-time coding sessions. the instructor writes code snippets in jupyter notebooks and explains them at the same time. overall every week, there are 3-5 lecture videos and 2-3 practical session videos. weeks 3, 5, 9 are extended with coding assignments. weeks 7 and 9 are followed by interviews. in these interviews, one of the instructors' talks to the leading specialist in the area. tatyana shavrina, one of the guests interviewed, leads an r&d team in sber, one of the leading it companies. the second guest, konstantin vorontsov, is a professor from one of the top universities. the guests are asked about their current projects and interests, career paths, what keeps them inspired and motivated, and what kind of advice they can give. the final mark is calculated according to the formula: # of accepted coding assignment +0.7mean(quiz assignment mark) coding assignments are evaluated on the binary scale (accepted or rejected), and quiz assignments are evaluated on the 10 point scale. to earn a certificate, the student has to earn at least 4 points. in practical sessions, we made a special effort to introduce tools developed for processing texts in russian. the vast majority of examples, utilized in lectures, problems, attempted during practical sessions, and coding assignments, utilized datasets in russian. the same choice was made by pavel braslavski, who was the first to create an nlp course in russian in 2017 @xcite . we utilized datasets in english only if russian lacks the non-commercial and freely available datasets for the same task of high quality. some topics are intentionally not covered in the course. we focus on written texts and do not approach the tasks of text-to-speech and speech-totext transformations. low-resource languages spoken in russia are out of the scope, too. besides, we almost left out potentially controversial topics, such as ai ethics and green ai problems. although we briefly touch upon potential biases in pre-trained language models, we have to leave out a large body of research in the area, mainly oriented towards the english language and the us or european social problems. besides, little has been explored in how neural models are affected by those biases and problems in russia. the team of instructors includes specialists from different backgrounds in computer science and theoretical linguists. three instructors worked on lectures, two instructors taught practical sessions, and three teaching assistants prepared home assignments and conducted question-answering sessions in the course forum. ## syllabus week 1. introduction. the first introductory lecture consists of two parts. the first part overviews the core tasks and problems in nlp, presents the main industrial applications, such as search engines, business intelligence tools, and conversational engines, and draws a comparison between broad-defined linguistics and nlp. to conclude this part, we touch upon recent trends, which can be grasped easily without the need to go deep into details, such as multi-modal applications @xcite , cross-lingual methods @xcite and computational humor @xcite . throughout this part lecture, we try to show nlp systems' duality: those aimed at understanding language (or speech) and those aimed at generating language (or speech). the most complex systems used for machine translation, for example, aim at both. the second part of the lecture introduces such basic concepts as bag-of-words, count-based document vector representation, tf-idf weighting. finally, we explore bigram association measures, pmi and t-score. we point out that these techniques can be used to conduct an exploratory analysis of a given collection of texts and prepare input for machine learning methods. practical session gives an overview of text prepossessing techniques and simple count-based text representation models. we emphasize how prepossessing pipelines can differ for languages such as english and russian (for example, what is preferable, stemming or lemmatization) and give examples of python frameworks that are designed to work with the russian language (pymystem3 (segalovich), pymorphy2 @xcite ). we also included an intro to regular expressions because we find this knowledge instrumental both within and outside nlp tasks. during the first weeks, most participants are highly motivated, we can afford to give them more practical material, but we still need to end up with some close-to-life clear examples. we use a simple sentiment analysis task on twitter data to demonstrate that even the first week's knowledge (together with understanding basic machine learning) allows participants to solve real-world problems. at the same time, we illustrate how particular steps of text prepossessing can have a crucial impact on the model's outcome. week 2. word embeddings. the lecture introduces the concepts of distributional semantics and word vector representations. we familiarize the students with early models, which utilized singular value decomposition (svd) and move towards more advanced word embedding models, such as word2vec @xcite and fasttext @xcite . we briefly touch upon the hierarchical softmax and the hashing trick and draw attention to negative sampling techniques. we show ways to compute word distance, including euclidean and cosine similarity measures. we discuss the difference between word2vec and glove @xcite models and emphasize main issues, such as dealing with outof-vocabulary (oov) words and disregarding rich morphology. fasttext is then claimed to address these issues. to conclude, we present approaches for intrinsic and extrinsic evaluation of word embeddings. fig. 1 explains the difference between bag-of-words and bag-of-vectors. in practical session we explore only advanced word embedding models (word2vec, fasttext and glove) and we cover three most common scenarios for working with such models: using pre-trained models, training models from scratch and tuning pre-trained models. giving a few examples, we show that fasttext as a character-level model serves as a better word representation model for russian and copes better with russian rich morphology. we also demonstrate some approaches of intrinsic evaluation of models' quality, such as solving analogy tasks (like well known "king -man + @xmath0. this topic can be fascinating for students when supplemented with illustrative examples. exploring visualization of words clusters on plots or solving analogies is a memorable part of the "classic" nlp part of most students' course. week 3. text classification. the lecture considers core concepts for supervised learning. we begin by providing examples for text classification applications, such as sentiment classification and spam filtering. multiple problem statements, such as binary, multi-class, and multi-label classification, are stated. to introduce ml algorithms, we start with logistic regression and move towards neu-ral methods for text classification. to this end, we introduce fasttext as an easy, out-of-the-box solution. we introduce the concept of sentence (paragraph) embedding by presenting doc2vec model @xcite and show how such embeddings can be used as input to the classification model. next, we move towards more sophisticated techniques, including convolutional models for sentence classification @xcite . we do not discuss backpropagation algorithms but refer to the dl course of the specialization to refresh understanding of neural network training. we show ways to collect annotated data on crowdsourcing platforms and speed up the process using active learning @xcite . finally, we conclude with text augmentation techniques, including smote @xcite and eda @xcite . in the practical session we continue working with the text classification on the imdb movies reviews dataset. we demonstrate several approaches to create classification models with different word embeddings. we compare two different ways to get sentence embedding, based on any word embedding model: by averaging word vectors and using tf-idf weights for a linear combination of word vectors. we showcase fasttext tool for text classification using its built-in classification algorithm. additionally, we consider use glove word embedding model to build a simple convolutional neural network for text classification. in this week and all of the following, we use pytorch 1 as a framework for deep learning. week 4. language modeling. the lecture focuses on the concept of language modelling. we start with early count-based models @xcite and create a link to markov chains. we refer to the problem of oov words and show the add-one smoothing method, avoiding more sophisticated techniques, such as knesser-ney smoothing @xcite , for the sake of time. next, we introduce neural language models. to this end, we first approach bengio's language model @xcite , which utilizes fully connected layers. second, we present recurrent neural networks and show how they can be used for language modeling. again, we remind the students of backpropagation through time and gradient vanishing or explosion, introduced earlier in 1 https://pytorch.org/ the dl course. we claim, that lstm (hochreiter and schmidhuber, 1997) and gru @xcite cope with these problems. as a brief revision of the lstm architecture is necessary, we utilize christopher olah's tutorial @xcite . we pay extra attention to the inner working of the lstm, following andrej karpathy's tutorial @xcite . to add some research flavor to the lecture, we talk about text generation @xcite , its application, and different decoding strategies @xcite , including beam search and nucleus sampling. lastly, we introduce the sequence labeling task @xcite for part-of-speech (pos) tagging and named entity recognition (ner) and show how rnn's can be utilized as sequence models for the tasks. the practical session in this week is divided into two parts. the first part is dedicated to language models for text generation. we experiment with count-based probabilistic models and rnn's to generate dinosaur names and get familiar with perplexity calculation (the task and the data were introduced in sequence models course from deeplearning.ai foot_0 ). to bring things together, students are asked to make minor changes in the code and run it to answer some questions in the week's quiz assignment. the second part of the session demonstrates the application of rnn's to named entity recognition. we first introduce the bio and bioes annotation schemes and show frameworks with pre-trained ner models for english (spacy foot_1 ) and russian (natasha foot_2 ) languages. further, we move on to cnn-bilstm-crf architecture described in the lecture and test it on conll 2003 shared task data @xcite . week 5. machine translation. this lecture starts with referring to the common experience of using machine translation tools and a historical overview of the area. next, the idea of encoderdecoder (seq2seq) architecture opens the technical part of the lecture. we start with rnn-based seq2seq models @xcite and introduce the concept of attention @xcite . we show how attention maps can be used for "black box" interpretation. next, we reveal the core architecture of modern nlp, namely, the transformer model @xcite and ask the students explicitly to take this part seriously. following jay allamar's tutorial @xcite , we decompose the transformer architecture and go through it step by step. in the last part of the lecture, we return to machine translation and introduce quality measures, such as wer and bleu @xcite , touch upon human evaluation and the fact that bleu correlates well with human judgments. finally, we discuss briefly more advanced techniques, such as non-autoregressive models @xcite and back translation @xcite . although we do not expect the student to comprehend these techniques immediately, we want to broaden their horizons so that they can think out of the box of supervised learning and autoregressive decoding. in the first part of practical session we solve the following task: given a date in an arbitrary format transform it to the standard format "dd-mmyyyy" (for example, "18 feb 2018", "18.02.2018", "18/02/2018" → "18-02-2018"). we adopt the code from pytorch machine translation tutorial foot_3 to our task: we use the same rnn encoder, rnn decoder, and its modification -rnn encoder with attention mechanism -and compare the quality of two decoders. we also demonstrate how to visualize attention weights. the second part is dedicated to the transformer model and is based on the harvard nlp tutorial @xcite that decomposes the article "attention is all you need" @xcite . step by step, like in the lecture, we go through the transformer code, trying to draw parallels with a simple encoder-decoder model we have seen in the first part. we describe and comment on every layer and pay special attention to implementing the attention layer and masking and the shapes of embeddings and layers. week 6. sesame street i. the sixth lecture and the next one are the most intense in the course. the paradigm of pre-trained language models is introduced in these two weeks. the first model to discuss in detail is elmo @xcite . next, we move to bert @xcite and introduce the masked language modeling and next sentence prediction objectives. while presenting bert, we briefly revise the inner working of transformer blocks. we showcase three scenarios to fine-tune bert: (i) text classification by using different pooling strategies ([cls], max or mean), (ii) sentence pair classification for paraphrase identification and for natural language inference, (iii) named entity recognition. squad-style questionanswering, at which bert is aimed too, as avoided here, as we will have another week for qa systems. next, we move towards gpt-2 @xcite and elaborate on how high-quality text generation can be potentially harmful. to make the difference between bert's and gpt-2's objective more clear, we draw parallels with the transformer architecture for machine translation and show that bert is an encoder-style model, while gpt-2 is a decoder-style model. we show allen nlp (gardner et al., 2018) demos of how gpt-2 generates texts and how attention scores implicitly resolve coreference. in this week, we massively rely on jay allamar's @xcite tutorial and adopt some of these brilliant illustrations. one of the main problems, though, rising in this week is the lack of russian terminology, as the russian-speaking community has not agreed on the proper ways to translate such terms as "contextualized encoder" or "fine-tuning". to spice up this week, we were dressed in sesame street kigurumis (see fig. 2 ). the main idea of the practical session is to demonstrate elmo and bert models, considered earlier in the lecture. the session is divided into two parts, and in both parts, we consider text classification, using elmo and bert models, respectively. in the first part, we demonstrate how to use elmo word embeddings for text classification on the imbdb dataset used in previous sessions. we use pre-trained elmo embeddings by al-lennlp @xcite library and implement a simple recurrent neural network with a gru layer on top for text classification. in the end, we compare the performance of this model with the scores we got in previous sessions on the same dataset and demonstrate that using elmo embeddings can improve model performance. the second part of the session is focused on models based on transformer architecture. we use huggingface-transformers library @xcite and a pre-trained bert model to build a classification algorithm for google play applications reviews written in english. we implement an entire pipeline of data preparation, using a pretrained model and demonstrating how to fine-tune the downstream task model. besides, we implement a wrapper for the bert classification model to get the prediction on new text. week 7. sesame street ii. to continue diving into the pre-trained language model paradigm, the lecture first questions, how to evaluate the model. we discuss some methods to interpret the bert's inner workings, sometimes referred to as bertology @xcite . we introduce a few common ideas: bert's lower layers account for surface features, lower to middle layers are responsible for morphology, while the upper-middle layers have better syntax representation @xcite . we talk about ethical issues @xcite , caused by pre-training on raw web texts. we move towards the extrinsic evaluation of pre-trained models and familiarize the students with glue-style evaluations @xcite . the next part of the lecture covers different improvements of bert-like models. we show how different design choices may affect the model's performance in different tasks and present roberta @xcite , and albert @xcite as members of a bert-based family. we touch upon the computational inefficiency of pre-trained models and introduce lighter models, including distillbert @xcite . to be solid, we touch upon other techniques to compress pre-trained models, including pruning @xcite and quantization @xcite , but do not expect the students to be able to implement these techniques immediately. we present the concept of language transferring and introduce multilingual transformers, such as xlm-r @xcite . language transfer becomes more and more crucial for non-english applications, and thus we draw more attention to it. finally, we cover some of the basic multi-modal models aimed at image captioning and visual question answering, such as the unified vision-language pre-training (vlp) model @xcite . in the practical session we continue discussing bert-based models, shown in the lectures. the session's main idea is to consider different tasks that may be solved by bert-based models and to demonstrate different tools and approaches for solving them. so the practical session is divided into two parts. the first part is devoted to named entity recognition. we consider a pre-trained crosslingual bert-based ner model from the deep-pavlov library @xcite and demonstrate how it can be used to extract named entities from russian and english text. the second part is focused on multilingual zero-shot classification. we consider the pre-trained xlm-based model by huggingface, discuss the approach's key ideas, and demonstrate how the model works, classifying short texts in english, russian, spanish, and french. week 8. syntax parsing. the lecture is devoted to computational approaches to syntactic parsing and is structured as follows. after a brief introduction about the matter and its possible applications (both as an auxiliary task and an independent one), we consider syntactic frameworks developed in linguistics: dependency grammar (tesnière, 2015) and constituency grammar (bloomfield, 1936). then we discuss only algorithms that deal with dependency parsing (mainly because there are no constituency parsers for russian), so we turn to graph-based @xcite and transition-based (aho and ullman, 1972) dependency parsers and consider their logics, structure, sorts, advantages, and drawbacks. afterward, we familiarize students with the practical side of parsing, so we introduce syntactically annotated corpora, universal dependencies project @xcite and some parsers which perform for russian well (udpipe @xcite , deeppavlov project @xcite ). the last part of our lecture represents a brief overview of the problems which were not covered in previous parts: bertology, some issues of web-texts parsing, latest advances in computational syntax (like enhanced dependencies @xcite ). the practical session starts with a quick overview of conll-u annotation format @xcite : we show how to load, parse and visualize such data on the example from the syntagrus corpus foot_4 . next, we learn to parse data with pretrained udpipe models @xcite and russian-language framework natasha. to demonstrate some practical usage of syntax parsing, we first understand how to extract subject-verb-object (svo) triples and then design a simple templatebased text summarization model. week 9. topic modelling the focus of this lecture is topic modeling. first, we formulate the topic modeling problem and ways it can be used to cluster texts or extract topics. we explain the basic probabilistic latent semantic analysis (plsa) model @xcite , that modifies early approaches, which were based on svd @xcite . we approach the plsa problem using the expectation-minimization (em) algorithm and introduce the basic performance metrics, such as perplexity and topic coherence. as the plsa problem is ill-posed, we familiarize students with regularization techniques using additive regularization for topic modeling (artm) model @xcite as an example. we describe the general em algorithm for artm and some basic regularizers. then we move towards the latent dirichlet allocation (lda) model @xcite and show that the maximum a posteriori estimation for lda is the special case of the artm model with a smoothing or sparsing regularizer (see fig. 3 for the explanation snippet). we conclude the lecture with a brief introduction to multi-modal artm models and show how to generalize different bayesian topic models based on lda. we showcase classification, word translation, and trend detection tasks as multimodal models. in practical session we consider the models discussed in the lecture in a slightly different order. first, we take a closer look at gensim realization of the lda model @xcite , pick up the model's optimal parameters in terms of perplexity and topic coherence, and visualize the model with pyldavis library. next, we explore bigartm @xcite library, particularly lda, plsa, and multi-modal models, and the impact of different regularizers. for all experiments, we use a corpus of russian-language news from lenta.ru foot_5 which allows us to compare the models to each other. week 10. in this lecture we discussed monolingual seq2seq problems, text summarization and sentence simplification. we start with extractive summarization techniques. the first approach introduced is textrank @xcite . we present each step of this approach and explain that any sentence or keyword embeddings can be used to construct a text graph, as required by the method. thus we refer the students back to earlier lectures, where sentence embeddings were discussed. next, we move to abstractive summarization techniques. to this end, we present performance metrics, such as rouge @xcite and meteor @xcite and briefly overview pre-transformer architectures, including pointer networks @xcite . next, we show recent pre-trained transformer-based models, which aim at multi-task learning, including summarization. to this end, we discuss pre-training approaches of t5 @xcite and bart @xcite , and how they help to improve the performance of mono-lingual se2seq tasks. unfortunately, when this lecture was created, multilingual versions of these models were not available, so they are left out of the scope. finally, we talk about sentence simplification task @xcite and its social impact. we present sari @xcite as a metric for sentence simplification performance and state, explain how t5 or bart can be utilized for the task. the practical session is devoted to extractive summarization and textrank algorithm. we are urged to stick to extractive summarization, as russian lacks annotated datasets, but, at the same time, the task is demanded by in industry-extractive summarization compromises than between the need for summarization techniques and the absence of training datasets. nevertheless, we used annotated english datasets to show how performance metrics can be used for the task. the cnn/dailymail articles are used as an example of a dataset for the summarization task. as there is no standard benchmark for text summarization in russian, we have to use english to measure different models' performance. we implement the textrank algorithm and compare it with the algorithm from the net-workx library @xcite . also, we demonstrate how to estimate the performance of the summarization by calculating the rouge metric for the resulting algorithm using the pyrouge library foot_6 . this practical session allows us to refer back the students to sentence embedding models and showcase another application of sentence vectors. week 11. the penultimate lecture approaches question-answering (qa) systems and chat-bot technologies. we present multiple real-life industrial applications, where chat-bots and qa technologies are used, ranging from simple taskoriented chat-bots for food ordering to help desk or hotline automation. next, we formulate the core problems of task-oriented chat-bots, which are intent classification and slot-filling @xcite and revise methods, to approach them. after that, we introduce the concept of a dialog scenario graph and show how such a graph can guide users to complete their requests. without going deep into technical details, we show how readymade solutions, such as google dialogflow foot_7 , can be used to create task-oriented chat-bots. next, we move towards qa models, of which we pay more attention to information retrieval-based (irbased) approaches and squad-style @xcite approaches. since natural language generation models are not mature enough (at least for russian) to be used in free dialog, we explain how ir-based techniques imitate a conversation with a user. finally, we show how bert can be used to tackle the squad problem. the lecture is concluded by comparing industrial dialog assistants created by russian companies, such as yandex.alisa or mail.ru marusya. in the practical session we demonstrate several examples of using transformer-based models for qa task. firstly, we try to finetune electra model @xcite on covid-19 questions dataset foot_8 and bert on squad 2.0 @xcite (we use code from hugginface tutorial foot_9 for the latter). next, we show an example of usage of pretrained model for russian-language data from deeppavlov project. finally, we explore how to use bert for joint intent classification and slot filling task @xcite . week 12. the last lecture wraps up the course by discussing knowledge graphs (kg) and some of their applications for qa systems. we revise core information extraction problems, such as ner and relation detection, and show how they can be used to extract a knowledge graph from unstructured texts @xcite . we touch upon the entity linking problem but do not go deep into details. to propose to students an alternative view to information extraction, we present machine reading comprehension approaches for ner @xcite and relation detection @xcite , referring to the previous lecture. finally, we close the course by revising all topics covered. we recite the evolution of text representation models from bag-of-words to bert. we show that all the problems discussed throughout the course fall into one of three categories: (i) text classification or sentence pair classification, (ii) sequence tagging, (iii) sequence-to-sequence transformation. we draw attention to the fact that the most recent models can tackle all of the problem categories. last but not least we revise, how all of these problem statements are utilized in real-life applications. the practical session in this week is dedicated to information extraction tasks with stanford corenlp library @xcite . the session's main idea is to demonstrate using the tool for constructing knowledge graphs based on natural text. we consider different ways of using the library and experimented with using the library to solve different nlp tasks that were already considered in the course: tokenization, lemmatization, pos-tagging, and dependency parsing. the library includes models for 53 languages, so we consider examples of solving these tasks for english and russian texts. besides, relation extraction is considered using the open information extraction (ope-nie) module from the corenlp library. ## home works the course consists of multiple ungraded quiz assignments, 11 graded quiz assignments, three graded coding assignments. grading is performed automatically in a kaggle-like fashion. ## platform description the course is hosted on openedu foot_12 -an educational platform created by the association "national platform for open education", established by leading russian universities. our course and all courses on the platform are available free of charge so that everyone can access all materials (including videos, practical jupyter notebooks, tests, and coding assessments). the platform also provides a forum where course participants can ask questions or discuss the material with each other and lecturers. ## expected outcomes first of all, we expect the students to understand basic formulations of the nlp tasks, such as text classification, sentence pair modeling, sequence tagging, and sequence-to-sequence transformation. we expect the students to be able to recall core terminology and use it fluently. in some weeks, we provide links to extra materials, mainly in english, so that the students can learn more about the topic themselves. we hope that after completing the course, the students become able to read those materials. secondly, we anticipate that after completing the course, the students are comfortable using popular python tools to process texts in russian and english and utilize pre-trained models. thirdly, we hope that the students can state and approach their tasks related to nlp, using the knowledge acquired, conducting experiments, and evaluating the results correctly. ## feedback the early feedback we have received so far is positive. although the course has only been advertised so far to a broader audience, we know that there are two groups interested in the course. first, some students come to study at their own will. secondly, selected topics were used in offline courses in an inverse classroom format or as additional materials. the students note that our course is a good starting point for studying nlp and helps navigate a broad range of topics and learn the terminology. some of the students note that it was easy for them to learn in russian, and now, as they feel more comfortable with the core concepts, they can turn to read detailed and more recent sources. unfortunately, programming assignments turn out to be our weak spot, as there are challenging to complete, and little feedback on them can be provided. we ask all participants to fill in a short survey after they enroll in the course. so far, we have received about 100 responses. according to the results, most students (78%) have previously taken online courses, but only 24% of them have experience with courses from foreign universities. the average age of course participants is 32 years; most of them already have or are getting a higher education (see fig. 4 for more details). almost half of the students are occupied in computer science area, 20% have a background in humanities, followed by engineering science (16%). we also ask students about their motivation in the form of a multiple-choice question: almost half of them (46%) stated that they want to improve their qualification either to improve at their current job (33%) or to change their occupation (13%), and 20% answered they enrolled the course for research and academic purposes. for the vast majority of the student, the reputation of hse university was the key factor to select this course among other available. ## conclusion this paper introduced and described a new massive open online course on natural language processing targeted at russian-speaking students. this twelve-week course was designed and recorded during 2020 and launched by the end of the year. in the lectures and practical session, we managed to document a paradigm shift caused by the discovery and widespread use of pre-trained transformerbased language models. we inherited the best of two worlds, showing how to utilize both static word embeddings in a more traditional machine learning setup and contextualized word embeddings in the most recent fashion. the course's theoretical outcome is understanding and knowing core concepts and problem formulations, while the practical outcome covers knowing how to use tools to process text in russian and english. early feedback we got from the students is positive. as every week was devoted to a new topic, they did not find it difficult to keep being engaged. the ways we introduce the core problem formulations and showcase different tools to process texts in russian earned approval. what is more, the presented course is used now as supplementary material in a few off-line educational programs to the best of our knowledge. further improvements and adjustments, which could be made for the course, include new home works related to machine translation or monolingual sequence-to-sequence tasks and the development of additional materials in written form to support mathematical calculations, avoided in the video lecture for the sake of time.