Магистратура
2019/2020



Основы программирования
Лучший по критерию «Полезность курса для Вашей будущей карьеры»
Лучший по критерию «Полезность курса для расширения кругозора и разностороннего развития»
Лучший по критерию «Новизна полученных знаний»
Статус:
Курс обязательный (Лингвистическая теория и описание языка)
Направление:
45.04.03. Фундаментальная и прикладная лингвистика
Кто читает:
Школа лингвистики
Когда читается:
1-й курс, 1 модуль
Формат изучения:
без онлайн-курса
Преподаватели:
Попова Дарья Павловна
Прогр. обучения:
Лингвистическая теория и описание языка
Язык:
английский
Кредиты:
3
Course Syllabus
Abstract
The course is an introduction to data processing and programming for theoretical linguists. It assumes little to no background in programming. The course aims to make the students comfortable with programming and with using programming in their own linguistic research. The first goal of the course is to introduce the basics of programming; the second goal of the course is to show the students that they can solve linguistic problems that they are interested in and working on using the tools they were given. The course provides an opportunity for the students to work on their own research problem as their final project.
Learning Objectives
- to teach students the basics of Python;
- to make students comfortable using programming in their linguistic research;
- to familiarize them with some of the advances in data processing and natural language processing;
- to teach them how to create a linguistic corpus, how to retrieve data from the Internet, how to parse it, how to analyze it computationally;
- to teach students how to present their computational work;
- to teach students how to read each others’ code and how to ethically use open access code written by somebody else.
Expected Learning Outcomes
- students will be comfortable with the Unix shell and simple commands related to processing text;
- students will know basic constructions and functions of Python, as well as the most frequently used functions and modules used for text processing;
- students will be able to use regular expressions for information extraction;
- students will be able to retrieve data from the Internet, parse it and use it for linguistic processing;
- students will be able to write simple scripts in Python in order to use them in their own linguistic research;
- students will understand how common file forms for linguistic data work;
- students will learn how to structure their code, how to make it readable and reusable, and how to present it to other linguists.
- students will learn different ways to format their data: csv, database, json;
Course Contents
- Interacting with Python. Code presentation.Datatypes and variablesInstalling and using Python. The interactive environment. Edit and run. Doing basic math in Python.Markdown.Jupiter notebook.Assignment of variables. Basic data types: numbers, Booleans, strings, lists, tuples, dictionaries.Mutability. Homework 1 is distributed.
- Control structuresGrouping and indentation.If, for, while, break, continue operators.Homework 2 is distributed.
- Input and output. ModulesCommand-line input. Keyboard input. File input. File output.Simple functions.Functions that return values.Functions that take arguments.Modules.Writing your own modules.Homework 3 is distributed.
- Regular expressionsDefinition.Matching.Patterns.Homework 4 is distributed.
- Text manipulation.Choosing a final projectManipulating text.Morphological parsing. An example of a morphological parser: Mystem.
- Internet dataRetrieving data.HTML.HTML parsing.
- Visualization. Different formats: csv, databases, json. Basics of web design: creating a web site for a linguistic experiment. Final project consultationDrawing graphs in Python. Different ways to format your data: csv, database, json; switching between formats. Flask.Heroku or pythonanywhere.
- Classes. Final project presentations
Assessment Elements
- Active participation
- Homework assignment 1
- Homework assignment 2
- Homework assignment 3
- Homework assignment 4
- Final project