ДонНТУ Портал магистров

Реферат по теме выпускной работы

Содержание

Введение

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

Проблема нашего среднего образования в области специфической подготовки для факультетов вузах (согласно подведенной статистике в журнале «Большая Перемена» за 2004 год), ориентированных на подготовку компьютерных инженеров и программистов заключается в том, что не рассматривается вариант того, что подавляющая масса абитуриентов на момент поступления не имеет первоначальной базы знаний, на наличие которой ориентирована университетская программа. Рассмотрим статистику: к выпуску доходит всего около 50% от первоначального состава, около 20% отчисляется по разным причинам, и оставшиеся 30% остаются на повторный курс, в последствии составляя определенный процент выпускников. Казалось бы цифры приемлемые, но они такие только в процентном соотношении (вспомним потоки, от которых оставалось в результате отчислений 3-4 человека, история печальная).

Зададимся вопросом, почему это так? Ответ появляется тут же - студенты не смогли разобраться во всех тонкостях-превратностях всей специфики направления компьютерной инженерии, в частности в затрагиваемой области. Обратим внимание, что не во всех школах (начальный этап становления всех абитуриентов) является квалифицированный педагог, способный рассказать о всех достоинствах и тонкостях программирования хотя бы на этапе написания простейших программ из разряда «Hello World» или «1 +1 = 2», и уже это играет значительную роль в отсев потенциальных абитуриентов для таких факультетов как КНТ и КИТА. Преподаватели этих факультетов рассчитывают на наличие у студентов этих базовых знаний, которые должны быть заложены в их сознание в процессе школьного обучения, однако на деле мы всего пару средних школ (г. Донецк), которые эти знания дают, остальные в лучшем случае показывают своим ученикам такие программы как «Черепашка» (рисование с незапамятных координат пера), «Алгол» и основы веб дизайна. Последний момент казалось бы замечательный, но на таких занятиях рассказывают только как вывести на экран строку и добавить изображение.

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

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

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

Интерес к программированию у детей начинает просыпаться еще на этапе средних классов, но школьная программа не предусматривает изучения данной дисциплины, в результате чего, не подпитывает ничем стремление угасает и не всегда разгорается вновь в более старшем возрасте, отвергаем чаще в сторону под предлогом "это сложно и непонятно, экономика или психология куда проще". Помните главный лозунг из фильма "Раттатуй"? «Готовить может каждый». Нельзя сказать, что программировать на высшем уровне может каждый, но писать программы, пусть и несложные по силам каждому, что уже озвучивал несколько в другой форме Р. Лафоре. в своей книге "Объектно-ориентированное программирование на С + +". Попробуем разработать, пока теоретически, интерфейсную составляющую для программы, которая могла бы удовлетворять этому утверждению и помочь начальной подготовке студентов и абитуриентов для факультетов, специализирующихся на программировании.

Сравнение с другими программами.

Рассмотрим программу Pascal ABC.

Окно на начало работы программы

Рисунок 1. Окно на начало работы программы.


Данная программа имеет довольно нехитрый дизайн, состоит из 2х окон: верхнее - для написания программы, нижнее - для вывода результатов написанной программы (появляется для вывода результатов программы) и панели инструментов. Некоторые средние учебные учреждения используют ее для написания простеньких программ на паскале при наличии педагога, способного как то объяснить, что там к чему.

Так же есть функция вызова окна настройки:

Окно отладки

Рисунок 2: Окно отладки.


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

Вывод ошибки. Сообщение об ошибке выводится внизу окна в виде красной ленты

Рисунок 3: Вывод ошибки. Сообщение об ошибке выводится внизу окна в виде красной ленты.


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

Также здесь предусмотрены задачи для программирования, так называемый «Электронный задачник по программированию". Наличие такого сборника достаточно простых задач может послужить как базой для домашних заданий, что на каждую тему по 40 вариантов заданий, что дает возможность предположить индивидуальные домашние / практические / лабораторные задания в пределах одного-двух классов учеников.

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

Выбор темы для задания

Рисунок 4: Выбор темы для задачи.

Условия задачи

Рисунок 5: Условия задачи.

Условия задачи с показанным ответом

Рисунок 6: Условия задачи с показанным ответом.


Во вкладке помощь мы также можем обнаружить множество примеров уже готовых программ.

Перечень примеров, скомпонованных по темам

Рисунок 7: Перечень примеров, скомпонованных по темам.


Вот например один из них - игра-стрелялка:

Пример. Игра-стрелялка

Рисунок 8: Пример. Игра-стрелялка.


Или вот пример из разряда объектно-ориентированного программирования:

Пример объектно-ориентированного программирования

Рисунок 9: Пример объектно-ориентированного программирования


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

Разработка интерфейсной составляющей новой программы. Теория

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

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

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

Итак, с чего бы начать ... Начнем с построения области для непосредственно программирования.

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

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

Модель интерактивного учителя программирования. Окно.

Рисунок 10: Модель интерактивного учителя программирования. Окно.


где 1 - область для ввода кода программы, 2 - область для вывода ошибок (можно спрятать через панель инструментов), 3 - область вывода (можно спрятать через панель инструментов), 4 - панель инструментов.

Перейдем в панеле операций. Вкладка "Файл" содержит стандартные функции: Создать, Открыть, Сохранить, Сохранить как, Закрыть. Вкладка "Редактирование": Копировать, Вставить, Найти. "Вид" дублирует управление областями с панели инструментов, осуществляя функции открытия / скрытия областей 2 и 3. "Программа" содержит функции "Выполнить программу" и "Остановить выполнение", что тоже дублирует функции из панели инструментов. "Работа с шаблонами» предоставляет доступ к исходным шаблонов и осуществляет выгрузку кода примеров из "лекций". "Помощь" содержит информацию о программе и контакты автора. "Лектор" содержит перейти к выбору лекций для прослушивания / просмотра, выбора задач для самостоятельного решения .

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

Общий вид окна с ошибкой Привлекающий внимание элемент на окне с описанием ошибки

Рисунок 11: Пример подсветки при возникновении ошибки и элемент, привлекающий внимание к области с описанием ошибки.


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

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

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

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

При вызове перечня лекций вызывается окно поверх основного окна:

Содержание электронных лекций

Рисунок 13: Содержание электронных лекций.


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

Выберем тему. При выборе темы окно немного меняется: добавляются кнопки "Прочитать страницу", "К оглавлению", "Следующая страница" и "Предыдущая страница".

Пример вывода лекции

Рисунок 14: Пример вывода лекции.


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

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

Выводы

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

Список источников информации:

  1. Газета «Большая перемена». Подборка статей за 2004 год.
  2. Р. Лафоре Объектно-ориентированное программирование на С + + ".
  3. Набор документации для программы АВС Pascal.
  4. Влияние уровня владения информационными технологиями на восприятие компьютера пользователями - Цифровая библиотека Украины
  5. Основы программирования для начинающих - iguania.ru
  6. Форум начинающих программистов C++. Вопросы начинающих программистов по С++
  7. Б. Керниган, Д. Ритчи "Язык программирования Си" Издание 3-е, исправленное