Опыт работы во Дворце детского и юношеского творчества (ДДЮТ)

Введение

С раннего детства нас окружают родители, воспитатели, учителя, а также просто люди, которые имеют богатый жизненный опыт и стремятся помочь нам «встать на ноги», научиться думать, анализировать и делать выводы из происходящих вокруг нас событий. Но каково же стать этим самым наставником и учителем тому, кто ещё сам не закончил обучение в полной мере? Об этом и пойдёт речь в данном разделе.

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

Как всё начиналось

Однажды вечером мне позвонил Олег Иванович Федяев и предложил занять должность преподавателя кружка, т.к. на тот момент были трудности с кадрами. Сопоставив возможности со свободным временем, я согласился.

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

Знакомство с детьми и родителями

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

С детьми же мне довелось познакомиться только на первом занятии.

Первое занятие

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

На первый год обучения в кружок принимали детей от 6 до 8 класса, однако были и исключения (два или три человека 5 и 9 классов). Данное возрастное ограничение связано с обучаемостью детей и сложностью излагаемого материала. Как показала практика, пятикласснику который ещё слабо знаком с точными науками, бывает достаточно трудно объяснить основы программирования. С более старшими учениками обучение зависит лишь от их желания учиться и упорства при выполнении заданий.

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

Программа обучения

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

  • История создания ПК
  • Базовые знания о ПК и его комплектующих
  • Основы администрирования, панель управления
  • Алгоритмические языки (ROO, Robot)
  • Основы программирования (Visual Basic)
  • Основы графики (растровая - Gimp, векторная - Inkscape)
  • Создание анимаций (Gimp, FantaMorph)

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

Теперь подробнее о каждом пункте...

История создания ПК

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

Базовые знания о ПК и его комплектующих

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

Основы администрирования, панель управления

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

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

Алгоритмические языки

Здесь мы столкнулись с первыми серьезными трудностями. Несмотря на то, что в учебной среде ROO достаточно простые и понятные команды управления кенгурёнком, далеко не все сразу поняли как правильно им пользоваться

ROO
Рисунок 1 - Алгоритмический язык ROO

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

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

Основы программирования

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

small basic square program
Рисунок 2 - Нахождение площади на SmallBasic
small basic square result
Рисунок 3 - Результат вычислений

Что больше всего любят дети школьного возраста да и не только? - Правильно, играть. Следовательно, почему бы и не смотивировать их на создание собственной игры как в текстовом, так и в графическом режимах. Для текстового режима лучше всего подходили игры, например, связанные с выпадением случайных чисел и определения победителя по выпавшему числу. Для более продвинутого графического режима мы дошли даже до создания примитивного арканоида для двух игроков и «Звёздных войн» где можно было отстреливаться своим космическим кораблём от кораблей противника в космосе (в 2D)

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

Основы графики

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

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

Вот некоторые сохранившиеся работы учеников:

android
Рисунок 4 - Android
ded moroz
Рисунок 5 - Новогодний персонаж
clock
Рисунок 6 - "Часы"
bell
Рисунок 7 - Колокол
sword
Рисунок 8 - Лазерный меч
psihodel
Рисунок 9 - Узор

Создание анимации

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

Ниже представлены интересные результаты анимирования простых персонажей:

Winnie-the-Pooh
Рисунок 10 - Винни Пух
dog
Рисунок 11 - Джейк

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

FantaMorph
Рисунок 2 - Интерфейс FantaMorph

Выводы и рекомендации

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

Кастомизационные возможности системы автоматизированного проектирования AutoCAD. Достоинства и недостатки встроенного языка программирования AutoLISP

Введение

Что такое кастомизация? Кастомизация – это изменение свойств продукции под требования конкретного потребителя путём модификации стандартного продукта. В случае с программным обеспечением, кастомизация – это адаптирование ПО целиком либо какого-то его модуля под нужды конкретного пользователя.

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

Пользовательский интерфейс AutoCAD и возможность его расширения

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

  • Настройка меню
  • Собственный скрипт-язык AutoLisp

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

AutoCAD UI Settings
Рисунок 1 - Кнопка вызова настроек интерфейса AutoCAD
AutoCAD UI Settings
Рисунок 2 - Настройки интерфейса AutoCAD

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

AutoCAD cuix files
Рисунок 3 - Подгрузка *.cuix файла AutoCAD

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

AutoCAD customization Settings
Рисунок 4 - Контекстное меню файла кастомизации AutoCAD

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

AutoCAD start customization
Рисунок 5 - Включение режима выбора элементов AutoCAD

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

AutoCAD end customization
Рисунок 6 - Завершение кастомизации AutoCAD

Подробнее об этом можно почтитать по ссылке[1].

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

Достоинства и недостатки встроенного языка программирования AutoLISP

AutoLisp – язык программирования, который является расширенной версией языка Lisp, созданный для взаимодействия с AutoCAD и производными пакетами. Чем же он удобен и в чем его минусы?

Начнём сразу с недостатков. Самый большой минус этого языка – практически полная нечитабельность сложных алгоритмов. Виной этому синтаксис языка, который адаптирован под работу со списками и подразумевает использование большого количества оператора скобок. Также неочевидные названия функций, такие как car, cadr, caddr и т.д. Запись операторов тоже оставляет желать лучшего, так как польская нотация удобна для компьютера, но не удобна для использования человеком напрямую. Ниже приведён пример простой функции на AutoLisp для нахождения средней точки между тремя, а также той же функции на языке высокого уровня C++, с правильным использованием парадигм ООП:

;;; Средняя точка между 3 точками AutoLisp

(defun c:mpt3 (/ pt1 pt2 pt3)

  (if (and

        (= (getvar "cmdactive") 1)

        (setq pt1 (getpoint "\nFirst point: "))

        (setq pt2 (getpoint pt1 "\nSecond point: "))

        (setq pt3 (getpoint pt2 "\nThird point: "))

    )

    (command

      "_non"

      (list

        (/ (+ (car pt1) (car pt2) (car pt3)) 3)

        (/ (+ (cadr pt1) (cadr pt2) (cadr pt3)) 3)

        (/ (+ (caddr pt1) (caddr pt2) (caddr pt3)) 3)

      )

    )

  )

  (princ)

)

;;; Средняя точка между 3 точками С++

Point2d GetCenterPoint(

const Point2d& p1,

const Point2d& p2,

const Point2d& p3)

{

        return (p1 + p2 + p3) / 3;

}

Разница в понятности кода очевидна, однако C++ не может напрямую работать с функциями AutoCAD без использования ObjectARX, что даёт AutoLisp преимущество.

Из положительных качеств AutoLisp можно выделить высокую скорость работы со списками, полную совместимость с платформой и пользовательским интерфейсом AutoCAD.

С учётом набора таких достоинств и недостатков можно заключить, что AutoLisp отлично подходит для мелких задач, в которых пользователю нужно получить и преобразовать значения объектов, не прибегая к сложным алгоритмам, однако для больших проектов следует использовать другие варианты разработки с доступом к базе объектов сцены, такие как библиотека ObjectARX и JavaScript API.