Search
Search Results
-
Introductory Computer Programming Courses in Mathematics Curriculum
19-30Views:109We present the results of surveys and curricular research on introductory computer programming courses that are required or recommended for mathematics degrees at U.S. colleges and universities. Our target schools were those with populations between 5,000 and 20,000 undergraduate students. A key result is a synopsis of programming languages in use in these introductory courses with Java, Python and C + + holding the top three spots. We found that 85% of the 340 schools in our pool require or recommend an introductory programming course as a component of a mathematics degree. Furthermore, most of these introductory programming courses are taught by faculty outside of the mathematics department. These results indicate that mathematics faculty value computer programming and should be actively involved in setting learning outcomes, incorporating skills and concepts learned in introductory programming courses into subsequent mathematics courses, and determining programming languages in use.
Subject Classification: 97D30, 97P20, 97P40
-
How to use our own program evaluation system to streamline teaching computer programming
73-80Views:34During computer programming contests the use of automatic evaluation systems is becoming more and more frequent. In said systems the contestants are allowed to submit their source code that will be evaluated with the results reported back to them. According to this report the contestant can realise for what test cases his program works properly and for what cases does it fail. This kind of on-line evaluation system is used for example in the International Olympiad in Informatics (IOI), in the final round of the Nemes Tihamér National Programming Competition, and in the Selection Competition for IOI in Hungary. A contest management system can be used for other purposes apart from this singular example. A well-developed evaluation system can foster not only the teaching of computer programming and the preparation of students for programming contests but the teacher's work as well. -
How to teach computer programming if our goal is the International Olympiad in Informatics
13-25Views:35Nowadays if a student in Hungary (age between 17-20 years old) wants to be the member of the Hungarian selected team (has four members) to participate in the International Olympiad in Informatics (IOI), first, he has to qualify himself in the first fifteen of the National Secondary School Competition (OKTV) in the programming category after the III. round. Then he should be in the first four place after the sixth round of the Selection Competition. Being successful is necessary that the student wants to start studying computer programming at least in the 9th school year and he needs a teacher who prepares him. In the last nine years three students of the author have participated in five Olympics and two of them won gold and bronze medals. This article wants to demonstrate the methods that a teacher needs to use to teach students in 9th school year for computer programming, to be the member of the Hungarian National Team after three or four years. -
Teaching multiparadigm programming based on object-oriented experiences
171-182Views:25Multiparadigm programming is an emerging practice in computer technology. Co-existence of object-oriented, generic and functional techniques can better handle variability of projects. The present paper gives an overview of teaching multiparadigm programming approach through typical language concepts, tools in higher education. Students learning multiparadigm-oriented subjects would gain considerable expertise, which is highly needed by the industrial side in large-scale application development. -
Integrating elements of data science into high-school teaching: Naïve Bayes-classification algorithm and programming in Python
307-316Views:99Probability theory and mathematical statistics are traditionally one of the most difficult chapters of mathematics to teach. One of the authors, Péter Princz has experience in teaching various topics via computer programming of the problem at hand as a class activity. The proposed method is to involve programming as a didactic tool in hard-to-teach topics. The intended goal in this case is to implement a naïve Bayes-classifier algorithm in Python and demonstrate the machine-learning capabilities of it by applying it to a real-world dataset of edible or poisonous mushrooms. The students would implement the algorithm in a playful and interactive way. The proposed incremental development process aligns well with the spirit of Tamás Varga who considered computers as modern tools of experimental problem solving as early as in the 1960s.
Subject Classification: 97D40, 97D50, 97K50, 97K99, 97M60, 97P40, 97P50, 97U50
-
Analysing the effects of OOP helper application
65-75Views:25Nowadays students of secondary schools are familiar with the usage of computer very soon, lot of them are even capable of handling user applications very cleverly. This is satisfying for most of them. Those who imagine their future in programming or system developing, need to have deeper knowledge about object oriented programming, however, students do have it at very low level or not at all. We want to make sure whether this suppose is true, so different examinations have recently been made at Slovakian secondary schools with Hungarian teaching language. We have reached a conclusion that the students' knowledge of object oriented programming is deficient. We could achieve better results by using proper applications as a visual aid. In this paper we examine the efficiency of an application made by us. -
Mechanisms for teaching introductory programming using active learning
407-421Views:27One of the requirements of teaching introductory programming to students whose branch of learning is engineering or science is bridging the gap between in-class lectures and real-world applications. Traditional passive approaches to lecturing often focus on the syntax of a language with little or no discussion of the process involved in using the language to design algorithms to solve real-world problems. One way of overcoming the limitations of traditional lecturing is by tailoring lectures towards becoming more student-oriented, a pedagogical methodology known as active learning. This paper explores mechanisms for implementing active learning in introductory programming courses in computer science. -
Better understanding mathematics by algorithmic thinking and computer programming
295-305Views:117Tamás Varga’s mathematics education experiment covered not just mathematics, but also other related topics. In many of his works he clearly stated that computer science can support the understanding of mathematics as much as mathematics supports informatics. On the other hand, not much later than the introduction of the new curriculum in 1978, personal computers started to spread, making it possible to teach informatics in classes and in extracurricular activities. Varga’s guided discovery approach has a didactic value for other age groups as well, not only in primary school. Its long-lasting effect can be observed even in present times. Having reviewed several educational results in the spirit of Tamás Varga, we have decided to present an extracurricular course. It is an open study group for age 12-18. Students solve problems by developing Python programs and, according to our experiences, this results in a deeper understanding of mathematical concepts.
Subject Classification: 97B10, 97B20, 97D50, 97N80, 97P20, 97P30, 97P40, 97P50, 97U70
-
Cultivating algorithmic thinking: an important issue for both technical and HUMAN sciences
107-116Views:28Algorithmic thinking is a valuable skill that all people should master. In this paper we propose a one-semester, algorithm-oriented computer science course for human science students. According to our experience such an initiative could succeed only if the next recipe is followed: interesting and practical content + exciting didactical methods + minimal programming. More explicitly, we suggest: (1) A special, simple, minimal, pseudo-code like imperative programming language that integrates a graphic library. (2) Interesting, practical and problem-oriented content with philosophical implications. (3) Exciting, human science related didactical methods including art-based, inter-cultural elements. -
Organizing programming contests
73-99Views:28This paper aims to summarize my experience in organizing programming contests. It is an overview of those questions that should be raised and decisions that should be made by organizers, teachers and computer system administrators, who participate "on the other side" of such events. -
Teaching XML
317-335Views:31The author has been teaching XML at the Faculty of Informatics, University of Debrecen since the end of the nineties. This paper gives an overview of XML technology from an educators viewpoint that is based on the experience that the author has gained teaching XML over the years. A detailed description of the XML course is provided. Methodological issues are also discussed. -
Fibonacci beyond binary recursion
173-185Views:27The Fibonacci series is a classical algorithm taught in computer science, usually implemented in some programming language. It is hard to find a programming textbook which doesn't touch on Fibonacci, and it's most common use is in the illustration of binary recursion. There are also many ways of tailoring the basic algorithm in order to implement it. This paper discusses some novel algorithms, which help address some of the limitations of binary recursion, but also illustrate how differing algorithms can be pedagogically beneficial. We introduce a simple algorithm for accurately calculating any Fibonacci number. -
An interactive animation for learning sorting algorithms: How students reduced the number of comparisons in a sorting algorithm by playing a didactic game
45-62Views:36Learning programming and understanding algorithms is one of the hardest tasks for novice computer science students. One of the basic algorithms they learn during the introductory programming and algorithms courses are the sorting algorithms. Students like learning these and other algorithms by animations and didactic games, however, these animations are not educationally useful in every case. In this article, we present our educational sorting game, which can be used to introduce the topic of sorting algorithms. The didactic game can be used later too, as a demonstrative tool for explaining the more efficient, quicksort algorithm. We conducted a pedagogical experiment, in which we examined the process of development of sorting algorithms by students while they used the mentioned didactic game. The results showed that students were able to create an algorithm to solve the sorting problem, and they improved its effectiveness by reducing the number of comparisons in the algorithm. They were also able to understand the importance of the efficiency of algorithms when we demonstrated them the quicksort algorithm using the same tool after the experiment. -
"Upperview" algorithm design in teaching computer science in high schools
221-240Views:39In this paper we are going to present a teaching/learning method and suggest a syllabus that help the high school students look at the algorithm design strategies from a so called "upperview": greedy, backtracking, divide and conquer, dynamic programming. The goal of the suggested syllabus is, beyond the presentation of the techniques, to offer the students a view that reveals them the basic and even the slight principal differences and similarities between the strategies. In consensus with the Comenius principle this is essential, if we want to master this field of programming ("To teach means scarcely anything more than to show how things differ from one another in their different purposes, forms, and origins. ... Therefore, he who differentiates well teaches well."). -
Simple Variations on The Tower of Hanoi: A Study of Recurrences and Proofs by Induction
131-158Views:127The Tower of Hanoi problem was formulated in 1883 by mathematician Edouard Lucas. For over a century, this problem has become familiar to many of us in disciplines such as computer programming, algorithms, and discrete mathematics. Several variations to Lucas' original problem exist today, and interestingly some remain unsolved and continue to ignite research questions. Nevertheless, simple variations can still lead to interesting recurrences, which in turn are associated with exemplary proofs by induction. We explore this richness of the Tower of Hanoi beyond its classical setting to compliment the study of recurrences and proofs by induction, and clarify their pitfalls. Both topics are essential components of any typical introduction to algorithms or discrete mathematics.
Subject Classification: A20, C30, D40, D50, E50, M10, N70, P20, Q30, R20
-
Facilitating class attendance to improve student achievements
77-90Views:29Many studies have revealed that attendance is strongly associated with students' achievements, and have proposed different strategies to improve students' attendance. However, there are few studies investigating how to efficiently take students' attendance – the key component to improve students' attendance. Taking attendance manually is inefficient since it will consume part of the limited class time. This paper describes the design and the implementation of an online attendance system that is currently used in classes at West Virginia University and California University of Pennsylvania. Examples of the system are provided online. Implementation codes of the system are shared, which can be used to teach computer science courses such as Web Programming or Client-Server Script Languages. -
New style in teaching word processing
417-426Views:31Teaching word processing is confined to looking through some menus and showing some functions of a word processor program, although technology presents just a small part of forming layouts. This fact causes that people who are writing documents spend a lot of time by trying to form, e.g., title pages or inner pages.
The present paper deals with a design of an online course on word processing that fits better the needs of many users. The online course is designed for teaching (LA)TEX by leading the students to the technical issues of the typesetting system through layout and grammar rules: demonstrates the most important basic recommendations of typography and grammar rules through samples, and shows how to program the currently displayed layout in the (LA)TEX programming languages. This methodology suits better the common working habit, and can be a useful help in word processing documents. -
Teaching integral transforms in secondary schools
241-260Views:33Today, Hungarian students in the secondary schools do not know the idea of complex numbers, and they can not integrate except those ones who learn mathematics in advance level. Without this knowledge we can teach Fourier transform for students. Why should we teach Fourier transform (FT) or Wavelet transform (WT) for them? To teach image file formats like JPEG, (JPEG2000) we need to talk about integral transforms. For students who are good in computer programming, writing the program of 1D FT or 2D FT is a nice task. In this article we demonstrate how we can teach Fourier and Wavelet transform for students in secondary school. -
Aspects théoriques de la classification à base de treillis
125-135Views:28La classification est une notion cruciale dans les systémes orientés objets et se fait de plus en plus présente en représentation de connaissances. Elle permet principalement de trouver des regularités dans un grand tableau de nombres. Dans ce sens général, il s'agit donc d'une méthode qui joue un role important dans différents domaines scientifiques oú les connaissances sont á organiser selon certaines hiérarchies (biologie, chimie, etc.). En informatique nous parlons aussi de langages de classes sans mentionner es aspects mathématiques de la classification. Dans cet article l'auteur a pour but de proposer une introduction á la classification á travers la notion de treillis. Nous sommes persuadés que l'étude de la classification permet aux étudiants de familiariser leurs connaissances sur la modélisation et la programmation orientée objet.
The classification is a crucial notion in the object oriented systems and more and more appears in the knowledge representation. It allows us to find the regularities in a huge table of numbers. In this general sense the classification plays an important role in various domains of science, where knowledge has to be organized into hierarchy (biology, chemistry, etc.) In the computer science the languages of classes are often studied without mathematical aspects of the classification. In this paper the author has the goal to propose an introduction to the classification through the notion of lattices.We are convinced that the study of classification allows students to enlarge their knowledge on the object oriented modelling and programming. -
Difference lists in Prolog
73-87Views:26Prolog is taught at Bradford University within the two-semester module Symbolic and Declarative Computing/Artificial Intelligence. Second year undergraduate students are taught here the basics of the functional and the logic programming paradigms, the latter by using the Linux implementation of SWI Prolog [6]. The topic 'Difference lists' is mentioned in traditional textbooks such as [2] and [5] but it was felt that the available texts do not quite serve our purposes. We present here a lecture handout and a laboratory sheet for the teaching sessions on Difference lists. It is believed that the lectures and lab sessions together with the handouts shown here are a gentle, self-contained and reasoned introduction into the topic. The figures here shown to illustrate the concepts are considered a special feature of the handouts which in this form do not seem to be well known. -
Modelling and simulation in education and the NetLogo simulation environment
229-240Views:33Just like real experimentation, computer simulation is a method for understanding the world. In the present paper I will demonstrate its possible didactic advantages and application potentials. The displayed simulations, which will be analyzed in a separate section, were all made in the NetLogo environment, one of them by the author himself.