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

Introduction to Programming for Linguists

2019/2020
Academic Year
RUS
Instruction in Russian
5
ECTS credits
Delivered at:
School of Foreign Languages
Course type:
Compulsory course
When:
1 year, 1-4 module

Instructors


Алешина Арина Александровна


Malafeev, Alexey

Программа дисциплины

Аннотация

Дисциплина посвящена изучению основ программирования и алгоритмизации на языке программирования Python (версии 3.4 и 3.6+). Введение в программирование для лингвистов не требует наличия у обучающихся опыта программирования. Обучение ведётся "с нуля", поэтому для начала освоения языка Python достаточно элементарной компьютерной грамотности (владение текстовыми редакторами, создание и сохранение файлов, установка программ, поиск информации в сети Интернет). Акцент в процессе обучения делается на задачах, связанных с автоматической обработкой текстов. Настоящая дисциплина относится к базовой части Профессионального цикла Б.ПЦ.Б, изучается на первом курсе в 1-4 модулях, т.е. является одной из первых изучаемых дисциплин на образовательной программе «Фундаментальная и прикладная лингвистика». Изучение данной дисциплины связано с изучаемыми параллельно дисциплинами «Введение в лингвистику», «Научно-исследовательский семинар» и «Теория языка». Основные положения дисциплины должны быть использованы в дальнейшем при изучении дисциплин «Программирование для лингвистов», «Компьютерные инструменты лингвистического исследования», «Автоматическая обработка естественного языка», «Машинное обучение», при подготовке курсовых и выпускных квалификационных работ.
Цель освоения дисциплины

Цель освоения дисциплины

  • Овладение правилами синтаксиса языка Python 3, изучение основных ключевых слов, команд и модулей стандартной библиотеки.
  • Знакомство с некоторыми лучшими практиками написания кода на языке Python 3 и типичными ошибками начинающих программистов.
  • Развитие алгоритмического мышления для решения различных задач в области обработки текстов, корпусов и баз данных.
  • Устранение психологического барьера, свойственного многим студентам-гуманитариям, не имеющим опыта программирования, и выражающегося в страхе или дискомфорте по отношению к данному виду деятельности.
Планируемые результаты обучения

Планируемые результаты обучения

  • Знает базовые принципы программирования.
  • Понимает, для чего нужны переменные, какие существуют типы переменных и применяет их для хранения различных данных.
  • Знает, что такое функции, умеет их создавать и вызывать. Понимает разницу между продуктивными функциями и процедурами.
  • Знает синтаксис ветвлений, умеет их использовать в решении задач.
  • Знает синтаксис for- и while-циклов. Умеет применять их по назначению.
  • Понимает особенности работы со строками в Python. Умеет создавать строки и производить над ними различные операции.
  • Знает возможности и особенности списков. Понимает отличие изменяемых от неизменяемых объектов. Умеет их создавать и использовать в задачах. Умеет применять методы списков.
  • Знает возможности и ограничения словарей. Умеет применять словари и их методы.
  • Знает особенности кортежей и их отличия от списков. Умеет применять кортежи.
  • Понимает, что такое множества, умеет их применять.
  • Умеет открывать, читать и записывать файлы средствами Python.
  • Умеет создавать классы и объекты классов.
  • Знает возможностей модулей стандартной библиотеки math, re, random, os. Умеет их применять.
  • Умеет решать различные прикладные задачи на языке программирования Python, используя все ранее изученные средства.
Содержание учебной дисциплины

