Рефлексия что это в информатике

Рефлексия и кодогенерация в C++

Язык С++ по сей день является одним из самых востребованных и гибких языков программирования. Но иногда возможностей языка не хватает, несмотря на то что стандарт развивается и расширяется. С такой проблемой столкнулся и я в процессе разработки 2D движка для игр. Я стоял перед необходимостью решения несколько нетривиальных задач, таких как сериализация, анимирование и связка с редактором. Для этого отлично подходит рефлексия. Готовые решения из сети, к сожалению, мне не подошли, поэтому пришлось конструировать свой велосипед.

Далее описаны детали реализации и демо проект. Кому интересно — добро пожаловать под кат.

Требования

Существует мнение, что правильно поставленные условия задачи практически решают эту задачу. Именно поэтому перед началом реализации были собраны необходимые требования и ограничения:

Синтаксис

Следуя требованию о простоте был выработан довольно простой синтаксис определения объекта поддерживающего рефлексию: необходимо чтобы класс был унаследован от IObject, содержал в теле макрос IOBJECT(*имя класса*); и у членов класса были указаны необходимые атрибуты через комментарии.

Пример класса с поддержкой рефлексии:

Примеры использования рефлексии:

Реализация

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

Итак, подробнее о структуре рефлексии.

Тип объекта

Каждому классу соответствует описание типа, в котором содержится имя класса, информация о наследовании, члены и методы класса. С помощью типа можно создать экземпляр класса. Так же в типе класса есть довольно интересный функционал: можно получить указатель на член класса по его пути и наоборот, получить путь к члену класса по его указателю. Чтобы понять что делают последние две функции достаточно взглянуть на пример использования:

Зачем это нужно? Ближайший пример — анимация. Допустим, есть анимация, которая анимирует параметр value из примера. Но как сохранить такую анимацию в файл? Здесь и нужны эти функции. Мы сохраняем ключи анимации с указанием пути к анимируемому параметру «aObject/bObject/value», и при загрузке из файла по этому пути находим нужную нам переменную. Такой подход позволяет анимировать совершенно любые члены любых объектов и сохранять/загружать в файл.

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

Члены класса

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

Функции класса

Каждой функции класса соответствует объект с интерфейсом FunctionInfo, который хранит в себе тип возвращаемого значения, имя функции и список параметров. Почему именно интерфейс и как вызвать функцию из этого интерфейса? Чтобы вызвать функцию нам нужен указатель на нее. Причем, указатель на функцию класса должен быть такого вида:

Для хранения таких указателей определены классы определены шаблонные классы:

Шаблонная магия пугает, но работает все довольно просто. На этапе инициализации типа для каждой функции создается объект класса SpecFunctionInfo или SpecConstFunctionInfo в зависимости от константности функции и помещается в тип объекта Type. Затем, когда нам нужно вызвать функцию из интерфейса FunctionInfo, мы статически преобразуем интерфейс в ISpecFunctionInfo и вызываем у него виртуальную функцию Invoke, переопределенный вариант которой выполняет функцию по сохраненному адресу.

Атрибуты

Функция атрибутов — это добавление мета информации для членов классов. С помощью атрибутов можно указывать сериализуемые члены, тип их сериализации, отображение в редакторе, параметры анимации и так далее. Атрибуты наследуются от интерфейса IAttribute и добавляются к членам класса на этапе инициализации типа. Пользователю лишь необходимо обозначит необходимые атрибуты через комментарии к членам класса.

Модуль рефлексии

Итак, вся структура типов у нас есть, необходимо все это где-то хранить. С этой простой задачей справляется класс-синглтон Reflection. С его помощью можно получить тип по имени, создать экземпляр типа или получить список всех зарегистрированных типов.

Кодогенерация

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

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

