Why do Computer Science majors learn Calculus?
Are Boeing 737-800’s grounded?
Seemingly unused edef prior to an ifx mysteriously affects the outcome of the ifx. Why?
How to pronounce 'C++' in Spanish
how to find the equation of a circle given points of the circle
Can I spend a night at Vancouver then take a flight to my college in Toronto as an international student?
Why does processed meat contain preservatives, while canned fish needs not?
Binary Numbers Magic Trick
What is the relationship between spectral sequences and obstruction theory?
Why other Westeros houses don't use wildfire?
What are the potential pitfalls when using metals as a currency?
What is the strongest case that can be made in favour of the UK regaining some control over fishing policy after Brexit?
Is there an official tutorial for installing Ubuntu 18.04+ on a device with an SSD and an additional internal hard drive?
Was there a Viking Exchange as well as a Columbian one?
Pulling the rope with one hand is as heavy as with two hands?
Why do Computer Science majors learn Calculus?
Does a strong solution to a SDE imply lipschitz condition?
Map of water taps to fill bottles
What is the most expensive material in the world that could be used to create Pun-Pun's lute?
Is there really no use for MD5 anymore?
Symbolic Multivariate Distribution
Is the claim "Employers won't employ people with no 'social media presence'" realistic?
Don’t seats that recline flat defeat the purpose of having seatbelts?
Apply MapThread to all but one variable
Why does nature favour the Laplacian?
Why do Computer Science majors learn Calculus?
$begingroup$
I am curious why Computer Science majors have to learn Calculus to receive their Bachelors Degrees. My father worked as a Software Engineer for twenty years and never used it. It seems to have little more value in programming than other forms of mathematics. What is it about Calculus that makes it a requirement for Computer Science majors? Is it just that it's a tradition in STEM fields?
mathematics
New contributor
$endgroup$
add a comment |
$begingroup$
I am curious why Computer Science majors have to learn Calculus to receive their Bachelors Degrees. My father worked as a Software Engineer for twenty years and never used it. It seems to have little more value in programming than other forms of mathematics. What is it about Calculus that makes it a requirement for Computer Science majors? Is it just that it's a tradition in STEM fields?
mathematics
New contributor
$endgroup$
add a comment |
$begingroup$
I am curious why Computer Science majors have to learn Calculus to receive their Bachelors Degrees. My father worked as a Software Engineer for twenty years and never used it. It seems to have little more value in programming than other forms of mathematics. What is it about Calculus that makes it a requirement for Computer Science majors? Is it just that it's a tradition in STEM fields?
mathematics
New contributor
$endgroup$
I am curious why Computer Science majors have to learn Calculus to receive their Bachelors Degrees. My father worked as a Software Engineer for twenty years and never used it. It seems to have little more value in programming than other forms of mathematics. What is it about Calculus that makes it a requirement for Computer Science majors? Is it just that it's a tradition in STEM fields?
mathematics
mathematics
New contributor
New contributor
New contributor
asked 3 hours ago
LuminousNutriaLuminousNutria
1084
1084
New contributor
New contributor
add a comment |
add a comment |
3 Answers
3
active
oldest
votes
$begingroup$
There are several answers:
Answer 1: Not all CS programs
First, not all CS programs require calculus in order to get a bachelor's degree. The Bachelor of Arts (BA) program at Mills College, where I teach, does not require calculus. Instead, we require two semesters of discrete mathematics, which we consider far more useful to computer scientists, because it (at least the way we teach it) includes:
- inductive proofs
- Boolean logic
- proof by contradiction
- sets
- combinatorics
- basic probability
- recurrence relations
- graph theory
- matrices
- regular expressions
- finite state automata
- formal languages
Answer 2: Scientific foundations
That said, getting a Bachelor of Science (BS) degree from Mills or just about any other school requires calculus as part of general scientific knowledge, along with introductory chemistry, biology, physics, etc., none of which we claim someone will necessarily be useful to a computer scientist. These courses are part of the college-wide BS core, not specified by any individual department. The idea is that anyone holding a BS degree should understand the fundamentals of major scientific fields even if they will never apply them in their careers. (Similarly, most colleges require students to take classes in history, even though they are unlikely to become time travelers.)
Answer 2: Historical reasons
Computer science as an academic discipline has not been around that long. Most CS programs started within either Mathematics or Electrical Engineering programs. Both of those fields legitimately require calculus. I went to MIT, where CS was added to the EE department. All CS majors were required to learn both digital and analog electronics, the latter of which requires calculus.
Personal thoughts
In my decades as a computer scientist, including in industry, I never used any of what I learned in the required calculus (I, II, and III), linear algebra, or differential equations. That said, they did give me the background to go into computer graphics, electrical engineering, or machine learning, had I later chosen to.
Whether programs should require calculus is another question.
$endgroup$
1
$begingroup$
I'll note that some of the things you learn in elementary calculus are in your "answer 1" list: sets, logic, especially quantifiers, and proofs. I'll also note that you had a dilemma a while back about something you wanted to do with your advanced students that became more complicated because they hadn't had calculus. I can't recall the details.
$endgroup$
– Buffy
1 hour ago
1
$begingroup$
@Buffy I hadn't realized that those topics were taught in calculus. I don't think that's universally true. I believe our students' not having calculus was a problem when we wanted to teach electives on computer graphics and machine learning.
$endgroup$
– Ellen Spertus
1 hour ago
add a comment |
$begingroup$
Much of the material one learns in school has no direct utility in one's job as a software engineer. Conversely, much of the working knowledge one needs as an industry practitioner is not gained in school. What school is supposed to do is provide some basic knowledge and a basic framework for learning, out of which an individual is going to actively retain a small-ish portion for their day-to-day use on the job.
However, much engineering work is multi-disciplinary, and therefore "surplus" knowledge is not exactly useless: it can provide a useful bridge to other disciplines. Calculus in particular occurs in the math that describes physical processes.
In today's global economy, it is likely that one will switch employers and job specializations multiple times in one's career. At the start of one's career it is impossible to foresee what knowledge is going to come in handy later on. About twenty-five years into my career, I found myself interfacing to domain specialists whose bread and butter are differential equations. When I was in school, studying for a CS degree, I could have taken optional classes to learn about differential equations, but decided not to as I was already struggling with my math workload. So late in my career I came to regret my earlier decision, as it put me at a disadvantage relative to colleagues with a working knowledge of differential equations.
The exact nature and number of math classes required in a CS program may in part be driven by departmental tradition. For example, in the school I attended, the CS program had grown out of the math program in the early 1970s. Therefore, math was heavily emphasized. In fact, as an undergrad I took exactly the same math classes as students in the math program. Out of those, linear algebra turned out to be useful for computer graphics, and numerics turned out to be useful for high-performance computing. Multi-dimensional analysis and statistics I never needed again, but it might have been quite different had my career taken me in a data science direction.
$endgroup$
add a comment |
$begingroup$
This isn't really an answer, but I'd like to say a few things about calculus. I think that what is needed by a CS major from that realm and what is needed by a math major are very different. As such, I think that if calculus is taught to CS majors, and to history majors, for that matter, the needs imply that it might be a different sort of course than that taken by the math majors.
First, not a lot of people who have taken Elementary Calculus (i.e. Calc I, II, and III) actually have much insight into what is really the point. It is easy to get lost in details of differentiation and integration and techniques and such without realizing that it is really a study of the relationship between what happens locally with a function (differential calc) and what happens globally (integral calc). It is all tied together by the Fundamental Theorem.
But even the nature of the derivative is poorly understood for a long while - it took me several years of graduate study in math to really grok it. The derivative you study in Elementary Calculus is really only one specific form of a wide variety of possibilities. The limit used in Elementary Calculus could be replaced by alternatives. The difference quotient in the derivative could be replaced by another "average ratio of change". This would result in a different theory.
However, the standard version of Elementary Calculus (note that I keep writing Elementary") is very good for understanding the behavior of well behaved functions: those that are mostly continuous. But aside from Catastrophe Theory (why do bridges fall down unexpectedly?) it is these continuous functions that form the basis of understanding a lot of the applications of both math and CS. Probability, for example, depends on calculus once you get past counting.
So, elementary calculus is useful for applications of rational thought to the real world - which CS folk do a lot of.
However, the "nice" functions of elementary calculus are pretty boring to a mathematician. The interesting functions are those that are misbehaved - even wildly misbehaved - even wildly misbehaved everywhere. A function that is continuous but nowhere differentiable starts to be interesting. A function that is continuous everywhere but zero, but takes on every real value in every neighborhood of zero starts to be interesting. That is where the calculus sequence is headed for math majors, but it probably isn't very useful for a CS person. How about functions not even defined on the rationals. Is that a yummy or a yucky?
So, a good compromise, if a university can arrange it, is to have a single course that is something like Calculus I with some ideas of the derivative and the integral, but focused on why these are important (rates of growth, etc) rather than just computational details, might be worth designing and offered generally to people interested in becoming widely educated, rather than becoming mathematicians.
Note that this precise subject was the basis of my doctoral work: variations on the ideas of calculus and the deeper meaning for the study of functions.
$endgroup$
add a comment |
Your Answer
StackExchange.ready(function()
var channelOptions =
tags: "".split(" "),
id: "678"
;
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function()
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled)
StackExchange.using("snippets", function()
createEditor();
);
else
createEditor();
);
function createEditor()
StackExchange.prepareEditor(
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: false,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: null,
bindNavPrevention: true,
postfix: "",
imageUploader:
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
,
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
);
);
LuminousNutria is a new contributor. Be nice, and check out our Code of Conduct.
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fcseducators.stackexchange.com%2fquestions%2f5579%2fwhy-do-computer-science-majors-learn-calculus%23new-answer', 'question_page');
);
Post as a guest
Required, but never shown
3 Answers
3
active
oldest
votes
3 Answers
3
active
oldest
votes
active
oldest
votes
active
oldest
votes
$begingroup$
There are several answers:
Answer 1: Not all CS programs
First, not all CS programs require calculus in order to get a bachelor's degree. The Bachelor of Arts (BA) program at Mills College, where I teach, does not require calculus. Instead, we require two semesters of discrete mathematics, which we consider far more useful to computer scientists, because it (at least the way we teach it) includes:
- inductive proofs
- Boolean logic
- proof by contradiction
- sets
- combinatorics
- basic probability
- recurrence relations
- graph theory
- matrices
- regular expressions
- finite state automata
- formal languages
Answer 2: Scientific foundations
That said, getting a Bachelor of Science (BS) degree from Mills or just about any other school requires calculus as part of general scientific knowledge, along with introductory chemistry, biology, physics, etc., none of which we claim someone will necessarily be useful to a computer scientist. These courses are part of the college-wide BS core, not specified by any individual department. The idea is that anyone holding a BS degree should understand the fundamentals of major scientific fields even if they will never apply them in their careers. (Similarly, most colleges require students to take classes in history, even though they are unlikely to become time travelers.)
Answer 2: Historical reasons
Computer science as an academic discipline has not been around that long. Most CS programs started within either Mathematics or Electrical Engineering programs. Both of those fields legitimately require calculus. I went to MIT, where CS was added to the EE department. All CS majors were required to learn both digital and analog electronics, the latter of which requires calculus.
Personal thoughts
In my decades as a computer scientist, including in industry, I never used any of what I learned in the required calculus (I, II, and III), linear algebra, or differential equations. That said, they did give me the background to go into computer graphics, electrical engineering, or machine learning, had I later chosen to.
Whether programs should require calculus is another question.
$endgroup$
1
$begingroup$
I'll note that some of the things you learn in elementary calculus are in your "answer 1" list: sets, logic, especially quantifiers, and proofs. I'll also note that you had a dilemma a while back about something you wanted to do with your advanced students that became more complicated because they hadn't had calculus. I can't recall the details.
$endgroup$
– Buffy
1 hour ago
1
$begingroup$
@Buffy I hadn't realized that those topics were taught in calculus. I don't think that's universally true. I believe our students' not having calculus was a problem when we wanted to teach electives on computer graphics and machine learning.
$endgroup$
– Ellen Spertus
1 hour ago
add a comment |
$begingroup$
There are several answers:
Answer 1: Not all CS programs
First, not all CS programs require calculus in order to get a bachelor's degree. The Bachelor of Arts (BA) program at Mills College, where I teach, does not require calculus. Instead, we require two semesters of discrete mathematics, which we consider far more useful to computer scientists, because it (at least the way we teach it) includes:
- inductive proofs
- Boolean logic
- proof by contradiction
- sets
- combinatorics
- basic probability
- recurrence relations
- graph theory
- matrices
- regular expressions
- finite state automata
- formal languages
Answer 2: Scientific foundations
That said, getting a Bachelor of Science (BS) degree from Mills or just about any other school requires calculus as part of general scientific knowledge, along with introductory chemistry, biology, physics, etc., none of which we claim someone will necessarily be useful to a computer scientist. These courses are part of the college-wide BS core, not specified by any individual department. The idea is that anyone holding a BS degree should understand the fundamentals of major scientific fields even if they will never apply them in their careers. (Similarly, most colleges require students to take classes in history, even though they are unlikely to become time travelers.)
Answer 2: Historical reasons
Computer science as an academic discipline has not been around that long. Most CS programs started within either Mathematics or Electrical Engineering programs. Both of those fields legitimately require calculus. I went to MIT, where CS was added to the EE department. All CS majors were required to learn both digital and analog electronics, the latter of which requires calculus.
Personal thoughts
In my decades as a computer scientist, including in industry, I never used any of what I learned in the required calculus (I, II, and III), linear algebra, or differential equations. That said, they did give me the background to go into computer graphics, electrical engineering, or machine learning, had I later chosen to.
Whether programs should require calculus is another question.
$endgroup$
1
$begingroup$
I'll note that some of the things you learn in elementary calculus are in your "answer 1" list: sets, logic, especially quantifiers, and proofs. I'll also note that you had a dilemma a while back about something you wanted to do with your advanced students that became more complicated because they hadn't had calculus. I can't recall the details.
$endgroup$
– Buffy
1 hour ago
1
$begingroup$
@Buffy I hadn't realized that those topics were taught in calculus. I don't think that's universally true. I believe our students' not having calculus was a problem when we wanted to teach electives on computer graphics and machine learning.
$endgroup$
– Ellen Spertus
1 hour ago
add a comment |
$begingroup$
There are several answers:
Answer 1: Not all CS programs
First, not all CS programs require calculus in order to get a bachelor's degree. The Bachelor of Arts (BA) program at Mills College, where I teach, does not require calculus. Instead, we require two semesters of discrete mathematics, which we consider far more useful to computer scientists, because it (at least the way we teach it) includes:
- inductive proofs
- Boolean logic
- proof by contradiction
- sets
- combinatorics
- basic probability
- recurrence relations
- graph theory
- matrices
- regular expressions
- finite state automata
- formal languages
Answer 2: Scientific foundations
That said, getting a Bachelor of Science (BS) degree from Mills or just about any other school requires calculus as part of general scientific knowledge, along with introductory chemistry, biology, physics, etc., none of which we claim someone will necessarily be useful to a computer scientist. These courses are part of the college-wide BS core, not specified by any individual department. The idea is that anyone holding a BS degree should understand the fundamentals of major scientific fields even if they will never apply them in their careers. (Similarly, most colleges require students to take classes in history, even though they are unlikely to become time travelers.)
Answer 2: Historical reasons
Computer science as an academic discipline has not been around that long. Most CS programs started within either Mathematics or Electrical Engineering programs. Both of those fields legitimately require calculus. I went to MIT, where CS was added to the EE department. All CS majors were required to learn both digital and analog electronics, the latter of which requires calculus.
Personal thoughts
In my decades as a computer scientist, including in industry, I never used any of what I learned in the required calculus (I, II, and III), linear algebra, or differential equations. That said, they did give me the background to go into computer graphics, electrical engineering, or machine learning, had I later chosen to.
Whether programs should require calculus is another question.
$endgroup$
There are several answers:
Answer 1: Not all CS programs
First, not all CS programs require calculus in order to get a bachelor's degree. The Bachelor of Arts (BA) program at Mills College, where I teach, does not require calculus. Instead, we require two semesters of discrete mathematics, which we consider far more useful to computer scientists, because it (at least the way we teach it) includes:
- inductive proofs
- Boolean logic
- proof by contradiction
- sets
- combinatorics
- basic probability
- recurrence relations
- graph theory
- matrices
- regular expressions
- finite state automata
- formal languages
Answer 2: Scientific foundations
That said, getting a Bachelor of Science (BS) degree from Mills or just about any other school requires calculus as part of general scientific knowledge, along with introductory chemistry, biology, physics, etc., none of which we claim someone will necessarily be useful to a computer scientist. These courses are part of the college-wide BS core, not specified by any individual department. The idea is that anyone holding a BS degree should understand the fundamentals of major scientific fields even if they will never apply them in their careers. (Similarly, most colleges require students to take classes in history, even though they are unlikely to become time travelers.)
Answer 2: Historical reasons
Computer science as an academic discipline has not been around that long. Most CS programs started within either Mathematics or Electrical Engineering programs. Both of those fields legitimately require calculus. I went to MIT, where CS was added to the EE department. All CS majors were required to learn both digital and analog electronics, the latter of which requires calculus.
Personal thoughts
In my decades as a computer scientist, including in industry, I never used any of what I learned in the required calculus (I, II, and III), linear algebra, or differential equations. That said, they did give me the background to go into computer graphics, electrical engineering, or machine learning, had I later chosen to.
Whether programs should require calculus is another question.
edited 1 hour ago
answered 1 hour ago
Ellen SpertusEllen Spertus
4,58842053
4,58842053
1
$begingroup$
I'll note that some of the things you learn in elementary calculus are in your "answer 1" list: sets, logic, especially quantifiers, and proofs. I'll also note that you had a dilemma a while back about something you wanted to do with your advanced students that became more complicated because they hadn't had calculus. I can't recall the details.
$endgroup$
– Buffy
1 hour ago
1
$begingroup$
@Buffy I hadn't realized that those topics were taught in calculus. I don't think that's universally true. I believe our students' not having calculus was a problem when we wanted to teach electives on computer graphics and machine learning.
$endgroup$
– Ellen Spertus
1 hour ago
add a comment |
1
$begingroup$
I'll note that some of the things you learn in elementary calculus are in your "answer 1" list: sets, logic, especially quantifiers, and proofs. I'll also note that you had a dilemma a while back about something you wanted to do with your advanced students that became more complicated because they hadn't had calculus. I can't recall the details.
$endgroup$
– Buffy
1 hour ago
1
$begingroup$
@Buffy I hadn't realized that those topics were taught in calculus. I don't think that's universally true. I believe our students' not having calculus was a problem when we wanted to teach electives on computer graphics and machine learning.
$endgroup$
– Ellen Spertus
1 hour ago
1
1
$begingroup$
I'll note that some of the things you learn in elementary calculus are in your "answer 1" list: sets, logic, especially quantifiers, and proofs. I'll also note that you had a dilemma a while back about something you wanted to do with your advanced students that became more complicated because they hadn't had calculus. I can't recall the details.
$endgroup$
– Buffy
1 hour ago
$begingroup$
I'll note that some of the things you learn in elementary calculus are in your "answer 1" list: sets, logic, especially quantifiers, and proofs. I'll also note that you had a dilemma a while back about something you wanted to do with your advanced students that became more complicated because they hadn't had calculus. I can't recall the details.
$endgroup$
– Buffy
1 hour ago
1
1
$begingroup$
@Buffy I hadn't realized that those topics were taught in calculus. I don't think that's universally true. I believe our students' not having calculus was a problem when we wanted to teach electives on computer graphics and machine learning.
$endgroup$
– Ellen Spertus
1 hour ago
$begingroup$
@Buffy I hadn't realized that those topics were taught in calculus. I don't think that's universally true. I believe our students' not having calculus was a problem when we wanted to teach electives on computer graphics and machine learning.
$endgroup$
– Ellen Spertus
1 hour ago
add a comment |
$begingroup$
Much of the material one learns in school has no direct utility in one's job as a software engineer. Conversely, much of the working knowledge one needs as an industry practitioner is not gained in school. What school is supposed to do is provide some basic knowledge and a basic framework for learning, out of which an individual is going to actively retain a small-ish portion for their day-to-day use on the job.
However, much engineering work is multi-disciplinary, and therefore "surplus" knowledge is not exactly useless: it can provide a useful bridge to other disciplines. Calculus in particular occurs in the math that describes physical processes.
In today's global economy, it is likely that one will switch employers and job specializations multiple times in one's career. At the start of one's career it is impossible to foresee what knowledge is going to come in handy later on. About twenty-five years into my career, I found myself interfacing to domain specialists whose bread and butter are differential equations. When I was in school, studying for a CS degree, I could have taken optional classes to learn about differential equations, but decided not to as I was already struggling with my math workload. So late in my career I came to regret my earlier decision, as it put me at a disadvantage relative to colleagues with a working knowledge of differential equations.
The exact nature and number of math classes required in a CS program may in part be driven by departmental tradition. For example, in the school I attended, the CS program had grown out of the math program in the early 1970s. Therefore, math was heavily emphasized. In fact, as an undergrad I took exactly the same math classes as students in the math program. Out of those, linear algebra turned out to be useful for computer graphics, and numerics turned out to be useful for high-performance computing. Multi-dimensional analysis and statistics I never needed again, but it might have been quite different had my career taken me in a data science direction.
$endgroup$
add a comment |
$begingroup$
Much of the material one learns in school has no direct utility in one's job as a software engineer. Conversely, much of the working knowledge one needs as an industry practitioner is not gained in school. What school is supposed to do is provide some basic knowledge and a basic framework for learning, out of which an individual is going to actively retain a small-ish portion for their day-to-day use on the job.
However, much engineering work is multi-disciplinary, and therefore "surplus" knowledge is not exactly useless: it can provide a useful bridge to other disciplines. Calculus in particular occurs in the math that describes physical processes.
In today's global economy, it is likely that one will switch employers and job specializations multiple times in one's career. At the start of one's career it is impossible to foresee what knowledge is going to come in handy later on. About twenty-five years into my career, I found myself interfacing to domain specialists whose bread and butter are differential equations. When I was in school, studying for a CS degree, I could have taken optional classes to learn about differential equations, but decided not to as I was already struggling with my math workload. So late in my career I came to regret my earlier decision, as it put me at a disadvantage relative to colleagues with a working knowledge of differential equations.
The exact nature and number of math classes required in a CS program may in part be driven by departmental tradition. For example, in the school I attended, the CS program had grown out of the math program in the early 1970s. Therefore, math was heavily emphasized. In fact, as an undergrad I took exactly the same math classes as students in the math program. Out of those, linear algebra turned out to be useful for computer graphics, and numerics turned out to be useful for high-performance computing. Multi-dimensional analysis and statistics I never needed again, but it might have been quite different had my career taken me in a data science direction.
$endgroup$
add a comment |
$begingroup$
Much of the material one learns in school has no direct utility in one's job as a software engineer. Conversely, much of the working knowledge one needs as an industry practitioner is not gained in school. What school is supposed to do is provide some basic knowledge and a basic framework for learning, out of which an individual is going to actively retain a small-ish portion for their day-to-day use on the job.
However, much engineering work is multi-disciplinary, and therefore "surplus" knowledge is not exactly useless: it can provide a useful bridge to other disciplines. Calculus in particular occurs in the math that describes physical processes.
In today's global economy, it is likely that one will switch employers and job specializations multiple times in one's career. At the start of one's career it is impossible to foresee what knowledge is going to come in handy later on. About twenty-five years into my career, I found myself interfacing to domain specialists whose bread and butter are differential equations. When I was in school, studying for a CS degree, I could have taken optional classes to learn about differential equations, but decided not to as I was already struggling with my math workload. So late in my career I came to regret my earlier decision, as it put me at a disadvantage relative to colleagues with a working knowledge of differential equations.
The exact nature and number of math classes required in a CS program may in part be driven by departmental tradition. For example, in the school I attended, the CS program had grown out of the math program in the early 1970s. Therefore, math was heavily emphasized. In fact, as an undergrad I took exactly the same math classes as students in the math program. Out of those, linear algebra turned out to be useful for computer graphics, and numerics turned out to be useful for high-performance computing. Multi-dimensional analysis and statistics I never needed again, but it might have been quite different had my career taken me in a data science direction.
$endgroup$
Much of the material one learns in school has no direct utility in one's job as a software engineer. Conversely, much of the working knowledge one needs as an industry practitioner is not gained in school. What school is supposed to do is provide some basic knowledge and a basic framework for learning, out of which an individual is going to actively retain a small-ish portion for their day-to-day use on the job.
However, much engineering work is multi-disciplinary, and therefore "surplus" knowledge is not exactly useless: it can provide a useful bridge to other disciplines. Calculus in particular occurs in the math that describes physical processes.
In today's global economy, it is likely that one will switch employers and job specializations multiple times in one's career. At the start of one's career it is impossible to foresee what knowledge is going to come in handy later on. About twenty-five years into my career, I found myself interfacing to domain specialists whose bread and butter are differential equations. When I was in school, studying for a CS degree, I could have taken optional classes to learn about differential equations, but decided not to as I was already struggling with my math workload. So late in my career I came to regret my earlier decision, as it put me at a disadvantage relative to colleagues with a working knowledge of differential equations.
The exact nature and number of math classes required in a CS program may in part be driven by departmental tradition. For example, in the school I attended, the CS program had grown out of the math program in the early 1970s. Therefore, math was heavily emphasized. In fact, as an undergrad I took exactly the same math classes as students in the math program. Out of those, linear algebra turned out to be useful for computer graphics, and numerics turned out to be useful for high-performance computing. Multi-dimensional analysis and statistics I never needed again, but it might have been quite different had my career taken me in a data science direction.
answered 1 hour ago
njuffanjuffa
25016
25016
add a comment |
add a comment |
$begingroup$
This isn't really an answer, but I'd like to say a few things about calculus. I think that what is needed by a CS major from that realm and what is needed by a math major are very different. As such, I think that if calculus is taught to CS majors, and to history majors, for that matter, the needs imply that it might be a different sort of course than that taken by the math majors.
First, not a lot of people who have taken Elementary Calculus (i.e. Calc I, II, and III) actually have much insight into what is really the point. It is easy to get lost in details of differentiation and integration and techniques and such without realizing that it is really a study of the relationship between what happens locally with a function (differential calc) and what happens globally (integral calc). It is all tied together by the Fundamental Theorem.
But even the nature of the derivative is poorly understood for a long while - it took me several years of graduate study in math to really grok it. The derivative you study in Elementary Calculus is really only one specific form of a wide variety of possibilities. The limit used in Elementary Calculus could be replaced by alternatives. The difference quotient in the derivative could be replaced by another "average ratio of change". This would result in a different theory.
However, the standard version of Elementary Calculus (note that I keep writing Elementary") is very good for understanding the behavior of well behaved functions: those that are mostly continuous. But aside from Catastrophe Theory (why do bridges fall down unexpectedly?) it is these continuous functions that form the basis of understanding a lot of the applications of both math and CS. Probability, for example, depends on calculus once you get past counting.
So, elementary calculus is useful for applications of rational thought to the real world - which CS folk do a lot of.
However, the "nice" functions of elementary calculus are pretty boring to a mathematician. The interesting functions are those that are misbehaved - even wildly misbehaved - even wildly misbehaved everywhere. A function that is continuous but nowhere differentiable starts to be interesting. A function that is continuous everywhere but zero, but takes on every real value in every neighborhood of zero starts to be interesting. That is where the calculus sequence is headed for math majors, but it probably isn't very useful for a CS person. How about functions not even defined on the rationals. Is that a yummy or a yucky?
So, a good compromise, if a university can arrange it, is to have a single course that is something like Calculus I with some ideas of the derivative and the integral, but focused on why these are important (rates of growth, etc) rather than just computational details, might be worth designing and offered generally to people interested in becoming widely educated, rather than becoming mathematicians.
Note that this precise subject was the basis of my doctoral work: variations on the ideas of calculus and the deeper meaning for the study of functions.
$endgroup$
add a comment |
$begingroup$
This isn't really an answer, but I'd like to say a few things about calculus. I think that what is needed by a CS major from that realm and what is needed by a math major are very different. As such, I think that if calculus is taught to CS majors, and to history majors, for that matter, the needs imply that it might be a different sort of course than that taken by the math majors.
First, not a lot of people who have taken Elementary Calculus (i.e. Calc I, II, and III) actually have much insight into what is really the point. It is easy to get lost in details of differentiation and integration and techniques and such without realizing that it is really a study of the relationship between what happens locally with a function (differential calc) and what happens globally (integral calc). It is all tied together by the Fundamental Theorem.
But even the nature of the derivative is poorly understood for a long while - it took me several years of graduate study in math to really grok it. The derivative you study in Elementary Calculus is really only one specific form of a wide variety of possibilities. The limit used in Elementary Calculus could be replaced by alternatives. The difference quotient in the derivative could be replaced by another "average ratio of change". This would result in a different theory.
However, the standard version of Elementary Calculus (note that I keep writing Elementary") is very good for understanding the behavior of well behaved functions: those that are mostly continuous. But aside from Catastrophe Theory (why do bridges fall down unexpectedly?) it is these continuous functions that form the basis of understanding a lot of the applications of both math and CS. Probability, for example, depends on calculus once you get past counting.
So, elementary calculus is useful for applications of rational thought to the real world - which CS folk do a lot of.
However, the "nice" functions of elementary calculus are pretty boring to a mathematician. The interesting functions are those that are misbehaved - even wildly misbehaved - even wildly misbehaved everywhere. A function that is continuous but nowhere differentiable starts to be interesting. A function that is continuous everywhere but zero, but takes on every real value in every neighborhood of zero starts to be interesting. That is where the calculus sequence is headed for math majors, but it probably isn't very useful for a CS person. How about functions not even defined on the rationals. Is that a yummy or a yucky?
So, a good compromise, if a university can arrange it, is to have a single course that is something like Calculus I with some ideas of the derivative and the integral, but focused on why these are important (rates of growth, etc) rather than just computational details, might be worth designing and offered generally to people interested in becoming widely educated, rather than becoming mathematicians.
Note that this precise subject was the basis of my doctoral work: variations on the ideas of calculus and the deeper meaning for the study of functions.
$endgroup$
add a comment |
$begingroup$
This isn't really an answer, but I'd like to say a few things about calculus. I think that what is needed by a CS major from that realm and what is needed by a math major are very different. As such, I think that if calculus is taught to CS majors, and to history majors, for that matter, the needs imply that it might be a different sort of course than that taken by the math majors.
First, not a lot of people who have taken Elementary Calculus (i.e. Calc I, II, and III) actually have much insight into what is really the point. It is easy to get lost in details of differentiation and integration and techniques and such without realizing that it is really a study of the relationship between what happens locally with a function (differential calc) and what happens globally (integral calc). It is all tied together by the Fundamental Theorem.
But even the nature of the derivative is poorly understood for a long while - it took me several years of graduate study in math to really grok it. The derivative you study in Elementary Calculus is really only one specific form of a wide variety of possibilities. The limit used in Elementary Calculus could be replaced by alternatives. The difference quotient in the derivative could be replaced by another "average ratio of change". This would result in a different theory.
However, the standard version of Elementary Calculus (note that I keep writing Elementary") is very good for understanding the behavior of well behaved functions: those that are mostly continuous. But aside from Catastrophe Theory (why do bridges fall down unexpectedly?) it is these continuous functions that form the basis of understanding a lot of the applications of both math and CS. Probability, for example, depends on calculus once you get past counting.
So, elementary calculus is useful for applications of rational thought to the real world - which CS folk do a lot of.
However, the "nice" functions of elementary calculus are pretty boring to a mathematician. The interesting functions are those that are misbehaved - even wildly misbehaved - even wildly misbehaved everywhere. A function that is continuous but nowhere differentiable starts to be interesting. A function that is continuous everywhere but zero, but takes on every real value in every neighborhood of zero starts to be interesting. That is where the calculus sequence is headed for math majors, but it probably isn't very useful for a CS person. How about functions not even defined on the rationals. Is that a yummy or a yucky?
So, a good compromise, if a university can arrange it, is to have a single course that is something like Calculus I with some ideas of the derivative and the integral, but focused on why these are important (rates of growth, etc) rather than just computational details, might be worth designing and offered generally to people interested in becoming widely educated, rather than becoming mathematicians.
Note that this precise subject was the basis of my doctoral work: variations on the ideas of calculus and the deeper meaning for the study of functions.
$endgroup$
This isn't really an answer, but I'd like to say a few things about calculus. I think that what is needed by a CS major from that realm and what is needed by a math major are very different. As such, I think that if calculus is taught to CS majors, and to history majors, for that matter, the needs imply that it might be a different sort of course than that taken by the math majors.
First, not a lot of people who have taken Elementary Calculus (i.e. Calc I, II, and III) actually have much insight into what is really the point. It is easy to get lost in details of differentiation and integration and techniques and such without realizing that it is really a study of the relationship between what happens locally with a function (differential calc) and what happens globally (integral calc). It is all tied together by the Fundamental Theorem.
But even the nature of the derivative is poorly understood for a long while - it took me several years of graduate study in math to really grok it. The derivative you study in Elementary Calculus is really only one specific form of a wide variety of possibilities. The limit used in Elementary Calculus could be replaced by alternatives. The difference quotient in the derivative could be replaced by another "average ratio of change". This would result in a different theory.
However, the standard version of Elementary Calculus (note that I keep writing Elementary") is very good for understanding the behavior of well behaved functions: those that are mostly continuous. But aside from Catastrophe Theory (why do bridges fall down unexpectedly?) it is these continuous functions that form the basis of understanding a lot of the applications of both math and CS. Probability, for example, depends on calculus once you get past counting.
So, elementary calculus is useful for applications of rational thought to the real world - which CS folk do a lot of.
However, the "nice" functions of elementary calculus are pretty boring to a mathematician. The interesting functions are those that are misbehaved - even wildly misbehaved - even wildly misbehaved everywhere. A function that is continuous but nowhere differentiable starts to be interesting. A function that is continuous everywhere but zero, but takes on every real value in every neighborhood of zero starts to be interesting. That is where the calculus sequence is headed for math majors, but it probably isn't very useful for a CS person. How about functions not even defined on the rationals. Is that a yummy or a yucky?
So, a good compromise, if a university can arrange it, is to have a single course that is something like Calculus I with some ideas of the derivative and the integral, but focused on why these are important (rates of growth, etc) rather than just computational details, might be worth designing and offered generally to people interested in becoming widely educated, rather than becoming mathematicians.
Note that this precise subject was the basis of my doctoral work: variations on the ideas of calculus and the deeper meaning for the study of functions.
edited 42 mins ago
answered 1 hour ago
BuffyBuffy
23.6k94184
23.6k94184
add a comment |
add a comment |
LuminousNutria is a new contributor. Be nice, and check out our Code of Conduct.
LuminousNutria is a new contributor. Be nice, and check out our Code of Conduct.
LuminousNutria is a new contributor. Be nice, and check out our Code of Conduct.
LuminousNutria is a new contributor. Be nice, and check out our Code of Conduct.
Thanks for contributing an answer to Computer Science Educators Stack Exchange!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
Use MathJax to format equations. MathJax reference.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fcseducators.stackexchange.com%2fquestions%2f5579%2fwhy-do-computer-science-majors-learn-calculus%23new-answer', 'question_page');
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown