¿A qué disciplina pertenece la informática? [cerrado]


15

¿La informática es ciencia, matemática aplicada, ingeniería, arte, filosofía? "Otro"?

Para proporcionar antecedentes, aquí está la publicación del blog de Steven Wartik para Scientific American titulada " No soy un verdadero científico, y está bien ". El artículo cubre algunos buenos temas para esta pregunta, pero deja abierto más de lo que responde.

Si puede pensar en la disciplina, ¿cómo encajaría la informática en su definición? ¿La disciplina de la informática debe basarse en lo que hacen los programadores o en lo que hacen los académicos ? ¿Qué tipo de respuestas obtienes de personas que parecen haber pensado profundamente en esto? ¿Qué razones dan?


1
Académico que he conocido y que dice que la informática es una ciencia tiene una razón completamente diferente para explicar por qué.
Macneil

55
La informática es ciencia política con un poco menos de política.
Trabajo

1
la informática es una rama de las matemáticas aplicadas ... "ciencia" implica el uso del método científico, que no existe en la informática; pero fue nombrado cuando cada nueva disciplina quería poner la palabra ciencia al final de su nombre.
suciedad roja

2
@ red-dirt Eso no es cierto. Hay un método científico en CompSci; tiene experimentos, pruebas formales, etc. La mayoría de los científicos informáticos expertos están en matemática y lógica formal (ver: cálculo lambda, el problema de detención, etc., etc.), y publican artículos en revistas revisadas por pares. No los confunda con personas que inventan "metodologías", que no son científicos según ninguna definición de la palabra.
Andres

1
@ red-dirt Al igual que AndresF, en el lado de la aplicación más práctica, el método científico básico (hipótesis, prueba, verificación, repetición) entra en juego durante la depuración, que generalmente ocupa la mayor parte del tiempo dedicado a la programación.
Izkata

Respuestas:


30

Hay dos disciplinas de TI distintas:

  • Informática: es el estudio de disciplina de las computadoras y la computación utilizando el método científico.

  • Ingeniería de software: es la disciplina de diseñar e implementar software siguiendo los principios de ingeniería adecuados.

Los dos se superponen un poco, pero la distinción es realmente sobre los resultados deseados de la ciencia versus la ingeniería. El resultado deseado de una disciplina científica es el conocimiento. El resultado deseado de una disciplina de ingeniería son las cosas que funcionan.

Entonces para responder a su pregunta:

¿La informática es ciencia, matemática aplicada, ingeniería, arte, filosofía? "Otro"?

La informática es ciencia ... cuando se hace correctamente. Sin embargo, al igual que otras disciplinas, CS se superpone con Matemáticas, Ingeniería, Ciencias Físicas, Ciencias Sociales, Filosofía, etc.

También agregaría que lo que hacen la mayoría de los programadores no es ni Ciencias de la Computación ni Ingeniería de Software. Es más como lo que hace un artesano.

Y es triste decirlo, ni la profesión académica en informática o la ingeniería de software son tan rigurosas como las disciplinas más antiguas de ciencia e ingeniería. (Hay campos de la informática que son tradicionalmente rigurosos; por ejemplo, los que tienen una sólida base matemática. Pero para muchos campos, es simplemente demasiado difícil / costoso hacer estudios científicos adecuados sobre las preguntas que realmente importan).


1
También está la ingeniería de hardware, alguien tiene que diseñar las computadoras físicas para que el software se ejecute, y eso es realmente una (gran) subdisciplina de Ingeniería Electrónica.
Donal Fellows

+1 por la analogía del artesano, me di cuenta de que ese es el concepto más exacto para explicar lo que hace un CS of Software Engineer. Aquí hay un enlace para un libro gratuito de O'Reilly al respecto. apprenticeship-patterns.labs.oreilly.com/ch01.html
romeroqj

"Y es triste decirlo, ni la profesión académica en informática o la ingeniería de software son tan rigurosas como las disciplinas más antiguas de ciencia e ingeniería": no estoy de acuerdo con esta afirmación. Entre otras cosas, si la informática no fuera rigurosa, no tendríamos avances en lenguajes de programación, compiladores (y toda la teoría del lenguaje formal detrás de ellos), criptografía, etc. Todas estas aplicaciones tienen una base sólida que se ha desarrollado principalmente en la academia.
Giorgio