Именно поэтому кодогенерация отдельной утилитой. К сожалению, утилита в моем проекте не может похвастаться изящностью и стопроцентной стабильностью, но на моем уже довольно немаленьком проекте она работает прекрасно. В будущем она наверняка будет переписана и дополнена, так как у нее есть как минимум один существенный минус — она написана на C#, что требует Windows платформы, либо наличия Mono. Это путь наименьшего сопротивления, и я выбрал его потому что на этапе демо версии мне нужно как можно больше функционала в проекте. Тем не менее в этой статье я опишу этапы ее работы и с какими трудностями я столкнулся.

Работа утилиты делится на два этапа:

Парсинг исходников проекта

Здесь мой подход отличается от работы компиляторов.

Генерация итогового исходника с инициализацией типов

Данный этап включает в себя генерирование следующих частей:

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

Источник

Рефлексия кода, reflection

Java Reflection API позволяет получать информацию о конструкторах, методах и полях классов и выполнять следующие операции над полями и методами объекта/класса :

Примечание : в тексте используется объект/класс. При работе с объектом (реализацией класса) можно обращаться к полям и методам класса напрямую, если они доступны (не private). При работе с классом можно обращаться к методам класса с использованием Java Reflection API. Но класс необходимо получить из объекта.

Определение свойств класса

В работающем приложении для получения класса необходимо использовать метод forName (String className). Следующий код демонстрирует возможность создания класса без использования и с использованием Reflection :

Метод класса forName(className) часто используется для загрузки JDBC-драйвера.

Методом getName() объекта Class можно получить наименование класса, включающего пакет (package) :

Для получения значения модификатора класса используется метод getModifiers(). Класс java.lang.reflect.Modifier содержит статические методы, возвращающие логическое значения проверки модификатора класса :

Для получения суперкласса рефлексированного объекта (класса) необходимо использовать метод getSuperclass() :

Поскольку в Java отсутствует множественное наследование, то для получения всех предков следует рекурсивно вызвать метод getSuperclass() в цикле, пока не будет достигнут Object, являющийся родителем всех классов. Object не имеет родителей, поэтому вызов его метода getSuperclass() вернет null.

Определение интерфейсов и конструкторов класса

Для получения в режиме run-time списка реализующих классом интерфейсов, необходимо получить Class и использовать его метод getInterfaces(). В следующем примере извлекается список интерфейсов класса ArrayList :

Чтобы IDE (Eclipse) не предупреждала о необходимости определения типа класса

Class is a raw type. References to generic type Class should be parameterized

в коде были использованы generic’и. В консоль выводятся следующие интерфейсы, реализуемые классом ArrayList :

Метод класса getConstructors() позволяет получить массив открытых конструкторов типа java.lang.reflect.Constructor. После этого, можно извлекать информацию о типах параметров конструктора и генерируемых исключениях :

Определение полей класса

Метод getFields() объекта Class возвращает массив открытых полей типа java.lang.reflect.Field, которые могут быть определены не только в данном классе, но также и в его родителях (суперклассе), либо интерфейсах, реализованных классом или его родителями. Класс Field позволяет получить имя поля, тип и модификаторы :

Если известно наименование поля, то можно получить о нем информацию с помощью метода getField() объекта Class.

Методы getField() и getFields() возвращают только открытые члены данных класса. Чтобы получить все поля класса, включая закрытые и защищенные, необходимо использовать методы getDeclaredField() и getDeclaredFields(). Данные методы работают точно так же, как и их аналоги getField() и getFields().

Определение значений полей класса

Класс Field содержит специализированные методы для получения значений примитивных типов: getInt(), getFloat(), getByte() и др. Для установки значения поля, используется метод set(). Для примитивных типов имеются методы setInt(), setFloat(), setByte() и др.

Ниже приведен пример изменения значения закрытого поля класса в режиме run-time.

Определение методов класса

Метод getMethods() объекта Class возвращает массив открытых методов типа java.lang.reflect.Method. Эти методы могут быть определены не только в классе, но также и в его родителях (суперклассе), либо интерфейсах, реализованных классом или его родителями. Класс Method позволяет получить имя метода, тип возвращаемого им значения, типы параметров метода, модификаторы и генерируемые исключения.

