fe a t u re d c o l u m n s
MATH COUNTS Peter B. Henderson
Mathematical Reasoning in
Computing Education IT HAS BEEN A WHILE SINCE I have written a purely opinion column. Ten years ago, I would have titled this column “Mathematical Reasoning in Computer Science Education”. However, computing is much broader than computer science, a sign that the field has matured significantly. As I have often said, mathematical reasoning is inherent to our everyday lives – we use basic mathematical logic concepts such as inference all the time. Indeed, mathematical reasoning, whether consciously or unconsciously, is more relevant in computing than many other disciplines. A computer is fundamentally a mathematical device that adheres to well defined mathematical rules (computer designers employ significant mathematics). One of the goals of operating systems and software applications is to insulate users from these lower level mathematical/ algorithmic details. This does not necessarily imply insulation from mathematical/ algorithmic reasoning, but reasoning at a more abstract level. In 1999, we started the Math in CS (www.math-in-cs.org) group to promote the relevance of mathematics in computer science education. I often wonder if this group and related activities have had an impact. So, what measure of impact could
22
acm Inroads
one use? One factor could be the number of conference and journal articles focusing on this topic. Without doing a formal study, I believe they have increased slightly over the past ten years. Another factor is
In 1999, we started the Math in CS (www.math-in-cs. org) group to promote the relevance of mathematics in computer science education. references in these articles to work done by members of the Math in CS group. Again, without a formal study, I have noticed a reasonable number of references; accordingly, I would rate this impact higher than the number of articles. However, the most important impact on educators is un-measurable. That is, the seeds of
2010 September • Vol. 1 • No. 3
ideas which were planted and germinated, however so slightly. This might include, for example, an educator who used one of our example problems, or decided to mention a mathematically related concept in an introductory computing course. It would be interesting to compare the results of studies in our current universe and a parallel one in which mathematics in the study of computing was not emphasized. To many in the Math in CS group, the issues were more daunting as articulated in the paper, Has our curriculum become math-phobic?: An American Perspective [SIGCSE Bulletin, Sept 2000]. One of our measures of success was simply stemming the decline of mathematics in the study of computing. I believe this has been achieved with help from a diverse group of mathematics and computing educators. Should computing educators simply be happy maintaining the status quo? I don’t think so, but promoting change is a social issue that can take a long time to fulfill. What is the long-term vision? Let me mention mine. (Others interested in presenting theirs please send me email for inclusion in a future Math CountS column.) To summarize in one sentence, “Fundamental mathematical concepts should be introduced early and reinforced throughout the curriculum.” There seems to be consensus on the fundamental discrete math topics, but not on when/and how to fit them all in the course or curriculum. The full semester math-oriented courses I would like to see in a rigorous undergraduate computer science or software engineering curriculum are the following. Discrete mathematics 1 and 2 in the first year; Calculus 1, at least, but also Calculus II; both experiences are important for many scientific fields. In addition, students should be able to contrast the difference between discrete and continuous reasoning. ■ Basic linear algebra ■ Probably theory and statistics ■ At least one advanced mathematics
featured columns
■
course such as combinatorics, graph theory, information theory, coding theory, abstract algebra, and mathematics for computer graphics. Theory of computing (automata theory) for students considering graduate school.
All these courses are mature and the fundamental concepts are solid. Indeed, I consider most of them to be ‘timeless’ in the sense that the fundamental ideas don’t change significantly; however, the underlying pedagogy will evolve. Why is ‘timeless’ important? First, it makes organizing and planning a curriculum easier because when a course is a prerequisite the instructor has a reasonable expectation of what students ‘should’ know. Second, it makes the course, and hence the curriculum, more consistent. Of course, one issue with ‘timeless’ is a tendency to stifle innovation - recall stories of instructors using their old yellowed notes from many years past. You may or not agree with my list of proposed courses. Furthermore, local issues such as credit limits and focus of the program will affect the mathematics content of the curriculum. However, the hard part is “reinforced throughout the curriculum”; in other words, how can math concepts be inte-
Of course, one issue with ‘timeless’ is a tendency to stifle innovation - recall stories of instructors using their old yellowed notes from many years past. grated into, and reinforced in other computing courses. Typically, the introductory course is devoid of rigorous mathematics, but it can still lay the foundations for the relevance of math in computing. For example, a course using Scheme introduces ideas relating to postfix computations and a course using Python for media computation might introduce the basic mathematical principles of visual scaling or musical notes. Note that the mathematics does not necessarily have to be foundational computing mathematics. Most traditional engineering courses rely heavily on mathematics. Indeed, it is often said that there is a new formula/
equation presented every five minutes. In some ways, fortunately computer science and software engineering courses don’t present a formula every five minutes. However, most of the foundational computing concepts are based upon mathematics and students should learn to understand and appreciate these. One example I often cite regarding CS/SE education in the U.S. is my claim that most graduates are unable to provide a cohesive argument, formal or informal, that a simple algorithm is correct. One response to my claim can be found in M. Armoni’s paper On the Role of Proofs in a Course on Design and Analysis of Algorithms [SIGCSE Bulletin, Dec. 2006]. This topic will continue in the next Math CountS column; I hope you will consider submitting your own views to me by email for summary and discussion in that column. Ir Peter B. Henderson Comp Science and SW Engineering Butler University Indianapolis, Indiana 46208 USA
[email protected]
DOI: 10.1145/1835428.1835438 Copyright held by author.
Join ◆ ◆ ◆ ◆ ◆
AIS ◆ ◆ ◆ ◆ ◆
Association for Informations Systems http://plone.aisnet.org/
2010 September • Vol. 1 • No. 3
acm Inroads
23