Разветвленное программирование это в педагогике

ВВЕДЕНИЕ

Как основная тема в образовании в области информационных технологий, компьютерное программирование преподавалось как основным. Так и неосновным студентам в университетах. В то время как продолжается дискуссия о том. Следует ли обучать студентов программированию (Soloway, 1993). Литература показывает. Что обучение программированию представляет много трудностей для новичков (Bonar & Soloway, 1989). Дийкстра (1989) описывает программирование как “радикальную новизну”. В которой наша обычная стратегия метафор и аналогий просто неприменима. Pea (1986) выделяет три типа концептуальных ошибок. Которые коренятся в супербуге. Где “где-то в языке программирования есть скрытый разум. Обладающий интеллектуальными интерпретирующими способностями”.

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

Бен-Ари (Ben-Ari, 1998) отмечает. Что студентам не хватает жизнеспособной ментальной модели для обучения программированию. С другой стороны. Чрезмерное внимание уделяется изучению синтаксиса программирования (Deek, 1999). В данной статье мы остановимся на подходах к обучению компьютерному программированию. Уинслоу (1996) в своей работе ввел термин “педагогика программирования”. Хотя педагогика программирования в статье не определена явно. Термин здесь относится к любым учебным методам и стратегиям. Которые используются для обучения студентов вводному программированию.

В силу этих причин педагогика программирования требует особого внимания.

ФОН

На протяжении многих лет предлагались педагогические инновации. Чтобы справиться с этими трудностями. К ним относятся различные инструменты программирования (Smith & Webb, 2000). Эти инструменты помогают начинающим программистам разрабатывать программы с помощью визуализации программ и анимации алгоритмов. Deek and McHugh (1998) оценивают инструменты программирования. Используемые для обучения программированию. Одна из общих проблем этих инструментов заключается в том. Что они не интегрируются в учебную программу.

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

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

ПОДХОДЫ К ОБУЧЕНИЮ ПРОГРАММИРОВАНИЮ

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

Подход к Структурированному программированию

В 1970-х годах одним из ключевых слов в программировании было структурированное программирование. Это подход. Который направлен на “поддержку производства правильных. Понятных программ. Которые легко модифицировать и поддерживать” (Freiburghouse & Liskov, 1973). Подход позволяет контролировать только структуры последовательности. Выбора и повторения. Утверждение GOTO считается вредным для структурированного программирования (Dijkstra, 1968). Для облегчения разработки структурированной программы используется нисходящий дизайн. Который разлагает большую программу на управляемую меньшую программу. Программы последовательно улучшаются путем пошагового уточнения. Таким образом. Есть надежда. Что качественная программа может быть произведена. Несмотря на то. Что он был пропагандирован в 1970-х годах. Он все еще является одним из распространенных подходов к программированию сегодня.

Подход к Решению Проблем

Барнс, Финчер и Томпсон (1997) опишите методологию программирования. Состоящую из четырех этапов, а именно: Понимание, Проектирование. Написание и рецензирование. Следуя той же линии мышления. Томпсон (1997) предлагает подход к решению проблем в обучении функциональному программированию. Он утверждает, что. Используя этот подход. ” новичок может добиться значительного прогресса в выполнении задачи программирования. Прежде чем начать писать какой-либо программный код”. Он утверждает. Что обычное предположение о том. Что студенты должны были изучать программирование после предоставления инструментов и примеров. Не является педа-гогически обоснованным. Для решения этой проблемы он предлагает четырехфазный процесс решения задачи Поля (1957).

Подход к Разработке Программного обеспечения

Не менее важно. Чтобы студенты знали. Как переводить алгоритмы в синтаксический язык. и семантически правильное решение задачи. Формирующей программу. В этой связи Дик (1999) разрабатывает методологию. Которая включает в себя как навыки решения проблем. Так и навыки программирования в единый процесс. Который обеспечивает основу для начинающих студентов. Как отмечает Дик (1999). Существует три вида трудностей. С которыми сталкиваются студенты при обучении программированию: (1) недостатки в стратегиях решения проблем и тактических знаниях; (2) неэффективная педагогика обучения программированию; и (3) неверные представления о синтаксисе. Семантике и прагматике. Новый подход. Который включает в себя как навыки решения проблем. Так и навыки программирования. Может помочь решить все три вида трудностей.

Малый Подход К Программированию

Если программирование создает большую когнитивную нагрузку на новичков, то разумно уменьшить такую нагрузку. Программируя в “малом” масштабе. В этом смысле мы различаем термины