Если известно имя метода и типы его параметров, то можно получить отдельный метод класса :

Пример изменения значения закрытого поля класса

Чтобы изменить значение закрытого (private) поля класса необходимо получить это поле методом getDeclaredField () и вызвать метод setAccessible (true) объекта Field, чтобы открыть доступ к полю. После этого значение закрытого поля можно изменять, если оно не final. В следующем примере определен внутренний класс PrivateFinalFields с набором закрытых полей; одно из полей final. При создании объекта класса поля инициализируются. В методе main примера поочередно в закрытые поля вносятся изменения и свойства объекта выводятся в консоль.

В результате выполнения примера в консоль будут выведены следующие сообщения :

Из приведённого примера видно что поля private можно изменять. Для этого необходимо получить объект типа java.lang.reflect.Field с помощью метода getDeclaredField (), вызвать его метод setAccessible (true) и с помощью метода set () установить требуемое значение поля. Необходимо иметь в виду, что наличие модификатора final в закрытом текстовом поле не вызывает исключений при изменении значений, а само значение поля остаётся прежним, т.е. final поля остаются неизменные. Если не вызвать метод открытия доступа к полю setAccessible (true), то будет вызвано исключение java.lang.IllegalAccessException.

Пример вызова метода, invoke

Java Reflection Api позволяет вызвать метод класса. Рассмотрим пример, в котором определим класс Reflect, включающий поля и методы управления ими. В режиме run-time с помощью метода данного класса будем изменять значения полей и распечатывать их.

Листинг класса Reflect

Класс Reflect включает два закрытых поля (id, name) и методы управления их значениями set/get. Дополнительно в класс включим метод setData, который будем вызывать для изменения значений полей, и метод toString для печати их значений.

Для тестирования объекта типа Reflect с помощью Java Reflection Api создадим класс ReflectionTest. В этот класс включим две процедуры getClassFields и getClassMethods, которые в режиме run-time распечатают всю информацию (описание полей и методов) о классе. Методы получают класс в качестве параметра. В процедурах сначала определяются массивы полей и методы; после этого их параметры распечатываются :

В конструкторе класса ReflectionTest сначала вызываются процедуры определения полей и методов объекта/класса Reflect. После этого вызываются методы изменения значений и печати значений с использованием Reflection API. Для определения метода setData используется массив типов параметров. Вызов метода setData выполняется с передачей ему массива новых значений.

В результате выполнения примера в консоль будут выведены представленные ниже сообщения. Методы setData и toString(), вызываемые с помощью Java Reflection API, вносят измнения в закрытые поля класса и распечатываются их значения.

Скачать пример

Исходный код рассмотренного примера вызова метода invoke с использованием Java Reflection API можно скачать здесь (989 байт).

Источник

Разбираемся с рефлексией на примерах в C#

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

Рефлексия (отражение) — это процесс, во время которого программа может отслеживать и модифицировать собственную структуру и поведение во время выполнения, это своего рода процесс обнаружения типов во время выполнения.

Рефлексия позволяет: перечислять члены типа, создавать новые экземпляры объекта, запускать на выполнение члены объекта, извлекать информацию о типе, извлекать информацию о сборке, исследовать пользовательские атрибуты, примененные к типу, создавать и компилировать новые сборки.

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

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

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

Парадигма программирования, положенная в основу отражения, называется рефлексивным программированием. Это один из видов метапрограммирования.

System.Reflection — Пространство имен содержит типы, предназначенные для извлечения сведений о сборках, модулях, членах, параметрах и других объектах в управляемом коде путем обработки их метаданных. Эти типы также можно использовать для работы с экземплярами загруженных типов, например для подключения событий или вызова методов.

Класс Type.

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

Источник

Рефлексия на уроках информатики

Министерство образования и науки, молодежи и спорта Украины

Министерство образования и науки Автономной Республики Крым

