| 
            
              
            НИУ ВШЭ – Нижний Новгород
             
            Программа дисциплины «Современные скриптовые языки программирования» 
            для направления 010400.62 – Прикладная математика и информатика подготовки бакалавра
            
           Правительство Российской Федерации
 Нижегородский филиал
 
 Федерального государственного автономного образовательного учреждения высшего профессионального образования
 "Национальный исследовательский университет
 "Высшая школа экономики"
 Факультет бизнес-информатики и прикладной математики
 
 Программа дисциплины
 
 «Современные скриптовые языки программирования»
 
 для направления 010400.62 – Прикладная математика и информатика
 
 подготовки бакалавра
 
 Автор программы: Приблудова О.М.
 
 Одобрена на заседании кафедры «Базовая кафедра МЕРА» «___»____________ 2013г.
 
 Зав. кафедрой Н.И. Кащеев
 Рекомендована секцией УМС «Прикладная математика» «___»____________ 2013г.
 
 Председатель В.А. Калягин
 
 Утверждена УМС НИУ ВШЭ – Нижний Новгород «___»_____________2013 г.
 
 Председатель В.М.Бухаров
 
 Нижний Новгород, 2013 г.
 Настоящая программа не может быть использована другими подразделениями университета и другими вузами без разрешения кафедры-разработчика программы.
 
 Область применения и нормативные ссылкиНастоящая программа учебной дисциплины устанавливает минимальные требования к знаниям и умениям студента и определяет содержание и виды учебных занятий и отчетности.
 
 Программа предназначена для преподавателей, ведущих данную дисциплину, учебных ассистентов и студентов направлений подготовки 010400.62 – Прикладная математика и информатика» подготовки бакалавра, изучающих дисциплину «Современные скриптовые языки программирования».
 
 Программа разработана в соответствии с образовательным стандартом федерального государственного образовательного автономного учреждения высшего профессионального образования Высшей школы экономики.
 
 Цели освоения дисциплиныЦелью дисциплины является изучение средств создания приложений различного уровня сложности, предоставляемых современными скриптовыми языками, а так же получение практических навыков в использовании скриптовых языковКомпетенции обучающегося, формируемые в результате освоения дисциплиныВ результате освоения дисциплины студент должен:
 
 овладеть навыками программирования для применения современных высокоуровневых структур данных, присущих программам на скриптовых языках
 
 Знать языковые средства и основные принципы программирования на этих языках, а также базовые принципы современной скриптовой обработки информации
 
 В результате освоения дисциплины студент осваивает следующие компетенции:
 
 
            
            
            
            
            
              
                | Компетенция
 
 | Код по НИУ
 
 | Дескрипторы – основные признаки освоения (показатели достижения результата)
 
 | Формы и методы обучения, способствующие формированию и развитию компетенции
 
 |  
                | способность понимать сущность и значение информации в развитии современного
 
 информационного общества, сознавать опасности и угрозы, возникающие в этом
 
 процессе, соблюдать основные требования информационной безопасности, в том
 
 числе защиты государственной тайны
 
 
 | СЛК-7
 
 | Студент развивает самооценку в ходе публичных дискуссий, повышает свою квалификацию, участвуя в разработке индивидуальных и коллективных проектов
 
 | Подготовка к проектным семинарам, участие в публичных дискуссиях коллектива учебной группы, разработка алгоритмов и программного кода для индивидуальных и коллективных проектов
 
 |  
                | способность осуществлять целенаправленный многокритериальный поиск
 
 информации о новейших научных и технологических достижениях в сети Интернет
 
 и из других источников
 
 | ПК-5
 
 | Студент использует современные компьютерные технологии при выполнении заданий учебной дисциплины, применяет современные системы программирования для разработки программного кода, интерпретирует результаты своих разработок
 
 | Совершенствование в овладении инструментальными средствами современных систем программирования для разработки программного кода
 
 |  Место дисциплины в структуре образовательной программыНастоящая дисциплина относится к факультативам. Курс опирается на следующие курсы «Дискретная математика» и «Основы информатики и программирования». Курс играет важную роль в развитии понимания будущими специалистами низкоуровневого программирования и функционирования компьютерной системы.
 
 
 Тематический план учебной дисциплины
 
 
            
            
            
            
            
            
            
              
                | 
 
 
 | Наименование тем
 
 | Всего
 
 | Лекции
 
 
 | Практические занятия
 
 | Самостоятельная работа
 
 |  
                | часов
 
 |  
                | 
 
 
 | 
 
 | Раздел 1. Язык BASH
 
 |  
                | 1.1
 
 | Общие сведения о скриптовых языках программирования.
 
 | 8
 
 | 2
 
 | 2
 
 | 4
 
 |  
                | 1.2
 
 | Основы программирования на языке BASH
 
 | 8
 
 | 2
 
 | 2
 
 | 4
 
 |  
                | 
 
 
 | 
 
 
 | Раздел 2. Основы программирования на языке Perl
 
 |  
                | 2.1
 
 | Введение в язык Perl. Фундаментальные типы данных. Строки и числа.
 
 | 7
 
 | 2
 
 | 2
 
 | 3
 
 |  
                | 2.2
 
 | Выражения языка Perl. Основные алгоритмические структуры.
 
 | 8
 
 | 2
 
 | 2
 
 | 4
 
 |  
                | 2.3
 
 | Основные структуры данных Perl: массивы и хэши.
 
 | 8
 
 | 2
 
 | 2
 
 | 4
 
 |  
                | 2.4
 
 | Регулярные выражения Perl
 
 | 12
 
 | 2
 
 | 2
 
 | 8
 
 |  
                | 2.5
 
 | Разработка процедур на языке Perl. Стандартный и файловый ввод/вывод
 
 | 9
 
 | 2
 
 | 2
 
 | 5
 
 |  
                | 
 
 
 | 
 
 | 
 
 | Раздел 3. Основы программирования на языке Python
 
 |  
                | 3.1
 
 | Основы языка Python
 
 | 12
 
 | 2
 
 | 1
 
 | 8
 
 |  
                | 3.2
 
 | Основные структуры данных в языке Python
 
 | 8
 
 | 2
 
 | 2
 
 | 8
 
 |  
                | 3.3
 
 | Ввод/вывод на Python
 
 | 8
 
 | 2
 
 | 1
 
 | 8
 
 |  
                | 3.4
 
 | Основы функционального программирования на Python
 
 | 10
 
 | 0
 
 | 1
 
 | 8
 
 |  
                | 3.5
 
 | Модули и объектно-ориентированное программирование на Python
 
 | 10
 
 | 0
 
 | 1
 
 | 6
 
 |  
                | Итого
 
 | 108
 
 | 20
 
 | 20
 
 | 68
 
 |  
 
Формы контроля знаний студентов
            
            
            
            
            
            
            
              | Тип контроля
 
 | Форма контроля
 
 | Модули
 
 | Параметры
 
 |  
              | 
 
 
 | 
 
 
 | 3
 
 |  
              | Текущий контроль
 
 | реферат
 
 | 
 
 
 | 
 
 
 | *
 
 | Письменная работа объемом не менее 15 печатных страниц.
 
 |  
              | Итоговый
 
 | Зачет
 
 | 
 
 
 | 
 
 
 | *
 
 | Устная форма, 2 вопроса и 1 задача
 
 |  
 
Критерии оценки знаний, навыковТекущий контроль для каждого студента подразумевает подготовку реферата по заранее выбранной и согласованной с преподавателем теме. Работа над рефератом ведется на протяжении 4 недель в течение 3 модуля.
 
 Итоговый контроль: зачет на последней неделе 3 модуля. Оценка определяется по 10-балльной шкале.
 
 
 Содержание дисциплиныРаздел 1. ЯЗЫК BASH
 
 Тема 1.1. Общие сведения о скриптовых языках программирования
 
 Классификация языков программирования. Определение скриптового языка. Особенности скриптовых языков. Преимущества и недостатки. Краткий обзор скриптовых языков.
 
 Основная литература
 
 Сценарный язык[Электронный ресурс]:http://ru.wikipedia.org/wiki/Сценарный_язык
 
 Дополнительная литература
 
 Богатырев Р. Природа и эволюция сценарных языков. //Мир ПК. – 2001. - №11
 
 Тема 1.2. Основы программирования на языке BASH
 
 Синтаксические основы языка Bash. Символы и переменные. Стандартный ввод/вывод. Операции с файлами. Регулярные выражения. Основные команды unix и их использование в сценариях. Процедуры. Массивы. Управление выводом.
 
 Основная литература
 
 Пик Д., О’Райли. Unix – инструментальные средства
 
 Дополнительная литература
 
 Тансли Д. Linux и Unix: программирование в Shell. Руководство разработчика, BHV, 2001.
 Глава 2. ОСНОВЫ ПРОГРАММИРОВАНИЯ НА ЯЗЫКЕ PERL
 
 Тема 2.1. Введение в язык Perl. Фундаментальные типы данных. Строки и числа.
 
 Классификация типов в Perl. Скалярные переменные. Основные операции. Представление чисел. Строки и операции над ними.
 
 Основная литература
 
 Матросов А.В., Чаунин М.П. PERL:Программирование на языке высокого уровня. – СПб.:Питер, 2003
 
 Дополнительная литература
 
 Кристиансен Т., Торкингтон Н. Perl: библиотека программиста. – СПб: Питер, 2001
 Тема 2.2. Выражения языка Perl. Основные алгоритмические структуры.
 
 Классификация операторов языка. Префиксная и постфиксная формы алгоритмических операторов. Системные переменные.
 
 Основная литература
 
 Матросов А.В., Чаунин М.П. PERL:Программирование на языке высокого уровня. – СПб.:Питер, 2003
 
 Дополнительная литература
 
 Кристиансен Т., Торкингтон Н. Perl: библиотека программиста. – СПб: Питер, 2001
 Тема 2.3. Основные структуры данных Perl: массивы и хэши.
 
 Понятие массива в языке Perl. Основные операции над элементами массива. Массивы и Хэши. Создание, заполнение и использование хэшей.
 
 Основная литература
 
 Матросов А.В., Чаунин М.П. PERL:Программирование на языке высокого уровня. – СПб.:Питер, 2003
 
 Дополнительная литература
 
 Кристиансен Т., Торкингтон Н. Perl: библиотека программиста. – СПб: Питер, 2001
 
 Тема 2.4. Регулярные выражения Perl
 
 Понятие регулярного выражения. Строительные блоки регулярных выражений. Примеры использования.
 
 Основная литература
 
 Матросов А.В., Чаунин М.П. PERL:Программирование на языке высокого уровня. – СПб.:Питер, 2003
 
 Дополнительная литература
 
 Кристиансен Т., Торкингтон Н. Perl: библиотека программиста. – СПб: Питер, 2001
 
 Тема 2.5. Разработка процедур на языке Perl. Стандартный и файловый ввод/вывод
 
 Процедуры с параметрами и без. Оператор shift. Разработка процедур и их использование. Работа с консолью: чтение, запись данных. Работа с файлами.
 
 Основная литература
 
 Матросов А.В., Чаунин М.П. PERL:Программирование на языке высокого уровня. – СПб.:Питер, 2003
 
 Дополнительная литература
 
 Кристиансен Т., Торкингтон Н. Perl: библиотека программиста. – СПб: Питер, 2001
 Глава 3. ОСНОВЫ ПРОГРАММИРОВАНИЯ НА ЯЗЫКЕ PYTHON
 
 Тема 3.1 Основы языка Python
 
 История возникновения и развития языка Python. Отличия от других скриптовых языков. Синтаксические особенности.
 
 Основная литература
 
 Лутц. М. Изучаем Python. - М.: Символ плюс, 2011
 
 Бизли Д. Python: подробный справочник. – М.: Символ плюс, 2010
 
 Дополнительная литература
 
 Саммерфилдт М. Программирование на Python, М.: BHV, 2009.
 
 Тема 3.2 Основные структуры данных в языке Python
 
 Классификация типов данных в языке Python. Массивы и списки. Наборы и словари. Операции доступа к элементам пользовательских типов. Работа с датой/временем.
 
 Основная литература
 
 Лутц. М. Изучаем Python. - М.: Символ плюс, 2011
 
 Бизли Д. Python: подробный справочник. – М.: Символ плюс, 2010
 
 Дополнительная литература
 
 Саммерфилдт М. Программирование на Python, М.: BHV, 2009.
 Тема 3.3 Ввод/вывод на Python
 
 Стандартный и файловый ввод/вывод. Форматирование данных. Пользовательские функции.
 
 Основная литература
 
 Лутц. М. Изучаем Python. - М.: Символ плюс, 2011
 
 Бизли Д. Python: подробный справочник. – М.: Символ плюс, 2010
 
 Дополнительная литература
 
 Саммерфилдт М. Программирование на Python, М.: BHV, 2009.
 Тема 3.4 Основы функционального программирования на Python
 
 Понятие функционального программирования. Лямбда-функции. Замыкания, генераторы и ленивые вычисления.
 
 Основная литература
 
 Лутц. М. Изучаем Python. - М.: Символ плюс, 2011
 
 Бизли Д. Python: подробный справочник. – М.: Символ плюс, 2010
 
 Дополнительная литература
 
 Саммерфилдт М. Программирование на Python, М.: BHV, 2009.
 Тема 3.5 Модули и объектно-ориентированное программирование на Python
 
 Разработка и подключение модулей. Определение класса. Конструкторы и деструкторы. Наследование.
 
 Основная литература
 
 Лутц. М. Изучаем Python. - М.: Символ плюс, 2011
 
 Бизли Д. Python: подробный справочник. – М.: Символ плюс, 2010
 
 Дополнительная литература
 
 Саммерфилдт М. Программирование на Python, М.: BHV, 2009.
 
 
 Образовательные технологииТрадиционное чтение лекций. Решение задач по тематике лекций. Обсуждение прикладных и алгоритмических аспектов решаемых задач. Разработка учебных компьютерных программ.
 
 
 Методические рекомендации преподавателюТемы индивидуальных заданий для проведения практических занятий должны отличаться для каждого нового учебного года
 
 Методические указания студентамРекомендуется подготовка к каждому занятию по заданиям, озвученным преподавателем на предыдущем занятии.
 
 Для более глубокого усвоения курса предполагается использование студентами дополнительной литературы, работа в библиотеке, поиск информации в сети Интернет
 
 Оценочные средства для текущего контроля и аттестации студентаТематика практических заданий
            Функциональное программирование на Python.
 
Объектно-ориентированные возможности Python.
 
Программирование задач администратора в unix-среде.
 
Обработка данных на языке Perl.
 
Использование регулярных выражений для анализа данных.
 
Знакомство с программированием на языке Python.
 
Функциональное программирование на Python.
 
Объектно-ориентированные возможности Python.
 
 
 
 Порядок формирования оценок по дисциплинеКонтроль знаний студентов включает формы текущего и итогового контроля. Занятия проходят в 3-м модуле. Текущий контроль – реферат по заранее выбранной и согласованной с преподавателем теме, работа студентов на практических занятиях Формы текущего и итогового контроля оценивается по 10-балльной шкале.
 
 
 Зачет:
 
 На зачете (экзамене), представляющем собой письменные ответы на вопросы и решение задачи с последующим собеседованием, оценка проставляется следующим образом:
 
 высшая оценка в 9 баллов (10 баллов только в исключительных случаях) проставляется при отличном выполнении заданий (полных, с примерами и возможными обобщениями ответах на вопросы, при правильном решении задачи и детальном ее представлении);
 
 почти отличная оценка в 8 баллов проставляется при полностью правильных ответах на вопросы и решении задачи, но при отсутствии примеров и обобщений, а также детального представления решаемой задачи;
 
 оценка в 7 баллов проставляется при правильных ответах на вопросы и правильном решении задачи, но при отсутствии пояснений и обобщений, а также детального представления решаемой задачи;
 
 оценка в 6 баллов проставляется при наличии отдельных неточностей в ответах на вопросы или неточностях в решении задачи непринципиального характера (описки и случайные ошибки);
 
 оценка в 4-5 баллов проставляется в случаях, когда в ответах на вопросы и в решении задачи имеются существенные неточности и ошибки, свидетельствующие о недостаточном понимании изучаемой дисциплины;
 
 оценка в 2-3 балла проставляется при наличии лишь отдельных положительных моментов в ответах на вопросы и в решении задачи;
 
 оценка в 1 балл проставляется в тех случаях, когда наряду с неправильными ответами на вопросы и решением задачи имеют место какие-либо демонстративные проявления безграмотности или неэтичное отношение к изучаемой дисциплине.
 
 По результатам устного собеседования с преподавателем возможны корректировки оценки в ту или иную сторону.
 Накопленная оценка за текущий контроль учитывает результаты студента следующим образом:
 
 Онакопленная = 0,5* Ореф +0,5*Оаудитор.
 
 Способ округления накопленной оценки – арифметический.
 
 Результирующая оценка за дисциплину рассчитывается по формуле:
 
 Орезульт = 0,6*Онакопленная + 0,4*Озачет
 
 В диплом выставляет результирующая оценка по учебной дисциплине.
 
 Способ округления результирующей оценки по учебной дисциплине – арифметический.
 
 
 
Учебно-методическое и информационное обеспечение дисциплиныОсновная литература:
 
 Матросов А.В., Чаунин М.П. PERL:Программирование на языке высокого уровня. – СПб.: Питер, 2010
 
 Лутц. М. Изучаем Python. - М.: Символ плюс, 2011
 
 Бизли Д. Python: подробный справочник. – М.: Символ плюс, 2010
 Дополнительная литература
 
 Богатырев Р. Природа и эволюция сценарных языков. //Мир ПК. – 2001. - №11
 
 Кристиансен Т., Торкингтон Н. Perl: библиотека программиста. – СПб: Питер, 2001
 
 Саммерфилдт М. Программирование на Python, М.: BHV, 2009.
 Электронные ресурсы
 
 Сценарный язык[Электронный ресурс]:http://ru.wikipedia.org/wiki/Сценарный_язык
 
 Пик Д., О’Райли. Unix – инструментальные средства
 
 
 Материально-техническое обеспечение дисциплиныМультимедийное оборудование – ноутбук, экран, проектор.
 
 Состав программного обеспечения:
 
 
            Операционная система: Windows или Linux
 
Офисный пакет: MS Office или Open Office или Libre Office
 
 
 Используется ПО в компьютерном классе НИИТ. В НИУ ВШЭ – Нижний Новгород студентам предоставляется возможность самостоятельной работы с электронными ресурсами информации, периодической литературой.
 
 В компьютерном классе (НИИТ) доступ on-line
 Автор программы Приблудова О.М.
 |