Glaser, Hartel и Garratt (2000) вводят идею программирования по числу в преподавание ML и Java. Программирование по номерам предназначено для того. Чтобы студенты начали писать программу. Предоставляя им пошаговое руководство. Обеспечивая при этом гибкость в разработке решения проблемы. При написании функций они предлагают следующие шаги: (1) назовите функцию; (2) запишите ее тип; (3) перечислите все случаи; (4) разберитесь с любым простым случаем(случаями); (5) перечислите ингредиенты для подготовки к сложному случаю(случаям); (6) разберитесь со сложным случаем(случаями). Где требуется некоторое вдохновение; и (7) подумайте о результате. Брусиловский, Кушниренко. Миллер и Томек (1994) рассматривают три подхода к обучению вводному программированию. А именно инкрементный подход. Мини-языковой подход и субязыковой подход. В инкрементном подходе новые языковые подмножества. Которые вводят новые конструкции языка программирования. Сохраняя при этом все конструкции предыдущих подмножеств. Последовательно вводятся новичкам. В мини-языковом подходе маленький и простой язык используется для поддержки первых шагов в обучении программированию. В большинстве случаев ученик учится программировать. Управляя актером. Который может быть черепахой. Роботом или любым другим активным существом в микромире. Подход субязыка использует специальное начальное подмножество полного языка. Которое содержит легко визуализируемые операции. Чтобы познакомить новичков с программированием. Короче говоря. Эти три подхода обеспечивают простое и небольшое языковое подмножество и визуально привлекательную метафору. Встроенную в контекстно-богатую среду. Чтобы помочь новичкам начать программировать.

Подход К Обучению языку

Робертсон и Ли (1995) дайте исследовательский манифест по применению педагогики овладения вторым естественным языком к преподаванию языков программирования. Они утверждают. Что программирование традиционно преподается с небольшой привязкой к педагогике естественного языка. В заключение. Они предоставляют некоторые области для дальнейших исследований. Такие как ценность программ чтения перед написанием. Использование аутентичных программ. Изучение культурной среды программ и т. Д. Болдуин и Макреди (Baldwin and Macredie, 1999) утверждают. Что исследование стратегий обучения в педагогике второго языка может дать представление о программировании пегадогии. Основываясь на призыве к созданию более ориентированной на учащихся среды. Они полагают. Что стратегии обучения-это одна из проблем в обучении программированию. Которая может помочь преодолеть трудности в обучении программированию. Дик и Фридман (2001) описывают свои идеи о том. Как программирование и письмо изучаются параллельно. Они утверждают. Что общий элемент. Существующий в обеих областях. Решение проблем и разработка программ. Обеспечивает “новые способы для студентов передавать навыки между областями”.

Подход Теории Обучения

Листер и Лини (Lister and Leaney, 2003) утверждают, что традиционный подход к оценке. Основанный на нормах. Как правило. Ориентирован на средних студентов. В результате более слабые студенты не могут хорошо программировать. А более сильные студенты не испытывают трудностей. Они предлагают подход к оценке. Основанный на критериях. Так что для каждой оценки устанавливаются четкие и ясные критерии. При определении критериев делается ссылка на Таксономию образовательных целей Блума (Bloom, 1956). Макфарлейн и Майнат (1988) исследуют эффективность advance organizer в обучении синтаксису массивов. Задачи испытуемых состояли в том. Чтобы ввести синтаксически и семантически правильные операторы Паскаля для манипулирования массивами в обучающей программе. В исследовании использовался метафорический авансовый организатор-одноэтажный многоквартирный дом. Результаты показали. Что группы не различались по синтаксическим знаниям (ближний перенос). Тем не менее. Группа advance organizer превзошла две другие группы в семантическом знании (far transfer).

Другие Подходы

Есть и другие новаторские попытки в педагогике программирования. Astrachan and Reed (1995) предлагают модель обучения ученичества. В которой студенты начинают с чтения. Изучения и расширения программ. Написанных опытными программистами. Благодаря этому подходу студенты учатся на реальных примерах. Практикуют код и повторное использование концепций. Дженкинс (1998) пытается заставить студентов активно участвовать в обучении программированию. Его партисипативный подход направлен на то. Чтобы сделать изучение некоторых абстрактных понятий программирования. Таких как процедуры, параметры. Указатели и связанные списки. Более доступным для студентов. Proulx (2000) представляет использование шаблонов программирования в обучении программированию. Идея состоит в том. Чтобы организовать общие используемые методы. Такие как чтение данных в программировании. Как шаблоны для повторного использования.

ОБСУЖДЕНИЕ

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

Empirical Evaluation

It is common that many approaches lack classroom evaluation of their effectiveness. In many cases. They are simply ideas based on the experience of the practioners in teaching. While some studies show empirical evaluations of their approaches (Glaser et al., 2000; Macfarlane & Mynatt, 1988). Many simply do not provide sufficient evidence to support their claims. For instance. Proulx (2000) reports that, “Overall. We felt the course was a success. Students performed better on the midterm exam and seemed more confident than in the past”. Yet, no information on the students’ background or even results of the mid-term examination are provided. Nevertheless, it is of paramount importance that any claims on the effectiveness of an approach should be grounded on empirically tested evidence (Deek & McHugh, 1998) in pedagogical practices.

Support from Learning Theory

