• Читать статьи
  • Условия размещения
  • Опубликовать статью
  • О журнале

Изучение объектно-ориентированного программирования в школьном курсе информатики на базе языка программирования F#

  1. Векслер В.А.

    ФЕДЕРАЛЬНОЕ ГОСУДАРСТВЕННОЕ БЮДЖЕТНОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ ВЫСШЕГО ОБРАЗОВАНИЯ САРАТОВСКИЙ НАЦИОНАЛЬНЫЙ ИССЛЕДОВАТЕЛЬСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ ИМЕНИ Н.Г. ЧЕРНЫШЕВСКОГО, 410012, РОССИЯ, Г. САРАТОВ, УЛ АСТРАХАНСКАЯ, ДОМ 83

    кандидат наук,доцент

NovaInfo 94, с.130-134, скачать PDF
Опубликовано 12 декабря 2018
Раздел: Педагогические науки
Просмотров за месяц: 1

Аннотация

В статье рассматривается вопрос изучения объектно-ориентированного программирования в школьном курсе информатики, на профильном уровне или в рамках факультативных занятий. Приводятся примеры изучаемых разделов и варианты решенных задач на языке F#.

Ключевые слова

ФАКУЛЬТАТИВ, ИНФОРМАТИКА, ПРОФИЛЬНЫЙ КУРС, ШКОЛА, ОБЪЕКТНО-ОРИЕНТИРОВАННОЕ ПРОГРАММИРОВАНИЕ

Рассмотрение основ программирования в базовом курсе информатики осуществляется на основе структурных языков программирования «Basic» и «Pascal». Данный подход на сегодня уже устарел и не отвечает современным технологиям программирования, поэтому становится актуальным вопрос внедрения в школьный курс парадигмы объектно-ориентированного программирования.

Основная цель изучения объектно-ориентированного программирования — моделирования объектов реального мира и описание взаимодействия между ними. Объектно-ориентированное программирование является ведущим подходом в программировании и реализуется сегодня уже практически в любом современном языке программирования. Изучение данной парадигмы программирования предусматривает рассмотрение основных понятий объектно-ориентированного программирования (класс; экземпляр класса; характеристики, методы, свойства, индексаторы класса; интерфейсы; абстрактные классы), работы с большим числом уже созданных библиотек и созданием персональных компонентов.

Отметим, что на современном этапе развития школьной информатики статус объектно-ориентированного программирования в базовом курсе до сих пор полностью не определен. Методика изучения в школе любых видов объектного программирования разработана совершенно недостаточно, и как правило сводится лишь к проектированию в визуальном дизайнере форм. Именно поэтому на современном этапе стоит разделить объектно-ориентированное программирование с визуализацией посредством графических объектов.

В рамках профильных курсов, факультативов, кружковой деятельности по информатики возможно изучения данной парадигмы. Основным языком программирования на основе которого может пройти изучение может стать F#.

F# (произносится эф-шарп) — это мультипарадигменный язык программирования из семейства языков .NET Framework, поддерживающий функциональное программирование в дополнение к императивному (процедурному) и объектно-ориентированному программированию. Это уже окончательно сформировавшийся кроссплатформенный функциональный язык программирования с открытым исходным кодом. Он позволяет пользователям и организациям решать сложные вычислительные проблемы с помощью простого, удобного в обслуживании и надежного кода.

F # используется в широком диапазоне областей применения и поддерживается как активным открытым сообществом, так и ведущими в отрасли компаниями, предоставляющими профессиональные инструменты. Работать с языком программирование возможно в интегрированных средах разработки (например, Visual Studio), или онлайн-компиляторах (например, ideone.com).

Классы в F# задают с помощью ключевого слова type, за которым следует частное имя класса, знак равенства и ключевое слово class (необязательное). Завершается определение класса ключевым словом end (необязательное). Для того, чтобы задать конструктор, необходимо в определение класса включить компонент с оператором new. Определение класса должно содержать в себе хотя бы один конструктор, иначе код не будет компилироваться. Для того чтобы определить поле, необходимо добавляют его именем ключевое слово val. По умолчанию поля класса является неизменяемы, для того чтобы сделать поле изменяемым, необходимо добавить перед его именем оператор mutable. Методы класса определяются посредством оператора member.

Рассмотрим примеры заданий.

Задача 1. Создайте явным образом класс «Прямоугольник». Продумайте какими полями характеризуется данная фигура. Определите варианты конструирования фигуры (два конструктора). Какие методы может реализовывать прямоугольник?

type Rectangle =  val mutable x1 : float  val mutable y1 : float  val mutable x2 : float  val mutable y2 : float  new (new_x1, new_y1, new_x2, new_y2) =    { x1 = new_x1; y1 = new_y1; x2 = new_x2; y2 = new_y2 }  new () = new Rectangle (-1.0, -1.0, 1.0, 1.0)  member this.GetArea () =    abs (this.x2 — this.x1) * abs (this.y2 — this.y1)  member this.GetPerimeter () =    2.0 * (abs (this.x2 — this.x1) + abs (this.y2 — this.y1))  member this.PrintN () =    printfn "прямоугольник:\n* т1: (%f; %f)\n* т2: (%f; %f)\n* площадь: %f\n* периметр: %f"        this.x1 this.y1 this.x2 this.y2 (this.GetArea ()) (this.GetPerimeter ()) let r1 = Rectangle (1.0, 2.0, 5.0, 6.0)let r2 = Rectangle ()

