There is evidence that the day-to-day practice of computer science involves little if any use of mathematics, despite numerous connections between the disciplines. This gap between math's practical and intellectual roles in computer science leads to an awkward place for mathematics in undergraduate computer science curricula--required mathematics courses align poorly with the needs of computer science, and students study lots of math but relatively few computer science courses use it. Computer science graduates are therefore unwilling and unable to apply mathematics on the job. Fortunately, small local changes can strike directly at major contributors to the problem.

. MATHEMATICS REQUIREMENTS OF 25 HIGH- QUALITY COMPUTER SCIENCE PROGRAMS.

Figures - uploaded by Peter B. Henderson

Author content

All figure content in this area was uploaded by Peter B. Henderson

Content may be subject to copyright.

ResearchGate Logo

Discover the world's research

  • 20+ million members
  • 135+ million publications
  • 700k+ research projects

Join for free

comprehensive articles

74 acm Inroads 2013 December Vol. 4 No. 4

INTRODUCTION

Scientific and engineering disciplines generally are closely coupled to

mathematics. The natural sciences make mathematical models of the phe-

nomena they study; both the natural and social sciences rely on statis-

tics to tease meaning out of raw data; engineers depend on mathematical

models at all stages of system design, construction, and maintenance. The

one pair of exceptions to this rule appears to be computer science and soft-

ware engineering. Practicing software developers make little use of math-

ematics [20, 31], and conventional wisdom says the same of computer

science students. Yet it would be very strange if the relationship between

computer science, software engineering, and mathematics were really as

loose as it seems. At the very least it would be suspicious for computer sci-

ence and software engineering to be the only non-mathematical members

of the science and engineering family; at the worst it would be downright

dangerous for the disciplines to reject methods that characterize the fields

whose names they use.

This paper argues that, although the day-to-day practice of computing

often requires little if any mathematics, there are nonetheless important

connections between computer science, software engineering, and math-

ematics. The next section discusses the roles mathematics plays in computer

science, including how specific mathematical topics interact with specific

computer science topics, and how mathematical reasoning complements

computer science reasoning. The third section explores the role mathemat-

ics plays in computer science education and analyzes the disparity between

its role in the general discipline and its role in education. A brief conclusion

then summarizes the main points and their implications for computer sci-

ence curricula.

Although the rest of the paper focuses on "computer science," we use

the term generically rather than to identify a single precise discipline: our

ultimate concern is with the education of computing professionals, most of

whom still receive that education through a program that identifies itself as

"computer science." Our argument and conclusions apply to software engi-

neering as well as to computer science.

The Roles of

Mathematics in

Computer Science

Douglas Baldwin Henry M. Walker Peter B. Henderson

T here is evidence that the day-to-

day practice of computer science

involves little if any use of mathematics,

despite numerous connections between

the disciplines. This gap between

math's practical and intellectual roles in

computer science leads to an awkward

place for mathematics in undergraduate

computer science curricula—required

mathematics courses align poorly

with the needs of computer science,

and students study lots of math but

relatively few computer science courses

use it. Computer science graduates are

therefore unwilling and unable to apply

mathematics on the job. Fortunately,

small local changes can strike directly

at major contributors to the problem.

comprehensive articles

2013 December Vol. 4 No. 4 acm Inroads 75

MATHEMATICS' ROLE

IN COMPUTER SCIENCE

Computer scientists use math in their professional lives in several

ways. First, mathematics provides the theoretical basis for many

subfields of computer science, and important analytic tools for oth-

ers; computer scientists thus apply specific mathematical topics to

specific computing problems. More generally, mathematics pro-

vides a framework for reasoning about computing and computing

problems, and even more broadly, provides a mental discipline for

solving those problems.

Specific Mathematical Topics

It is reasonably easy to identify individual pieces of mathematics