Республиканский конкурс проектов молодых педагогов «Шагни за горизонт»

Проект
учителя информатики
Бахчисарайской средней общеобразовательной школы №4
Слабченко Александры Юрьевны
в номинации «Профи»

по направлению «Развитие инновационного педагогического потенциала»
на тему:

«Теоретические и практические основы использования рефлексии на уроках информатики»

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

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

Рефлексия очень часто используется на уроках в школах. Данный проект раскрывает особенности применения рефлексии на уроках информатики. Необходимость изучения особенностей рефлексии на уроках информатики обусловлена тем, что рефлексия – это деятельность человека, направленная на осмысление своих собственных действий, процедура, осуществляющая снятие практического затруднения на уроках информатики. С помощью рефлексии происходит процесс осмысления и переосмысления полученных знаний.

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

Таким образом, актуальность этой темы заключается в ее высокой значимости, злободневности.

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

Цель проекта – выявить особенности рефлексии на уроках информатики, собрать из различных источников и систематизировать приемы рефлексии для применения на практике.

Объект исследования – особенности рефлексии на уроках информатики.

Предмет исследования – методика применения рефлексии на уроках информатики.

изучить психолого-педагогическую и методическую литературу о рефлексии, выявить педагогические условия развития;

определить особенности использования рефлексии на уроках информатики;

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

Некоторые выводы, касающиеся практического применения рефлексии на уроках информатики, были сделаны на базе Бахчисарайской СОШ № 4 г. Бахчисарая.

Материалы данного проекта могут быть использованы учителями информатики.

Глава 1. Теоретические основы использования рефлексии в учебном процессе

Рефлексия – размышление человека, направленное на анализ самого себя (самоанализ) – собственных состояний, своих поступков и прошедших событий. При этом глубина рефлексии, самоанализ зависит от степени образованности человека, развитости морального чувства и уровня самоконтроля. Рефлексия, в упрощённом определении, – это «разговор с самим собой». Слово рефлексия происходит от латинского reflexio – обращение назад. Словарь иностранных слов определяет рефлексию как размышление о своём внутреннем состоянии, самопознание. Толковый словарь русского языка трактует рефлексию как самоанализ. В современной педагогике под рефлексией понимают самоанализ деятельности и её результатов.

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

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

Рефлексивная среда – это некая система условий развития личности, открывающая перед ней возможность самоисследования и самокоррекции социально-психологических и профессиональных ресурсов [6].

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

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

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

а) индивидуальная – формирование реальной самооценки («За что ты можешь оценить свою работу?», беседа с ребенком по результатам самооценки, «Почему выбран тот или иной уровень?»)

б) групповая – акцентирование ценности деятельности каждого члена группы для достижения максимального результата в решении поставленной задачи. («Смогли бы сделать, если бы с нами не работал ….(имя)» «Какую помощь в работе оказал… (имя)»)

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

Рефлексия настроения и эмоционального состояния

Рефлексия содержания учебного материала

Приёмы проведения рефлексии

Рефлексия осуществляется на протяжении всего учебного процесса, выполняя на разных его этапах различные функции. При этом, как уже отмечалось, важно, что в процесс рефлексии вовлечены и учащиеся, и учитель. Как показывает опыт, в случае неучастия кого-либо из субъектов процесса обучения в процессе рефлексии, весь механизм рефлексии оказывается неэффективным.

Рефлексия может быть осуществлена в устной или письменной форме. При этом она имеет разное смысловое назначение.

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

Двухрядный круглый стол

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

Письменная рефлексия. Большинство ученых-психологов и педагогов, в том числе Ф. Кортахен, отмечают, что наиболее важной для развития личности является письменная рефлексия. Можно выделить несколько наиболее известных форм письменной рефлексии:

Эссе – как произведение небольшого объема, раскрывающее конкретную тему и имеющее подчеркнуто субъективную трактовку, свободную композицию, ориентацию на разговорную речь, склонность к парадоксам. Написание эссе призвано обратить учащегося к своему опыту во всех его противоречиях по определенному вопросу.

