Tendencies in the Development of Basic Computer Education in Universities

Review article
DOI:
https://doi.org/10.18454/COMP.2024.1.5
Issue: № 1 (1), 2024
Suggested:
01.11.2023
Accepted:
25.01.2024
Published:
29.01.2024
76
1
XML
PDF

Abstract

Basic computer education in universities is facing enormous difficulties. On the one hand, the amount of knowledge that a university graduate must possess is increasing very rapidly. On the other hand, the population of students varies greatly in terms of their level of preparation and motivation, and the level of this differentiation is constantly growing. As a consequence, the complexity of learning and the percentage of undergraduates are increasing. Scientists and educators are looking for solutions to these problems in the following directions: revision of the knowledge required to be obtained at the university in the direction of the reality of obtaining them in the given time; use of new information technologies to simplify the learning process and improve its quality; development of new teaching methods that take into account the realities. This article presents a strategic document in the field of computer education in universities – Computing Cirriculum 2020, as well as an overview of the directions of development of basic computer education, such as: learning with artificial intelligence, virtual laboratories, microprocessor suites and robotics, WEB-systems for distance and blended learning, mobile application development, visual programming, gamification, computer architecture, programming languages, learning technologies. In addition, the author provides their experience and vision of teaching basic computer education in universities.

1. Введение

Под базовым компьютерным образованием автор статьи, как и разработчики документа Computing Cirricula 2020

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

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

Othman

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

Belmar

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

· абстракция (определение какую информацию о сущности/объекте необходимо сохранить, а какую игнорировать);

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

· декомпозиция (разбиение сложных задач на меньшие подзадачи, которые легче понять и решить);

· алгоритмизация (определение шаг за шагом множества операций/действий для того, чтобы решить задачу);

· отладка (локализация и устранение ошибок).

Shanmugam

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

2. Основные результаты

2.1. Computing Curricula 2020

31 декабря 2020 года две крупнейшие международные организации, объединяющие компьютерных специалистов: Association for Computing Machinery (ACM) и Institute of Electrical and Electronics Engineers Computer Society (IEEE-CS) выпустили совместный 205-страничный документ Computing Curricula 2020 (СС 2020)

, определяющий стратегию компьютерного образования по семи направлениям: Computer Engineering, Computer Science, Cybersecurity, Information Systems, Information Technology, Software Engineering, Data Science (under development).  

Ключевое отличие СС 2020 от предыдущей версии документа СС 2005 – переход от знаний к компетенциям. Вот как это объясняется в СС 2020:

Достигнут консенсус, что карьерный успех специалиста требует три вещи:

• знание – «знать-что» – формулирование ключевых концепций и содержания образования;

• умения – «знать-как» – способность решать задачи, достигая результата;

• диспозиции – «знать-почему» – интеллектуальные, социальные и моральные тенденции.

Таким образом, Компетенция = Знания + Умения + Диспозиции.

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

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

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

3. Быть расширяемым и поддерживать существующие, зарождающиеся и будущие тенденции в компьютерном образовании.

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

Компьютерное образование включает семейство следующих областей:

Computer engineering (разработка компьютеров) развивается от electrical engineering (электротехника);

Computer science (компьютерная наука) эволюционирует в академическую дисциплину;

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

Information technology (информационная технология) возникает как новая дисциплина, которая способствует построению и поддержке компьютерных инфраструктур;

• Software engineering (разработка программного обеспечения) развивается как дисциплина, базирующаяся на “Сomputer science” и “Сomputer engineering”.

В качестве ядра обучения компьютерным знаниям выделяются такие компоненты как «Архитектура компьютеров» и «Языки программирования». Отдельно в СС 2020 уделено внимание обучения компьютерным технологиям в начальной и средней школе.

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

2.2.  Обучение с помощью искусственного интеллекта

Oosterwyk et al.

отмечает, что AI-программы, такие как ChatGPT в состоянии выполнять задания вводных курсов по программированию  вместо студентов, при этом ChatGPT понимает не только текстовые описания заданий, но и программы, написанные на различных языках программирования таких как Python, Java, C++ и др. Соответственно, перед преподавателями стоит задача изменения соответствующих заданий.    

Jacques et al.

представил своё видение обучения вводных курсов по программированию с помощью искусcтвенного интеллекта (ИИ). Среди прочего, он предлагает давать задания на использование ИИ генерирующего программы по различным представлениям задач: текстовые представления (алгоритмы, написанные на языке программирования или псевдокоде), визуальные представления (например, UML-диаграммы), числовые и формульные представления. Другой вариант заданий – генерация нескольких решений одной и той же задачи с последующим сравнительным анализом реализаций. Третий – объяснение студентом решений, сгенерированных ИИ.

