One of the major proposed changes to the B.S. degree in Mathematics at the University of Puerto Rico, Río Piedras, involves the replacement of the current faculty requirement (of 30 credits), by approximately 15 credits of co-requisites. The co-requisites proposed by the Curriculum Committee of the Mathematics Department are described in a (undated) document, distributed to Mathematics majors at a meeting on October 23, 2003. The term co-requisite, as used in the document, is meant to refer to courses which are indispensable to the major. According to this document the co-requisites for a student majoring in Mathematics will be as follows:

  1. CCOM 3033 (Programming) (4 credits) –All options
  2. A course in Computer Science (3 credits) –Discrete Option and Computational Math Option.
  3. A sequence in any of the remaining departments of Natural
    Sciences (8 credits) –All options

The purpose of this article is to highlight some serious legal and an academic flaws in this proposal.

Concerning the Legal Basis for the Proposed Changes

The proposal to replace the current faculty requirements by “co-requisites” is designed to comply with the degree specifications contained in the Document Un Nuevo Bachillerato para el Recinto de Río Piedras de la Universidad de Puerto Rico. Río Piedras: Senado Académico, Universidad de Puerto Rico (May, 2001). This document was overwhelmingly rejected at a meeting of the UPR-RP Faculty on the 5th of May 2003. Certification Num. 11, 2003-2004 of the Academic Senate explicitly halted its implementation and returned discussion of curricular reform to the faculties, schools, and other relevant sectors. The recently approved Certification Num. 3, 2004-2005 of the Academic Senate reiterates the position that curricular reform discussions are to be undertaken by the faculties. Thus, the scheme of the Curriculum Committee is inflexibly linked to a proposal which lacks any legal basis. It totally ignores the position which the university community has adopted concerning the New Baccalaureate and it precludes any discussion of alternative models. Moreover, the Curriculum Committee’s proposal has not been submitted to the Department of Mathematics faculty for its consideration.

Concerning the Programming Requirement

The course CCOM 3033 (Programming) fails to satisfy the requirement that a co-requisite be essential to the major. This is evidenced by the fact that many (perhaps most) members of the Mathematics Department have successfully practised this discipline, and in some cases made original contributions to Computer Science, without ever having taken a programming course. The concepts covered in the introductory programming course CCOM 3033 are mathematically trivial and largely irrelevant for Mathematics. A person with good mathematical training can easily learn a computer language at the time he needs it. On the other hand, there are quite a few talented students who are currently dissuaded from entering Mathematics precisely because of the requirement that they take years of laboratory based science (Chemistry, Physics and Biology) as well as Programming –MATH 3028 and CCOM 3029 which are also in essence laboratory courses. For Mathematics students interested in, say, Philosophy or Economics, courses such as logic, set theory, combinatorics, and graph theory would be far more useful.

Programming is not necessarily a priority, even to the discipline of Computer Science. According to the final report of the Computing Curricula 2001 project (CC2001), which was prepared by the Computer Society of the Institute for Electrical and Electronic Engineers and the Association for Computing Machinery:

Focusing on programming to the exclusion of other topics gives students a limited sense of the discipline, thereby reinforcing the common misperception that “computer science equals programming”. Nonmajors who take only introductory courses are deprived of any exposure to the conceptual and intellectual foundations that underlie the revolutionary technological developments driving change throughout society … Programming courses often focus on syntax and the particular characteristics of a programming language, leading students to concentrate on these relatively unimportant detailsrather than the underlying algorithmic skills. This focus on details means that many students fail to comprehend the essential algorithmic model that transcends particular programming languages. Moreover, concentrating on the mechanistic details of programming constructs often leaves students to figure out the essential character of programming through an ad hoc process of trial and error. Such courses thus risk leaving students who are at the very beginning of their academic careers to flounder on their own with respect to the complex activity of programming …

Introductory programming courses often oversimplify the programming process to make it accessible to beginning students, giving too little weight to design, analysis, and testing relative to the conceptually simpler process of coding. Thus, the superficial impression students take from their mastery of programming skills masks fundamental shortcomings that will limit their ability to adapt to different kinds of problems and problem-solving contexts in the future…. Programming-first approaches can lead students to believe that writing a program is the only viable approach to solving problems using a computer. The power and versatility of application programs have increased substantially in recent years, and it is important for students to recognize that such applications can be extremely effective as a problem-solving tool without the need for classical programming. This concern is particularly relevant to nonmajors … [Emphasis added]

Thus, whereas CCOM 3033 is not a main priority for Computer Science majors, it is even less so for Mathematicians. For students of Mathematics CCOM 3033 does not, in any way, satisfy the requirement that a co-requisite be essential to the major.