Содержание учебной дисциплины

  • Введение
    Язык программирования. Программа. Алгоритм. Алгоритмическое мышление. Особенности языка программирования Python 3. Виды ошибок. Отладка.
  • Переменные
    Значения и типы. Переменные. Имена переменных и ключевые слова. Выражения. Предложения. Операторы. Порядок вычислений. Комментарии.
  • Функции
    Функция. Определение функции. Параметр, аргумент функции. Вызов функции. Локальная переменная. Возвращаемое значение. Модуль. Импорт модуля. Встроенные функции.
  • Ветвления
    Булево выражение. Операторы сравнения. Логические операторы. Ветвление. Вложенные ветвления.
  • Циклы
    Цикл. Инкрементация. Итерация. Бесконечные циклы. Рекурсия.
  • Строки
    Строка. Индекс. Срез. Пустая строка. Операции со строками. Ввод строки пользователем. Методы строк.
  • Списки
    Список. Элемент. Ссылка. Изменяемые и неизменяемые типы данных. Методы списков. Вложенные списки. Генераторы списков.
  • Словари
    Словарь. Ключ. Значение. Методы словарей. Применение словарей и списков. Генераторы словарей.
  • Кортежи
    Кортеж. Сравнение кортежей со списками. Применение кортежей.
  • Множества
    Множество. Операции со множествами. Применение множеств.
  • Файлы и файловые объекты
    Файл. Файловый объект. Кодировка. Чтение и запись файлов.
  • Основы ООП
    Объектно-ориентированное программирование. Преимущества ООП. Возможности для применения ООП в языке Python 3.
  • Некоторые полезные модули стандартной библиотеки
    Модули math, re, random, os.
  • Практика решения задач
    В данном разделе студент самостоятельно и в классе решает различные задачи, связанные с обработкой текстов.
Элементы контроля

Элементы контроля

  • неблокирующий Тесты на теоретические знания
    Если проверочная работа пропущена студентом по уважительной причине, она не засчитывается как задолженность, однако если студент за время прохождения курса выполнил менее 60% работ, ему предоставляется возможность выполнить две дополнительные работы (по всем ранее пройденным темам) непосредственно перед экзаменом, при этом вес этих работ пропорционален доле пропущенных.
  • неблокирующий Домашние практические задания
    Если работа пропущена студентом по уважительной причине, она не засчитывается как задолженность, однако если студент за время прохождения курса выполнил менее 60% работ, ему предоставляется возможность выполнить две дополнительные работы (по всем ранее пройденным темам) непосредственно перед экзаменом, при этом вес этих работ пропорционален доле пропущенных.
  • неблокирующий Экзамен
    "Экзамен проводится в устной форме с использованием асинхронного прокторинга. Экзамен проводится на платформе MS Teams (https://teams.microsoft.com), прокторинг на платформе Экзамус (https://hse.student.examus.net). К экзамену необходимо подключиться за 15 минут. На платформе Экзамус доступно тестирование системы. Компьютер студента должен удовлетворять следующим требованиям: https://elearning.hse.ru/data/2020/05/07/1544135594/Технические%20требования%20к%20ПК%20студента.pdf) Для участия в экзамене студент обязан: заранее зайти на платформу прокторинга, провести тест системы, включить камеру и микрофон, подтвердить личность. Во время экзамена студентам запрещено: общаться (в социальных сетях, с людьми в комнате), списывать. Кратковременным нарушением связи во время экзамена считается прерывание связи до 10 минут. Долговременным нарушением связи во время экзамена считается прерывание связи 10 минут и более. При долговременном нарушении связи студент не может продолжить участие в экзамене. Процедура пересдачи аналогична процедуре сдачи."
Промежуточная аттестация

Промежуточная аттестация

  • Промежуточная аттестация (2 модуль)
    0.476 * Домашние практические задания + 0.524 * Тесты на теоретические знания
  • Промежуточная аттестация (4 модуль)
    0.15 * Домашние практические задания + 0.25 * Промежуточная аттестация (2 модуль) + 0.1 * Тесты на теоретические знания + 0.5 * Экзамен
Список литературы

Список литературы

Рекомендуемая основная литература

  • Основы алгоритмизации и программирования на Python : учеб. пособие / С.Р. Гуриков. — М. : ФОРУМ : ИНФРА-М, 2018. — 343 с. — (Высшее образование: Бакалавриат). - Режим доступа: http://znanium.com/catalog/product/924699
  • Основы алгоритмизации и программирования на Python : учеб. пособие / С.Р. Гуриков. — М. : ФОРУМ : ИНФРА-М, 2018. — 343 с. — (Среднее профессиональное образование). - Режим доступа: http://znanium.com/catalog/product/961522

Рекомендуемая дополнительная литература

  • Основы алгоритмизации и программирования на Python : учеб. пособие / С.Р. Гуриков. — М. : ФОРУМ : ИНФРА-М, 2019. — 343 с. — (Среднее профессиональное образование). - Режим доступа: http://znanium.com/catalog/product/970143