Bengtsson и Kaliff

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

Denny

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

Zheng

описывает использование ChatGPT в области data science (науки о данных), указывая в качестве достоинств такого подхода персонализированное обучение, понимание концепций, генерация и объяснение кода, оценивание. Data science, по его мнению, включает три существенных обязательных курса – базы данных, анализ данных, машинное обучение.

Farah

представил авторский ChatBot, который помогает студентам осваивать оформление программ на языке Python в соответствии со стандартом PEP-8.

2.3. Виртуальные лаборатории

Zargham и Cheng

представляют новую платформу и метод кодирования. Ученики 5-12 классов используют среду виртуальной реальности для написания кода для создания интересного мира, в частности американских горок мечты. Во время написания кода они наблюдают за развитием своих американских горок в пошаговой 3D-среде. После завершения проектирования американских горок они могут развернуть его на смартфоне. Затем они могут кататься на американских горках в виртуальной среде, поместив телефон в гарнитуру виртуальной реальности. Разработанная и реализованная платформа виртуальной реальности выходит за рамки простых визуальных стимулов и позволяет учащимся принимать непосредственное участие и испытывать свой дизайн в осязаемой, интерактивной и оперативной системе.

Xu

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

2.4. Микропроцессорные комплекты и робототехника

Платформа Arduino стала чрезвычайно популярной на всех уровнях технического обучения в последнее десятилетие. В дополнение к дешёвому аппаратному обеспечению платформа предлагает бесплатную среду разработки. Также имеются дополнительные аппаратные модули, дополнительные программные модули (библиотеки) и учебные материалы. Важным дополнением к платформе Arduino является среда симуляции и отладки TinkerCAD, а также возможность взаимодействия с программным обеспечением MATLAB-Simulink. Čermák

приводит методологию совместного использования Arduino, TinkerCAD, MATLAB-Simulink при обучении студентов робототехнике.

Lewis

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

Cruz

описывает использование в учебном процессе системы на кристалле ESP8266 и ESP32. Они совместимы с Arduino, имеют изменяемое программное обеспечение и низкую стоимость. В ходе занятий студенты осваивают разработку программ с использованием WiFi и BlueTooth.    

Zimmermann

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

Vrbančič и Kocijančič

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

2.5. WEB-системы для дистанционного и смешанного обучения

Mamman

описывает WEB-платформу для обучения программированию на языке Python, разработанную жителей таких стран как Нигерия, Судан, Гана и Камерун, говорящих на языке Hausa. WEB-платформа обеспечивает создание и наполнение учебных курсов, форум для общения студентов и преподавателей и выдачу сертификатов о прохождении курсов.

Aldalur

предлагает свою WEB-платформу WEbQuest для изучения программирования на C в среде Visual Studio.

Zhuang

представил WEB-платформу OPTES (Online Programming Training Estimation System) которая обеспечивает интегрированную среду для назначения внеклассных заданий по программированию, обеспечивающую также отслеживание результативности студентов в течение семестра.

Nguyen и Ha

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

Fonseca

описывает авторскую WEB-платформу для обучения студентов программированию логических контроллеров, в ближайших планах развитие для программированию IoT (интернета вещей) с поддержкой Arduino и микроконтроллеров ESP32 и STM32 и процессоров цифровой обработки сигналов.

Zhang

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

2.6. Разработка мобильных приложений

Özdemır

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

2.7. Визуальное программирование

Cheng

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

2.8. Геймификация

Zakiah

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

Pusztai

описывает авторский опыт внедрения геймификации в университетские курсы «Алгоритмы и структуры данных» и «Методы программирования».

2.9. Архитектура компьютеров

Quaratiello

описывает авторский курс по ассемблеру и низкоуровнему С, введённый в MIT c 2022 года на специальностях Electrical Engineering and Computer Science, и Computer Science and Engineering.

2.10. Языки программирования

Grindei

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

Mosobalaje и Orodu

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

Birkenkrahe

представил авторский подход к изучению дисциплин, связанных c “data science”, в рамках которых изучаются языки программирования R, Python, C++, SQL.

Cervoni и Brasseur

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

2.11. Технологии обучения

Wittie

описывает пример применения методологии “Teaching for Mastery” для обучения программированию. Суть её заключается в том, что студент переходит к изучению следующей темы только после того, как он освоил предыдущую, и каждый студент двигается по учебному материалу с собственной скоростью. Основой обучения является подход flipped classroom («перевёрнутый класс»). Теоретические сведения содержатся в подготовленных кратких (3-12 минут) видео-лекциях. Для проверки знаний студентов используется система автоматической проверки. Для нуждающихся студентов проводятся еженедельные консультации.

