Skip to main content
deleted 324 characters in body; deleted 1 character in body
Source Link
Alexander Gruber
  • 1.7k
  • 1
  • 12
  • 23
  • This entire discipline is incredibly useful, and as much of it should be included as possible.

  • Emphasize connection to discrete probability. (I am assuming that these students would still have to take Prob & Stats as an external course, like most other majors do.)

  • Lexographic, colexicographic, and quasi-lexographic ordering, both in general and for monomials

  • Of course, some graph theory. Include depth/breadth first searches, Dijkstra's algorithm, Kruskal's algorithm.

  • The basics of linear algebra would, of course, need to be introduced before getting into the numerical part.

  • Solving Solving systems of linear equations is important. So ispervasive, and solving them quickly. This discipline is exceedingly well motivated for comp sci studentsdefinitely important.

  • For an example of applications, return to a graph theory for a moment to show them a linear algebraic graph drawing algorithm

  • Linear programming / convex analysis if there's time

  • This would be the last topic. This should be presented as a natural synthesis of everything learned so far. Anything in graphics programming requires a good understanding of vectors, as do many scientific programming applications. Learning how to take normals, how to compute projections, how to navigate vector fields, etc. all has direct practical value. Learning how to think about vectors in general does too. Due to time constraints, I wouldn't try to get any more in depth than that.

This would be the last topic. This should be presented as a natural synthesis of everything learned so far. Anything in graphics programming requires a good understanding of vectors, as do many scientific programming applications. Learning how to take normals, how to compute projections, how to navigate vector fields, etc. all has direct practical value. Learning how to think about vectors in general does too. Due to time constraints, I wouldn't try to get any more in depth than that.

  • This entire discipline is incredibly useful, and as much of it should be included as possible.

  • Emphasize connection to discrete probability. (I am assuming that these students would still have to take Prob & Stats as an external course, like most other majors do.)

  • Lexographic, colexicographic, and quasi-lexographic ordering, both in general and for monomials

  • Of course, some graph theory. Include depth/breadth first searches, Dijkstra's algorithm, Kruskal's algorithm.

  • The basics of linear algebra would, of course, need to be introduced before getting into the numerical part.

  • Solving systems of equations is important. So is solving them quickly. This discipline is exceedingly well motivated for comp sci students.

  • For an example of applications, return to a graph theory for a moment to show them a linear algebraic graph drawing algorithm

  • Linear programming / convex analysis if there's time

  • This would be the last topic. This should be presented as a natural synthesis of everything learned so far. Anything in graphics programming requires a good understanding of vectors, as do many scientific programming applications. Learning how to take normals, how to compute projections, how to navigate vector fields, etc. all has direct practical value. Learning how to think about vectors in general does too. Due to time constraints, I wouldn't try to get any more in depth than that.
  • Lexographic, colexicographic, and quasi-lexographic ordering, both in general and for monomials

  • Of course, some graph theory. Include depth/breadth first searches, Dijkstra's algorithm, Kruskal's algorithm.

  • The basics of linear algebra would, of course, need to be introduced before getting into the numerical part. Solving systems of linear equations is pervasive, and solving them quickly is definitely important.

  • For an example of applications, return to a graph theory for a moment to show them a linear algebraic graph drawing algorithm

  • Linear programming / convex analysis if there's time

This would be the last topic. This should be presented as a natural synthesis of everything learned so far. Anything in graphics programming requires a good understanding of vectors, as do many scientific programming applications. Learning how to take normals, how to compute projections, how to navigate vector fields, etc. all has direct practical value. Learning how to think about vectors in general does too. Due to time constraints, I wouldn't try to get any more in depth than that.

added 22 characters in body
Source Link
Alexander Gruber
  • 1.7k
  • 1
  • 12
  • 23
  • The basics of linear algebra would, of course, need to be introduced before getting into the numerical part.

  • Solving systems of equations is important. So is solving them quickly. This discipline is exceedingly well motivated for comp sci students.

  • Come backFor an example of applications, return to a graph theory here with somefor a moment to show them a linear algebraic graph drawing algorithms.algorithm

  • Linear programming / convex analysis if there's time

  • This would be the last topic. AnythingThis should be presented as a natural synthesis of everything learned so far. Anything in graphics programming requires a good understanding of vectors, as do many scientific programming applications. Learning how to take normals, how to compute projections, how to navigate vector fields, etc. all has direct practical value. Learning how to think about vectors in general does too. Due to time constraints, I wouldn't try to get any more in depth than that.
  • The basics of linear algebra would, of course, need to be introduced before getting into the numerical part.

  • Solving systems of equations is important. So is solving them quickly. This discipline is exceedingly well motivated for comp sci students.

  • Come back to a graph theory here with some linear algebraic graph drawing algorithms.

  • Linear programming / convex analysis if there's time

  • This would be the last topic. Anything in graphics programming requires a good understanding of vectors. Learning how to take normals, how to compute projections, how to navigate vector fields, etc. all has direct practical value. Learning how to think about vectors in general does too. Due to time constraints, I wouldn't try to get any more in depth than that.
  • The basics of linear algebra would, of course, need to be introduced before getting into the numerical part.

  • Solving systems of equations is important. So is solving them quickly. This discipline is exceedingly well motivated for comp sci students.

  • For an example of applications, return to a graph theory for a moment to show them a linear algebraic graph drawing algorithm

  • Linear programming / convex analysis if there's time

  • This would be the last topic. This should be presented as a natural synthesis of everything learned so far. Anything in graphics programming requires a good understanding of vectors, as do many scientific programming applications. Learning how to take normals, how to compute projections, how to navigate vector fields, etc. all has direct practical value. Learning how to think about vectors in general does too. Due to time constraints, I wouldn't try to get any more in depth than that.