@Giorgio - Es una pena que no hayas leído lo que escribí inmediatamente después de la oración que citaste ...
Stephen C

@Stephen C: Lo leí, y todavía no estoy convencido de que la informática sea menos rigurosa que otras ciencias (pero puedo estar equivocado, por supuesto). O tal vez uno debería primero definir qué considera "científico" y "riguroso" y qué no, pero supongo que esto podría requerir una larga discusión.
Giorgio

12

Los programadores rara vez "hacen informática". En su mayoría utilizan resultados de "ingeniería de software", que es una disciplina de ingeniería, obviamente.

Aparte de eso, la informática es matemática aplicada. Si compara CS con algo indudablemente perteneciente a las matemáticas aplicadas, notará mucho parecido.

Los informáticos diseñan y estudian formas de computación (algoritmos), tomando la mayor parte de la teoría de las Matemáticas (lógica, teoría de grafos, combinatoria, etc.) y contribuyendo a ella al mismo tiempo. Al igual que el resto de las matemáticas aplicadas.

Evalúan teóricamente las propiedades de estos modelos y algoritmos, y realizan experimentos de modelado (programas de prueba de escritura). Al igual que los matemáticos aplicados simulan el flujo de líquido en tubos en grupos, los informáticos usan computadoras para experimentar con implementaciones de sus algoritmos. Los resultados de estos experimentos van directamente a la producción: ya sea a una refinería de petróleo o a un software para análisis de existencias.

En la universidad que terminé, ni siquiera hay un departamento especial para ciencias de la computación: entre otros dominios que no son de computadoras, la cátedra de ciencias de la computación es parte del Departamento de Matemáticas Aplicadas.


pero en otras universidades, Computer Science es un departamento separado dentro de la Facultad de Matemáticas, un departamento de la Facultad de Ingeniería, la Facultad de Ciencias, o ... ninguno de los anteriores. Estos son problemas administrativos / organizativos y tienen poco que ver con el material del tema real.
Stephen C

@Stephen, por eso especifiqué la universidad, en lugar de decir "en la mayoría de las universidades" o "en muchas universidades" :-) Ese es solo un pequeño ejemplo, no la esencia de la respuesta.
P Shved

1
Seguro que es un "pequeño ejemplo", pero mi punto es que no es un ejemplo representativo, y ni siquiera es particularmente relevante para su argumento. Para ilustrar, la Universidad donde trabajo está en el proceso de reestructuración de las Facultades ... no debido a un pensamiento profundo sobre lo que se relaciona con qué ... sino para reducir los costos administrativos . Hace unos años, las escuelas CS y Elec Eng se combinaron por la misma razón .
Stephen C

Como dije en mi respuesta inicial, la informática es una disciplina matemática aplicada que se ocupa del diseño y la aplicación de autómatas computacionales. La programación no es informática. El software es un medio por el cual implementar autómatas computacionales sin sacar un soldador (cualquier programa puede implementarse usando lógica secuencial y combinatoria dado suficiente espacio real). La arquitectura de von Neumann era diferente de las arquitecturas que la precedieron en que es un autómata de propósito general que sirve como base para crear autómatas de propósito especial "blandos".
bit-twiddler

1
@ bit-twiddler: su definición es demasiado limitada. Excluye muchas áreas académicas que tradicionalmente se clasifican como "informática".
Stephen C

5

Informática es un término que en estos días cubre muchas, muchas cosas:

  • Los maestros artesanos que trabajan para otros en función de sus experiencias con sus herramientas (y que tienen aprendices, etc.).
  • Los herreros inventan y crean nuevas herramientas para los artesanos.
  • Los investigadores desarrollaron nuevas aleaciones y otros materiales, como el plástico, para los herreros de herramientas.
  • Los científicos teóricos descubren cómo funcionan las cosas para que los fabricantes de aleaciones sepan cómo funcionan sus herramientas.

Observe cómo todos los anteriores tienen nombres distintos en lugar de solo "informáticos". La diferencia es que la informática es demasiado nueva para que se establezca un nombre.


El punto 2 es más un ciempiés de herramientas , pero esta respuesta es correcta :)
ZJR

1

En primer lugar, es ciencia de la computación . Esto trata con las matemáticas detrás del cálculo.
Hay otras disciplinas que están más orientadas a la ingeniería.

