La tarea ideal de los graduados de CS es formar parte de un equipo científico / de ingeniería que resuelve un problema del mundo real al modelarlo y realizar un cálculo de acuerdo con el modelo (por ejemplo, el problema es predecir algún evento en un sistema dinámico complejo) .
- Los científicos junto con los expertos de dominio en el área objetivo crean un modelo del problema (en nuestro caso, un modelo del sistema).
- Para resolver el problema, primero se debe adaptar el modelo para la evaluación numérica, aquí los científicos trabajan junto con los chicos de CS. Digamos, un sistema se comporta de manera no lineal, pero los científicos tienen una idea de cómo aproximar el comportamiento del sistema, los expertos en el dominio pueden ayudarlos a hacer la aproximación apropiada descartando los factores realmente sin importancia, y los chicos de CS aseguran que La solución aproximada es comprensible y puede implementarse en software.
- Los chicos de CS ahora están a cargo de implementar el prototipo del modelo en software y finalizar la especificación del algoritmo de solución. Luego se lo entregan a los desarrolladores. En caso de que encuentren algún problema al crear un prototipo, lo escalarán a los científicos.
- Una vez que un prototipo funciona, comienza el desarrollo. Si alguien del equipo de desarrollo tiene un problema de alto nivel con la forma en que funciona la solución computacional, la escalan a los chicos de CS, quienes a su vez lo escalan a los expertos de dominio o los científicos.
- Finalmente tenemos un producto de software que puede producir una solución computacional a nuestro problema.
Pero ese es un caso ideal.
En un mundo real, un graduado de CS puede ser la única persona que presente un modelo del problema, lo prototee y luego implemente una solución en software.
- ¿Cuánto de aprender un lenguaje de programación de computadoras (como C ++) tiene sus raíces en las matemáticas, es decir, ¿necesito tener un cerebro matemáticamente competente para escribir programas?
- ¿Cómo convertiría un número binario en un número decimal en la menor complejidad de tiempo?
- ¿Puede la ciencia / psicología cognitiva ayudarlo a comprender otras áreas más rápidamente, como las matemáticas, la física y la informática?
- Si [matemática] f (5) = 12 [/ matemática] y [matemática] f (10) = 18 [/ matemática] ¿qué significa [matemática] f (20) =? [/ Matemática] Cuándo (a) [matemática] f [/ math] es una función exponencial y (b) [math] f [/ math] es una función de potencia?
- ¿Qué notación asintótica se usa con más frecuencia para los algoritmos y por qué?
También hay algunas tareas en un SDLC empresarial normal donde se puede necesitar una persona con algunas habilidades de CS. Desde mi experiencia en software empresarial:
- Recuerdo haber resuelto problemas de rendimiento localizando e identificando el evento de causa raíz a través de la correlación entre varias métricas de rendimiento reunidas en diferentes partes de un gran sistema distribuido (no matemática avanzada, obviamente, sino estadísticas básicas aplicadas).
- También conocí algunos casos en los que se tenía que implementar y mantener un analizador / lexer personalizado (¡la teoría del compilador es un área central de CS!)
- Varios casos en los que la implementación de la criptografía tuvo que hacerse y validarse (no es un área 100% CS, pero muy cercana).