Vakaliuk

представляет методику обучения программированию с использованием Massive Open Online Courses (MOOC): Sololearn, CodesDope, CodinGeek, Javatpoint, Pskills, Codescrecker.

3. Авторский опыт

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

3.1. Инструментальная система дистанционного обучения DL.GSU.BY

Система HLCCAD (High-Level Chip Computer-Aided Design System) позволяет интерактивно и визуально рисовать функциональные схемы цифровых устройств, моделировать их работу на входных тестах (задаваемых интерактивно или в файлах), анализировать результаты моделирования, находить и исправлять ошибки

. Система HLCCAD обеспечивает автоматическое сравнение результатов моделирования с эталонными результатами, подготовленными автором задания. Таким образом, сообщая студенту о правильности/неправильности выполнения задания. Кроме того, система HLCCAD интегрирована с системой DL.GSU.BY на основании чего в соответствующих учебных курсах задания предъявляются студентам через сайт DL и через него же студенты отправляют на проверку свои схемы. Результат проверки схемы системой HLСCAD сообщается студенту и вносится в таблицу результатов.

3.2. WINTER- среда отладки программ для микропроцессоров/микроконтроллеров

Система Winter позволяет писать и отлаживать ассемблерные программы для микроконтроллеров и микропроцессоров Intel 8051, Intel 8086, Atmel AT90S2313, Atmel AT90S2323, Motorola M68HC05 and Motorola M68HC08, TMS370

. Система Winter также позволяет настраивать себя на другие модели микропроцессоров/микроконтроллеров. Система Winter интегрирована с системой DL.GSU.BY на основании чего в соответствующих учебных курсах задания предъявляются студентам через сайт DL и через него же студенты отправляют на проверку свои программы. Результат проверки программы системой WINTER сообщается студенту и вносится в таблицу результатов.

3.3. Методика обучения студентов основам цифровой техники    

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

,
и архитектуры компьютеров
:

· практико-ориентированный подход – основная цель курса – научить студентов проектировать схемы и писать программы на ассемблере и С;

· автоматическая проверка решений (схем и программ);

· активное использование средств моделирования, отладки и визуализации в целях повышения качества усваивания материала;

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

3.4. Методика обучения студентов-первокурсников программированию    

Основные принципы методики обучения студентов-первокурсников программированию

,
:

· персонализированный подход к обучению (выбор студентом):

- языка программирования Pascal, C, C++, С#, Java, Python;

- уровня сложности заданий в текущем обучении.

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

· автоматизированные объективные контроль и оценивание знаний;

· основные функции преподавателя:

   -  научить студента учиться;

   - оказывать индивидуальную помощь студентам;

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

В качестве оценки эффективности предложенных программных средств и методик обучения можно привести следующие соображения:

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

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

· вся система обучения положительно воспринимается студентами в учебном процессе;

· более подробная аргументация приведена в статьях, на которые приведены ссылки при упоминании программных средств и методик;

· прямым подтверждением эффективности предложенных программных средств и методик является также и наличие многочисленных публикаций автора в англоязычных специализированных журналах: WSEAS Transactions on Advances in Engineering Education, International Journal of Education and Learning Systems, International Journal of Circuits and Electronics, Journal of Information Technology and Digital World, Global Journal of Computer Science and Technology Interdisciplinary.

3.5. Методика обучения программированию школьников-старшеклассников (классы 9-11)

Автор абсолютно солидарен с

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

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

· последовательное обучение от простого к сложному с перманентной проверкой результативности обучения – еженедельной в тренировочных олимпиадах и ежемесячной в раундах на Codeforces.com;

· значительное количество индивидуальной самостоятельной работы школьника.

3.6. Методика обучения программированию в средней школе (классы 5-8)

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

:

· персонализированное адаптивное обучение;

· регулярное участие в тренировочных и официальных олимпиадах;

· развитие самостоятельности и креативности.

3.7. Методика обучения программированию в начальной школе (классы 1-4)

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

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

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

- школьники ученики автора завоевали более 20 медалей на международных олимпиадах школьников по информатике (IOI);

- автор регулярно публикует статьи о своей работе в журнале “Olympiad in Informatics”;

- автор неоднократно становился победителем конкурса по методике преподавания информатике школьникам, который проводится журналами «Информатика и образование» и «Информатика в школе».

4. Заключение

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

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

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

Article metrics

Views:76
Downloads:1
Views
Total:
Views:76