Задача 2. Создайте явным образом класс «Окружность». Продумайте какими полями характеризуется данная фигура. Определите варианты конструирования фигуры (два конструктора). Какие методы может реализовывать прямоугольник?

type Circle =val c_x : floatval c_y : floatval radius : floatval diametr : floatval name : string//Конструктор 1 — принимает 4 параметраnew (r, x, y, n) = {radius = r; diametr = r * 2.0;c_x = x; c_y = y; name = n}//Конструктор 1 — принимает 2 параметраnew (r, n) = {radius = r; diametr = r * 2.0;c_x = 0.0; c_y = 0.0; name = n}//Конструктор 3 — не имеет параметровnew () = {radius = 5.0; diametr = 10.0; c_x = 0.0; c_y = 0.0; name = "Circle" }member this.Square = this.radius * this.radius * 3.14member this.Perimetr = this.diametr * 3.14member this.Name = this.namemember this.X = this.c_xmember this.Y = this.c_y let c1 = new Circle(3.0, 1.0, 1.0, "firstCircle")printfn "%A" c1.Perimetrprintfn "%A" c1.Squareprintfn "%A" c1.Xprintfn "%A" c1.Y

Рассмотрев ряд задач проектирования классов в объектно-ориентированном программировании, учащиеся подводятся к основной идее: класс — это некоторый способ описания сущности, задающий состояние и поведение, зависящее от этого состояния, а также правила для взаимодействия с данной сущностью (контракт). С точки зрения программирования класс необходимо рассматривать как набор данных (полей, атрибутов, членов класса) и функций для работы с ними (методов). С точки зрения структуры программы, класс является сложным типом данных. Представителем класса в основной программе является экземпляр класса.

Введение понятий об абстрактном классе, интерфейсе — становятся задачами уже более сложного уровня. F# поддерживает только одиночное наследование. Наследование задается с помощью ключевого слова inherit которое идет сразу после class. При вызове любого конструктора потомка автоматически вызовется пустой конструктор предка. Если такого конструктора в предке нет, необходимо явно вызвать в теле конструктора потомка базовый конструктор с помощью ключевого слова inherit.

Задача 3. Построить иерархию классов, начиная с абстрактного класса.

[]type VolumetricFigure =  val radius : double  new (r) = {radius = r}  new () = {radius = 35.0}  //Возвращает объем  abstract member GetVolume : double -> double  let pi = 3.14159 // Представляет прямые круговые цилиндрыtype StraightCircularCylinder =  inherit VolumetricFigure  val height : double  new (r, h) = {inherit VolumetricFigure(r); height = h}  new (h) = {inherit VolumetricFigure(); height = h}  new () = {inherit VolumetricFigure(); height = 12.5}   override this.GetVolume(_) = this.radius * this.radius * this.height * pi  // Представляет полые цилиндрыtype HollowCylinder =  inherit StraightCircularCylinder  val insiderad : double  new (r, h, i) = {inherit StraightCircularCylinder(r, h); insiderad = i}  new (i) = {inherit StraightCircularCylinder(); insiderad = i}  new () = {inherit StraightCircularCylinder(); insiderad = 7.5}   override this.GetVolume(_) = (this.radius * this.radius — this.insiderad * this.insiderad) * this.height * pi

Таким образом, представление классов в F# выглядит более сжато, по сравнению со многими другими языками программирования. Понимание сущности парадигмы объектно-ориентированного программирования прививается более фундаментально. На начальном уровне происходит изучение основных базовых примеров. Ученики на компьютере, пока что с помощью учителя, пробуют решать задачи, и разбираются с новыми для себя понятиями. Позже они уже начинают придумывать свои сущности и реализовывать их.