If approaches are not grounded on empirical data, an established theory may serve as the foundation for the approaches. However, not many approaches have explicitly mentioned the use of any learning theory in its design. The risk of not basing the approach on established theory can be detrimental since the approach remains ad hoc and may not be generalized to other settings. As pointed out by Berglund (2002). The problem is. “Although valuable as a mean of sharing experiences between computer science educators. The results are…often hard to generalise. Since they are not based on pedagogically sound theories of learning or carried out with sound methodological principles”.

Individualization

One of the foci of our curricula in the school education today is learner-centerness. It is our responsibility to provide such an environment for the needs of individuals. In terms of pedagogy. The usual strategy adopted is “one size fits all”. This results in weaker students learn well while stronger students are unchallenged (Lister & Leaney, 2003). It is argued that learning styles provide a vehicle through which individual differences are addressed. The literature has shown that learning styles do affect programming performance (Ross, Drysdale. & Schulz, 2001). It is thus possible to make use of learning style data to individualize pedagogy to bring about innovation in teaching.

Towards a Conceptual Framework

Learning to program is recognized as a cognitively demanding process in the literature. It involves expressing solutions to problems in terms of programming language syntax as well as understanding of how programs work in the computer. In the former case. Linn and Dalbey (1985) propose a chain of cognitive accomplishments for computer programming instruction consisting ofthree main stages: (1) single language features. (2) design skills. And (3) general problem-solving skills. Besides, Bayman and Mayer (1988) propose three interrelated types of programming knowledge necessary to understand the underlying complex processes involved in programming: syntactic, conceptual. And strategic. Such discussion indicates a developmental change from learning programming syntax to learning programming concepts in terms of programming knowledge. Recently, technology advancement has made computer programming more visually than before. This is achieved in one way by visual programming (Green, 1995). It points to a dimension in programming pedagogy in terms of programming representation.

In this article, an initial framework on programming pedagogy is suggested which attempts to conceptualise pedagogy along the two dimensions, namely. Programming knowledge and programming representation. For the dimension of programming knowledge. The two poles are programming syntax and programming concept. Which correspond to the developmental change in learning programming. For the dimension of programming representation. The two poles are textual representation and visual representation. Which reflects the advancement of technology in programming presentation. Figure 1 shows a classification of aforementioned programming approaches under this framework. Structured programming is traditionally learned with focus on programming syntax in textual representation. As a result. It is considered as a more syntax-oriented and textual-based (i.e.. Syntax-textual pedagogy). Problem Solving. Software Development. Language Learning. And Learning Theory approaches are regarded as more concept-oriented and textual-based (i.e.. Concept-textual pedagogy) since they emphasise the mastery of problem solving skills. Mini-language and Sub-language approaches usually make use of visual metaphor to help beginners to start programming. In this sense. They focus more on concepts building through a visual programming representation (i.e.. Concept-visual pedagogy). However, we could not find any approach which is under syntax-visual pedagogy. With a trend towards user-friendliness and technology development. It is anticipated that there will be a gradual shift from the concept-textual pedagogy to concept-visual pedagogy in the future.

FUTURE TRENDS

Guzdial and Soloway (2002) advocate the use of authentic multimedia construction to engage students to learn programming. Jimenez-Peris. Pareja-Flores. Patino-Martinez and Velazquez-Iturbide (2000) foretell a day in a 2020 university. Saying that. “current lab programming environments are truly educational. And they are highly visual and intuitive. They detect and accurately diagnose most errors…” From these observations. In the future. Learning to program will be probably dominated by a visual and media-rich environment. And this is in agreement with our guess.

CONCLUSION

The fact that programming is difficult to novices is reported enormously in the literature. Pedagogical innovations have been suggested to address the issue. In this article. Programming pedagogy is reviewed. Approaches of teaching programming are discussed and grouped under seven categories. Problems associated with these approaches are discussed. To conceptualise pedagogy. A theoretical framework consisting of the programming knowledge and programming representation dimensions is proposed. An attempt has been made to classify the approaches under this framework. While the approaches discussed are not meant to be exhaustive. It is hoped that this article may shed light on the discussion of programming pedagogy and arouse further exploration and research in programming education.

Figure 1. Classification of programming pedagogy

Classification of programming pedagogy

KEY TERMS

Computer Programming: Mainly consists of designing the underlying algorithm and representing that algorithm as a program.

Curriculum: Consists of four interacting components, namely. Teaching objective. Teaching material. Teaching method. And assessment.

Novice Programmer: A computer programmer who is not experienced at programming.

Problem Solving: To solve, problem is to find a way where no way is known off-hand. To find a way out of a difficulty. To find a way around an obstacle. To attain a desired end that is not immediately attainable by appropriate means. The emphasis of problem solving in programming instruction focuses on the expression of solutions in terms of mathematical functions.

Programming Pedagogy: The study and theory of the methods and principles of teaching and learning computer programming. It refers to any instructional methods and strategies which are used to teach students introductory programming.

Textual Programming: The representation of programming processes is based on written texts.

Visual programming: The representation of programming processes is based on graphics and images. It allows the manipulation of visual information and provides support for visual interaction.