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
-
Programming Theorems and Their Applications
213-241Views:117One of the effective methodological approaches in programming that supports the design and development of reliable software is analogy-based programming. Within this framework, the method of problem reduction plays a key role. Reducing a given problem to another one whose solving algorithm is already known can be made more efficient by the application of programming theorems. These represent proven, abstract solutions – in a general form – to some of the most common problems in programming. In this article, we present six fundamental programming theorems as well as pose five sample problems. In solving these problems, all six programming theorems will be applied. In the process of reduction, we will employ a concise specification language. Programming theorems and solutions to the problems will be given using the structogram form. However, we will use pseudocodes as descriptions of algorithms resembling their actual implementation in Python. A functional style solution to one of the problems will also be presented, which is to illustrate that for the implementation in Python, it is sufficient to give the specification of the problem for the design of the solution. The content of the article essentially corresponds to that of the introductory lectures of a course we offered to students enrolled in the Applied Mathematics specialization.
Subject Classification: D40
-
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. -
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.