Читайте также

  • Определение основных требований к проектированию интерфейса приложения на курсах по программированию для школьников

    Векслер В.А.
    NovaInfo 110, с.84-87, 22 ноября 2019, Педагогические науки

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

  • Компьютерное моделирование на уроках информатики в среде Maxima

    Векслер В.А.
    NovaInfo 102, с.44-47, 16 апреля 2019, Педагогические науки

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

  • Изучение «дискриминационных объединенных» типов F#, как аналога «наследственной иерархии», в школьном курсе информатики

    Векслер В.А.
    NovaInfo 98, с.73-77, 18 февраля 2019, Педагогические науки

    В статье рассматривается вопрос изучения "дискриминационных объединяющих" типов языка F#, в школьном курсе информатики. Приводятся примеры, в которых учащиеся реализуют алгоритмически сложные конструкции, для решения поставленных проблемных задач.

  • Тенденции развития дополнительных образовательных программ для взрослых в сфере информационных технологий

    Векслер В.А.
    NovaInfo 97, с.158-162, 14 февраля 2019, Педагогические науки

    В статье рассматриваются вопросы организации дополнительного образования для взрослых по информационно коммуникационным технологиям. Приводятся методические особенности и требования к проведению занятий обучения взрослых.

  • Адаптивное тестирование, как вид объективного контроля знаний, умений и навыков обучаемых и одного из способов повышения качества образования

    Отроков Д.А., Векслер В.А.
    NovaInfo 94, с.170-174, 15 декабря 2018, Педагогические науки

    В статье рассматривается вопрос адаптивного тестирования, как нового вида объективного контроля знаний, умений и навыков обучаемых и одного из способов повышения качества образования. Приводятся примеры диаграмм адаптивного тестирования.

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

  1. F Sharp [Электронный ресурс] // Википедия, Url: https://ru.wikipedia.org/wiki/F_Sharp (дата обращения 10.12.18)
  2. Векслер В.А. Программирование на языке f# в школьном курсе информатики // В сборнике: Информационные технологии в образовании "ИТО-Саратов-2016" Материалы VIII Международной научно-практической конференции. 2016. С. 36-40.
  3. Три парадигмы F# [Электронный ресурс] // Url: https://habr.com/post/55272/ (дата обращения 01.12.18)
  4. Учебно-методический комплекс "Объектно-ориентированное программирование в профильном курсе информатики [Электронный ресурс] // Инфоурок: Url: https://infourok.ru/uchebnometodicheskiy-kompleks-obektnoorientirovannoe-programmirovanie-v-profilnom-kurse-informatiki-2837967.html (дата обращения 03.12.18)

Цитировать

Векслер, В.А. Изучение объектно-ориентированного программирования в школьном курсе информатики на базе языка программирования F# / В.А. Векслер. — Текст : электронный // NovaInfo, 2018. — № 94 — С. 130-134 — URL: https://novainfo.ru/article/16017 (дата обращения: 13.09.2024).

Поделиться

Популярные статьи

  • Лечебная физическая культура при желчнокаменной болезни (ЖКБ)

    Мифтахов А.Ф.
    NovaInfo 113, с.55-56, 19 февраля 2020, Медицинские науки

    В данной статье рассмотрено такое заболевание как желчнокаменная болезнь (ЖКБ). Описаны признаки, симптомы, задачи ЛФК при данной болезни. Ключевым моментом статьи является комплекс упражнений лечебной физической культуры при ЖКБ, который рекомендован наряду с медикаментозным лечением.

  • Лечебная физическая культура при дискинезии желчевыводящих путей

    Сулагаева К.А., Мифтахов А.Ф.
    NovaInfo 93, с.194-198, 26 ноября 2018, Медицинские науки

    В данной статье рассмотрено такое заболевание как дискинезия желчевыводящих путей (ДЖВП). Описаны виды, признаки и симптомы данной болезни. Ключевым моментом статьи является комплекс упражнений лечебной физической культуры при ДЖВП, который рекомендован наряду с медикаментозным лечением.

  • Рилив-терапия как новое психотерапевтическое направление в психологическом консультировании

    Поляков Е.А.
    NovaInfo 20, 6 февраля 2014, Психологические науки

    В данной статье впервые предъявлена обществу и профессиональному сообществу рилив-терапия в качестве нового комплексного подхода, направления и метода психотерапевтической теории, методологии, методики и практики; приведено общее системное описание одной из основополагающих практических психотехнологий и психотехник рилив-терапии (метод «случайный попутчик», состоящий из ряда методических приёмов), раскрыта процедура научно-экспериментальной апробации рилив-терапии; выявлена актуальность и практическая значимость рилив-терапии как психотерапевтической технологии психологического консультирования.

  • «Формальник» или лицо, в отношении которого формально действуют законные основания для установления административного надзора

    Супонина Е.А.
    NovaInfo 53, с.197-205, 29 октября 2016, Юридические науки

    Статья посвящена: вопросу необходимости оптимизации, как нормативной правовой базы, так и организационных основ деятельности участковых уполномоченных полиции (далее – УУП) по осуществлению административного надзора за лицами, в отношении которых формально действуют законные основания для установления за ними административного надзора; проблемам, с которыми в настоящее время сталкиваются УУП при осуществлении административного надзора.

  • Влияние гормонов и нейромедиаторов на поведение человека

    Климов А.В., Тихомирова А.А.
    NovaInfo 48, с.284-293, 22 июня 2016, Медицинские науки

    Гормоны и нейромедиаторы оказывают значительное влияние на поведение человека. Зачастую, разница в выработке какого-либо из данных веществ приводит к радикальному изменению поведения личности. Данная статья посвящена разбору влияния основных "поведенческих" гормонов и нейромедиаторов на человека.

© 2024 NovaInfo («НоваИнфо»)

Адрес электронной почты: [email protected]

Настоящий ресурс содержит материалы 16+