Answers.Body: <p>This answer addresses something very different from the other answer I posted on this question, which is why it merits its own answer:</p>
  
  <p>Almost every field in computer science is built on some mathematical theory (this sentence is the only overlap between answers): </p>
  
  <ol>
  <li>The most basic: the number of options that an $n$ long binary number is $2^n$, and that's where it all starts (until Quantum computers come along, but that's something else)</li>
  <li>Algorithm correctness: proof by induction.</li>
  <li>The entire field of boolean algebra. Need I say more?</li>
  <li>The entire field of Machine Learning is nothing but computations of mathematical models (Neural networks are nothing more than the simplest of arithmetic calculations - weighted sums of weighted sums of...)</li>
  </ol>
  
  <p>This list can go on and it strengthens the point that, regardless of learning mathematics before learning Computer Science (that is, learning math with the intent of learning basic Computer science), most applications of computer science are implementations of mathematical models. </p>
  
  <p>This means that when learning a subfield of computer science, an introduction to the relevant mathematics is almost always necessary. </p>
  
  <p>That being said, being a talented mathematician surely would not harm one's level of understanding of those subfields of Computer Science. </p>
  
Answers.ContentLicense: CC BY-SA 3.0
Answers.CreationDate: 2017-08-04T09:37:38.623Z
Answers.LastActivityDate: 2017-08-04T17:50:41.830Z
Answers.LastEditDate: 2017-08-04T17:50:41.830Z
Answers.UserDisplayName: ItamarG3
Answers.Body: <p>They should be taught first and foremost to be computer scientists.</p>
  
  <p>This is a bit like asking </p>
  
  <blockquote>
    <p>Should biologists be taught first and foremost to be physicists or chemists?</p>
  </blockquote>
  
  <p>Neither. Biology has some physics and chemistry, but it also has some stuff all its own. Ditto for computer science - there's science and there's math. (Plus, if you're being really nitpicky, scientific theories are based on math, but, whatever.) There's also a dash of something different.</p>
  
  <p>Yeah, teach mathematics, just like you teach a scientist mathematics, or a biologist physics, and also teach science, just like you teach a biologist chemistry, but also teach how it all comes together - computer science!</p>
  
Answers.ContentLicense: CC BY-SA 3.0
Answers.CreationDate: 2017-08-05T00:09:04.083Z
Answers.LastActivityDate: 2017-08-05T00:09:04.083Z
Answers.UserDisplayName: auden
Answers.Body: <p>CS is neither Maths nor Science. Therefore teaching them as if one or the other is probably misplaced. </p>
  
  <p>Maths are about <em>understanding</em> and advancing certain logical mental models. It uses abstraction a lot and so does computing. But those are useful mental tools in most fields. That doesn't make History a subfield of Maths. </p>
  
  <p>The Sciences on the other hand are about <em>understanding</em> the world itself. It uses a particular method of formulating hypotheses and testing them through experiment, accumulating knowledge of what is "out there". Computing uses some of the conclusions of the Sciences, but isn't itself a science. Programmers, however, do use something like the scientific method when they need to document an old program, not really understanding how it works. You make a hypothesis about how it works and capture it in a test. Running the test is like an experiment. You learn something. Computer Forensics is similar. That isn't the main work of a computer scientist, however. </p>
  
  <p>Some fields of computing are more mathematical than others. Information Theory, for example is fairly classified as a math. Theory of Computability is at the intersection of Philosophy and Mathematics. My daughter's first course in her doctoral program in Philosophy was indistinguishable from a computability course in a CS department. But those are subfields, meant to understand what is possible and what is impossible (or really very hard). </p>
  
  <p>Computer Science is closer to engineering than to either Maths or Sciences. In CS we build things. We change the world. Neither the Maths (properly speaking) nor the Sciences have that goal. They are about <em>understanding</em> not building. Even the theoretical aspects of computing are there to help us know what we can build.</p>
  
  <p>Also, Ethics and the Social Sciences equally inform computing. Ethics tells us what we <em>should</em> build. The social sciences tell us how to build systems compatible with the human who must interact with them (human factors analysis). Note that neither of these concerns has any relevance at all in Mathematics nor the (hard) Sciences. They are about understanding. Not building and affecting the world. </p>
  
  <p>Any aspiring computer scientist does well to take a broad view and to study a lot of things. One of my best ever Master's level students studied Art History as an undergraduate. She wanted to use computation in her art and decided to delve deeper. Others have been Lawyers or studied other unrelated fields in earlier incarnations. They had a good idea about <em>what</em> to build from their earlier work. </p>
  
  <p>The earliest teaching in CS should inform the student as to the fundamental nature of the field as much as can be done. They are about to make a life-influencing decision and should know the consequences. Early on, they should be taught primarily as computer scientists: <em>builders of things</em> who use tools from many domains to do so. My doctorate in Mathematics gave me no special insight into CS. I'd suspect a Physics PhD to say about the same. The tools they know are useful, but not for understanding CS itself. </p>
  
Answers.ContentLicense: CC BY-SA 3.0
Answers.CreationDate: 2017-08-04T10:56:56.500Z
Answers.Text: Debate is welcome, but only when the participants are calm and respectful of each others beliefs. Please keep the tone calm and respectful; this conversation has been [moved to chat](http://chat.stackexchange.com/rooms/63319/discussion-on-answer-by-buffy-should-students-be-taught-to-be-first-and-foremost). Any further comments which are not _directly_ suggesting improvements to the answer will be deleted.
Answers.UserDisplayName: thesecretmaster
Answers.ContentLicense: CC BY-SA 3.0
Answers.CreationDate: 2017-08-04T18:10:12.757Z
Answers.Text: Well, from my experience as a Physics student, it does give some thinking skills which have proved relevant.
Answers.UserDisplayName: ItamarG3
Answers.ContentLicense: CC BY-SA 3.0
Answers.CreationDate: 2017-08-04T10:39:31.033Z
Answers.LastActivityDate: 2017-08-04T18:06:17.360Z
Answers.LastEditDate: 2017-08-04T18:06:17.360Z
Answers.UserDisplayName: Buffy
Answers.Body: <p>While the mathematics themselves might not be overly useful (they are, but not so much a requirement, more of a partial need for some subfields), the mindset and way of thinking that comes with learning mathematics is very useful in Computer Science. This mindset is one of those beneficial skills.</p>
  
  <p>Logical thinking is essential when writing any program, as it allows deep understanding of the flow of the software. Mathematics, both practical and theoretical increase logical thinking due to the fact that mathematical techniques often comprise of a few successive steps. Following these steps is a form of logical operations. </p>
  
  <p>This logical thinking is very useful in computer science, and for science in general. Mathematics, then, is an incredible way to boost one's ability to think in a logical way, providing a skill set which many would find useful in a Computer Science career.</p>
  
Answers.ContentLicense: CC BY-SA 3.0
Answers.CreationDate: 2017-08-04T09:34:07.803Z
Answers.LastActivityDate: 2017-08-04T17:48:14.467Z
Answers.LastEditDate: 2017-08-04T17:48:14.467Z
Answers.UserDisplayName: ItamarG3
Body: <p>It's undeniable that Computer Science is a mixture of disciplines including science (the scientific method, some physics needed to truly understand how computers work at all levels, testing methodologies etc etc.) and maths (theoretical computer science, programming is essentially logic puzzles that equate to mathematical proofs - at least complex ones, algorithm analysis etc. etc.) and to some extent it's created it's own discipline in programmatic thinking and the learning and analysis of programming languages. - What are the disciplines of computer science/how important is maths in computer science/is it really a science? - are not the questions to be answered here.</p>
  
  <p>Assuming Mathematical and Scientific knowledge are both important in computer science (which they are) - which do we train students to become principally? Is it most important for computer science students to be first and foremost scientists or mathematicians? e.g. in the first year of a CS course is it more appropriate to teach The Scientific Method. Structure of a scientific investigation. Hypotheses. Occam's razor. Controls. Correlation vs causation. Falsification. Examples such as intention to treat etc etc. Or is it more appropriate to teach Mathematical topics - matrix operations, algorithm analysis, complexity, logical expressions, etc etc.</p>
  
  <p>Or maybe a mixture of both? Maths is inherently important to science - but to what degree should budding computer scientists be taught mathematics.</p>
  
  <p>Which skills and talents in the field of mathematics are beneficial to Computer Scientists?</p>
  
Comments.ContentLicense: CC BY-SA 3.0
Comments.CreationDate: 2017-10-19T13:38:03.777Z
Comments.Text: @beroal moved to where??? Where would be a more appropriate place? Is there a learning stack? - or maybe a meta stack?
Comments.UserDisplayName: Eujinks
Comments.ContentLicense: CC BY-SA 3.0
Comments.CreationDate: 2017-10-20T18:13:57.363Z
Comments.Text: @seanyt123: Well, there is a proposal for Science Educators https://area51.stackexchange.com/proposals/113414/science-educators .You may want to support it. There is also Mathematics Educators https://matheducators.stackexchange.com/ ; your question is about mathematics too.
Comments.UserDisplayName: beroal
Comments.ContentLicense: CC BY-SA 3.0
Comments.CreationDate: 2017-08-04T09:18:11.547Z
Comments.Text: Welcome to [cseducators.se]! This is certainly an interesting question, and quite unlike any we've had here.
Comments.UserDisplayName: ItamarG3
Comments.ContentLicense: CC BY-SA 3.0
Comments.CreationDate: 2017-08-04T09:18:56.577Z
Comments.Text: Thanks, I meant to say if this is maybe too debatey or unclear just remove and I won't post questions like it again! I just think it's interesting/important
Comments.UserDisplayName: Eujinks
Comments.ContentLicense: CC BY-SA 3.0
Comments.CreationDate: 2017-08-04T09:20:14.277Z
Comments.Text: If you still feel it might be too, as you put it, debatey, then by all means [Join me in our guidance Office (chatroom)](https://chat.stackexchange.com/rooms/60468/the-guidance-office). I may have some ideas for improvement on the site
Comments.UserDisplayName: ItamarG3
Comments.ContentLicense: CC BY-SA 3.0
Comments.CreationDate: 2017-08-04T10:52:03.923Z
Comments.Text: I've voted to close this question as primarily opinion based. If you have questions, I'll be in the Guidance Office. Please remember that closure is **not** the end of the line, it's a way to shelter questions so they can be improved.
Comments.UserDisplayName: thesecretmaster
Comments.ContentLicense: CC BY-SA 3.0
Comments.CreationDate: 2017-08-08T07:26:03.280Z
Comments.Text: Why no mention of engineering?
Comments.UserDisplayName: Peter Taylor
Comments.ContentLicense: CC BY-SA 3.0
Comments.CreationDate: 2017-09-10T11:27:07.277Z
Comments.Text: I doubt this is specific to computer science. It is relevant to any science like physics or biology. The question should be moved.
Comments.UserDisplayName: beroal
Tags: <best-practice><mathematics>
Title: Should students be taught to be first and foremost: scientists or mathematicians?
ThreadText: # Should students be taught to be first and foremost: scientists or mathematicians?
  
  (Asked by: username_0 on 2017-08-04)
  
  It's undeniable that Computer Science is a mixture of disciplines including science (the scientific method, some physics needed to truly understand how computers work at all levels, testing methodologies etc etc.) and maths (theoretical computer science, programming is essentially logic puzzles that equate to mathematical proofs - at least complex ones, algorithm analysis etc. etc.) and to some extent it's created it's own discipline in programmatic thinking and the learning and analysis of programming languages. - What are the disciplines of computer science/how important is maths in computer science/is it really a science? - are not the questions to be answered here.
  
  Assuming Mathematical and Scientific knowledge are both important in computer science (which they are) - which do we train students to become principally? Is it most important for computer science students to be first and foremost scientists or mathematicians? e.g. in the first year of a CS course is it more appropriate to teach The Scientific Method. Structure of a scientific investigation. Hypotheses. Occam's razor. Controls. Correlation vs causation. Falsification. Examples such as intention to treat etc etc. Or is it more appropriate to teach Mathematical topics - matrix operations, algorithm analysis, complexity, logical expressions, etc etc.
  
  Or maybe a mixture of both? Maths is inherently important to science - but to what degree should budding computer scientists be taught mathematics.
  
  Which skills and talents in the field of mathematics are beneficial to Computer Scientists?
  
  **Tags:** best-practice, mathematics
  
  > **Comments:**
  > **username_2**: Welcome to [cseducators.se]! This is certainly an interesting question, and quite unlike any we've had here.  
  > **username_0**: Thanks, I meant to say if this is maybe too debatey or unclear just remove and I won't post questions like it again! I just think it's interesting/important  
  > **username_2**: If you still feel it might be too, as you put it, debatey, then by all means [Join me in our guidance Office (chatroom)](https://chat.stackexchange.com/rooms/60468/the-guidance-office). I may have some ideas for improvement on the site  
  > **username_3**: I've voted to close this question as primarily opinion based. If you have questions, I'll be in the Guidance Office. Please remember that closure is **not** the end of the line, it's a way to shelter questions so they can be improved.  
  > **username_4**: Why no mention of engineering?  
  > **username_1**: I doubt this is specific to computer science. It is relevant to any science like physics or biology. The question should be moved.  
  > **username_0**: @username_1 moved to where??? Where would be a more appropriate place? Is there a learning stack? - or maybe a meta stack?  
  > **username_1**: @seanyt123: Well, there is a proposal for Science Educators https://area51.stackexchange.com/proposals/113414/science-educators .You may want to support it. There is also Mathematics Educators https://matheducators.stackexchange.com/ ; your question is about mathematics too.  
  
  ---
  
  ## 4 answers
  
  ### Answer by username_2 on 2017-08-04. Score: 5 | Accepted answer
  
  This answer addresses something very different from the other answer I posted on this question, which is why it merits its own answer:
  
  Almost every field in computer science is built on some mathematical theory (this sentence is the only overlap between answers):
  
  1. The most basic: the number of options that an $n$ long binary number is $2^n$, and that's where it all starts (until Quantum computers come along, but that's something else)
  2. Algorithm correctness: proof by induction.
  3. The entire field of boolean algebra. Need I say more?
  4. The entire field of Machine Learning is nothing but computations of mathematical models (Neural networks are nothing more than the simplest of arithmetic calculations - weighted sums of weighted sums of...)
  
  This list can go on and it strengthens the point that, regardless of learning mathematics before learning Computer Science (that is, learning math with the intent of learning basic Computer science), most applications of computer science are implementations of mathematical models.
  
  This means that when learning a subfield of computer science, an introduction to the relevant mathematics is almost always necessary.
  
  That being said, being a talented mathematician surely would not harm one's level of understanding of those subfields of Computer Science.
  
  
  ---
  
  ### Answer by username_5 on 2017-08-05. Score: 4
  
  They should be taught first and foremost to be computer scientists.
  
  This is a bit like asking
  
  > Should biologists be taught first and foremost to be physicists or chemists?
  
  Neither. Biology has some physics and chemistry, but it also has some stuff all its own. Ditto for computer science - there's science and there's math. (Plus, if you're being really nitpicky, scientific theories are based on math, but, whatever.) There's also a dash of something different.
  
  Yeah, teach mathematics, just like you teach a scientist mathematics, or a biologist physics, and also teach science, just like you teach a biologist chemistry, but also teach how it all comes together - computer science!
  
  
  ---
  
  ### Answer by username_6 on 2017-08-04. Score: 4
  
  CS is neither Maths nor Science. Therefore teaching them as if one or the other is probably misplaced.
  
  Maths are about *understanding* and advancing certain logical mental models. It uses abstraction a lot and so does computing. But those are useful mental tools in most fields. That doesn't make History a subfield of Maths.
  
  The Sciences on the other hand are about *understanding* the world itself. It uses a particular method of formulating hypotheses and testing them through experiment, accumulating knowledge of what is "out there". Computing uses some of the conclusions of the Sciences, but isn't itself a science. Programmers, however, do use something like the scientific method when they need to document an old program, not really understanding how it works. You make a hypothesis about how it works and capture it in a test. Running the test is like an experiment. You learn something. Computer Forensics is similar. That isn't the main work of a computer scientist, however.
  
  Some fields of computing are more mathematical than others. Information Theory, for example is fairly classified as a math. Theory of Computability is at the intersection of Philosophy and Mathematics. My daughter's first course in her doctoral program in Philosophy was indistinguishable from a computability course in a CS department. But those are subfields, meant to understand what is possible and what is impossible (or really very hard).
  
  Computer Science is closer to engineering than to either Maths or Sciences. In CS we build things. We change the world. Neither the Maths (properly speaking) nor the Sciences have that goal. They are about *understanding* not building. Even the theoretical aspects of computing are there to help us know what we can build.
  
  Also, Ethics and the Social Sciences equally inform computing. Ethics tells us what we *should* build. The social sciences tell us how to build systems compatible with the human who must interact with them (human factors analysis). Note that neither of these concerns has any relevance at all in Mathematics nor the (hard) Sciences. They are about understanding. Not building and affecting the world.
  
  Any aspiring computer scientist does well to take a broad view and to study a lot of things. One of my best ever Master's level students studied Art History as an undergraduate. She wanted to use computation in her art and decided to delve deeper. Others have been Lawyers or studied other unrelated fields in earlier incarnations. They had a good idea about *what* to build from their earlier work.
  
  The earliest teaching in CS should inform the student as to the fundamental nature of the field as much as can be done. They are about to make a life-influencing decision and should know the consequences. Early on, they should be taught primarily as computer scientists: *builders of things* who use tools from many domains to do so. My doctorate in Mathematics gave me no special insight into CS. I'd suspect a Physics PhD to say about the same. The tools they know are useful, but not for understanding CS itself.
  
  > **Comments:**
  > **username_3**: Debate is welcome, but only when the participants are calm and respectful of each others beliefs. Please keep the tone calm and respectful; this conversation has been [moved to chat](http://chat.stackexchange.com/rooms/63319/discussion-on-answer-by-username_6-should-students-be-taught-to-be-first-and-foremost). Any further comments which are not _directly_ suggesting improvements to the answer will be deleted.  
  > **username_2**: Well, from my experience as a Physics student, it does give some thinking skills which have proved relevant.  
  
  ---
  
  ### Answer by username_2 on 2017-08-04. Score: 2
  
  While the mathematics themselves might not be overly useful (they are, but not so much a requirement, more of a partial need for some subfields), the mindset and way of thinking that comes with learning mathematics is very useful in Computer Science. This mindset is one of those beneficial skills.
  
  Logical thinking is essential when writing any program, as it allows deep understanding of the flow of the software. Mathematics, both practical and theoretical increase logical thinking due to the fact that mathematical techniques often comprise of a few successive steps. Following these steps is a form of logical operations.
  
  This logical thinking is very useful in computer science, and for science in general. Mathematics, then, is an incredible way to boost one's ability to think in a logical way, providing a skill set which many would find useful in a Computer Science career.
  
  
  ---
  
  