Правительство Российской Федерации
Нижегородский филиал
федерального государственного автономного образовательного
учреждения высшего профессионального образования
"Национальный исследовательский университет
"Высшая школа экономики"
Факультет гуманитарных наук
Программа дисциплины
«Основы программирования»
для направления 035800.62 «Фундаментальная и прикладная лингвистика»
1 курс.
Автор программы:
Сухов П.А., (pasuhov@hse.ru)
Одобрена на заседании кафедры ПМИ «___»____________ 2012 г.
Зав. кафедрой Калягин В.А._______________________
Рекомендована секцией УМС «Прикладная математика» «___»________ 2012 г.
Председатель Калягин В.А._______________________
Рекомендована секцией УМС «Гуманитарные науки» «___»________ 2012 г.
Председатель Зусман В.Г._______________________
Утверждена УМС НИУ ВШЭ – Нижний Новгород «___»_____________2012 г.
Председатель Петрухин Н.С. ________________________
Н.Новгород, 2012
Настоящая программа не может быть использована другими подразделениями университета и другими вузами без разрешения кафедры-разработчика программы..
1Область применения и нормативные ссылки
Настоящая программа учебной дисциплины устанавливает минимальные требования к знаниям и
умениям студента и определяет содержание и виды учебных занятий и отчётности.
Программа предназначена для преподавателей, ведущих данную дисциплину, учебных
ассистентов и студентов направления подготовки 035800.62 «Фундаментальная и прикладная
лингвистика», обучающихся по магистерской программе «Фундаментальная и прикладная
лингвистика», изучающих дисциплину «Программирование для лингвистов».
Программа разработана в соответствии с:
-
Образовательным стандартом государственного образовательного бюджетного учреждения высшего профессионального образования Высшей школы экономики, в отношении которого установлена категория «национальный исследовательский университет» (ГОБУ ВПО НИУ—ВШЭ), протокол от 24.06.2011
-
Образовательной программой направления «Фундаментальная и прикладная лингвистика» подготовки бакалавра;
-
Рабочим учебным планом НИУ—ВШЭ на 2012/2013 гг. по направлению подготовки «Фундаментальная и прикладная лингвистика», утверждённым в 2012 году.
2Цели освоения дисциплины
Цель курса — научить слушателей применять компьютерные технологии (в первую очередь, язык программирования Python) для решения возникающих на практике лингвистических задач
(автоматическая обработка и анализ текстовых данных, поиск информации и др.). В вводной части курса рассматриваются основы языка Python не связанные с лингвистическими задачами. Основная часть курса посвящена углубленному изучению программирования на языке Python, алгоритмов и регулярных выражений, практических лингвистических задач.
3Компетенции обучающегося, формируемые в результате освоения дисциплины
В результате освоения дисциплины студент должен:
-
Знать базовый синтаксис языка Python
-
Знать встроенные структуры данных языка Python(списки, словари, множества, кортежи и др.)
-
Знать язык регулярных выражений, применяемых в языке Python
-
Уметь составлять и реализовывать алгоритмы на языке питон
-
Уметь применять полученные знания для решения практических задач
-
Иметь навыки работы со средами разработки для языка Python (ipython, ipython notebook, PyScripter, Spyder)
-
Приобрести опыт работы с библиотекой NLTK (Natural Language Toolkit)
В результате освоения дисциплины студент осваивает следующие компетенции:
Компетенция
|
Код по НИУ
|
Дескрипторы – основные признаки освоения (показатели достижения результата)
|
Формы и методы обучения, способствующие формированию и развитию компетенции
|
владением современными компьютерными инструментами лингвистического
исследования
|
ПК-8
|
Демонстрирует уровень владения студентами технических средств, применяемых для сбора, обработки и анализа лингвистических данных.
|
Задачи на практических занятиях должны требовать знание наиболее широкого спектра механизмов и инструментов, описанных в лекционном материале
|
владением методами сбора и документации лингвистических данных
|
ПК-9
|
Использует возможности технических средств для автоматического коллекционирования и фильтрования лингвистических данных
|
Практические занятия должны быть сформулированы для недостаточно структурированных данных
|
владением навыками программирования для реализации профессиональных задач и навыками создания баз данных
|
ПК-21
|
Применяет компетенции, полученные на занятиях, для решения практических задач
|
Задачи должны быть максимально приближены к реальным
| 4Место дисциплины в структуре образовательной программы
Настоящая дисциплина является частью математического и естественно-научного цикла.
Основные положения дисциплины должны быть использованы в дальнейшем при изучении следующих дисциплин: Базы данных, Теория автоматов и формальных языков, Автоматическая
обработка естественного языка, Информационный поиск и извлечение данных, Анализ и синтез
звучащей речи, Морфологические и синтаксические парсеры, Онтологии и семантические
технологии, Машинный перевод, Компьютерные технологии корпусной лингвистики.
5Тематический план учебной дисциплины
№
|
Название раздела
|
Всего часов
|
Аудиторные часы
|
Самостоятельная работа
|
Лекции
|
Семинары
|
Практические занятия
|
1
|
Введение в язык Python
|
24
|
10
|
|
14
|
20
|
2
|
Сторонние библиотеки языка Python
|
10
|
5
|
|
5
|
15
|
3
|
Введение в алгоритмы. Понятие сложности алгоритма.
|
4
|
4
|
|
0
|
5
|
3
|
Основы алгоритмов анализа текста
|
20
|
10
|
|
10
|
30
|
4
|
Основы алгоритмов машинного обучения
|
30
|
10
|
|
20
|
30
|
5
|
Механизмы анализа текста в сети «Интернет»
|
10
|
3
|
|
7
|
18
|
|
Нужно
|
216
|
48
|
|
49
|
119
|
Исправить часы
Формы контроля знаний студентов
Тип контроля
|
Форма контроля
|
1 год
|
Параметры
|
1
|
2
|
3
|
4
|
Текущий
(неделя)
|
Контрольная работа
|
|
4
|
|
4
|
???????????????
|
|
Домашнее задание
|
|
|
|
|
??????????????? Одно
|
Промежуточный
|
Зачет
|
|
*
|
|
|
?????????????
|
Итоговый
|
Экзамен
|
|
|
|
*
|
Решение задач по программированию на 120 минут
|
Проставить параметры
5.1Критерии оценки знаний, навыков
-
При оценивании программы в первую очередь обращается внимание на то, насколько её работа соответствует требованиям, описанным в задании. Программа, не запускающаяся из-за синтаксических ошибок, не может получить оценку выше 4 баллов. Баллы могут сниматься, в частности, за неточное выполнение задания и отсутствие разбора случаев, из-за которых при исполнении программы может произойти ошибка. Во вторую очередь могут оцениваться оптимальность решения (в смысле времени работы программы и количества строк кода) и стиль.
-
На контрольной во 2 модуле проверяется знание синткасиса языка Python, умение реализовывать простейшие алгоритмы на этом языке и навыки владения средой разработки.
-
На контрольной в 4 модуле проверяется знание языка регулярных выражений, сторонних библиотек и алгоритмов.
-
На экзамене проверяются все знания и умения, приобретённые во время изучения настоящей дисциплины.
-
На каждой контрольной и экзамене, задания выполняются на компьютере. В исключительных случаях может быть задан дополнительный теоретический вопрос.
-
Во время проведения контрольных и экзамена разрешено использование любой справочной литературы, записей с лекций, материалов из Интернет-ресурсов. Запрещено общение с другими людьми.
5.2Порядок формирования оценок по дисциплине
Оценки за работу на семинарских и практических занятиях преподаватель выставляет в рабочую ведомость. Накопленная оценка по 10-ти балльной шкале за работу на семинарских и практических занятиях определяется перед промежуточным или итоговым контролем - Оаудиторная.
Преподаватель оценивает самостоятельную работу студентов руководствуясь правилами пункта 5.1. Оценки за самостоятельную работу студента преподаватель выставляет в рабочую ведомость. Накопленная оценка по 10-ти балльной шкале за самостоятельную работу определяется перед промежуточным или итоговым контролем – Осам. работа.
Накопленная оценка за текущий контроль учитывает результаты студента по текущему контролю следующим образом:
Онакопленная= 0.6* Отекущий + 0.2* Оауд + 0.2* Осам.работа
где Отекущий рассчитывается как взвешенная сумма всех форм текущего контроля, предусмотренных в РУП
Отекущий = 0.5·Ок/р1 + 0.5·Ок/р2 ;
Результирующая оценка за дисциплину рассчитывается следующим образом:
Орезульт = 0.2* Онакопл + 0.8 *·Оэкз/зач
Немного не так.
Вначале нужно определиться, в каком модуле будет реализовываться домашнее задание. Предположим, что в третьем.
Делим процесс изучения дисциплины на два этапа (до зачета и после него).
1-ый этап.
Онакопленная1= 0,6* Отекущий1 + 0,2* Оауд + 0,2* Осам.работа
Отекущий1 = Ок/р1
Опромежуточная1 = 0,5·Отекущий1 + 0,5·О зачет
2-ой этап
Онакопленная2= 0,6* Отекущий2 + 0,2* Оауд + 0,2* Осам.работа
Отекущий2 =0,5·Ок/р2 + 0,5·Од/з
Онакопленная Итоговая = (Опромежуточная 1+ Онакопленная 2) : 2
Орезульт = 0,6·Онакопл итоговая + 0,4·О экзамен
Коэффициенты ориентировочные.
Способ округления накопленной оценки промежуточного (итогового) контроля в форме экзамена: в пользу студента.
В случае безупречного выполнения экзамена студент имеет возможность получить 10 независимо от накопительной оценки после ответа на дополнительные теоретические вопросы.
В случае, если при выполнении экзаменационного задания имели место быть недочеты, на экзамене студент может получить дополнительный вопрос (дополнительную практическую задачу, решить к пересдаче домашнее задание), ответ на который оценивается в 1 балл.
В диплом выставляет результирующая оценка по учебной дисциплине, которая формируется по следующей формуле:
Орезульт =0.2·Онакопл + 0.8·Оитоговый
Способ округления результирующей оценки по учебной дисциплине: в пользу студента.
ВНИМАНИЕ: оценка за итоговый контроль блокирующая, при неудовлетворительной итоговой оценке она равна результирующей. Внимание. С января 2013 года это правило не действует.
6Содержание дисциплины Название разделов должно соответствовать тем.плану -
Раздел 1 Средства языка Python
Темы:
-
Введение. Понятие компилятора, интерпретатора. Знакомство со средой разработки.
-
Способы ввода-вывода. Арифметические выражения. Переменные.
-
Условные переходы.
-
Циклы.
-
Файловый ввод-вывод.
-
Базовые структуры данных.
-
Встроенные контейнеры.
-
Встроенные функции.
-
Объявление функций. Рекурсивный вызов.
-
Раздел 2. Сторонние библиотеки языка Python
Темы:
-
Библиотека NLTK.
-
Библиотека Matplotlib. Возможности отображения данных.
-
Библиотека NumPy и SciPy.
-
Библиотека Scikit-Learn.
-
Прочие библиотеки.
-
Раздел 3. Основы алгоритмов и структур данных в анализе текста
Темы:
-
Введение. Понятие сложности.
-
Классические алгоритмы.
-
Введение в алгоритмы анализа текста. Отличие алгоритмов от классических.
-
Алгоритм Кнута-Морриса-Пратта, алгоритм Бойра-Мура.
-
Суффиксные массивы и суффиксные деревья.
-
Сжатые суффиксные деревья. Структуры данных для представления их в памяти.
-
Введение в машинное обучение.
-
Алгоритм k-ближайших.
-
Алгоритм Байеса.
-
0 Метод опорных векторов
3.11 Применение алгоритмов машинного обучения к лингвистическим задачам
7Образовательные технологии 7.1Методические рекомендации преподавателю
Основной упор курса должен быть на получение реальных навыков и умений. Навыки написания программ и создания алгоритмов всегда более приоритетные, чем теоретические знания.
8Оценочные средства для текущего контроля и аттестации студента 8.1Тематика заданий текущего контроля
Где?
8.2Вопросы для оценки качества освоения дисциплины
Примерный перечень вопросов к зачету (экзамену) по всему курсу или к каждому промежуточному и итоговому контролю для самопроверки студентов.
Где?
8.3Примеры заданий промежуточного /итогового контроля
Примеры заданий промежуточного контроля первого модуля:
-
Найти число Фибоначчи номер 435245
-
Среди чисел от 20000 до 30000 включительно найти все палиндромы кратные 3-м.
-
Найти самую длинную строку в файле task.dat
Пример задачи из экзаменационного контроля:
-
В файле text.dat дан отрывок одного произведения. Написать программу, которая выдаст все слова, предположительно являющиеся в этом отрывке именами собственными.
9.1Базовый учебник
Базовая информация содержится на сайте документации языка Python - http://docs.python.org
9.2Основная литература
Кормен Т. Алгоритмы. Построение и анализ. Вильямс, 2012.
9.3 Интернет-ресурсы
http://docs.python.org
http://docs.scipy.org/doc/
http://nltk.org/
http://matplotlib.org/
Программные средства
Для успешного освоения дисциплины, студент использует следующие программные средства:
-
IPython notebook
-
PyScripter
-
Spyder
10Материально-техническое обеспечение дисциплины
На каждое занятие каждому студенту должен быть предоставлен доступ к компьютеру, с возможностью выхода в интернет, интерпретатором языка Python с дополнительными библиотеками, изучаемыми в курсе, средами разработки Spyder, PyScripter, IPython notebook, а так же браузером версии, поддерживаемой средой IPython notebook.
Автор программы П.А. Сухов
Достарыңызбен бөлісу: |