Бортовой журнал (англ. Log) – форма фиксации информации с помощью ключевых слов, графических моделей, кратких предложений и умозаключений, вопросов. В качестве задаваемых преподавателем частей «бортового журнала», которые будут заполняться учащимися, могут быть: ключевые понятия темы, связи, которые может установить ученик, важные вопросы.

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

Стихотворные формы (например, синквейн – пятистишье) – это способ творческой рефлексии, который позволяет в художественной форме оценить изученное понятие, процесс или явление.

Глава 2. Практическое применение рефлексии на уроках информатики

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

Исследовательская работа проводилась в Бахчисарайской средней общеобразовательной школе №4. В работе были задействованы ученики 5-11 классов, которые изучают информатику. Целью анализа явилось выявление необходимости использования рефлексии на уроках информатики и ее эффективности.

Необходимость разработки системы уроков с использованием рефлексии, обусловила проведение уроков с внедрением изученных приемов рефлексии.

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

Фрагмент урока информатики в 5 классе с применением рефлексии “Укрась торт”:

Я доволен своей работой на уроке – зеленый цвет.

Я хорошо работал, но умею еще лучше – желтый.

Работа не получилась, не доволен собой – красный цвет.

Тема: Моделирование окружающего мира

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

IV . Осмысление полученных знаний. Рефлексия

Дети, перед вами цветные жетоны. Поднимите жетоны того цвета, который больше соответствует вашему настроению:

Рефлексия что это в информатике. Смотреть фото Рефлексия что это в информатике. Смотреть картинку Рефлексия что это в информатике. Картинка про Рефлексия что это в информатике. Фото Рефлексия что это в информатике«Ура! Я все понял, могу приступать к практическому заданию» – зеленый цвет.

Рефлексия что это в информатике. Смотреть фото Рефлексия что это в информатике. Смотреть картинку Рефлексия что это в информатике. Картинка про Рефлексия что это в информатике. Фото Рефлексия что это в информатике«Есть над чем поработать, но буду делать практическое задание – научусь» – желтый.

Фоторепортаж с этого урока представлен в Приложении 4.

Фрагмент урока информатики в 9 классе с применением рефлексии «Сигнализация»

Тема. Программное обеспечение персонального компьюте ра. Операционные системы, их функции и назначение.

Цель: сформировать понятие программного обеспечения как составляющей информационной системы; дать об­ щие сведения о системном, служебном и прикладном программном обеспечении. Ознакомить с классифика цией операционной системы, основными функциями и составляющими современных операционных систем; воспитать информационную культуру.

Тип урока: усвоение новых знаний.

К какому ПО относятся про граммы, которые (если к прикладному ПО – поднять правую руку, если к системному ПО – левую, если к системам программирования – встать):

считывают информацию с магнитного носителя;

помогают обрабатывать фотографии;

выполняют бухгалтерский отчет;

проверяют диск на ошибки;

проверяют носитель на наличие вирусов;

преобразуют голос в звуковой сигнал;

отображают рисунки на экране;

создают программу для начисления заработной платы;

сжимают данные для отправления через Интернет;

помогают инсталлировать другую программу;

создают среду для просмотра фотографий?

Фоторепортаж с этого урока представлен в Приложении 5.

Фрагмент урока информатики в 6 классе с применением рефлексии « Оценивание учащимися своей активности и качества своей работы»

Тема: «Алгоритмы и исполнители»

Тип урока: изучение нового материала.

Вид урока: комбинированный.

Цель урока: сформировать понятия «алгоритм» и «исполнитель»; способствовать использованию этих понятий при решении задач, для которых ответом является не число или утверждение, а описание последовательности действий; способствовать развитию алгоритмического и логического мышления; способствовать формированию познавательного интереса как компонента учебной мотивации.

Дети, нарисуйте на доске свое настроение:

 – Мне было не все понятно.