that find use in specific areas of computing (e.g., "Boolean alge-

bra can be used to manipulate conditional expressions"). What is

hard is identifying an appropriate level of detail at which to ana-

lyze computing's uses of mathematics, and imposing some stan-

dard of completeness on that analysis. In an attempt to do these

things, we used the 2012 ACM computing classification system

[19] as a guide to the subject matter that makes up "computer sci-

ence," and attempted to identify the

mathematics that is important in

each top-level category. To recog-

nize "important" mathematics, we

looked for references to mathematics

in the classification system itself, we

consulted books that are considered

definitive references within some of

the categories [7, 10, 14, 28], and we

drew on our own knowledge. Note

that we excluded the "general and

reference" category from our analysis

as orthogonal to that analysis, and

"mathematics of computing" because

our goal was essentially to match its

elements to the other categories. The

value of this approach is that it brings

some objectivity to the process of

aligning mathematics and computer

science; the price of that objectivity is

that everyone will no doubt see ways

in which the alignment differs from

their personal perceptions. We offer

the approach as a first step in devel-

oping a comprehensive understand-

ing of what math is important for

computer science, but certainly don't

expect our analysis to be the last word

on the subject.

Figure 1 shows our association

of mathematical topics (blue) with

computing classification system cate-

gories (yellow). We show associations

only where a mathematical topic occurs particularly prominently or

in multiple places within a category. Even so, because the catego-

ries are very broad, it is entirely possible to work within a category

without encountering all of the mathematics we associate with it.

This phenomenon is particularly pronounced in the "computing

methodologies" category, which includes a mathematically diverse

set of topics. On the other hand, as looking at ACM article classifi-

cations will show, the classification system is designed so that most

computing activities have multiple, intersecting, classifications.

Computer scientists thus seldom work within just one classifica-

tion category at a time, but more commonly work in several simul-

taneously, and therefore may draw on the mathematics associated

with several categories at once.

Figure 1 makes it clear that there are myriad connections be-

tween mathematics and computer science. However, the degree of

connectivity is not uniform. The most-connected mathematical

topic by far is probability and statistics, reflecting the widespread

appearance of performance and reliability analyses in many com-

puter science categories (and also see Sahami [25] for additional

reasons why probability is important in computer science). Other

highly connected mathematical topics include propositional/predi-

cate logic (which we consciously lump together because it is hard

Figure 1: Mathematics associated with computer science areas. (Note 1: We include in "set theory" functions

and relations as associations between sets, as well as the basic definitions of and operations on sets.

Note 2: "Counting" includes standard combinatorics concepts such as combinations and permutations, as

well as such techniques for evaluating counts as summations and recurrence relations.)

comprehensive articles

The Roles of Mathematics in Computer Science

76 acm Inroads 2013 December Vol. 4 No. 4

to separate them in the computing classification system) and proof

methods. Many of the associations involving these two topics arise

because formal approaches to specification or verification are per-

vasive in the computing classification scheme - for specification or

verification of network protocols, software designs and implemen-

tations, security properties, etc. These formal techniques lead to

associations with logic, proofs, or set theory according to how the

formal tools are used.

Certain computing topics also have much higher connectiv-

ity than others. Not surprisingly, "theory of computation," which

includes mathematical models of computation plus analysis of

algorithms, is connected to many mathematical topics. The high

connectivity of "computing methodologies" is perhaps more sur-

prising - it is due to the category being a broad one that contains

many subtopics.

Further comments seem appropriate for the "domain mathe-

matics" topic linked to "applied computing." All applied computing

is in some domain that has its own mathematical tools or founda-

tions, and at some level the people involved in any applied comput-

ing project have to understand that mathematics.

In reviewing Figure 1, note that no attempt is made to de-

fine the depth of mathematical ability required to work in each

computing category. Different people with dramatically different

degrees of mathematical skill can work in the same category, and

the same person may deploy different skills on different tasks in

a category. At the low-math end of the scale, writing code from

classic algorithms or external specifications likely requires only

broad familiarity with the terminology and overall concepts of a

mathematical area. Lethbridge's 1998 survey of the knowledge re-

quired by software engineers [20], supported by Surakka's smaller

survey five years later [31], suggests that many productive software

professionals operate near this level of mathematical knowledge.

However, people who create new algorithms or designs need some

ability to independently apply mathematical techniques, and at the

high-math end of the spectrum, those who conduct research in an

area need a deep ability to work with its mathematics.

Mathematics and Reasoning

Many activities within computing require practitioners to analyze

problems and potential solutions logically and carefully - often ap-

plying tools and techniques from mathematics. For example,

Whenever problems are put forward or solutions proposed,

users should ask what assumptions are being made and how

those assumptions might impact any results obtained or

program behaviors.

When an algorithm is proposed as a solution to a problem,

developers and researchers must determine whether the

algorithm is correct and uses resources efficiently.

When programs are put forward as implementations of

algorithms, testing organizations and users may formally as

well as empirically verify that the software behaves according

to identified specifications. (Instances of required formal

verification do exist - for example electronic gambling

devices are subject to mathematically defined fairness

requirements in some jurisdictions [22]; one of the authors

recently saw a position announcement from a gaming

company seeking someone to "create, test, and analyze new

games" but also to "compose ... mathematical proofs for

game submissions to ... regulators" [27].)

When several potential solutions are suggested for a

problem, practitioners should be able to analyze the relative

advantages and disadvantages of those solutions under

varying assumptions.

Bruce [5] provides several specific examples of mathematical

reasoning in these and other computing activities. The bottom line

is that computing professionals need to reason logically - not just

in hypothetical or classroom settings, but in real research and de-

velopment projects.

More abstractly, there are close connections between problem

solving in computer science and in mathematics. Devlin [9] ob-

serves that computer science is a mass of abstractions built on other

abstractions, and that mathematics is the age-old language and

practice of abstraction. Ralston [24] argues that even if comput-

ing professionals seldom use math explicitly, the logical thinking

central to mathematics is also central to computing. In her widely

cited "computational thinking" paper [35], Jeannette Wing devel-

ops this idea in depth. She credits computer science with a distinc-

tively powerful approach to problem solving, which, among other

defining characteristics, "complements and combines mathemati-

cal and engineering thinking." The term "computational thinking"

is broadly defined in her paper, and has since been applied by other

authors to almost any thought process remotely associated with

[P]eople who create new algorithms or designs

need some ability to independently apply mathematical

techniques, and at the high-math end of the

spectrum, those who conduct research in an area need

a deep ability to work with its mathematics.

comprehensive articles

2013 December Vol. 4 No. 4 acm Inroads 77

almost as often as discrete mathematics, and more often than prob-

ability and statistics. Lethbridge's survey [20] noted similar incon-

sistencies, in particular finding calculus to be one of the most taught

but least important subjects in the software engineers' repertoire.

The number of mathematics courses required by the programs

varies greatly, from a minimum of 1 to a maximum of 8, with a

mode of 5. Figure 2 shows the complete distribution. Programs at

the higher end of the distribution often require multiple courses

in calculus, linear algebra, and/or differential equations. Very few

programs require more than one course in discrete mathematics

or in probability and statistics. High numbers of required math

courses therefore do not indicate extensive study of the mathemat-

ics central to computer science.

The prominence of calculus in computer science programs is

puzzling. Some amount of calculus can be explained by the fact

that one or two calculus courses are a prerequisite for other mathe-

matics in most schools. However, many programs also require mul-

tivariable calculus, differential equations, etc., far exceeding what is

plausibly necessary to study the mathematics more central to com-

puter science. This amount of calculus may be due to programs be-

ing housed in schools of engineering, or being historically derived

from engineering programs, which traditionally require substantial

amounts of calculus.

computing. Yet the key point of her argument and that of others

remains: the general reasoning and problem solving skills charac-

teristic of computer science are powerfully effective and closely in-

terwoven with those of mathematics.

Altogether, computing researchers and practitioners must be

able to reason about problems and their solutions in both informal

and formal ways. This reasoning involves analysis, synthesis, and

evaluation - the three deepest levels of understanding and mastery

identified by Bloom [4]. In many cases, this level of reasoning is an

integral part of the creative problem-solving process that engages

computing professionals. Although some software developers may

seldom use math explicitly, there are rich connections between it

and computer science that can enhance this reasoning.

MATHEMATICS' ROLE

IN COMPUTER SCIENCE

EDUCATION

As seen in the previous section, the relationship between math-

ematics and computer science has two faces: many software engi-

neers perform well without relying on mathematics, while at the

same time there are rich connections between the fields that can be

exploited by those prepared to do so. How then does, and should,

mathematics fit into undergraduate computer science curricula?

The Current State of Mathematics

in Computer Science Curricula

As an indication of what strong undergraduate computer science

programs around the world consider appropriate mathematics con-

tent, we examined the mathematics requirements of 25 of the first

26 programs (we were unable to find an English description of one)

listed in US News and World Reports' best universities in comput-

er science in 2012 [34]. We emphasize that this is not a statistically

rigorous study of what "typical" computer science undergraduates

experience, but rather an effort to get an international selection

of high-quality programs that can provide a general sense of how

math is integrated into computer science education. However, the

amount of math in the high-quality programs is consistent with

the amount of math required in CAC-accredited US computer sci-

ence programs surveyed in the late 1990s [21], and our personal

experiences suggest that observations about the high-quality pro-

grams also apply to other programs.

Table 1 provides a summary of how many programs require what

sorts of math. The table shows a slight inconsistency between math-

ematics requirements and the actual connections between math and

computer science from Figure 1. Almost all the programs require

students to study discrete mathematics, which is appropriate as it

includes much of the foundational mathematics for computer sci-

ence (e.g., logic, some proof methods, set theory, etc.). Three pro-

grams, however, do not require this foundation. Furthermore, prob-

ability and statistics is the least commonly required of the topics

we looked for, despite its heavy use in computer science. Calculus,

which has relatively limited uses in computer science, is required

Figure 2: Number of mathematics courses in sample computer science

programs.

TABLE 1. MATHEMATICS REQUIREMENTS OF 25 HIGH-

QUALITY COMPUTER SCIENCE PROGRAMS.

Topic Number of Programs Requiring

Discrete Math 22

Probability and Statistics 15

Calculus 21

comprehensive articles

The Roles of Mathematics in Computer Science

78 acm Inroads 2013 December Vol. 4 No. 4

More important than the quantity or type of mathematics re-

quired in undergraduate computer science programs is its utiliza-

tion outside of mathematics courses. Folk wisdom among comput-

er science educators seems to be that there is little such utilization.

This is certainly our own sense from reading the computer science

education literature and talking to other educators, participating in

program reviews, etc. Further, Cohoon and Knight argue for better

integrating discrete mathematics and software engineering courses

by asserting (albeit without citing evidence) that…

The standard discrete mathematics courses provide

minimal motivation and material application. The

standard software engineering courses provide little if

any application of discrete mathematics, and the for-

mal method courses are usually optional and late in

the education of a Computer Science major. [6]

To a certain extent we can compare this folk wisdom to reality.

We have read course descriptions from some of the high-quality

computer science programs discussed above (specifically MIT,

Stanford, Oxford, the Hong Kong University of Science and

Technology, and the Ecole Polytechnique Fédéral de Lausanne),

as well as from one of our own institutions (Geneseo), and the

model course descriptions that accompany the 2001 ACM/IEEE

computer science curriculum guideline [17] and its 2008 update

[16]. Based on these sources, we observe certain patterns in the

utilization of math in computer science programs. Most strikingly,

the courses that visibly use mathematics concentrate in certain

subfields of computer science. Subfields taught with some refer-

ence to mathematics include algorithms and data structures, com-

puter graphics, artificial intelligence, and CS2-level courses to the

extent that they lay the groundwork for later study of algorithms

and data structures. Electrical engineering courses, when includ-

ed in computer science programs, are also heavily mathematical.

Courses with little evident use of mathematics tend to fall in such

subfields as introductory programming, computer systems (archi-

tecture, operating systems, networking), and software engineering.

This pattern reflects some, but not all, of the connections identi-

fied in Figure 1. In particular, the courses that use mathematics lie

in the heavily connected "theory of computation" and "computing

methodologies" categories, while the courses that make little use of

mathematics lie elsewhere. However, these non-mathematically-

oriented courses still lie in categories that have mathematical con-

nections (e.g., to probability and statistics or to logic), and those

connections are not evident in course descriptions. Numerically,

between ⅓ and ½ of the courses in each program seem to use math

(excluding courses whose main goal is to teach math), with oc-

casional programs extending as low as ¼ or as high as ¾. There

may be some geographical or cultural variation, with programs in

Europe perhaps making more use of mathematics, and programs

in the United States making less. Taken all together, these obser-

vations suggest that the actual use of mathematics in computer

science curricula is not as limited as the folk wisdom implies, al-

though it is far less than it could be.

Is There a Problem?

Computer science programs require students to take a reasonable

number of mathematics courses, but much of that mathematics is

of limited relevance to computer science as a whole. The remaining

mathematics is, on balance, under-utilized in the computer science

curriculum, with large sub-fields of the discipline being taught

with little, if any, reference to it. Such a curriculum produces gradu-

ates who are ill-equipped to use mathematics in their professional

careers, and who see little need to do so. At least on the surface, this

is not a problem—those graduates do, after all, get and keep jobs

in computing. However, at a deeper level, inability to apply math-

ematics to computing constrains graduates' long-term potential.

Within a learning environment, understanding typically starts

at the beginning levels of Bloom's taxonomy—knowledge of spe-

cifics (e.g., jargon, truth tables, formal rules of logic), comprehen-

sion (e.g., paraphrasing formal rules), and simple applications.

Computer science, whether in its mathematical aspects or not,

is no exception. Such foundational work is needed as a base for

reasoning about algorithms, programs, systems, etc. However, this

elementary level of reasoning and understanding is insufficient for

actually using computer science in the real world. Students must

learn much more than the mechanical application of routine steps.

Such learning happens when later courses build upon the founda-

tion laid by introductory ones and provide practice at deeper levels

of analysis in both structured and open-ended settings. Although

such analysis may not be part of every discussion of every topic in

upper-level courses, students need to experience it repeatedly and

in multiple contexts. When undergraduate computer science pro-

grams fail to do this with the mathematics they require, they limit

graduates' ability to use mathematics in either subsequent study or

employment.

In the workplace, mathematics and mathematical methods are

increasingly important in software development. For example, the

IEEE Computer Society's Certified Software Development As-

The prominence of calculus in computer science programs

is puzzling. Some amount of calculus can be

explained by the fact that one or two calculus courses are

a prerequisite for other mathematics in most schools.

comprehensive articles

2013 December Vol. 4 No. 4 acm Inroads 79

sociate/Professional (CSDA/CSDP) examinations [15] include

mathematics roughly equivalent to that in the 2001 ACM/IEEE

computer science curriculum recommendations [17], plus addi-

tional probability and statistics. Formal methods are slowly gaining

traction in the software industry; of particular note, programming

for concurrency is sweeping through the industry, and automatic

model checking is an increasingly vital tool for coping with the

subtle timing and synchronization bugs that concurrency brings

[18, 8]. While there is ample need for programmers who can write

code to given specifications, the more senior developers who pro-

duce those specifications often need facility with the mathematics

of the application domain [30]. Undergraduates who continue to

graduate school, particularly at the doctoral level, will find them-

selves in a world of mathematical sophistication unimaginable

from the undergraduate perspective - the most pronounced ex-

ample is probably the study of programming language theory as a

non-mathematical descriptive activity in undergraduate texts such

as [26], but as an entirely mathematical exercise in modeling lan-

guage semantics in such graduate texts as [33].

Are There Solutions?

A number of measures can be (and sometimes have been) tried

in order to close the gap between the role mathematics plays in

computer science and the way that role is conveyed in undergradu-

ate computer science education. None of these measures, however,

shows clear promise of success. For example…

Computer science educators can be alerted to the problem. Three

decades ago Ralston argued that undergraduate computer

science programs need mathematics support, and provided

a detailed list of mathematics topics [23]; a decade and

a half ago Lethbridge called attention to the amount of

inappropriate math covered in computer science curricula

[20]; at approximately the same time an informal working

group organized itself online to advocate for the importance

of math in computer science education [2]; a few years later

Tucker argued that computer science curricula were "math-

phobic" [32]. Although there have been some changes in

mathematics' treatment in computer science curricula over

this time, notably the incorporation of discrete structures

into the ACM/IEEE CS curriculum recommendations in

2001 [17], most of the above authors' criticisms are still valid

today. Raising awareness of the problem does not solve it.

Mathematics requirements can be used more efficiently.

Computer science curricula generally have room for a

number of mathematics courses, but few of those courses

actually teach mathematics that is central to computer

science. However, this inefficiency is difficult to correct.

Prerequisite structures in departments of mathematics may

require computer science students to take some amount

of foundational, but not directly applicable, math, and

computing programs in schools of engineering may be under

explicit or implicit pressure to include mathematics that is

traditional for the physical sciences even if not crucial to

computer science.

Mathematics can be integrated into computer science courses

and vice versa. Under-utilization of mathematics in the

computer science curriculum is the largest problem,

and there have been many attempts to address it. In the

1980s through 1990s Henderson evolved a first course for

computer science majors that emphasized mathematical

methods of reasoning and problem solving as the foundation

for studying computer science [12, 13]. During the early

1990s there were other efforts to integrate discrete math

concepts early in the computer science curriculum, notably

the two textbooks Foundations of Computer Science [1] and

A Logical Approach to Discrete Math [11]. In the later 1990s

and early 2000s Baldwin and Scragg developed a course that

introduced much of the discrete math needed by computer

scientists in the context of elementary design and analysis

of algorithms [3]; Cohoon and Knight independently

developed a similar set of courses for software engineers [6].

Currently, Sitaraman and his colleagues are promoting a

software engineering course that emphasizes mathematical

techniques for deriving correct programs [29]. None of

these efforts, however, has gained traction beyond their

developers. The computer science community has regarded

them as interesting, and perhaps even praise-worthy, but not

as paradigm-changers that must be adopted.

CONCLUSION

Computer science, like the physical sciences and traditional engi-

neering fields, widely uses mathematics to model the phenomena it

studies. Furthermore, computational and mathematical reasoning

are closely connected. Yet, paradoxically, many computer science

and software engineering graduates function quite well as profes-

sionals without consciously applying mathematics to their work.

This paradox leads mathematics to sit uncomfortably in under-

graduate computer science curricula: while most such curricula

include appropriate mathematics, they often also include much

mathematics that is not strongly connected to computing, and

while they teach some applications of math to computing, they

often overlook others. This awkward treatment of mathematics in

computer science education has been surprisingly resistant to cor-

rection, for a surprisingly long time. While the precise reasons dif-

fer from institution to institution, we believe that the overarching

one is that computer science faculty simply do not see the problem

as urgent. And indeed, as long as computer science graduates find

jobs or places in graduate schools in the field, and the field itself is

growing, the problem does seem minor.

However, taking a longer view, there is reason for concern.

Software development and testing are slowly adopting mathemati-

cal tools and methods, and today's graduates will need to adapt

to those tools and methods throughout their careers. As gradu-

ates advance through their careers, they will come into positions

where they have responsibility for system design, assessment of test

results or quality metrics, selection of architectures or algorithms,

and similar activities that require quantitative evaluation of data

and comparison of options.

comprehensive articles

The Roles of Mathematics in Computer Science

80 acm Inroads 2013 December Vol. 4 No. 4

In addition, computer science is a young discipline whose def-

inition is still in flux. It is arguably the one science that studies

artificial rather than natural phenomena. The distinction between

computer science and software engineering is not nearly as clear as

the distinction between other sciences and their related engineer-

ing fields; indeed, some would probably question whether there is a

distinction at all. The role of mathematics in computer science and

computer science education is therefore tied to larger questions of

where the "science" in computer science lies and what the scientific

basis for software engineering is or should be. The designers and

implementers of computer science curricula today will play a large

role in framing these questions for future generations and estab-

lishing the groundwork for answering them.

The time has come for all of us, as computer science and soft-

ware engineering educators, to reform the role of mathematics in

our curricula. The authors recommend incremental reform, since

past experience suggests that a sudden and universal leap in enthusi-

asm for mathematics in computing education is unlikely. However,

individual programs can make important improvements by pruning

from their requirements one or two math courses with limited ap-

plications to computer science, and replacing them with ones with

more relevance, or with electives that allow students to explore con-

nections they find pertinent. Programs, or even single instructors,

can ensure that more computer science courses use mathematics to

illuminate the computing material they present, even without creat-

ing new courses or changing the choices of topics studied. Individu-

ally these are small, local, and therefore relatively easy, changes; col-

lectively, pursuing both until they gain momentum would eliminate

two major reasons why our graduates lack the inclination and ability

to make math part of their professional toolkit. Ir

Acknowledgments

The original version of this paper was written at the invitation of the ACM/IEEE CS Curriculum 2013

committee as a position statement on the role of mathematics in undergraduate computer science

education. We thank members of the committee for comments on that version. The views stated in this

paper are those of the authors, and do not necessarily reflect the position of the committee or its mem-

bers. Thanks also to ACM

Inroads

' reviewers for helping us clarify several aspects of the present version.

References

[ 1] Aho, A. V. and Ullman, J. D.

Foundations of Computer Science

. (New York: Computer Science

Press, 1992).

[ 2] Baldwin, D. and Henderson, P. B. "A working group on integrating mathematical reasoning

into computer science curricula." http://www.math-in-cs.org/. Accessed 2013 April 30.

[ 3] Baldwin, D. and Scragg, G.

Algorithms and Data Structures: The Science of Computing

.

(Hingham, Massachusetts: Charles River Media, 2004).

[ 4] Bloom, B.

Taxonomy of Educational Objectives: Handbook 1: Cognitive Domain

. (Longmans,

Green and Company, 1956): 201-207.

[ 5] Bruce, K. et al. "Why math?"

Communications of the ACM

, 46, 9 (2003): 41- 44.

[ 6] Cohoon, J. P. and Knight, J. C. "Connecting discrete mathematics and software engineering"

in

Proceedings of the Thirty-Sixth ASEE/IEEE Frontiers in Education Conference

. (New York:

IEEE, 2006): M2F-13 - M2F-18.

[ 7] Cormen, T. et al.

Introduction to Algorithms

. 3rd ed. (Cambridge, Massachusetts: MIT Press,

2009).

[ 8] Desnoyers, M. "Proving the correctness of nonblocking data structures."

Communications of

the ACM

, 56, 7 (2013): 62-69.

[ 9] Devlin, K. "Why universities require computer science students to take math."

Communica-

tions of the ACM

, 46, 9 (2003): 37-39.

[ 10] Foley, J. et al.

Computer Graphics: Principles and Practice

. 2nd ed. (Reading, Massachusetts:

Addison-Wesley, 1990).

[ 11] Gries, D. and Schneider, F. B.

A Logical Approach to Discrete Math

, (New York: Springer

Verlag, 1993).

[ 12] Henderson, P. B. "Discrete mathematics as a precursor to programming." in

Proceedings of

the Twenty-First SIGCSE Technical Symposium on Computer Science Education

. (New York:

ACM, 1990): 17-21.

[ 13] Henderson, P. B. "The role of mathematics in computer science and software engineering

education."

Advances in Computers

, 65 (2005): 350-396.

[ 14] Hennessy, J. and Patterson, D.

Computer Architecture: A Quantitative Approach

. 3rd ed.

(Amsterdam: Morgan Kaufmann Publishers, 2003).

[ 15] IEEE Computer Society, "TechLeader OnCourse." http://www.computer.org/portal/web/certifi-

cation. Accessed 2013 April 30.

[ 16] IEEE Computer Society and Association for Computing Machinery Interim Review Task Force.

"Computer Science Curriculum 2008: An Interim Revision of CS 2001." http://www.acm.org/

education/curricula/ComputerScience2008.pdf. Accessed 2013 June 27.

[ 17] IEEE Computer Society and Association for Computing Machinery Joint Task Force on

Computing Curricula. "Computing Curricula 2001: Computer Science," http://www.acm.org/

education/education/education/curric_vols/cc2001.pdf. Accessed 2013 April 30.

[ 18] Jhala, R. and Majumdar, R. "Software model checking."

ACM Computing Surveys

41, 4

(2009). doi: 10.1145/1592434.1592438.

[ 19] Kedem, Z. et al. eds. "The 2012 ACM Computing Classification System." http://www.acm.

org/about/class/2012. Accessed 2013 April 20.

[ 20] Lethbridge, T. "Priorities for the education and training of software engineers."

Journal of

Systems and Software

, (2000): 53-71.

[ 21] McCauley, R. and Manaris, B. "Computer science education at the start of the 21st

century—a survey of accredited programs." in

Proceedings of the Thirty-Second ASEE/IEEE

Frontiers in Education Conference

. (New York: IEEE, 2002): F2G-10 - F2G-15.

[ 22] Nevada State Gaming Control Board Gaming Commission. "Regulation 14." http://gaming.

nv.gov/modules/showdocument.aspx?documentid=2921. Accessed 2013 July 17.

[ 23] Ralston, A. "The first course in computer science needs a mathematics corequisite."

Communications of the ACM

, 27, 10 (1984): 1002-1005.

[ 24] Ralston, A. "Do we need ANY mathematics in computer science curricula?"

inroads—the

SIGCSE Bulletin

, 37, 2 (2005): 6-9.

[ 25] Sahami, M. "A course on probability theory for computer scientists." in

Proceedings of

SIGCSE 2011, the Forty-Second Technical Symposium on Computer Science Education

(New

York: ACM, 2011): 263-268

[ 26] Sebesta, R.

Concepts of Programming Languages

. 9th ed. (Boston: Addison-Wesley, 2010).

[ 27] SHFL Entertainment. "Game Designer / Mathematician." http://www.creativeheads.net/

job/12078/game-designer--mathematician-in-las-vegas. Accessed 2013 July 17.

[ 28] Sipser, M.

Introduction to the Theory of Computation

. 3rd ed. (Boston: Cengage Learning, 2013).

[ 29] Sitaraman, M. et.al. "Building a push-button RESOLVE verifier: progress and challenges."

Formal Aspects of Computing

, 23, 5 (2011): 607-626.

[ 30] Stringer, M. Personal communication to Douglas Baldwin. Sept. 2012.

[ 31] Surakka, S. "What subjects and skills are important for software developers?"

Communica-

tions of the ACM

, 50, 1 (2007): 73-78.

[ 32] Tucker, A., Kelemen, C., and Bruce, K. "Our curriculum has become math-phobic!" in

Pro-

ceedings of the Thirty-Second SIGCSE Technical Symposium on Computer Science Education

.

(New York: ACM, 2001): 243-247.

[ 33] Turbak, F. and Gifford, D.

Design Concepts in Programming Languages

. (Cambridge, Mas-

sachusetts: MIT Press, 2008).

[ 34] US News and World Report. "World's Best Universities: Computer Science." http://www.

usnews.com/education/worlds-best-universities-rankings/best-universities-computer-science.

Accessed 2013 April 28.

[ 35] Wing, J. "Computational Thinking."

Communications of the ACM

, 49, 3 (2006): 33-35.

DOUGLAS BALDWIN

Department of Mathematics

SUNY Geneseo

Geneseo, New York 14454 USA

baldwin@geneseo.edu

HENRY M. WALKER

Department of Computer Science

Grinnell College

Grinnell, Iowa 50112 USA

walker@cs.grinnell.edu

PETER B. HENDERSON

Department of Computer Science and Software Engineering

Butler University

Indianapolis, Indiana 46208 USA

phenders@butler.edu

Categories and Subject Descriptors: K.3.2 [Computers and Education]: Computer and

Information Science Education—Computer Science Education; G.0 [Mathematics of Computing]:

General.

General terms: Design

Keywords: Mathematics, Computer Science Education, Software Engineering Education

DOI: 10.1145/2537753.2537777 © 2013 ACM 2153-2184/13/12 $15.00

... Finally, the study of CS goes well beyond programming and progresses into theory, where connections to advanced mathematical ideas are explicit [8]. De-emphasizing advanced mathematics for CS majors potentially limits students' advancement in understanding the field and could do students a disservice [5]. ...

... On the other hand, opponents argue that typical advanced mathematics courses are not wellaligned with a CS program, and that mathematics requirements sometimes present an unnecessary barrier for students who might otherwise consider a major in CS. In particular, calculus is unconnected to concepts CS majors encounter in their beginning courses (and even subsequent ones), yet most of the top CS programs required students to take calculus [5]. Instead of a calculus requirement, many educators advocate for courses in discrete mathematics and point to a need for a greater emphasis on problem-solving [5,49,50]. ...

... In particular, calculus is unconnected to concepts CS majors encounter in their beginning courses (and even subsequent ones), yet most of the top CS programs required students to take calculus [5]. Instead of a calculus requirement, many educators advocate for courses in discrete mathematics and point to a need for a greater emphasis on problem-solving [5,49,50]. ...

Success in an introductory college computer science (CS) course encourages students to major and pursue careers in computer science and many other STEM fields, whereas weak performance is often a powerful deterrent. This article examines the role of high school course taking (AP, regular, or none) in mathematics and in CS as predictors of later success in college introductory computer science courses, measured by students' final grades. Using a sample of 9,418 students from a stratified random sample of 118 U.S. colleges and universities, we found that the observed advantage of taking AP calculus over taking AP CS, seen in an uncontrolled model, was largely confounded by students' background characteristics. After applying multinomial propensity score weighting, we estimated that the effects of taking AP calculus and AP CS on college CS grades were similar. Interestingly, enrollment in both AP calculus and AP CS did not have any additional positive effect, suggesting that both AP calculus and AP CS strengthened similar skills that are important for long-term CS achievement. Taking regular CS did not have a significant effect; taking regular calculus had a positive effect, about half the size of taking AP calculus or AP CS. Thus, the study showed that simply exposing students to any kind of CS course before college does not appear to be sufficient for improving college CS performance; and that advanced CS and advanced calculus in high school may substitute for each other in the preparation of college CS.

... [21] : Everyone has heard of J. V Narlikar, but what about his mathematician wife? [22] : On the interface of Computer Science and Math. ...

... Adicionalmente, son varios los autores que sostienen que gran parte de la estrecha relación que se establece entre matemática e informática se encuentra en la resolución de problemas, siendo esta una habilidad implicada en la enseñanza de ambas materias (Baldwin et al., 2013;Mohaghegh & McCauley, 2016). Según estos autores, "la informática comparte muchas características con las matemáticas y, por lo tanto, está implícito que también compartirá problemas y técnicas de resolución de problemas" (p.1524). ...

  • Delfina D'Alfonso
  • Nyasha Warren
  • Estefany González
  • Nadia De León

Prácticas docentes de aula en la enseñanza del pensamiento computacional en escuelas medias oficiales y particulares de la región metropolitana de la Ciudad de Panamá. Este estudio describe y evalúa las prácticas pedagógicas de aula de los docentes en la enseñanza de informática y el pensamiento computacional (PC) en educación media oficial y particular de la región metropolitana de la Ciudad de Panamá, en comparación con referencias internacionales, como la Sociedad Internacional de Tecnología en Educación (ISTE) y otras referencias de la literatura relevante en pedagogía. Se analizaron datos de una muestra de conveniencia conformada por 14 escuelas de nivel medio participantes en las Olimpíadas Nacionales de Informática 2019, abiertas y ampliamente divulgadas. Los datos fueron recolectados por medio de observaciones en aula. Se observó poca evidencia de la utilización de prácticas docentes reconocidas como mejores prácticas para la enseñanza de informática y PC. Hubo algo más de evidencia para el uso de prácticas construccionistas, que para las relacionadas al PC; y aún menos para el uso de prácticas relacionadas al aprendizaje por experiencias. Así mismo son notables las diferencias entre las escuelas oficiales y particulares en cuanto al uso de estas prácticas. Adicionalmente, los hallazgos indicaron un nivel importante de inequidad en el sistema, ya que los puntajes se encontraban polarizados entre escuelas con mucha evidencia y escuelas con poca o ninguna evidencia, y pocas escuelas en el medio. Palabras clave: prácticas pedagógicas, informática, pensamiento computacional, construccionismo, aprendizaje por experiencias.

... Much of the literature discussing the role of mathematics in Computer Science or Business Administration has been written often from the perspective of faculty members focusing on questions like "What mathematics do computer scientists or business administrator need?" (Baldwin 2013). Only a few works highlight students' perspective on the challenges they face in learning mathematics. ...

This paper attempts to explore the most important difficulties facing students of Prince Sattam bin Abdulaziz University in the Kingdom of Saudi Arabia while studying mathematics courses, through the sampling of male and female students in the College of Sciences and Humanities at Al-Sulail. For this research, the referendum was not limited to students of the mathematics department only, but also included the departments of Computer Science and Business Administration, because their study plan contains basic courses in mathematical science, and it is hoped that the results of the completion of the survey will support decision-makers and teachers of courses in improving and diversifying the learning of mathematical content. This enhances the learning goals that the students achieve.

We report on a case study of eight grade 5 to 6 students (ages 12–14) involved in a three-day "digital-making summer camp" focused on mathematical problem-solving through block-based programming combined with programmable electronics. Data analysis focused on the computational thinking (CT), mathematics, and problem-solving challenges that surfaced during the activities and on the students' developing perspectives about themselves as computational thinkers and problem solvers. Our results suggest the students developed various CT and problem-solving competences and dispositions during the digital-making activities. However, they experienced difficulties with ill-structured problems. This study supports the creative uses of digital making as complementary to K-12 mathematics learning.

In this chapter, we investigate the integral solution of the Hyperbolic Diophantine Equation representing hyperbolic curve given by DE: x^2−156y^2−50x+624y=0 is analyzed for its non-zero singular integer points lying on it. A small number of dissimilar patterns of integer points agreeable the curve under deliberation is obtained.

This paper reports on a design-based study within the context of a 3-day digital making (DM) summer camp attended by a group of students (aged 11–13) in grades 5 and 6. During the camp, students were presented with a set of mathematical problems to solve in a block-based programming environment, which was connected to various physical input sensors and output devices (e.g., push buttons, LED lights, number displays, etc.). Students' code fles, and screen captures of their computer work, were analyzed in terms of their developed computational problem-solving practices and any computational concepts that emerged during the problem-based DM. The results suggested that the designed tasks consistently supported the students' modeling and algorithmic thinking, while also occasioning their testing and debugging practices; moreover, the students utilized computational abstractions in the form of variables, and employed different approaches, to formulate mathematical models in a programming context. This study contributes to the 'big picture' of how using computers might fundamentally change mathematics learning, with an emphasis on mathematical problem-solving. It also provides empirically grounded evidence to enhance the potential of computational thinking as a new literacy, and problem-solving as a global competence, in formal school settings.

This research paper is a theoretical as well as a practical study of the connection between Mathematics and other disciplines. It studies the significance of teaching Mathematics to the students of other departments. But, the research doesn't limit here. It also studies various teaching strategies in Mathematics teaching. In Prince Sattam bin Abdulaziz Language and Literature, Islamic Studies, Educational Sciences and Psychology have been taught. Mathematics and its skills are is the basics of many subjects. So, the students should gain mathematical knowledge and use it in other subjects, so as to understand other subjects easily and establishing relationships. In light of the above characteristics, this research paper will study the significance and teaching strategies of Mathematics and its skills to the students of other departments.

  • Jeannette M. Wing Jeannette M. Wing

Various aspects of computational thinking, which builds on the power and limits of computing processes, whether they are executed by a human or by a machine, are discussed. Computational methods and models are helping to solve problems, design systems, and understand human behavior, by drawing on concepts fundamental to computer science (CS). Computational thinking (CT) is using abstraction and decomposition when attacking a large complex task or designing a large complex systems. CT is the way of thinking in terms of prevention, protection, and recovery from worst-case scenarios through redundancy, damage containment, and error correction. CT is using heuristic reasoning to discover a solution and using massive amount of data to speed up computation. CT is a futuristic vision to guide computer science educators, researchers, and practitioners to change society's image of the computer science field.

  • David Gries David Gries
  • Fred B. Schneider

This chapter concerns combinatorial analysis: the branch of mathematics that deals with permutations of a set or bag and combinations of a set. These ideas lead to binomial coefficients and the Binomial theorem. The first two sections of this chapter introduce the theory, with just enough examples to make clear the points being made. The third section illustrates the power of the theory through a variety of examples.

  • David Gries David Gries
  • Fred B. Schneider

The set ℕ of natural numbers {0, 1, 2,...} is infinite Proving properties of such an infinite set often requires a technique that is of fundamental importance in mathematics and computer science: mathematical induction. We explore this technique in this chapter. We also investigate induction over sets other than ℕ. We show how properties of an inductively defined function can be proved using induction, and we show how a loop can be analyzed using induction.

The paper [2] argued that mathematical ideas play an important role in the computer science curriculum, and that Discrete Mathematics needs to be taught early in the computer science curriculum. In this follow-up paper, we present evidence that computer science curricula are drifting away from a fundamental commitment to theoretical and mathematical ideas. We propose some actions that can be taken to help reverse this drift.

  • Mathieu Desnoyers

Experts suggest that nonblocking synchronization can yield astonishing results in terms of scalability and real-time response while compromising verification state space. Nonblocking data structures can be used to communicate between threads without using mutual exclusion or other synchronization that would make a thread block awaiting another thread. Experts examine what makes nonblocking data-structure design and implementation challenging, and survey modeling techniques and verification tools that can provide valuable feedback on the correctness of those algorithms. There are many aspects to consider when programming nonblocking data structures, including the language and architecture memory models, atomicity, ordering, linearizability, and performance. Many optimizing compilers internally use models to represent dependencies between statements to achieve these objectives.