Skip to main content

Let me offer a few thoughts, specific to mathematical pedagogy in computer science (in particular for the states):

(a): a typical BS computer science program barely has time to touch on computational theory, further still computational theory in which the difference between classic and constructive mathematics matters. For reference, here is a sampling of the typical undergrad CS major within the first three years, easily verified via looking at syllabi:

mathMath: calccalculus, linear algebra, odesODEs, physics, graph theory/ combinatoricscombinatorics, probability, optimization, numbericalnumerical analysis in addition to computer science specific-specific courses, in particular data structures/ algorithmsalgorithms/assembly/ webweb design/OS/theory.

thatThat leaves approximately one year- in addition to general education requirements- for extra math courses.

(b): the CS major thus has a choice between extra math courses and courses to boost their skillset/resume. Since a majority of students will not go into academia, it is clear that it is better to take csCS electives, such as nlpNLP, aiAI, etc. whyWhy reshape mathematics pedagogy for these students?

(c): even for those who do, their current math education is approximately equivalent to a second year-year maths student. theThe next jump, with respect to theory, is grad first year-year theory aA and theory bB ( roughlyroughly algorithms and logic/semantics). Issues of constructive logic will mostly affect theory bB (in practice, if not in principle). thatThis brings us to our next point...

(d): the difference in constructive, vs classical logic, will roughly come down to choice, lemLEM, or double negation ( inin fact these are equivalent given that the rest of the system is typical). But if one is mathematically advanced enough to be doing work in theory bB, this is generally a small modification- simply do not allow proofs via these methods. soSo in fact, especially for computer science (itsit's another story, for, say real analysis), the difference tends to be small.

*unless one is actually proving things about certain logicslogic. But this is in general beyond the scope of a first year-year grad course. And if one is advanced enough to be doing this, then they are typically fluent in moving between classical and constructive paradigms, anyway.

(e): but most mathematics is done in classical logic. Since the math courses will in general be taught by the math dep't, many who will assume LEM/ choicechoice/ doubledouble negation, they have the choice of altering pedagogy for a very small population, for which the difference is negligible, or continuing to prep the large majority of students for how math is "typically" done. ifIf one accepts classical mathematics, it is easy in principle to make students aware of the general issues of classic vs constructive mathematics. But one would never limit themselves, just like a programmer would be unlikely to only use functional paradigms if they "believed" in object oriented-oriented paradigms/ statestates. Similarly, one is unlikely to not use double negation, choice,etc etc. if one sees nothing wrong with it.

Let me offer a few thoughts, specific to mathematical pedagogy in computer science (in particular for the states):

(a): a typical BS computer science program barely has time to touch on computational theory, further still computational theory in which the difference between classic and constructive mathematics matters. For reference, here is a sampling of the typical undergrad CS major within the first three years, easily verified via looking at syllabi:

math: calc, linear algebra, odes, physics, graph theory/ combinatorics, probability, optimization, numberical analysis in addition to computer science specific courses, in particular data structures/ algorithms/assembly/ web design/OS/theory.

that leaves approximately one year- in addition to general education requirements- for extra math courses.

(b): the CS major thus has a choice between extra math courses and courses to boost their skillset/resume. Since a majority of students will not go into academia, it is clear that it is better to take cs electives, such as nlp, ai, etc. why reshape mathematics pedagogy for these students?

(c): even for those who do, their current math education is approximately equivalent to a second year maths student. the next jump, with respect to theory, is grad first year theory a and theory b ( roughly algorithms and logic/semantics). Issues of constructive logic will mostly affect theory b (in practice, if not in principle). that brings us to our next point...

(d): the difference in constructive, vs classical logic, will roughly come down to choice, lem, or double negation ( in fact these are equivalent given that the rest of the system is typical). But if one is mathematically advanced enough to be doing work in theory b, this is generally a small modification- simply do not allow proofs via these methods. so in fact, especially for computer science (its another story, for, say real analysis), the difference tends to be small.

*unless one is actually proving things about certain logics. But this is in general beyond the scope of a first year grad course. And if one is advanced enough to be doing this, then they are typically fluent in moving between classical and constructive paradigms, anyway.

(e): but most mathematics is done in classical logic. Since the math courses will in general be taught by the math dep't, many who will assume LEM/ choice/ double negation, they have the choice of altering pedagogy for a very small population, for which the difference is negligible, or continuing to prep the large majority of students for how math is "typically" done. if one accepts classical mathematics, it is easy in principle to make students aware of the general issues of classic vs constructive mathematics. But one would never limit themselves, just like a programmer would be unlikely to only use functional paradigms if they "believed" in object oriented paradigms/ state. Similarly, one is unlikely to not use double negation, choice,etc if one sees nothing wrong with it.

Let me offer a few thoughts, specific to mathematical pedagogy in computer science (in particular for the states):

(a): a typical BS computer science program barely has time to touch on computational theory, further still computational theory in which the difference between classic and constructive mathematics matters. For reference, here is a sampling of the typical undergrad CS major within the first three years, easily verified via looking at syllabi:

Math: calculus, linear algebra, ODEs, physics, graph theory/combinatorics, probability, optimization, numerical analysis in addition to computer science-specific courses, in particular data structures/algorithms/assembly/web design/OS/theory.

That leaves approximately one year- in addition to general education requirements- for extra math courses.

(b): the CS major thus has a choice between extra math courses and courses to boost their skillset/resume. Since a majority of students will not go into academia, it is clear that it is better to take CS electives, such as NLP, AI, etc. Why reshape mathematics pedagogy for these students?

(c): even for those who do, their current math education is approximately equivalent to a second-year maths student. The next jump, with respect to theory, is grad first-year theory A and theory B (roughly algorithms and logic/semantics). Issues of constructive logic will mostly affect theory B (in practice, if not in principle). This brings us to our next point...

(d): the difference in constructive, vs classical logic, will roughly come down to choice, LEM, or double negation (in fact these are equivalent given that the rest of the system is typical). But if one is mathematically advanced enough to be doing work in theory B, this is generally a small modification- simply do not allow proofs via these methods. So in fact, especially for computer science (it's another story, for, say real analysis), the difference tends to be small.

*unless one is actually proving things about certain logic. But this is in general beyond the scope of a first-year grad course. And if one is advanced enough to be doing this, then they are typically fluent in moving between classical and constructive paradigms, anyway.

(e): but most mathematics is done in classical logic. Since the math courses will in general be taught by the math dep't, many who will assume LEM/choice/double negation, they have the choice of altering pedagogy for a very small population, for which the difference is negligible, or continuing to prep the large majority of students for how math is "typically" done. If one accepts classical mathematics, it is easy in principle to make students aware of the general issues of classic vs constructive mathematics. But one would never limit themselves, just like a programmer would be unlikely to only use functional paradigms if they "believed" in object-oriented paradigms/states. Similarly, one is unlikely to not use double negation, choice, etc. if one sees nothing wrong with it.

added 277 characters in body
Source Link
emesupap
  • 3.1k
  • 1
  • 7
  • 18

Let me offer a few thoughts, specific to mathematical pedagogy in computer science (in particular for the states):

(a): a typical BS computer science program barely has time to touch on computational theory, further still computational theory in which the difference between classic and constructive mathematics matters. For reference, here is a sampling of the typical undergrad CS major within the first three years, easily verified via looking at syllabi:

math: calc, linear algebra, odes, physics, graph theory/ combinatorics, probability, optimization, numberical analysis in addition to computer science specific courses, in particular data structures/ algorithms/assembly/ web design/OS/theory.

that leaves approximately one year- in addition to general education requirements- for extra math courses.

(b): the CS major thus has a choice between extra math courses and courses to boost their skillset/resume. Since a majority of students will not go into academia, it is clear that it is better to take cs electives, such as nlp, ai, etc. why reshape mathematics pedagogy for these students?

(c): even for those who do, their current math education is approximately equivalent to a second year maths student. the next jump, with respect to theory, is grad first year theory a and theory b ( roughly algorithms and logic/semantics). Issues of constructive logic will mostly affect theory b (in practice, if not in principle). that brings us to our next point...

(d): the difference in constructive, vs classical logic, will roughly come down to choice, lem, or double negation ( in fact these are equivalent given that the rest of the system is typical). But if one is mathematically advanced enough to be doing work in theory b, this is generally a small modification- simply do not allow proofs via these methods. so in fact, especially for computer science (its another story, for, say real analysis), the difference tends to be small.

*unless one is actually proving things about certain logics. But this is in general beyond the scope of a first year grad course. And if one is advanced enough to be doing this, then they are typically fluent in moving between classical and constructive paradigms, anyway.

(e): but most mathematics is done in classical logic. Since the math courses will in general be taught by the math dep't, many who will assume LEM/ choice/ double negation, they have the choice of altering pedagogy for a very small population, for which the difference is negligible, or continuing to prep the large majority of students for how math is "typically" done. if one accepts classical mathematics, it is easy in principle to make students aware of the general issues of classic vs constructive mathematics. But one would never limit themselves, just like a programmer would be unlikely to only use functional paradigms if they "believed" in object oriented paradigms/ state. Similarly, one is unlikely to not use double negation, choice,etc if one sees nothing wrong with it.

Let me offer a few thoughts, specific to mathematical pedagogy in computer science (in particular for the states):

(a): a typical BS computer science program barely has time to touch on computational theory, further still computational theory in which the difference between classic and constructive mathematics matters. For reference, here is a sampling of the typical undergrad CS major within the first three years, easily verified via looking at syllabi:

math: calc, linear algebra, odes, physics, graph theory/ combinatorics, probability, optimization, numberical analysis in addition to computer science specific courses, in particular data structures/ algorithms/assembly/ web design/OS/theory.

that leaves approximately one year- in addition to general education requirements- for extra math courses.

(b): the CS major thus has a choice between extra math courses and courses to boost their skillset/resume. Since a majority of students will not go into academia, it is clear that it is better to take cs electives, such as nlp, ai, etc. why reshape mathematics pedagogy for these students?

(c): even for those who do, their current math education is approximately equivalent to a second year maths student. the next jump, with respect to theory, is grad first year theory a and theory b ( roughly algorithms and logic/semantics). Issues of constructive logic will mostly affect theory b (in practice, if not in principle). that brings us to our next point...

(d): the difference in constructive, vs classical logic, will roughly come down to choice, lem, or double negation ( in fact these are equivalent given that the rest of the system is typical). But if one is mathematically advanced enough to be doing work in theory b, this is generally a small modification- simply do not allow proofs via these methods. so in fact, especially for computer science (its another story, for, say real analysis), the difference tends to be small.

(e): but most mathematics is done in classical logic. Since the math courses will in general be taught by the math dep't, many who will assume LEM/ choice/ double negation, they have the choice of altering pedagogy for a very small population, for which the difference is negligible, or continuing to prep the large majority of students for how math is "typically" done. if one accepts classical mathematics, it is easy in principle to make students aware of the general issues of classic vs constructive mathematics. But one would never limit themselves, just like a programmer would be unlikely to only use functional paradigms if they "believed" in object oriented paradigms/ state.

Let me offer a few thoughts, specific to mathematical pedagogy in computer science (in particular for the states):

(a): a typical BS computer science program barely has time to touch on computational theory, further still computational theory in which the difference between classic and constructive mathematics matters. For reference, here is a sampling of the typical undergrad CS major within the first three years, easily verified via looking at syllabi:

math: calc, linear algebra, odes, physics, graph theory/ combinatorics, probability, optimization, numberical analysis in addition to computer science specific courses, in particular data structures/ algorithms/assembly/ web design/OS/theory.

that leaves approximately one year- in addition to general education requirements- for extra math courses.

(b): the CS major thus has a choice between extra math courses and courses to boost their skillset/resume. Since a majority of students will not go into academia, it is clear that it is better to take cs electives, such as nlp, ai, etc. why reshape mathematics pedagogy for these students?

(c): even for those who do, their current math education is approximately equivalent to a second year maths student. the next jump, with respect to theory, is grad first year theory a and theory b ( roughly algorithms and logic/semantics). Issues of constructive logic will mostly affect theory b (in practice, if not in principle). that brings us to our next point...

(d): the difference in constructive, vs classical logic, will roughly come down to choice, lem, or double negation ( in fact these are equivalent given that the rest of the system is typical). But if one is mathematically advanced enough to be doing work in theory b, this is generally a small modification- simply do not allow proofs via these methods. so in fact, especially for computer science (its another story, for, say real analysis), the difference tends to be small.

*unless one is actually proving things about certain logics. But this is in general beyond the scope of a first year grad course. And if one is advanced enough to be doing this, then they are typically fluent in moving between classical and constructive paradigms, anyway.

(e): but most mathematics is done in classical logic. Since the math courses will in general be taught by the math dep't, many who will assume LEM/ choice/ double negation, they have the choice of altering pedagogy for a very small population, for which the difference is negligible, or continuing to prep the large majority of students for how math is "typically" done. if one accepts classical mathematics, it is easy in principle to make students aware of the general issues of classic vs constructive mathematics. But one would never limit themselves, just like a programmer would be unlikely to only use functional paradigms if they "believed" in object oriented paradigms/ state. Similarly, one is unlikely to not use double negation, choice,etc if one sees nothing wrong with it.

Source Link
emesupap
  • 3.1k
  • 1
  • 7
  • 18

Let me offer a few thoughts, specific to mathematical pedagogy in computer science (in particular for the states):

(a): a typical BS computer science program barely has time to touch on computational theory, further still computational theory in which the difference between classic and constructive mathematics matters. For reference, here is a sampling of the typical undergrad CS major within the first three years, easily verified via looking at syllabi:

math: calc, linear algebra, odes, physics, graph theory/ combinatorics, probability, optimization, numberical analysis in addition to computer science specific courses, in particular data structures/ algorithms/assembly/ web design/OS/theory.

that leaves approximately one year- in addition to general education requirements- for extra math courses.

(b): the CS major thus has a choice between extra math courses and courses to boost their skillset/resume. Since a majority of students will not go into academia, it is clear that it is better to take cs electives, such as nlp, ai, etc. why reshape mathematics pedagogy for these students?

(c): even for those who do, their current math education is approximately equivalent to a second year maths student. the next jump, with respect to theory, is grad first year theory a and theory b ( roughly algorithms and logic/semantics). Issues of constructive logic will mostly affect theory b (in practice, if not in principle). that brings us to our next point...

(d): the difference in constructive, vs classical logic, will roughly come down to choice, lem, or double negation ( in fact these are equivalent given that the rest of the system is typical). But if one is mathematically advanced enough to be doing work in theory b, this is generally a small modification- simply do not allow proofs via these methods. so in fact, especially for computer science (its another story, for, say real analysis), the difference tends to be small.

(e): but most mathematics is done in classical logic. Since the math courses will in general be taught by the math dep't, many who will assume LEM/ choice/ double negation, they have the choice of altering pedagogy for a very small population, for which the difference is negligible, or continuing to prep the large majority of students for how math is "typically" done. if one accepts classical mathematics, it is easy in principle to make students aware of the general issues of classic vs constructive mathematics. But one would never limit themselves, just like a programmer would be unlikely to only use functional paradigms if they "believed" in object oriented paradigms/ state.