¿Cómo utilizar mi plan de estudios de Cálculo AP en la escuela para mi ventaja como desarrollador de software? ¿Qué conceptos puedo intentar aplicar a la programación?

Dos conceptos que puede aplicar a la programación a partir del cálculo son la persistencia y la frustración.

En realidad, el cálculo es muy beneficioso para ayudar a resolver problemas, ya que le enseña a pensar sobre los problemas de manera diferente y separar las cosas. Los problemas en la vida no siempre se pueden integrar o diferenciar limpiamente, pero a menudo se pueden usar métodos numéricos para obtener muy buenas aproximaciones. Es mucho más factible usar una computadora para resolver un problema con métodos numéricos y estimaciones que iterar a mano. Tal vez le ayudará a pensar en cómo sumar el interés en un producto financiero complejo, o tal vez encontrar algún tipo de acceso directo que acelere el tiempo de procesamiento en un cálculo complejo.

El cálculo será especialmente útil si se trata de algún software relacionado con ingeniería mecánica, electrónica, sistemas de control o física.

Para ampliar la respuesta de Brian Feldman, diría que puedes jugar escribiendo una biblioteca numérica de juguete.

Comience con, digamos, una función para calcular la raíz cuadrada de un número [matemática] n [/ matemática], correcta para decir, 5 lugares decimales ([matemática] \ epsilon = 0.00001 [matemática]). ¿Cómo harías esto? Quizás para empezar, podría probar cada número de 5 decimales entre 0 yn, y elegir el mejor. Ahora piense en lo eficiente que es esto. Probarás 100,000 * n números. Bueno, tu próximo paso podría ser decir, “oye, no creo que necesite probar todos estos números, tal vez sabré dentro de 1-2 iteraciones de haber llegado a mi respuesta, que he llegado a mi respuesta “. Este enfoque debería tomar aproximadamente 100,000 * sqrt (n) iteraciones, mucho mejor. A continuación, intente utilizar un truco común de búsqueda de ciencias de la computación para reducir esto a aproximadamente (n) iteraciones (los matemáticos lo llamarán “convergencia lineal”: el número de iteraciones es aproximadamente proporcional al número de dígitos de su entrada). Ahora, ponte el sombrero de matemático: ¿puedes hacerlo mucho mejor que eso? Alguien con conocimientos matemáticos de nivel de cálculo AP en realidad tiene todas las herramientas necesarias para obtener una solución que requiere aproximadamente iteraciones log (log (n)) (es decir, “convergencia cuadrática”).

Luego, tal vez podría escribir una función llamada “fPrime” que toma como entrada otra función “f” y un valor “x”, y genera f ‘(x), la derivada de f evaluada en x. ¿Qué propiedades debe tener “f” para que esto sea un problema razonable?

Pruebe cosas similares para integrales, encuentre la raíz de una ecuación polinómica, etc. A continuación, tal vez podría pasar al producto vectorial de puntos matemáticos, multiplicación de matrices, estadísticas básicas como media, varianza, etc.

Para cada uno de estos problemas, debe pensar en:
a) ¿Qué son entradas válidas e inválidas (por ejemplo: sqrt no funciona con valores negativos)? Especialmente si las entradas son funciones, ¿qué propiedades deben tener estas funciones de entrada?
b) ¿Hay partes de la recta numérica donde estas funciones se comportan de manera diferente? ¿Es su solución lo suficientemente general? (Nota: Mis soluciones sugeridas para la raíz cuadrada se rompen intencionalmente para valores menores que 1, ¿cómo solucionaría esto?).
c) Sea cual sea el tipo de datos que utilice (flotante, doble, etc.), habrá una cantidad finita de precisión: qué problemas se encuentran con respecto a la precisión numérica. ¿Qué pasa si sus entradas son realmente pequeñas o realmente grandes? Si se trata de problemas relacionados con vectores / matrices, piense en los problemas que podría encontrar si su vector tiene millones de puntos de datos. ¿Cómo cambian estos problemas su elección de algoritmo?
d) Y, por último, existe una forma mejor (más rápida) de resolver el problema.

Es un tipo de pensamiento que se beneficiará del desarrollo: lógico, bien definido y enfocado.

Las computadoras fueron creadas para las matemáticas que no navegan por la web y descargan películas, su funcionamiento interno se creó utilizando fundamentos matemáticos. Para comprenderlos fundamentalmente, debe ser capaz de leer, escribir y conversar en ideas matemáticas. No comienzas a desarrollar estas habilidades hasta que hayas estudiado matemáticas avanzadas. Las matemáticas avanzadas le enseñan cómo pensar en patrones que desafían el análisis matemático elemental, como 1 / (infinito) == 0 … las computadoras pueden realizar más operaciones matemáticas en un segundo que cualquier persona podría hacer en la vida. En otras palabras, necesita saber que no se desviarán de la precisión, en segundos, horas, días, meses, años … las matemáticas discretas e infinitas pueden ayudar …

Más adelante en su plan de estudios, se beneficiará de las matemáticas avanzadas, de las cuales se requiere la introducción al cálculo para comprender. Es difícil de explicar a los no iniciados y una vez que puedes verlo realmente, es porque estás en o por encima del nivel requerido para comprender.