Concerning the Course in Computer Science

The proposal that Mathematics students take a Computer Science course on top of programming CCOM 3033 is also in violation of the definition that a co-requisite be essential to the major. Available courses, such as CCOM 3034 (Data Structures) and CCOM 5050 (Algorithms), place much emphasis on the engineering aspects of programming and implementation rather than on the science of computation. While perhaps interesting to some students, these courses are not essential for most mathematicians. Worse still, these courses, which are outside the control of the Mathematics Department, lack the proper pre-requisites. As pointed out by the Association of Computing Machinery, courses in areas of Discrete Mathematics such as Graph Theory are the essential prerequisite for a proper understanding of areas such as Data Structures and Algorithms. Without a basis in Discrete Mathematics, a student cannot properly understand Data Structures and Algorithms. According to the CC2001 report:

the CC2001 Task Force believes it is important for computer science students to study discrete mathematics early in their academic program, preferably in the first year

Discrete structures is foundational material for computer science. By foundational we mean that relatively few computer scientists will be working primarily on discrete structures, but that many other areas of computer science require the ability to work with concepts from discrete structures. Discrete structures includes important material from such areas as set theory, logic, graph theory, and combinatorics.

The material in discrete structures is pervasive in the areas of data structures and algorithms but appears elsewhere in computer science as well. For example, an ability to create and understand a formal proof is essential in formal specification, in verification, and in cryptography. Graph theory concepts are used in networks, operating systems, and compilers. Set theory concepts are used in software engineering and in databases.

As the field of computer science matures, more and more sophisticated analysis techniques are being brought to bear on practical problems. To understand the computational techniques of the future, today’s students will need a strong background in discrete structures.

Therefore, for most Mathematics students, the proposed Computer Science co-requisite is both inessential and unsuitable. Moreover, since almost every current Computer Science course at the UPR has CCOM 3033 as a prerequisite, Mathematics students will be forced to take, not just one, but a series of inessential courses. This will represent a serious opportunity cost. Instead of studying fundamental and indispensable Mathematical material, students will be channelled into essentially engineering courses which, according to the CC2001 report, lack the correct pre-requisites. This proposal is rigididity masquerading as flexibility. Any student who wishes to take computer science courses can already do so as an elective. Thus the proposed co-requisite is a needless imposition for Mathematics students.

If we really wish to enable our students to use computers in an intelligent manner, far better co-requisites for Mathematics students are courses such as graph theory, set theory, and logic which are in reality essential for the proper appreciation and practice of computer science.

Concerning the Natural Science Sequence

The current Faculty requirement for the BS in Mathematics includes a one year sequences in each of Physics, Chemistry, and Biology as well as Computer Programming. While there seems to be a general agreement that this requirement is excessively burdensome for Mathematics students, it does at least have the virtue of compensating for the abysmal training in Science given in many local public and private schools.

The proposal of the Curriculum Committee that students be required to take only a single sequence in any science is an excessive reduction which will leave Mathematics students with an unacceptably poor science education. All students graduating with a baccalaureate degree in science should be familiar with some subset of the scientific canon which includes, at a minimum, the basic laws of mechanics, electricity, magnetism, thermodynamics, quantum mechanics, and atomic physics. These areas, which provide the basis for all the physical sciences, are systematically covered in the University Physics sequence (FISI 3012-3014) and its laboratory component. Physics is a particulary useful discipline for the mathematician since many branches of Mathematics and much mathematical intuition have grown out of its study. Indeed, in many Mathematics departments, it is traditional for Mathematics students to take such courses as General Relativity and Quantum Mechanics which have a considerable mathematical component.

If our objective is that Mathematics majors be exposed to scientific advances in more than a single discipline, then the current General Studies courses in the Biological Sciences or a similar course in Chemistry could be included in the General Education component of the new B.S. On the other hand, Physics which, as indicated above, is almost essential for a mastery of the scientific method, should be the required co-requisite.


In light of the preceeding analysis, it is suggested that both the Programming and Computer Science courses be eliminated from the proposed list of co-requisites for the B.S. in Mathematics. These courses should, instead, be placed as electives or directed electives depending on the option of the student.

In addition, it is proposed that the co-requisite of a one year sequence in any Science replaced by University Physics (FISI 3012-3014). Should a broader science exposure be deemed desirable for Mathematics majors, then this requirement should be supplemented with suitable additional courses such as the General Studies course in Biological Sciences or a similar Chemistry course. These additional courses should be included as General Education courses.

Philip Pennance