Фоторепортаж с этого урока представлен в Приложении 6.

Фрагмент урока информатики в 10 классе с применением рефлексии урока-игры

Тема: «Работа с электронной почтой через веб-интерфейс»

Тип урока: изучение нового материала.

Цель урока: добиться усвоения способов регистрации почтового ящика и работы с электронной почтой на бесплатных почтовых серверах Интернета.

Что мне удалось на сегодняшнем уроке-игре?

Какие причины стоят за этим?

Что мне требуется понять, осмыслить, чтобы не повторять эти же ошибки на следующих уроках?

Таким образом, внедрение новых подходов, стимулирующих изучение информатики, не только обеспечивает первоначальное становление личности ребенка, но и выявление, развитие у него способностей, формирование умений и желание учиться. Использование рефлексивной практики в образовательном процессе позволяет выстроить эффективные и поистине межсубъектные отношения в системе «ученик – учитель». Грамотно применяемая рефлексия может стать для педагога и мощным инструментом психолого-педагогического исследования, и средством, актуализирующим собственное личностное развитие, а также эффективной «иммунизации» к профессиональному эмоциональному выгоранию.

Заключение

В ходе разработки и реализации проекта осуществлен сбор и систематизация информации об особенностях рефлексии на уроках информатики, о приемах рефлексии на уроке.

Основная цель проекта достигнута.

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

В ходе работы над проектом решались следующие задачи:

изучена психолого-педагогическая и методическая литература о рефлексии, выявлены педагогические условия развития;

определены особенности использования рефлексии на уроках информатики;

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

Практическое применение рефлексии на уроках информатики было осуществлено на базе Бахчисарайской СОШ № 4 г. Бахчисарая. За период применения рефлексии у учащихся наблюдались положительные изменения в обучении и в общем психологическом климате на уроке. Дети стали чувствовать себя уверенней, когда отвечали на вопросы, стали объективно оценивать свою работу и работу своих одноклассников, научились делать правильные выводы.

Список использованной литературы

Бизяева А.А. Психология труда учителя: Книга для учителя. – М.: Просвещение, 2001.

Выготский Л.С. Мышление и речь // Психология развития человека. – М.: Смысл; Эксмо, 2005.

Карпов А.В. Психология механизмов деятельности. – Москва.: Изд-во «Институт психологии РАН», 2004. – 424 с.

Подласный И.П. Педагогика.– М.:Просвещение,2002

Россохин А. В.Рефлексия и внутренний диалог в изменённых состояниях сознания: Интерсознание в психоанализе.– М.: «Когито-Центр», 2010.

Степанов С. Ю., Семенов И. Н. Проблема формирования типов рефлексии в решении творческих задач. // Вопросы психологии, М., 1982, № 1,

Стеценко И.А – Тенденции психологии развития мышления, рефлексии и познавательной активности. – Киев: Слово, 2007. – 90 с.

Щедровицкий Г. П. Мышление. Понимание. Рефлексия. – Москва.: Наследие ММК, 2005.

Применение рефлексии на различных этапах учебной деятельности

Прочитайте тему урока и попробуйте сформулировать свои задачи на урок.

Этап актуализации ЗУН учащихся

Это своего рода диагностический срез, позволяющий ученику увидеть свой уровень подготовленности

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

В начале работы по теме урока содержательная рефлексия

Помочь учащимся осознать интеллектуальный «конфликт», получить знание о границе своего знания

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

Как поможет вам работа в парах?

На завершающем этапе

Подвести итоги работы, поставить новые цели, выявить удовлетворенность работой

Происходит осознание учащимися уровня освоения, способ действий, их продвижение.

– Что дала вам работа в парах? Какие трудности вы встретили? Как с ними справиться? «Что нового я узнал на уроке?», «Как я смогу полученное на уроке использовать в жизни?».

Классификация видов рефлексии

Рефлексия настроения и эмоционального состояния

установления эмоционального контакта с группой

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

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *