Although Machine Learning (ML) is integrated today into various aspects of our lives, few understand the technology behind it. This presents new challenges to extend computing education early to ML concepts helping students to understand its potential and limits. Thus, in order to obtain an overview of the state of the art on teaching Machine Learning concepts in elementary to high school, we carried out a systematic mapping study. We identified 30 instructional units mostly focusing on ML basics and neural networks. Considering the complexity of ML concepts, several instructional units cover only the most accessible processes, such as data management or present model learning and testing on an abstract level black-boxing some of the underlying ML processes. Results demonstrate that teaching ML in school can increase understanding and interest in this knowledge area as well as contextualize ML concepts through their societal impact.
Connecting theory and practice in teaching is sometimes difficult, as it requires expensive or delicate equipment, thus limiting the teacher to giving demonstrations in which students are passive participants. Numerical mathematics, as an applied discipline, should be taught on real world examples. By using inexpensive Arduino hardware, we can create simple experiments that are easily reproduced by students. Furthermore, the experiments generate tangible data, which can be processed numerically. The choice of the software used for numerical processing is also an important issue. We present several exercises in numerical mathematics that are based on experiments in electrical engineering with Arduino, and show how to turn them into motivational examples. We also present our experiences in teaching using the developed exercises, as well as some important points and conclusions, which stem from discussions with the participating students and teachers.
Diverse initiatives have emerged to popularize the teaching of computing in K-12 mainly through programming. This, however, may not cover other important core computing competencies, such as Software Engineering (SE). Thus, in order to obtain an overview of the state of the art and practice of teaching SE competences in K-12, we carried out a systematic mapping study. We identified 17 instructional units mostly adopting the waterfall model or agile methodologies focusing on the main phases of the software process. However, there seems to be a lack of details hindering large-scope adoption of these instructional units. Many articles also do not report how the units have been developed and/or evaluated. However, results demonstrating both the viability and the positive contribution of initiating SE education already in K-12, indicate a need for further research in order to improve computing education in schools contributing to the popularization of SE competencies.
The management of contemporary software projects is unfeasible without the support of a Project Management (PM) tool. In order to enable the adoption of PM tools in practice, teaching its usage is important as part of computer education. Aiming at teaching PM tools, several approaches have been proposed, such as the development of educational PM tools. However, such approaches are typically limited with respect to content coverage and instructional support. In this context, an important technique is the provision of instructional feedback, which is essential in order to help the students to learn based on the evaluation of their own actions. In order to take advantage of this technique, this article proposes its employment in an Instructional Unit, being integrated into the PM tool dotProject+, providing automated feedback based on the project plan being developed with the tool. This technique has been evaluated through a series of case studies.
The teaching of sorting algorithms is an essential topic in undergraduate computing courses. Typically the courses are taught through traditional lectures and exercises involving the implementation of the algorithms. As an alternative, this article presents the design and evaluation of three educational games for teaching Quicksort and Heapsort. The games have been evaluated in a series of case studies, including 23 applications of the games in data structures courses at the Federal University of Santa Catarina with the participation of a total of 371 students. The results provide a first indication that such educational games can contribute positively to the learning outcome on teaching sorting algorithms, supporting the students to achieve learning on higher levels as well as to increase the students' motivation on this topic. The social interaction the games promote allows the students to cooperate or compete while playing, making learning more fun.
Programming is one of the basic subjects in most informatics, computer science mathematics and technical faculties' curricula. Integrated overview of the models for teaching programming, problems in teaching and suggested solutions were presented in this paper. Research covered current state of 1019 programming subjects in 715 study programmes at total of 218 faculties and 143 universities in 35 European countries that were analyzed. It was concluded that while most of the programmes highly support object-oriented paradigm of programming, introductory programming subjects are mainly based on imperative paradigm.
This work is part of a research project whose main objective is to understand the impact that the use of Information and Communication Technology (ICT) has on the teaching and learning process on the subject of Physics. We will show that, with the use of a storm simulator, physics students improve their learning process on one hand they understand storm phenomenon, and on the other hand they assimilate in better way physics ideas. Computer technology is a positive supplement to bridge the gap between education and the technological world in which we live. Computer-assisted technologies at the university offer students a great access to information, an eager motivation to learn, a jump-start on marketable job skills and an enhanced quality of class work.
C++ is the most commonly used language in introductory and intermediate programming courses in Bulgarian universities. In recent years this language has developed greatly. Its abstractions are more flexible and affordable than ever before. Such great number of changes are related to the launch of the new standard (known as C++11) that we have grounds to consider it even a new language. It is inevitable to reflect all these changes in training courses and this prompted us to consider not only some updating of academic curricula but also a comprehensive reorganization of our programming courses. So, in this article we share our successes and difficulties in this direction.
The paper elaborates on experiences and lessons learned from the course on object-oriented analyses and design at the Faculty of Sciences, Novi Sad. The course on OOAD is taught to students of computer science and to the students of mathematical programme. Conclusions made in this paper are based on results of students' assignments as well as results of conducted survey. In the paper we identify a set of issues concerning teaching modelling and UML. It is noticed that difficulties in mastering OOAD arise primarily from the absence of appropriate real case studies from the field of designing information systems. In order to overcome this problem, students worked on their own homework projects which include all phases of software development. Concerning the results of survey it is noticed that OOAD course should be taught in different manners regarding previous knowledge of students. Suggestions how to teach OOAD to students of computer science and to students of other programmes are given in this paper.
This paper discusses some difficulties in teaching introductory courses to programming, paying particular attention to their mathematical nature. We consider some aspects, which have not been commented in detail in textbooks and often neglected by course outlines and schedules. Some of these are constructing complex conditions, exceeding array bound, calculating infinite series in conjunction with recursion, etc. We believe that those topics and accompanying notes along with appropriate teaching methodology could be and should be incorporated into introductory programming courses.