Math and the Computer Science Major

Submitted by Rollie Hawk on Tue, 2004-05-04 10:58.

As I’ve mentioned in previous articles, computer science (CS) majors tend to struggle for reasons that have very little to do with computers. More often than not, such struggles are rooted in weaknesses related to math.

In this article, I want to show what kind of math to expect as a CS major, why these courses are important, and how to prepare yourself while you are in high school. If you plan on getting a CS degree, you need to come to grips with one important fact first: computer science has more to do with math than computers.

The math you can expect

For an example of the math classes a CS major can expect, let’s look at a sample curriculum guide. Below is a sample schedule from the University of Illinois. U of I has a strong and established CS program but isn’t going to be as rigorous as an MIT or Berkeley, so this should be a realistic example.

Hours

First Year - First Semester

3

CHEM 102—General Chemistry I

1

CHEM 103—General Chemistry Lab I

(1)

CS 100—Freshman Orientation in CS

0

ENG 100—Engineering Lecture

5

MATH 220—Calculus I

4-2

RHET 105—Principles of Composition or CS 173—Discrete Structures

3

Electives

16-14

Total


Hours

First Year - Second Semester

4

CS 125—Intro to Computer Science

2-4

CS 173—Discrete Structures or RHET 105 (RHET 105)—Principles of Composition

3

MATH 230—Calculus II

4

PHYS 211—Univ Physics, Mechanics

3

Electives

16-18

Total


Hours

Second Year - First Semester

4

CS 225—Data Structure & Softw Prin

3

CS 273—Intro to Theory of Computation

3

MATH 242—Calculus of Several Variables

4

PHYS 212—Univ Physics, Elec & Mag

3

Electives

17

Total


Hours

Second Year - Second Semester

3

CS 231—Computer Architecture, I

2

MATH 225—Introductory Matrix Theory

3

MATH 385—Intro Differential Equations

2

PHYS 213—Univ Physics, Thermal Physics

6

Electives

16

Total


Hours

Third Year - First Semester

3

CS 232—Computer Architecture II

3

CS 257—Numerical Methods

3

MATH 461—Probability Theory I

2

PHYS 214—Univ Physics, Quantum Phys

3

Application sequence

2

CS 210—Ethical & Prof'l Issues in CS 

16

Total


Hours

Third Year - Second Semester

3

CS 423—Operating Systems Design

3

ECE 205—Intro Elec & Electr Circuits

1

ECE 206—Intro Elec & Electr Ckts Lab

3

Computer Science electives

3

Application sequence

3

Other electives

16

Total


Hours

Fourth Year - First Semester

3

CS 421—Programming Lang and Compilers

(3)

CS 492—Senior Project in CS, I

3

Computer science electives

3

Application sequence

7

Other electives

16

Total


Hours

Fourth Year - Second Semester

(3)

CS 493—Senior Project in CS, II

6

Computer science electives

3

Application sequence

7

Other electives

16

Total


When you look at these sorts of curriculum guides, there are some general things to keep in mind as you attempt to plan your future. These plans are at best ideal. They assume classes will all be offered as they are listed, none will be shut down because of low numbers, and that you pass them all the first time you take them. On top of that, they assume you will be taking at least 16 hours a semester, even though most of us don’t do that. It looks nice on paper, but hardly any of us do that, so get ready to be busy during the summer.

The reasons you will need these courses

As a general rule, any math class is useful to you because it teaches logic and reasoning skills, but all of the classes listed above have very useful applications in computer science. Let’s take a look at each specifically.

Calculus I and II are useful first and foremost as the foundations for most higher-level math. At the very least, these classes will teach you to do differentiation and integration. Besides those, you will learn about limits and indeterminate forms, which will allow math to be done that involves infinitely large or small values. Pay close attention to the fundamental theorem of calculus (FTC) when you get to it because a few manipulations on that equation will give you some of the most important approximation methods in computing!

Multivariate calculus is sometimes called calculus III. In case you are worried, a good rule of thumb is that calculus III is slightly harder than calculus I but not nearly as hard as calculus II. Multivariate calculus is, as the name implies, the same calculus as before applied to three or more dimensions. If you are going to program any sort of modern video game, you will likely be using this sort of math for calculations. In a more practical setting, you can use the same techniques to solve problems that deal in multiple dimensions that may or may not spatial. For example, those dimensions could be temperatures, port speeds, processing speeds, resistance, voltage, and so on.

Differential equations and matrix theory will begin to deal with approximation methods. Since computers can only perform calculations to a specific precision, the vast majority of calculations will only be approximate. Matrices and linear algebra, in particular, help computers to solve algebraic problems.

Probability theory is a specific discipline that falls under the study of statistics. Most CS programs will require you to take one of those. If you have the choice and still don’t like calculus much at that point, you’ll probably favor probability theory. Some schools will also let you get by with algebra-based statistics as well.

Although it isn’t listed in the guide above, you’ll often be expected to take a course in finite math. Even if you don’t have to take it, you’ll find it useful if you do. In particular, you will learn about binary math, Boolean algebra, and logic circuits. If this course isn’t required, it’s only because you will have the same material covered in other courses or because you are presumed to already know it. Either way, make certain that you do.

Getting prepared for college math

So what should you focus on in high school to help you with the math your CS degree requires? There is one thing you want to focus on before all else: algebra. If you can go into college knowing algebra forwards and backwards, you will be ready to take on everything else. Don’t just focus on how it is done but why each technique works and when it is allowed. Taking pre-calculus or trigonometry in high school may look and sound very impressive, but a strong algebra base is going to be much more useful.

If you have the chance at another course, go with geometry. Geometry will give you the opportunity to learn how to do proofs, which is an essential skill in all high-level math. Trigonometry will be useful too, but you’ll pick up a lot of that along the way in most high school math sequences even if you don’t take a specific class in it.

If you have the chance to take calculus in high school, I may surprise you with my advice. I would not automatically jump at the opportunity for a couple reasons. Please forgive me as I climb onto my soapbox, but keep in mind that I am a math teacher and I know a lot of this from experience.

First, high school calculus teachers tend to be the teachers in the math department the longest. The problem with this is that while these teachers are more experienced, they have been away from calculus longer than the other math teachers in most cases. Besides that, these teachers are often near retirement and may not be as motivated as younger teachers.

Second, calculus is the upper-crust of high school math. In college, it’s one of the lowest math classes offered. This results in a completely different teacher mentality. A college calculus teacher will be used to working with struggling students because for many of them, that is the toughest class they will ever have to take. But high school calculus teachers will be more used to working with the top students in the school. If you aren’t especially gifted in math, you may find that you don’t get what you need from these teachers.

A final thought

If you are scared to pursue a CS degree because of the math part, don’t let that hold you back. Math is a tool and should be wielded, not feared. With enough practice at applying it, you will someday wonder how you ever got by without it.


( categories: Articles | Education | Math )
Rollie Hawk is a consultant, web publisher, online personality, magazine writer, web developer, network administrator, teacher, husband and father residing in southern Illinois. He graduated in 2002 from Southern Illinois University, earning his BS majoring in math with a minor in chemistry.

Rollie is a certified math teacher with endorsements in chemistry, physics, and physical science and has taught students of all age groups and abilities, ranging from grade school to the university level. In addition to math and science, he has also taught GED, job skills, and alternative high school classes (his personal favorite).

After the birth of his daughter in 2004, Rollie decided to spend more time at home. This meant leaving his teaching position and devoting his working hours exclusively to consulting, web development, and general IT work.