Muchos dominios de aplicación tienen matemáticas específicas que deben entenderse para que funcionen en ellos, pero las cosas que se aplican a todos los programadores son las que subyacen a las computadoras digitales y la teoría computacional. No tiene que saber todo esto, pero conocer cualquiera de ellos lo ayudará independientemente del problema en el que esté trabajando.
0. Aritmética. Increíble cuántas personas no pueden hacerlo.
1. Conceptos básicos de la representación de datos: bases numéricas, complemento de dos, coma flotante, etc. De lo contrario, quedará atrapado todo el tiempo por interrupciones en la abstracción
2. Teoría de gráficos, porque casi todos los programas modernos tienen algún tipo de gráfico como su estructura de datos principal.
3. Inducción, porque es vital poder razonar sobre la recursividad y así es como se hace. Ver también el punto 3.
4. Máquinas de estados finitos. Todos los programas de computadora en realidad son máquinas de estados finitos y, en muchos casos, modelar el programa de esta manera ayuda a comprenderlo.
5. Computabilidad e intractabilidad: la prueba del teorema de detención y de que SAT es NP-completo y lo que esto implica.
6. Teoría básica del tipo formal. No es necesario dejarse llevar, pero la familiaridad con la covarianza y contravarianza del sistema de tipos Hindley-Milner ayuda a comprender incluso lenguajes como C ++ y Java, cuyos sistemas de tipos son mucho menos formales
- Cómo resolver este problema particular de programación dinámica ACM-ICPC
- ¿Cómo encontramos la longitud total del camino de un proyectil?
- Estoy tomando SL Maths para el Diploma IB, ¿sería esto suficiente para universidades como UCB, UCLA, GaTech for Computer Science?
- ¿Podría la programación de aprendizaje y las matemáticas cambiar mis patrones de pensamiento?
- ¿Cuáles son las fórmulas matemáticas para expresiones informáticas como: x = x / 5?