La diferencia es la misma que cualquier otra disciplina relacionada con la ciencia y la ingeniería. Uno es sobre precisión, otro sobre precisión. La ciencia de la computación es teórica, otras son la ciencia aplicada a los problemas: ramas de la ingeniería.


1
MIT no está de acuerdo contigo eecs.mit.edu
Armand

@Alison, arregle la entrada wiki ( en.wikipedia.org/wiki/Computer_science ) también.
CMR


0

La informática es una rama de las matemáticas aplicadas que se ocupa del diseño y la aplicación de autómatas computacionales. La ingeniería de software es el subconjunto adecuado de la informática que se ocupa del diseño formal y la construcción de código para la arquitectura von Neumann. La arquitectura von Neumann es solo una forma de implementar una máquina informática. Por ejemplo, la máquina utilizada para descifrar mensajes codificados por Enigma no era una máquina von Neumann.

La ingeniería de software es una disciplina profesional. La informática es una disciplina orientada a la investigación. La mayoría de los estudiantes de informática terminan en desarrollo de software porque la investigación requiere que uno tenga al menos un título de maestría, lo que hace creer que la informática es un certificado de programación glorificado.


3
No creo que muchos científicos informáticos académicos acepten una definición de CS tan limitada.
Stephen C

0

La disciplina más exactamente llamada "Ciencias de la Computación" es, en la mayoría de las universidades que he verificado, una ciencia aplicada, similar a las disciplinas de ingeniería; si te especializas en ello, recibirás un "BS" o "MS". El título de CS de Texas Tech fue ofrecido por la universidad de Ingeniería. La disciplina, como se enseña, es principalmente teórica; aprende el concepto de máquinas de Turing, DA / NDA y otros conceptos fundamentales que el programador "día a día" realmente no tiene que seguir sacudiendo en su cráneo. También obtienes una carga de matemáticas más altas; el título de Texas Tech CS, y apuesto a muchos otros también, más o menos te da un menor de Matemáticas para que lo acompañe. Para eso, la mayoría de los títulos universitarios se suman a una gran cantidad de aplicaciones prácticas de bajo nivel; aprendes un lenguaje ensamblador, un lenguaje de tercera generación,

Sin embargo, la mayoría de las personas que codifican para ganarse la vida no son "informáticos"; son, estrictamente hablando, "desarrolladores de software" o (cuando agrega análisis / diseño) "ingenieros de software"; ese trabajo es mucho menos nivel de hardware (aunque debe conocer los conceptos básicos de eso), mucho más análisis de sistemas, diseño y codificación directa. Muchas universidades tienen una pista diferente solo para eso; en Texas Tech se llamaba "Gestión de sistemas de información" y era un título en negocios (BBA / MBA). Esa pista era más ligera en matemática superior (lo que tenía que saber sobre álgebra y cálculo diferencial / integral se exprimió en dos semestres de "matemática empresarial", y no incluía cálculo vectorial / tensorial, álgebra lineal, etc.), mucho más pesado en matemática financiera (un semestre de estadísticas y finanzas, con dos cada uno de contabilidad y economía). Más liviano en sistemas operativos, más pesado en tecnologías de "pila" como bases de datos, servidores web, redes y administración general de sistemas. Más ligero en lenguajes de bajo nivel, diseño de circuitos e inteligencia artificial, más pesado en lenguajes de tercera y cuarta generación, análisis de sistemas y gestión de proyectos. Obtuve este título de Texas Tech y para cuando me fui había tenido al menos un semestre de cada uno de Java, VB, C # y lenguajes web (HTML / CSS / PHP), más un año de OOA & D y varios otros cursos. en gestión de proyectos informáticos.

¿Cuál es mejor en el mundo real? Obtuve el MIS BBA, mi hermano obtuvo el CS BS, y ambos estamos empleados aproximadamente al mismo nivel salarial (ajustando por el costo de vida) que los ingenieros de software senior. Tenía que aprender mucho de la OOA & D requerida en el trabajo, así como girar rápidamente en C # / Java a partir de su conocimiento básico de C ++. Por mi parte, desearía tener los dos semestres de estudio de algoritmos conceptuales que obtuvo mientras estaba atrapado en cursos de gestión empresarial (sí, MIS es un título de "Gestión", pero he descubierto que el 99% de mi conocimiento de cómo aprender y no administrar a otras personas se ha aprendido con el ejemplo).

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.