Buletin Ilmiah Sarjana Teknik Elektro ISSN: 2685-9572
Trends in the Development of Basic Computer Education at Universities
Faculty of Mathematics and Programming Technologies, Francisk Skorina Gomel State University, Gomel, Belarus
ARTICLE INFORMATION | ABSTRACT | |
Article History: Submitted 30 November 2023 Revised 01 January 2024 Accepted 10 January 2024 | Basic computer education in universities is experiencing huge problems. On the one hand, the amount of knowledge that a university graduate must have is increasing very quickly. On the other hand, the contingent of students varies greatly in terms of the level of training and motivation, and the level of this differentiation is constantly growing. As a result, the complexity of training and the percentage of dropouts increase. Scientists and educators are looking for a solution to these problems in the following areas: revising the knowledge necessary for obtaining at the university in the direction of the reality of their receipt in the allotted time; the use of new information technologies to simplify the learning process and improve its quality; development of the latest teaching methods that take into account the realities. This paper presents a strategic document in the field of computer education at universities - Computing Circulum 2020, as well as an overview of the areas of development of basic computer education, such as learning using artificial intelligence, virtual laboratories, microprocessor kits and robotics, WEB - systems for distance and blended learning, mobile application development, visual programming, gamification, computer architecture & organization, programming languages, learning technologies. In addition, the author gives his experience and vision of teaching basic computer education at universities. | |
Keywords: Literature Review; Basic Computer Education; Undergraduate Teaching; Blended Learning; DL.GSU.BY | ||
Corresponding Author: Michael Dolinsky Faculty of Mathematics and Programming Technologies, Francisk Skorina Gomel State University, Gomel, Belarus. Email: dolinsky@gsu.by | ||
This work is licensed under a Creative Commons Attribution-Share Alike 4.0 | ||
Document Citation: M. Dolinsky, “Trends in the Development of Basic Computer Education at Universities,” Buletin Ilmiah Sarjana Teknik Elektro, vol. 5, no. 4, pp. 584-591, 2023, DOI: 10.12928/biste.v5i4.9704. | ||
Computer programming is one of the core subject of technical universities but the students' performance continues to drop on the following reasons by student opinions: using the conventional static materials, the class should be divided into small groups, educators are concerned with the programming syntax instead of the problem-solving, selecting the wrong pedagogy and programming approaches, the programming language selected is difficult to teach [1].
Challenges and advances in teaching programming and computing thinking are reviwed across the continents: Europe, North America, Oceania, Asia, Latin America and Africa [2], noting that the latter two have a significant number of challenges. The author briefly outlined the goal of teaching programming and computer thinking as the development of five skills:
At [3] there are reviewed modern programming teaching methods, including traditional approaches, Inquiry-Based Learning, Project-based Learning, Collaborative Learning, Online and Interactive Learning, Flipped Classroom, Adaptive Learning.
On December 31, 2020, the two largest international organizations that bring together computer professionals: the Association for Computing Machinery (ACM) and the Institute of Electrical and Electronics Engineers Computer Society (IEEE-CS) released a joint 205-page document Computing Curricula 2020 (CC 2020) [4], which defines the strategy computer education in seven areas: Computer Engineering, Computer Science, Cybersecurity, Information Systems, Information Technology, Software Engineering, Data Science (under development).
The key difference between CC 2020 and the previous version of the CC 2005 document is the transition from knowledge to competencies. Here is how it is explained in CC 2020:
There is a general agreement in educational circles that career success requires three things.
Hence, any definition of competency must connect the three dimensions within a context or task represented as: Competency = Knowledge + Skills + Dispositions. CC2020 will help shape the future of computing education. The CC2020 task group followed these four principles in developing CC2020 Report.
Computing is not just a single area of study, but rather a family of study areas.
The following components can be distinguished as the core of teaching computer knowledge: Computer Architecture and Organization and Programming Languages. Separately, in CC 2020, attention is paid to Computing in Primary and Secondary Education. The paper presents typical examples of work in these areas by various organizations and authors in recent years.
AI programs such as ChatGPT are able to perform tasks in introductory programming courses instead of students [5], while ChatGPT understands not only text descriptions of tasks, but also programs written in various programming languages such as Python, Java, C ++ and etc. Accordingly, teachers are faced with the task of changing the corresponding assignments.
Author [6] presented his vision of teaching an introductory programming course with the help of artificial intelligence (AI). Among other things, he suggests giving tasks to use the AI generating program for various task representations: textual representations (algorithms written in a programming language or pseudocode), visual representations (for example, UML diagrams), numerical and formulaic representations. Another version of tasks is the generation of several solutions to the same problem, followed by a comparative analysis of implementations. The third is the student's explanation of AI-generated solutions.
Using ChatCPT is suggested [7] to grade student-designed programs, noting that historically this has been done either by manual teacher review or automated quizzes. Traditional approaches to teaching programming focus on the practice of writing code [8]. But with the advent of the AI-generator in the code, it is required to change these approaches towards the development of skills in the formation of effective text queries to AI-code generators.
Description of the use of ChatGPT in data science education [9], pointing out personalized learning, concept understanding, coding generation and explanations, educational assessment as the merits of such an approach. Data science includes three essential mandatory courses – a database and data management course, an introductory data analytics course, and a data mining and machine learning course. The author's ChatBot is presented [10], which helps students master the design of programs in Python in accordance with the PEP-8 standard.
A new coding platform and method are presented [11]. Students in grades 5-12 use the virtual reality environment to write code to create an interesting world, specifically a dream rollercoaster. As they code, they watch their roller coaster develop in a turn-based 3D environment. Once the roller coaster design is complete, they can deploy it on their smartphone. They can then ride a roller coaster in a virtual environment by placing their phone in a virtual reality headset. The designed and implemented virtual reality platform goes beyond simple visual stimuli and allows students to directly participate and experience their design in a tangible, interactive and operational system. There is presented description [12] of a virtual laboratory based on DSO38Lab virtual instrument experiment box, hardware data acquisition and software supporting graphic display, program debugging, signal generation, time domain and frequency domain analysis, digital filter etc.
The Arduino platform has become extremely popular at all levels of technical education in the last decade. In addition to cheap hardware, the platform offers a free development environment. There are also additional hardware modules (so-called shields), additional software modules (libraries) and educational materials. An important addition to the Arduino platform is the TinkerCAD simulation and debugging environment, as well as the ability to interact with the MATLAB-Simulink software. A methodology for sharing Arduino, TinkerCAD, MATLAB-Simulink in teaching robotics to students is provided at [13].
Paper [14] describes an Arduino-based project-based learning methodology in which students designed windmill control and water filtration systems. The use of System on a Chip ESP8266 and ESP32 in the educational process is described at [15]. They are compatible with Arduino, have programmable firmware and low cost. During the classes, students master the development of programs using WiFi and BlueTooth.
An example of teaching students how to visually program humanoid robots provided at [16]. Such training is very interesting, especially for beginners. Usually a humanoid robot consists of sensors and actuators such as a body, a head, two arms, two legs. Paper [17] discuss how to teach microcontroller programming beginners more effectively - in a test or graphical environment, comparing the advantages and disadvantages of both approaches.
A WEB platform for teaching Python programming developed by Hausa-speaking countries such as Nigeria, Niger, Sudan, Ghana, and Cameroon is described at [18]. The WEB-platform provides the creation and content of training courses, a forum for communication between students and teachers, and the issuance of certificates of course completion. WEB-platform WEbQuest for learning C programming in the Visual Studio environment is offered at [19].
Paper [20] introduced the WEB platform OPTES: Online Programming Training Estimation System that provides an integrated environment for after-class programming assignments, which is designed to track and estimate the students' learning status continuously over a long period, eg, a whole semester.
The ProgEdu system [21] is developed for automatic grading of students' work in programming, which is close to the development of real software, helping students understand fundamental concepts and gain experience in a modern software development environment. The author's WEB-platform [22] for teaching students how to program logic controllers is presentd. In the near future author anonces development for IoT programming with support for Arduino and ESP32 and STM32 microcontrollers and digital signal processors.
The practice of using the EduCoder platform to teach programming is presented at [23]. Her significant assistance in three aspects of the learning process is noted: organizing classes, designing online experiments, and tracking student progress. Important results are a reduction in the burden on teachers, an increase in the efficiency and quality of education.
At [24] it is noted that there are a significant number of programming languages and mobile application development tools. And the author describes in detail one of them - Kulika, which he used in teaching students, since it effectively supports all stages of development: analysis, design, development, testing and debugging.
There is the opinion that traditional text-based programming languages create difficulties in teaching beginners. As an alternative, the use of visual programming languages is proposed. An example of the use of visual programming languages for the formation of evaluative tests is given [25].
Paper [26] provides an overview of gamification tools for learning programming languages, including incorporation of game mechanics like points, badges, and leaderboards. The feedback and sensation of progress that these game components give students encourages them to keep learning. The author's experience of introducing gamification into university courses "Algorithms and Data Structures" and "Programming methods" is described [27].
Paper [28] describes the author's course on assembler and low-level C, introduced at MIT since 2022 in the specialties Electrical Engineering and Computer Science, and Computer Science and Engineering.
The author's approach [29] to teaching programming and programming languages using C, C++, C# and Python using special engineering tasks for students is described. Paper [30] describes a Python programming course that includes input/output, objects (values, variables, keywords), conditional and repetitive structures, functions, lists, tuples and dictionaries, and application of programs in various subject areas. The author's approach to the study of disciplines related to data science, within which the programming languages R, Python, C ++, SQL are studied at [31]. The paper [32] describes a methodology for teaching the PROLOG programming language.
An example of applying the Teaching for Mastery methodology to teaching programming is presented at [33]. Its essence lies in the fact that the student proceeds to study the next topic only after he has mastered the previous one, and each student moves through the educational material at his own speed. The basis of learning is the flipped classroom approach. Theoretical information is contained in prepared short (3-12 minutes) video lectures. To test students' knowledge, an automatic test system is used. Weekly consultations are held for needy students. A methodology for teaching programming using Massive Open Online Courses (MOOC): Sololearn, CodesDope, CodinGeek, Javatpoint, Pskills, Codescracker is described at [34].
For several decades, the author has been teaching programming to schoolchildren and students, as well as teaching the basics of digital devices and computer architecture to students of the Faculty of Mathematics and Programming Technologies, specializing in Software, Computer Science and Programming Technologies, and Applied Informatics. To increase the effectiveness of this training, the author developed special methods, and for their full implementation, special software was developed under the guidance of the author.
Since 1999, the distance learning instrumental system DL.GSU.BY [35],[36] has been introduced, operated and continues to develop. It allows you to create training courses, fill them with theory (texts, graphics, videos), add practical tasks (both can be organized in a tree structure). There is a forum for interaction of students among themselves and with teachers. Tests are supported when special tasks are opened for a limited time. A mechanism and interface for interaction with a third-party system that checks solution files sent via the Internet is provided. Thus, in particular, programs in the programming languages Pascal, C, C++, C#, Python, Java, etc. are checked.
The HLCCAD (High-Level Chip Computer-Aided Design) system allows you to interactively and visually draw functional diagrams of digital devices, simulate their work on input tests (set interactively or in files), analyze simulation results, find and correct errors [37]. The HLCCAD system provides automatic comparison of simulation results with reference results prepared by the author of the job. Thus, informing the student about the correctness / incorrectness of the assignment. In addition, the HLCCAD system is integrated with the DL.GSU.BY system, on the basis of which, in the corresponding training courses, tasks are presented to students through the DL website and through it, students send their schemes for verification. The result of the circuit check by the HLCCAD system is reported to the student and entered in the results table.
The Winter system allows you to write and debug assembly programs for microcontrollers and microprocessors Intel 8051, Intel 8086, Atmel AT90S2313, Atmel AT90S2323, Motorola M68HC05 and Motorola M68HC08, TMS370 [38]. The Winter system also allows you to configure yourself for other microprocessor/microcontroller models. The Winter system is integrated with the DL.GSU.BY system, on the basis of which, in the corresponding training courses, tasks are presented to students through the DL website and through it, students send their programs for verification. The result of checking the program by the WINTER system is reported to the student and entered in the results table.
The main principles of the methodology for teaching the basics of digital devices [38],[39] and computer architecture [40]:
The main principles of the methodology for teaching programming to first-year students [41]:
The author absolutely agrees with Computing Cirricula 2020 [4] that in order to get high-quality students at a university, one must work with schoolchildren and the author has been doing this all his life. The main principles of the methodology for teaching programming to high school students [42]:
In order for older students to be able to successfully compete in international and national olympiads, they must start classes at least in secondary school. Basic principles for teaching programming to secindary school students [43]:
In contrast to the dominant approach of block visual programming with beginners (not only in primary and secondary school, but even in high school), the author adheres to the opposite point of view that learning can and should be started with text programming, and all emerging problems can be solved with the help of an appropriate methodology and software [44]-[46]. Moreover, under the guidance of the author, special programming competitions for elementary school students have been developed and are held annually [47]. To equalize the levels of preparation of first-graders, as well as to be able to work with preschoolers, a special course “Learning to Think” was developed and is being used [48].
This paper provides an overview of the areas of development of basic computer education, such as: training with the help of artificial intelligence, virtual laboratories, microprocessor kits and robotics, WEB systems for distance and blended learning, mobile application development, visual programming, gamification, computer architecture & organization , programming languages, learning technologies. In addition, the author gives his experience and vision of teaching basic computer education at universities, considering such issues as specially designed software and his own methods of teaching the basics of digital technology and programming
REFERENCES
AUTHOR BIOGRAPHY
Trends in the Development of Basic Computer Education at Universities (Michael Dolinsky)