added 22 characters in body
Source Link
Alexander Gruber
  • 1.7k
  • 1
  • 12
  • 23

It should be sufficient to teach how to do these operations on polynomials and trig functions (since they are easy and common), some basic properties (such as linearity), and the Fundamental Theorem of Calculus. Leave out techniques like partial fractions and trigonometric substitution - these are not conceptually important, they can use Mathematica for that.

  • Emphasize iterative methods and order of convergence

  • Include an in depth discussion of Monte Carlo integration and its generalization to other Monte Carlo algorithms. Teach them to solve problems by simulating data.

  • Cover asymptotics, Newton's method, truncation error (including Taylor's theorem here if it hasn't been covered already), analysis of algorithms

  • In a dream world, I'd also include discrete fourier transform on here, but this may not be feasible with only a pragmatic understanding of calculus. Perhaps best to leave for a later course for those who wish to takelearn it.

  • Logic itself is directly applicable to computer science.

  • Elementary set theory should be very intuitive to anyone who is used to working with arrays and lists all the time.

  • Direct, contrapositive, and contradiction proof methods will be needed for further topics. There should be a heavy emphasis on induction. (Recursion is basically induction.)

That's it. Those fivesix topics should be enough for a very productive year long, five days a week class. I would caution against adding any more, as I think it's better to learn a few topics in depth than fly through a ton with only a shallow understanding.

It should be sufficient to teach how to do these operations on polynomials and trig functions (since they are easy and common), some basic properties (such as linearity), and the Fundamental Theorem of Calculus. Leave out techniques like trigonometric substitution - these are not conceptually important, they can use Mathematica for that.

  • Emphasize iterative methods and order of convergence

  • Include an in depth discussion of Monte Carlo integration and its generalization to other Monte Carlo algorithms. Teach them to solve problems by simulating data.

  • Cover asymptotics, Newton's method, truncation error (including Taylor's theorem here if it hasn't been covered already), analysis of algorithms

  • In a dream world, I'd also include discrete fourier transform on here, but this may not be feasible with only a pragmatic understanding of calculus. Perhaps best to leave for a later course for those who wish to take it.

  • Logic itself is directly applicable to computer science.

  • Elementary set theory should be very intuitive to anyone who is used to working with arrays and lists all the time.

  • Direct, contrapositive, and contradiction proof methods will be needed for further topics. There should be a heavy emphasis on induction.

That's it. Those five topics should be enough for a very productive year long, five days a week class. I would caution against adding any more, as I think it's better to learn a few topics in depth than fly through a ton with only a shallow understanding.

It should be sufficient to teach how to do these operations on polynomials and trig functions (since they are easy and common), some basic properties (such as linearity), and the Fundamental Theorem of Calculus. Leave out techniques like partial fractions and trigonometric substitution - these are not conceptually important, they can use Mathematica for that.

  • Emphasize iterative methods and order of convergence

  • Include an in depth discussion of Monte Carlo integration and its generalization to other Monte Carlo algorithms. Teach them to solve problems by simulating data.

  • Cover asymptotics, Newton's method, truncation error (including Taylor's theorem here if it hasn't been covered already), analysis of algorithms

  • In a dream world, I'd also include discrete fourier transform on here, but this may not be feasible with only a pragmatic understanding of calculus. Perhaps best to leave for a later course for those who wish to learn it.

  • Logic itself is directly applicable to computer science.

  • Elementary set theory should be very intuitive to anyone who is used to working with arrays and lists all the time.

  • Direct, contrapositive, and contradiction proof methods will be needed for further topics. There should be a heavy emphasis on induction. (Recursion is basically induction.)

That's it. Those six topics should be enough for a very productive year long, five days a week class. I would caution against adding any more, as I think it's better to learn a few topics in depth than fly through a ton with only a shallow understanding.

added 367 characters in body
Source Link
Alexander Gruber
  • 1.7k
  • 1
  • 12
  • 23
Loading
Source Link
Alexander Gruber
  • 1.7k
  • 1
  • 12
  • 23
Loading