Экстеншн что это такое в программировании
Перейти к содержимому

Экстеншн что это такое в программировании

  • автор:

Экстеншн что это такое в программировании

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

Например, нам надо добавить для типа string новый метод:

string s = "Привет мир"; char c = 'и'; int i = s.CharCount(c); Console.WriteLine(i); public static class StringExtension < public static int CharCount(this string str, char c) < int counter = 0; for (int i = 0; i < str.Length; i++) < if (str[i] == c) counter++; >return counter; > >

Для того, чтобы создать метод расширения, вначале надо создать статический класс, который и будет содержать этот метод. В данном случае это класс StringExtension . Затем объявляем статический метод. Суть нашего метода расширения — подсчет количества определенных символов в строке.

Собственно метод расширения — это обычный статический метод, который в качестве первого параметра всегда принимает такую конструкцию: this имя_типа название_параметра , то есть в нашем случае this string str . Так как наш метод будет относиться к типу string, то мы и используем данный тип.

Затем у всех строк мы можем вызвать данный метод:

int i = s.CharCount(c);

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

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

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

Методы расширения (Руководство по программированию в C#)

Методы расширения позволяют «добавлять» методы в существующие типы без создания нового производного типа, перекомпиляции и иного изменения первоначального типа. Методы расширения представляют собой разновидность статического метода, но вызываются так же, как методы экземпляра в расширенном типе. Для клиентского кода, написанного на языках C#, F# и Visual Basic, нет видимого различия между вызовом метода расширения и вызовом методов, определенных в типе.

Пример OrderBy

В следующем примере показано, как вызывать метод стандартного оператора запроса OrderBy для массива целых чисел. Выражение в скобках называется лямбда-выражением. Многие стандартные операторы запроса принимают лямбда-выражения в качестве параметров, но это необязательно для методов расширения. Дополнительные сведения см. в разделе Лямбда-выражения.

class ExtensionMethods2 < static void Main() < int[] ints = [10, 45, 15, 39, 21, 26]; var result = ints.OrderBy(g =>g); foreach (var i in result) < System.Console.Write(i + " "); >> > //Output: 10 15 21 26 39 45 

Методы расширения определяются как статические методы, но вызываются с помощью синтаксиса обращения к методу экземпляра. Их первый параметр определяет, с каким типом оперирует метод. Параметру предшествует модификатор this. Методы расширения находятся в области действия, только если пространство имен было явно импортировано в исходный код с помощью директивы using .

В приведенном ниже примере показан метод расширения, определенный для класса System.String. Этот метод определяется внутри невложенного, неуниверсального статического класса:

namespace ExtensionMethods < public static class MyExtensions < public static int WordCount(this string str) < return str.Split(new char[] < ' ', '.', '?' >, StringSplitOptions.RemoveEmptyEntries).Length; > > > 

Метод расширения WordCount можно ввести в область действия с помощью следующей директивы using :

using ExtensionMethods; 

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

string s = "Hello Extension Methods"; int i = s.WordCount(); 

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

Класс MyExtensions и метод WordCount являются static , и доступ к ним можно получить так же, как ко всем остальным элементам static . Метод WordCount может быть вызван так же, как другие методы static , следующим образом:

string s = "Hello Extension Methods"; int i = MyExtensions.WordCount(s); 

В приведенном выше коде C#:

  • Объявляет и назначает новый string с именем s и значением «Hello Extension Methods» .
  • Вызывает MyExtensions.WordCount с учетом аргумента s

Вообще, обычно гораздо чаще вызываются методы расширения, чем реализуются собственные методы. Так как методы расширения вызываются с помощью синтаксиса обращения к методу экземпляра, для использования их из клиентского кода специальные знания не требуются. Чтобы включить методы расширения для определенного типа, необходимо просто добавить директиву using для пространства имен, в котором эти методы определяются. Например, чтобы использовать стандартные операторы запроса, нужно добавить в код следующую директиву using :

using System.Linq; 

(Возможно, вам также потребуется добавить ссылку на System.Core.dll.) Вы заметите, что стандартные операторы запросов теперь отображаются в IntelliSense в качестве дополнительных методов, доступных для большинства IEnumerable типов.

Привязка методов расширения во время компиляции

Методы расширения можно использовать для расширения класса или интерфейса, но не для их переопределения. Метод расширения, имеющий те же имя и сигнатуру, что и интерфейс или метод класса, никогда не вызывается. Во время компиляции методы расширения всегда имеют более низкий приоритет, чем методы экземпляра, определенные в самом типе. Другими словами, если тип имеет метод Process(int i) , а также есть метод расширения с такой же сигнатурой, компилятор будет всегда выполнять привязку к методу экземпляра. Если компилятор обнаруживает вызов метода, он сначала ищет совпадения с методами экземпляра типа. Если такое совпадение не найдено, компилятор выполняет поиск методов расширения, определенных для соответствующего типа, и создает привязку к первому обнаруженному методу расширения.

Пример

В следующем примере демонстрируются правила, которые компилятор C# соблюдает при определении того, к чему необходимо привязать вызов метода — к методу экземпляра типа или к методу расширения. Статический класс Extensions содержит методы расширения, определяемые для любого типа, реализующего интерфейс IMyInterface . Все три класса — A , B и C — реализуют этот интерфейс.

Метод расширения MethodB никогда не вызывается, потому что его имя и сигнатура точно совпадают с методами, уже реализованными этими классами.

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

// Define an interface named IMyInterface. namespace DefineIMyInterface < public interface IMyInterface < // Any class that implements IMyInterface must define a method // that matches the following signature. void MethodB(); >> // Define extension methods for IMyInterface. namespace Extensions < using System; using DefineIMyInterface; // The following extension methods can be accessed by instances of any // class that implements IMyInterface. public static class Extension < public static void MethodA(this IMyInterface myInterface, int i) < Console.WriteLine ("Extension.MethodA(this IMyInterface myInterface, int i)"); >public static void MethodA(this IMyInterface myInterface, string s) < Console.WriteLine ("Extension.MethodA(this IMyInterface myInterface, string s)"); >// This method is never called in ExtensionMethodsDemo1, because each // of the three classes A, B, and C implements a method named MethodB // that has a matching signature. public static void MethodB(this IMyInterface myInterface) < Console.WriteLine ("Extension.MethodB(this IMyInterface myInterface)"); >> > // Define three classes that implement IMyInterface, and then use them to test // the extension methods. namespace ExtensionMethodsDemo1 < using System; using Extensions; using DefineIMyInterface; class A : IMyInterface < public void MethodB() < Console.WriteLine("A.MethodB()"); >> class B : IMyInterface < public void MethodB() < Console.WriteLine("B.MethodB()"); >public void MethodA(int i) < Console.WriteLine("B.MethodA(int i)"); >> class C : IMyInterface < public void MethodB() < Console.WriteLine("C.MethodB()"); >public void MethodA(object obj) < Console.WriteLine("C.MethodA(object obj)"); >> class ExtMethodDemo < static void Main(string[] args) < // Declare an instance of class A, class B, and class C. A a = new A(); B b = new B(); C c = new C(); // For a, b, and c, call the following methods: // -- MethodA with an int argument // -- MethodA with a string argument // -- MethodB with no argument. // A contains no MethodA, so each call to MethodA resolves to // the extension method that has a matching signature. a.MethodA(1); // Extension.MethodA(IMyInterface, int) a.MethodA("hello"); // Extension.MethodA(IMyInterface, string) // A has a method that matches the signature of the following call // to MethodB. a.MethodB(); // A.MethodB() // B has methods that match the signatures of the following // method calls. b.MethodA(1); // B.MethodA(int) b.MethodB(); // B.MethodB() // B has no matching method for the following call, but // class Extension does. b.MethodA("hello"); // Extension.MethodA(IMyInterface, string) // C contains an instance method that matches each of the following // method calls. c.MethodA(1); // C.MethodA(object) c.MethodA("hello"); // C.MethodA(object) c.MethodB(); // C.MethodB() >> > /* Output: Extension.MethodA(this IMyInterface myInterface, int i) Extension.MethodA(this IMyInterface myInterface, string s) A.MethodB() B.MethodA(int i) B.MethodB() Extension.MethodA(this IMyInterface myInterface, string s) C.MethodA(object obj) C.MethodA(object obj) C.MethodB() */ 

Общие варианты использования

Функциональные возможности коллекций

Функциональные возможности конкретного слоя

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

public class DomainEntity < public int Id < get; set; >public string FirstName < get; set; >public string LastName < get; set; >> static class DomainEntityExtensions < static string FullName(this DomainEntity value) =>$" "; > 

Расширение предопределенных типов

Если необходимо создать многократно используемые функциональные возможности, вы можете расширить существующий тип, например тип .NET или CLR, чтобы не создавать дополнительные объекты. Например, если методы расширения не используются, можно создать класс Engine или Query , чтобы выполнить запрос к SQL Server, который можно вызвать из нескольких расположений в коде. Однако вместо этого можно расширить класс System.Data.SqlClient.SqlConnection с помощью методов расширения, чтобы выполнить этот запрос из любого расположения, где установлено подключение с SQL Server. Другие примеры могут быть для добавления общих функций в System.String класс, расширения возможностей System.IO.Stream обработки данных объекта и System.Exception объектов для конкретных функций обработки ошибок. Сценарии использования ограничиваются только воображением и здравым смыслом.

Расширение предопределенных типов с помощью типов struct может быть сложным, так как они передаются методам по значению. Это означает, что любые изменения структуры вносятся в ее копию. Эти изменения не отображаются после выхода из метода расширения. Модификатор можно добавить ref в первый аргумент, что делает его методом ref расширения. Ключевое слово ref может отображаться до или после this ключевое слово без семантических различий. ref Добавление модификатора указывает, что первый аргумент передается по ссылке. Это позволяет создавать методы расширения, изменяющие состояние расширенной структуры (обратите внимание, что частные члены недоступны). В качестве первого параметра метода расширения разрешены только типы значений или универсальные типы, ограниченные структурой (см struct . ограничение для получения дополнительных сведений ref ). В следующем примере показано, как использовать ref метод расширения для непосредственного изменения встроенного типа без необходимости переназначить результат или передать его через функцию с ref помощью ключевое слово:

public static class IntExtensions < public static void Increment(this int number) =>number++; // Take note of the extra ref keyword here public static void RefIncrement(this ref int number) => number++; > public static class IntProgram < public static void Test() < int x = 1; // Takes x by value leading to the extension method // Increment modifying its own copy, leaving x unchanged x.Increment(); Console.WriteLine($"x is now "); // x is now 1 // Takes x by reference leading to the extension method // RefIncrement changing the value of x directly x.RefIncrement(); Console.WriteLine($"x is now "); // x is now 2 > > 

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

public struct Account < public uint id; public float balance; private int secret; >public static class AccountExtensions < // ref keyword can also appear before the this keyword public static void Deposit(ref this Account account, float amount) < account.balance += amount; // The following line results in an error as an extension // method is not allowed to access private members // account.secret = 1; // CS0122 >> public static class AccountProgram < public static void Test() < Account account = new() < balance = 100f >; Console.WriteLine($"I have $"); // I have $100 account.Deposit(50f); Console.WriteLine($"I have $"); // I have $150 > > 

Общие рекомендации

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

Дополнительные сведения о производных типах см. в статье Наследование (Руководство по программированию на C#).

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

В случае реализации методов расширения для какого-либо типа необходимо помнить о следующих фактах:

  • Метод расширения никогда не будет вызван, если он имеет ту же сигнатуру, что и метод, определенный в типе.
  • Методы расширения вводятся в область действия на уровне пространства имен. Например, при наличии нескольких статических классов, содержащих методы расширения в единственном пространстве имен с именем Extensions , все они будут введены в область действия директивой using Extensions; .

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

См. также

  • Руководство по программированию на C#
  • Parallel Programming Samples (Образцы параллельного программирования, включают множество примеров методов расширения)
  • Лямбда-выражения
  • Общие сведения о стандартных операторах запроса
  • Conversion Rules for Instance Parameters and their Impact (Правила преобразования для параметров экземпляра и их влияние)
  • Extension Methods Interoperability between Languages (Взаимодействие между языками с помощью методов расширения)
  • Extension Methods and Curried Delegates (Методы расширения и каррированные делегаты)
  • Extension method Binding and Error reporting

Совместная работа с нами на GitHub

Источник этого содержимого можно найти на GitHub, где также можно создавать и просматривать проблемы и запросы на вытягивание. Дополнительные сведения см. в нашем руководстве для участников.

Расширения (extensions)

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

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

Функции-расширения

Для того чтобы объявить функцию-расширение, укажите в качестве префикса расширяемый тип, то есть тип, который мы расширяем. Следующий пример добавляет функцию swap к MutableList :

fun MutableList.swap(index1: Int, index2: Int) < val tmp = this[index1] // 'this' даёт ссылку на список this[index1] = this[index2] this[index2] = tmp >

Ключевое слово this внутри функции-расширения соотносится с объектом расширяемого типа (этот тип ставится перед точкой). Теперь мы можем вызывать такую функцию в любом MutableList .

val list = mutableListOf(1, 2, 3) list.swap(0, 2) // 'this' внутри 'swap()' будет содержать значение 'list' 

`, and you can make it generic: —>

Следующая функция имеет смысл для любого MutableList , и вы можете сделать её обобщённой:

fun MutableList.swap(index1: Int, index2: Int) < val tmp = this[index1] // 'this' относится к списку this[index1] = this[index2] this[index2] = tmp >

Вам нужно объявлять обобщённый тип-параметр перед именем функции для того, чтобы он был доступен в получаемом типе-выражении. См. Обобщения.

Расширения вычисляются статически

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

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

open class Shape class Rectangle: Shape() fun Shape.getName() = "Shape" fun Rectangle.getName() = "Rectangle" fun printClassName(s: Shape) < println(s.getName()) >printClassName(Rectangle()) 

Этот пример выведет нам Shape на экран потому, что вызванная функция-расширение зависит только от объявленного параметризованного типа s , который является Shape классом.

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

class Example < fun printFunctionType() < println("Class method") >> fun Example.printFunctionType() < println("Extension function") >Example().printFunctionType() 

Этот код выведет Class method.

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

class Example < fun printFunctionType() < println("Class method") >> fun Example.printFunctionType(i: Int) < println("Extension function #$i") >Example().printFunctionType(1) 

Обращение к Example().printFunctionType(1) выведет на экран надпись Extension function #1.

Расширение null-допустимых типов

Обратите внимание, что расширения могут быть объявлены для null-допустимых типов. Такие расширения могут ссылаться на переменные объекта, даже если значение переменной равно null и есть возможность провести проверку this == null внутри тела функции.

Благодаря этому метод toString() в Kotlin вызывается без проверки на null : она проходит внутри функции-расширения.

fun Any?.toString(): String < if (this == null) return "null" // после проверки на null, `this` автоматически приводится к не-null типу, // поэтому toString() обращается (ориг.: resolves) к функции-члену класса Any return toString() >

Свойства-расширения

Аналогично функциям, Kotlin поддерживает расширения свойств.

val List.lastIndex: Int get() = size - 1 

Since extensions do not actually insert members into classes, there’s no efficient way for an extension > property to have a [backing field](properties.md#backing-fields). This is why _initializers are not allowed for > extension properties_. Their behavior can only be defined by explicitly providing getters/setters. —>

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

val House.number = 1 // ошибка: запрещено инициализировать значения // в свойствах-расширениях 

Расширения для вспомогательных объектов (ориг.: companion object extensions)

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

class MyClass < companion object < >// называется "Companion" > fun MyClass.Companion.printCompanion()

Область видимости расширений

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

package org.example.declarations fun List.getLongestString() < /*. */>

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

package org.example.usage import org.example.declarations.getLongestString fun main()

См. Импорт для более подробной информации.

Объявление расширений в качестве членов класса

Внутри класса вы можете объявить расширение для другого класса. Внутри такого объявления существует несколько неявных объектов-приёмников (ориг.: implicit receivers), доступ к членам которых может быть произведён без квалификатора. Экземпляр класса, в котором расширение объявлено, называется диспетчером приёмников (ориг.: dispatch receiver), а экземпляр класса, для которого вызывается расширение, называется приёмником расширения (ориг.: extension receiver).

class Host(val hostname: String) < fun printHostname() < print(hostname) >> class Connection(val host: Host, val port: Int) < fun printPort() < print(port) >fun Host.printConnectionString() < printHostname() // вызывает Host.printHostname() print(":") printPort() // вызывает Connection.printPort() >fun connect() < /*. */ host.printConnectionString() // вызов функции-расширения >> fun main() < Connection(Host("kotl.in"), 443).connect() // Host("kotl.in").printConnectionString() // ошибка, функция расширения недоступна вне подключения >

В случае конфликта имён между членами классов диспетчера приёмников и приёмников расширения, приоритет имеет приёмник расширения. Чтобы обратиться к члену класса диспетчера приёмников, можно использовать синтаксис this с квалификатором.

class Connection < fun Host.getConnectionString() < toString() // вызывает Host.toString() this@Connection.toString() // вызывает Connection.toString() >> 

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

open class Base < >class Derived : Base() < >open class BaseCaller < open fun Base.printFunctionInfo() < println("Base extension function in BaseCaller") >open fun Derived.printFunctionInfo() < println("Derived extension function in BaseCaller") >fun call(b: Base) < b.printFunctionInfo() // вызов функции расширения >> class DerivedCaller: BaseCaller() < override fun Base.printFunctionInfo() < println("Base extension function in DerivedCaller") >override fun Derived.printFunctionInfo() < println("Derived extension function in DerivedCaller") >> fun main() < BaseCaller().call(Base()) // "Base extension function in BaseCaller" DerivedCaller().call(Base()) // "Base extension function in DerivedCaller" - приемник отправки является виртуальным DerivedCaller().call(Derived()) // "Base extension function in DerivedCaller" - приемник расширения является статическим >

Примечание о видимости

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

  • Расширение, объявленное на верхнем уровне файла, имеет доступ к другим private объявлениям верхнего уровня в том же файле;
  • Если расширение объявлено вне своего типа приёмника, оно не может получить доступ к private или protected членам приёмника.

© 2015—2024 Open Source Community

Экстеншн что это такое в программировании

(Перевод Центра Гражданских Инициатив/Службы Развития Фермерства)

Extension Agent. — специалист по приведению университетской сельскохозяйственной науки к практическим рекомендациям для фермеров; консультант, помогающий фермерам развивать свое дело. Дословный перевод extension — расширение, распространение

Образовательный процесс экстеншн

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

Определение основных принципов образовательного процесса.

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

Элементы образовательного процесса экстеншн.

Образовательный процесс экстеншн состоит из 4 составляющих его элементов. К ним относятся:

1) ученик (клиент),

2) работник экстеншн,

3) смысл образовательной программы,

4) содержание и план программы.

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

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

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

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

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

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

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

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

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

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

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

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

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

(Перевод Центра Гражданских Инициатив/Службы Развития Фермерства)

Принципы образовательного процесса экстеншн.

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

1. Работник эксеншн должен обладать знаниями и убежденностью, позволяющими ему относиться к своей работе как к миссии.

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

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

4. Работнику экстеншн необходимо понимать особенности социально — культурной среды, в условиях которой он разрабатывает и внедряет свои программы.

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

6. Работник экстеншн должен ументь переводить высказанные его клиентами нужды в осмысленную программу, разрабатывать и развивать стратегию по ее внедрению.

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

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

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

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

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

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

Стратегии достижения желаемых изменений. p>

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

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

— Агент службы экстеншн сельскохозяйственного отдела разработал программу повышения производительности фермы. Для того, чтобы стимулировать участие фермеров в этой программе, он выявил несколько человек, добившихся успеха с помощью новых технологий. План агента заключался в том, чтобы сделать эти успехи видимыми для других фермеров. Он пригласил фермеров, добившихся больших успехов, а также фермеров, успехи которых были менее значительны в специально созданный для этой цели комитет. Члены комитета определили, какие, по их мнению, цели будут реально достижимы и какие методы обучения — наиболее приемлемы с точки зрения предлагаемой программы. Эти методы включали в себя: частные консультации с агентом или с его добровольным помощником; в то же время планировалось проводить групповые встречи в наиболее критических ситуациях. Агент экстеншн и его помощники также планировали поддерживать постоянные контакты с фермерами, вовлеченными в программу. Таким образом они могли быть уверенны, что фермеры применяли предлагаемые технологии на регулярной основе и не только следить за их успехами, но и вовремя определить проблему. Помимо этого помощники были обучены анализировать предшествующие методы и технологии, применяемые фермерами и использовать их для того, чтобы помочь фермерам лучше понять смысл новых технологий. По мере того, как фермеры привыкали к новым технологиям, помощники помогали им обнаружить схожие черты в следующих предлагаемых технологиях.

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

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

Внедрение программы. План действий.

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

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

Индивидуальные стили восприятия обучения состоят из серии различных модулей. В литературе предлагаются обычно четыре основных модуля: 1) чувственный; 2) интеллектуальный; 3) эмоциональный; 4) социальный. Чувственный, — когда информация воспринимается из окружающей среды органами чувств. Интеллектуальный модуль относится к ментальному процессу переработки информации. К эмоциональному модулю относятся личные чувства, отношения и персональные характеристики, влияющие на процесс отбора информации, ранжирования ее и на способ применения полученных знаний. К социальному модулю относятся бытовые факторы, которые могут либо помогать, либо препятствовать процессу обучения.

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

Модуль чувственного восприятия состоит из семи элементов: 1) печатный; 2) устный; 3) интерактивный; 4) визуальный; 5) гаптический; 6) кинетический; 7) олфакторальный.

1. Печатный. Человек, ориентированный на восприятие печатной информации, лучше всего обучается посредством чтения и письма. Это тот ученик, который любит читать книги, журналы, бюллетени и который считает, что он или она может выучить что — либо только после того, как прочтет это на бумаге. Человек, про которого говорят, что он/она “книжный червь“, может оказаться как раз такого рода учеником.

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

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

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

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

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

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

При составлении программы, а также при ее адекватном внедрении необходимо учитывать семь компонентов: 1) мотивация; 2) ясность целей; 3) соответствие задачам обучения; 4) последовательность; 5) обратная связь и усовершенствование программы; 6) преемственность навыков; 7) усовершенствование и обратная связь в процессе внедрения.

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

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

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

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

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

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

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

Оценка финансовой состоятельности программы. p>

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

Цели оценки результатов.

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

— административный аппарат системы экстеншн;

— представители местной администрации;

— представители законодательной власти.

Каждый из этих ответственных лиц имеет свои критерии оценки результативности программы, например:

— усовершенствование педагогического процесса;

— усовершенствование процесса разработки программы;

— проверка финансовой состоятельности программы;

— решения по поводу бюджета;

— отчет о результатах программы перед общественностью;

— повышение квалификации преподавателей;

— сокращение или прекращение программы;

— обязательное применение программы или ее элементов.

Умение оценивать результативность программы есть, по сути дела, умение ответить на следующие вопросы:

1. Произвела ли программа или проведенные мероприятия измеряемые перемены в отдельном ученике?

2. Внесла ли программа или проведенные мероприятия какие-либо поведенческие изменения в обучаемом контингенте?

3. Была ли программа или проведенные мероприятия, а также затраченные средства ассоциированы с происшедшими поведенческими изменениями в обучаемом контингенте?

4. Были ли организационные мероприятия, философия программы, ее структура, функционирование и програмные процедуры эффективны с точки зрения полученных результатов?

Главными вопросами при формулировании оценочных критериев являются: 1) похоже ли, что программа была выполнена так, как запланирована? 2) все ли компоненты программы функционировали эффективно, или же некоторым из них требуется ревизия? 3) достойна ли программа того, чтобы ее применяли повсюду? 4) были ли побочные эффекты, достойные включения в структуру основной программы?

Следующий вопросный лист может помочь работнику экстеншн при оценке программы:

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

2. Определитесь, кому вы хотите представить свой отчет и почему именно в эту инстанцию.

3. Решите для себя вопрос, почему вам вообще требуется оценивать свою программу. Другими словами, каковы причины оценки программы? Каковы основные критерии оценки?

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

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

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

7. Определите точку отсчета для оценки программы.

8. Определитесь с методикой оценки и способами сбора и составления наглядных примеров:

— процедура отбора примеров?

— процедура сбора наглядных примеров?

— время, отведенное для сбора наглядных примеров?

— дополнительные способы документирования результатов программы?

— возможности проведения оценки?

9. Создайте или добудьте необходимый инструментарий.

10. Внедрите программу.

11. Суммируйте и изучите результаты программы.

12. Подготовьте отчет для отдельных людей или для групп, которых вы заранее определили.

13. Используйте информацию о результатах программы для планирования следующей программы.

Упражнение 1. Ученик — это больше, чем просто человек.

Часть А. Как я себя понимаю.

следует заполнить всем участникам семинара

1. Опишите вкратце свой самый запоминыющийся образовательный опыт, который вы получили за пределами школьной скамьи. Отметьте, почему вы решили расширить этот опыт.

2. Какой из способов обучения вы для себя выбрали или, если у вас опыт преподавания, какой способ преподнесения материала вы предпочитаете?

3. Есть ли что-либо в вашем образовательном опыте, что вы хотели бы изменить в лучшую сторону?

Часть Б. Как я понимаю других.

следует заполнять группам — участникам семинара

1. Поделитесь своими ответами на анкету А с другими участниками семинара. Найдите схожесть и отличие в причинах, по которым другие члены группы задумались о повышении своего образования; а также среди предпочтительных методах обучения. Отличаются ли эти методы от тех, что предпочитаете вы?

2. Выберите две разные темы. Какой преподавательский метод вы бы выбрали, чтобы преподнести эти темы остальным участникам семинара? Легко ли дался бы вам этот метод?

Упражнение 2. Понимание положения ученика.

Определение положения. p>

Семья Смитов поддерживает то, что осталось на ферме, которой владеет вот уже третье поколение. Миссис Смит, которая ведет всю бухгалтерию, озабочена тем, что ферма съедает деньги семьи вместо того, чтобы приносить доход. Дополнительный доход мистер Смит получает от мастерских по ремонту мебели, мелких автомобильных деталей и двигателей. У него нет высшего образования и является тем, кого называют “вечный должник“. Миссис Смит работает кассиром в бакалейной лавке и время от времени должна работать и по вечерам. У Смитов двое детей, 7 и 13 лет. Если родители не могут заниматься детьми по вечерам, их заменяют бабушка и дедушка. Бабушка и дедушка принимают активное участие во всех церковных мероприятиях, они посещают церковь как в течение недели, так и по воскресеньям. Местная Слежба экстеншн предлагает программу по обучению бухгалтерскому учету; занятия по программе проходям вечерами, в среду и четверг.

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

2. Какие факторы в данной ситуации будут препятствовать обучению Смитов, а какие помогать?

Способы достижения поставленных целей.

Цель- Наиболее подходящий способ.

повышение уровня знаний — лекции, телевидение, дискуссии, диалоги,

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

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

приобретение навыков — ролевые игры, упражнения, игры, практические занятия, муштра.

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

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

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

Различные способы проведения занятий.

с помощью компьютера

чтение (газет, учебников)

дискуссии (обмен идеями)

семинары (обмен и проверка отчетов)

анализ отдельных случаев

воспроизведение вероятных ситуаций

форумы (обсуждение с неформализованным участием всей группы)

самообучение (в рамках данной организации)

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

активное обучение (исследовательские проекты, оценка запланированного проекта по мере его внедрения)

исследование общества в рамках проекта

посещение демонстрационного участка

проекты, направленные на решение проблем данного общества

Типы учебных материалов.

Печатные: газеты, учебники, буклеты, бюллетени и т. п.

Аудио: радио, аудиозаписи, кассеты.

Визуальные: слайды, графические изображения.

Симуляционные: учебные пособия, игры, компьютер, ролевые игры.

Примеры: демонстрации, модели.

(Перевод Центра Гражданских Инициатив/Службы Развития Фермерства)

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

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