Проект онлайн-курса «Программирование трансляторов» — КиберПедия 

Особенности сооружения опор в сложных условиях: Сооружение ВЛ в районах с суровыми климатическими и тяжелыми геологическими условиями...

Своеобразие русской архитектуры: Основной материал – дерево – быстрота постройки, но недолговечность и необходимость деления...

Проект онлайн-курса «Программирование трансляторов»

2017-06-25 219
Проект онлайн-курса «Программирование трансляторов» 0.00 из 5.00 0 оценок
Заказать работу

В течение многих лет на профиле «системное программирование» преподавалась дисциплина «языки программирования и методы трансляции», в рамках которой студентам давалось практическое задание разработать собственный учебный компилятор. Данная дисциплина была одной из самых сложных ввиду усложнения постановки задачи, отсутствия чётких технических заданий, отсутствия методических пособий, а после – отсутствия шкалы оценок работ студентов и занижения баллов. Автор считает такую систему неприемлемой и предлагает свой вариант курса «Программирование трансляторов» для профиля «математическое моделирование» специальности «прикладная математика и информатика».

В дальнейшем рассматривается возможность провести факультативный онлайн-курс, методические материалы будут размещены в wiki-конспектах, обсуждение всех вопросов будет на форуме. Цель курса – ознакомиться с базовыми методами построения трансляторов и основами теории формальных грамматик, реализовать интерпретатор простейшего языка программирования и повысить навыки программирования.

В качестве транслируемого языка выбран SmallBasic [13], так как этот язык прост и используется для обучения программированию. В рамках курса предполагается разработать объектный интерпретатор языка SmallBasic, который может иметь практическую пользу: его можно будет использовать в своих проектах для записи сценариев, которые работают с объектами (аналоги: 1С, Visual Basic for Applications). Например, на основе интерпретатора можно разработать собственную среду для математических вычислений и построения графиков или графическую среду для обучения программированию на основе специализированных исполнителей. Например, существуют библиотеки для языков программирования C/C++ для проведения определённых численных расчётов (численное интегрирование, решение дифференциальных уравнений и пр.), но использование этих библиотек требует навыков программирования на языках C/C++. Объектный интерпретатор может позволить разработать текстовый интерфейс для работы с необходимыми библиотеками, не требующий программистской подготовки и установки компиляторов. С точки зрения реализации объектного интерпретатора, возникает интересная программистская задача: как удобнее всего запрограммировать интерпретацию скриптов, содержащих объекты произвольных типов, чтобы можно было легко добавить новые типы объектов в интерпретатор.

В ходе проведения онлайн-курса предполагается задействовать как индивидуальную, так и коллективную работу студентов. Например, при написании лексического и синтаксического анализаторов можно разработать общие для всех структуры данных и заголовочные файлы, а реализация у каждого будет своя; юнит-тесты также будут общими. Возможно объединение студентов в подгруппы для совместной разработки. Также на начальном этапе можно организовать изучение учебной среды SmallBasic и коллективное составление формального описания языка SmallBasic, который будет реализовываться в рамках курса. После написания лексического и синтаксического анализаторов может быть предложено реализовать интерпретатор в качестве самостоятельной работы с дальнейшим обсуждением решений. Цель дискуссии – выработать оптимальный способ программирования обработки объектов разных типов.

Таким образом, предлагаемая структура курса должна лучше организовать работу студентов, чем это было раньше, за счёт чёткой постановки задачи, упрощения задачи и введения элементов групповой работы, а в результате можно получить продукт, имеющий практическую пользу в качестве использования в дальнейших проектах. Одно из направления – вызов решателя краевых задач для дифференциальных уравнений при помощи простого языка SmallBasic или его расширения.

 

Прочее

В качестве внеучебной работы предлагается проект очного математического клуба. Заседания клуба могут проходить с периодичностью раз в 1-1,5 месяца и включать в себя доклады, вопросы и мини-соревнования по решению задач.

1. Доклады.

Любые темы: результаты собственных исследований, изложение любой изученной темы по любому разделу математики и информатики, пересказ научной или научно-популярной статьи (например, с сайта Хабрахабр или перевод статьи из журнала AMS Notices).

2. Вопросы.

Любой присутствующий может задать вопрос по любой теме, который вызвал затруднения, и все остальные могут на него ответить.

3. Задачи.

На каждом заседании модераторы дают не очень сложные задачи до следующего заседания. В начале заседания все сдают свои работы и проходит разбор полётов. Модераторы проверяют работы и выставляют баллы. Составляется таблица результатов, объявляются места, и определённое количество баллов может быть конвертировано в кофе и конфеты.

Ранее автором публиковались задачи в виде опросов для голосования в группе vk.com/mathdvfu, которые пользовались популярностью у студентов ДВФУ и других вузов, также в группе были, хоть и не очень часто, интересные дискуссии по этим задачам и вообще по математике и программированию, что говорит о том, что онлайновый форум может быть полезен и интересен.

Автором был разработан сайт «Музыкальные шпаргалки» [16] с авторскими песнями по нескольким разделам математики, например: Численные методы, Методы оптимизации, Математический анализ, Функциональный анализ, Уравнения математической физики и др. Эти песни могут служить для того, чтобы заинтересовать этими предметами и повторить их.

 

Заключение

Автором проведено несколько аудиторных занятий, составлены методические материалы и предложены идеи для внедрения в учебный процесс.

Наиболее важной я считаю идею wiki-конспектов, которая возникла при подготовке к кандидатскому экзамену по философии и была представлена на круглом столе Совета молодых учёных ДВФУ в 2016 г. [17], на котором вызвала одобрение.

 

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

[1] Тестирующая система. URL: http://vlprog.besaba.com/test/

[2] Активное обучение математике. URL: https://glebgrenkin.blogspot.ru/2017/05/blog-post.html

[3] Braun B. et al. What Does Active Learning Mean For Mathematicians? // Notices of the AMS. – 2017. – Vol. 64.

[4] Wiki-конспекты Матфака ДВФУ. URL: https://mathmachine.gitbooks.io/wiki/content/

[5] Dr. Ugur Abdulla. URL: http://my.fit.edu/~abdulla/lect/isp.htm

[6] Finite Element Method – Serious Science. URL: http://serious-science.org/finite-element-method-36

[7] Finite Elements Film defined using ANTICS. URL: http://www.chilton-computing.org.uk/acl/applications/animation/p001.htm

[8] GitBook. URL: https://www.gitbook.com

[9] Форум Матфака ДВФУ. URL: https://groups.google.com/d/forum/mathdvfu

[10] Критика системы AWorks. URL: https://glebgrenkin.blogspot.ru/2016/07/aworks.html

[11] Рассчитай свои баллы. URL: http://vlprog.besaba.com/points.html

[12] AWorks++. URL: https://glebgrenkin.blogspot.ru/2016/12/aworks.html

[13] С чего начинать программировать в доп. образовании? Или SmallBasic и все-все-все / Хабрахабр. URL: https://habrahabr.ru/post/326926/

[14] Форма учебного турнира по программированию. URL: https://glebgrenkin.blogspot.ru/2016/11/blog-post_19.html

[15] Осенний турнир 2016 – задачи. URL: https://imcs.dvfu.ru/cats/main.pl?f=problems;cid=1076557

[16] Музыкальные шпаргалки. URL: https://sites.google.com/view/shpora-music

[17] Научно-популярные сообщества ДВФУ: выступление на круглом столе. URL: https://glebgrenkin.blogspot.ru/2016/06/blog-post.html


Поделиться с друзьями:

Наброски и зарисовки растений, плодов, цветов: Освоить конструктивное построение структуры дерева через зарисовки отдельных деревьев, группы деревьев...

Своеобразие русской архитектуры: Основной материал – дерево – быстрота постройки, но недолговечность и необходимость деления...

Поперечные профили набережных и береговой полосы: На городских территориях берегоукрепление проектируют с учетом технических и экономических требований, но особое значение придают эстетическим...

Индивидуальные и групповые автопоилки: для животных. Схемы и конструкции...



© cyberpedia.su 2017-2024 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!

0.012 с.