tiene subconjuntos subconjunto relacion propios propio programacion potencia otro matematicas entre ejercicios cuantos contenido conjunto aplicadas math

math - subconjuntos - subconjunto propio



¿La programación es un subconjunto de las matemáticas? (30)

La diferencia entre la programación y las matemáticas puras es el concepto de estado.

Eche un vistazo a http://en.wikipedia.org/wiki/Dynamic_logic_(modal_logic) . Es una forma de analizar matemáticamente las cosas que cambian a través del tiempo. Además, Hoare triples es una forma de formalizar el comportamiento de entrada-salida de los programas. Al tener algunos axiomas que se ocupan de la composición secuencial de los programas y cómo funciona la asignación, se puede lidiar perfectamente con el cambio de estado en el tiempo de una manera matemáticamente rigurosa.

Si las matemáticas que sabes son insuficientes, "inventa" algunas matemáticas nuevas para tratar con lo que deseas analizar. Newton y Leibniz lo hicieron para el análisis (también conocido como cálculo, creo). No hay razón para no hacerlo para computación y programación.

He escuchado muchas veces que toda la programación es realmente un subconjunto de las matemáticas. Algunos sugieren que OO, en sus raíces, se basa matemáticamente, pero no entiendo la conexión, aparte de algunos ejemplos obvios:

  • usando la inducción para probar un algoritmo recursivo,
  • pruebas formales de corrección,
  • lenguajes funcionales,
  • cálculo lambda,
  • complejidad asintótica
  • DFAs, NFAs, Turing Machines y computación teórica en general,
  • y el hecho de que todo en la caja es binario.

Sé que las matemáticas son muy importantes para la programación, pero lucho con este punto de vista del "subconjunto". ¿De qué manera es la programación un subconjunto de las matemáticas?

Estoy buscando una explicación que pueda tener relevancia para el desarrollo empresarial / OO, si hay una conexión lo suficientemente fuerte, eso es.


La programación es una de las ramas más difíciles de las matemáticas aplicadas; los matemáticos más pobres deberían ser matemáticos puros.

--EW Dijkstra


¡Creo que matemáticas! = Programación: P


Bueno, aparte de todo eso ...!

La matemática se usa para muchos aspectos de la programación, como

  • Crear algoritmos eficientes e inteligentes
  • Comprender la notación Big O
  • Seguridad (como RSA)
  • Muchos más ... Creo que la programación necesita matemática para sobrevivir. Pero no lo llamaría un subconjunto. Es como soplar vidrio utiliza propiedades de la física, pero esos artistas no se llaman a sí mismos físicos.

Como matemático, es claro para mí que las Matemáticas no son iguales a la Programación, pero que el proceso que se usa para resolver problemas en cualquier disciplina es extremadamente similar.

Resolver preguntas de matemáticas de nivel superior requiere pensamiento analítico, una caja de herramientas con posibles formas de resolver problemas, experiencia con el campo y algunas formas formales de construir su respuesta para que otros matemáticos estén de acuerdo. Si encuentra una forma particularmente inteligente, abstracta o elegante de resolver un problema, obtiene Felicitaciones de sus compañeros matemáticos. Para problemas matemáticos particularmente difíciles, puede resolver el problema por etapas y codificar los argumentos de la etapa usando cosas llamadas conjeturas y pruebas.

Creo que la programación implica el mismo conjunto de habilidades. En la programación, el mismo conjunto de principios se aplica a la resolución y presentación de soluciones a problemas. Cuando tiene una solución parcial a un dilema de programación, lo incluye como parte de su biblioteca personal y lo utiliza como parte de otro problema más grande más adelante. Estas habilidades parecen muy similares a las habilidades utilizadas en matemáticas.

La principal diferencia entre Matemáticas y Programación es que este último tiene mucho más en común entre las diferentes disciplinas de programación que Math. Dos campos de las matemáticas pueden ser muy, muy diferentes en la presentación y lo que se utiliza para comunicar el campo. Por el contrario, las estructuras de programación, al menos para mí, se ven muy similares en muchos idiomas diferentes.


Creo que las matemáticas proporcionan un conjunto de herramientas para los programadores que utilizan a nivel abstracto para resolver problemas del mundo real.


De acuerdo, era estudiante de matemáticas y CS en la universidad. Diría que si el conjunto A es matemático y el conjunto B es CS, entonces A se cruza con B. No es un subconjunto.

No hay duda de que muchos de los padres y madres de la informática eran matemáticos como Turing y Dykstra. La mayoría de los fundadores de Internet eran doctores en Matemáticas, Física o Ingeniería. La mayoría de los conceptos básicos de la informática provienen de las matemáticas, pero el acto de la programación no es realmente matemática. Las matemáticas nos ayudan en nuestra vida diaria, pero las dos no son lo mismo.

Pero no hay duda de que el razonamiento original detrás de la computadora era calcular bien las cosas. Hemos recorrido un largo camino desde allí en tan poco tiempo.


Descargo de responsabilidad: trabajo como consultor de TI y desarrollo principalmente portales y material de arquitectura. Tengo un grado de Psicología. Nunca estudié Matemáticas en la Universidad. Y hago mi trabajo. Y generalmente bien ¿Por qué? Porque no creo que necesites saber matemáticas (como en las matemáticas "pesadas") para escribir código. Necesita pensamiento analítico, habilidades para resolver problemas y un alto nivel de abstracción. Pero Maths no te da eso. Es solo otra disciplina que requiere habilidades similares. Mis estudios en Psicología también se aplican a mi trabajo diario cuando se trata de problemas de usabilidad y almacenamiento de datos. Lingüística y Semiótica también juegan un papel.

Pero espera, simplemente no me llame todavía. No digo que las matemáticas no sean necesarias para las computadoras; obviamente, necesitas habilidades matemáticas reales al diseñar algoritmos de encriptación y hardware, etc., pero si, como muchos programadores, trabajas en un lenguaje de nivel medio / bajo ( como C) o cosas de nivel superior (como C # o java), que consumen frameworks preconstruidos y API, realmente no necesitas entender los principios matemáticos detrás de las transformadas de Fourier o los árboles Huffman o las tiras de Moebius ... deja que alguien más maneje eso, y déjame construir valor encima de eso. No soy estupido. Conozco la diferencia entre los algoritmos lineales y exponenciales y las estructuras de datos, etc. Simplemente no tengo interés en reescribir el quicksort o una nueva técnica de compresión de video.


Einstein era conocido en 1917 como un famoso matemático. No fue hasta Hiroshima que el público en general finalmente se dio cuenta de que la física no es solo matemática aplicada.

Cuando las personas no entienden algo, intentan entenderlo como un tipo de algo que sí entienden. Ellos piensan por analogía. La programación se ha descrito como un campo de matemáticas, ingeniería, ciencia, arte, artesanía, construcción ... Ninguno de estos es completamente falso; toma prestado de todos estos. El verdadero problema es que el campo de la programación tiene solo unos 50 años. La gente no lo ha integrado en sus taxonomías mentales.


En general, recuerde que las matemáticas son una codificación formal de la lógica, que también es lo que hacemos en el software.

La lista de temas en su pregunta está cargada de problemas matemáticos. Podemos hacer programación en un nivel bastante alto de abstracción , por lo que las matemáticas en bruto pueden no estar mirándote a la cara. Por ejemplo, mencionas DFA ... puedes usar una expresión regular en tus programas sin saber matemáticas, pero encontrarás más necesidad de matemáticas cuando quieras diseñar un buen motor de expresiones regulares.

Creo que has llegado a un punto interesante. La programación es un arte y una ciencia. Hay muchas "herramientas del oficio", y no necesariamente te sientas y haces muchas matemáticas de alto nivel para simplemente escribir un programa. De hecho, cuando estás programando, muchos no están realmente haciendo muchas matemáticas o ciencias de la computación.

Es cuando comenzamos a resolver problemas difíciles en informática que aparecen las matemáticas. Cuanto más profundices, más se desarrollará ... a menudo en niveles más bajos de abstracción.

También hay algunos ámbitos de programación en los que no necesariamente tiene que trabajar, pero implican más matemáticas. Por ejemplo, aunque sin duda puede aprender un idioma y escribir algunas aplicaciones sin ninguna matemática formal, no llegará muy lejos en el análisis de algoritmos sin algunas matemáticas aplicadas.


En realidad, puede argumentar que las matemáticas, en forma de pruebas lógicas, son análogas a la programación:

Vea la correspondencia de Curry-Howard . Probablemente sea más como un matemático miraría las cosas, pero creo que esto está golpeando el proverbial clavo en la cabeza.


Es matemática en el sentido de que requiere pensamiento abstracto sobre algoritmos, etc.
Es ingeniería cuando se trata de planificar, entregar y probar.
Es arte cuando no tienes idea de cómo terminará eventualmente.


Es mitad matemática, mitad hombre habla, duh.


Hay mucha confusión aquí.

En primer lugar, "programación" no (actualmente) es igual a "informática". Cuando Dijkstra se llamó a sí mismo un "programador" (más o menos inventando el título), no estaba sacando aplicaciones de CRUD, sino de hecho aplicando informática. No dejemos que eso nos confunda; hoy en día, existe una gran diferencia entre lo que la mayoría de los programadores en un entorno comercial hacen y la informática.

Ahora, se puede argumentar que la informática es una rama de las matemáticas; pero, como señala Knuth (en su trabajo "Ciencias de la computación y su relación con las matemáticas", recogido en sus Papeles seleccionados sobre ciencias de la computación ), también se puede argumentar que las matemáticas son una rama de la informática.

De hecho, recomiendo encarecidamente este documento a cualquiera que esté pensando en la relación entre las matemáticas y la informática, ya que Knuth presenta el territorio muy bien.

Pero, para volver a su pregunta original: para un profesional, el "desarrollo empresarial / OO" está bastante alejado de las matemáticas, pero eso se debe en gran parte a que la mayoría de las matemáticas serias involucradas en los niveles inferiores de operación han sido abstraídas (por compiladores , sistemas operativos, juegos de instrucciones, etc.). Del mismo modo, no se requiere un conocimiento avanzado de la física del motor de combustión interna para conducir un automóvil. Naturalmente, si quieres diseñar un coche más eficiente ...


La base de todo lo que hacemos es matemática.

Afortunadamente, no necesitamos ser buenos en las matemáticas para hacerlo. Al igual que no necesita comprender la física para conducir un automóvil o incluso volar un avión.


La diferencia entre la programación y las matemáticas puras es el concepto de estado. Un programa es una máquina de estado que usa lógica (matemática) para la transición entre estados. La lógica real utilizada para la transición entre estados suele ser muy simple, por lo que ser un genio de las matemáticas no necesariamente lo ayuda mucho como programador.


La matemática es la forma más pura de verdad. Todo hereda de las matemáticas.

Amén.


La programación es un tema demasiado amplio. Buen software basado no solo en matemática (lógica) sino también en psicología, lingüística, etc. Los algoritmos son parte de las matemáticas, pero hay muchas otras cosas relacionadas con la programación además de los algoritmos.


La programación puede haber comenzado originalmente como un cuasi subconjunto de las matemáticas, pero la creciente complejidad del campo a lo largo del tiempo ha llevado a que la programación sea el arte y la ciencia de crear buenas abstracciones para el procesamiento de la información y el cálculo.

La programación implica matemática, ingeniería y un sentido estético para un buen diseño e implementación. Los algoritmos son una extensión de las matemáticas, y el lado de la ingeniería de sistemas se superpone con otras disciplinas de ingeniería hasta cierto punto. Sin embargo, ni las matemáticas ni otros campos de ingeniería tienen el mismo nivel de necesidad de abstracciones complejas, flexibles y comprensibles que pueden usarse y adaptarse en tantos niveles diferentes para resolver problemas nuevos y en evolución.

Es la necesidad de abstracciones útiles, flexibles y dinámicas que condujeron primero a la creación de bibliotecas de funciones, luego bibliotecas de clases / componentes y, en los últimos años, patrones de diseño y arquitecturas orientadas a servicios. Aunque estos últimos tienen un mayor enfoque en el diseño, son una reacción a la creciente necesidad de construir puentes de abstracción de alto nivel entre problemas de programación y soluciones.

Por todos estos motivos, la programación no es un subconjunto ni un superconjunto de matemáticas. Es simplemente otro campo más que usa matemáticas que tiene raíces más profundas que otras.


Las matemáticas son poderosas, la programación es poderosa, si las matemáticas son un subconjunto de la programación, entonces es igualmente cierto afirmar que la programación es un subconjunto de las matemáticas.

Las matemáticas se describen usando el lenguaje, a menudo escrito. Por lo tanto, ¿las matemáticas también son un subconjunto de la escritura?

Históricamente, las matemáticas llegaban antes que la programación de computadoras, pero luego las listas y los procesos probablemente precedían a las matemáticas, y ambas cosas podían considerarse igualmente matemáticas o relacionadas con la programación.

Ciertamente, la programación se puede representar utilizando las matemáticas, por lo que hay algunas bases para que sea cierto que la programación es un subconjunto de las matemáticas. Sin embargo, un programa de computadora también podría implementar matemática, representando información simbólicamente, como típicamente ocurre cuando se hace en papel, incluyendo el infinito y solo algo definido, de los axiomas fundamentales, y también permite definir estructuras de nivel superior que se usan entre sí y otros tipos de relaciones más allá de la composición, que apoyan el dibujo de diagramas y permiten que el sistema se expanda. Las matemáticas son igualmente un subconjunto de la programación.

Si bien las matemáticas pueden representar estructuras tales como las palabras, las matemáticas son, por diseño, acerca de los números. Las cadenas, por ejemplo, son más programáticas que matemáticas.


Los temas que enumeró son temas de Informática teórica, y ESO es una rama de Pure Mathematics. La programación es una ciencia aplicada que usa la informática teórica. La programación en sí no es una rama de las matemáticas, sino el Cálculo Lambda / teoría de la computación / lógica formal / teoría de conjuntos, etc. que los lenguajes de programación se basan en is.

También estoy completamente en desacuerdo con Dijkstra. Es autocomplaciente o Dijkstra está siendo citado incorrectamente / fuera de contexto. La matemática pura es un campo muy, muy difícil. Es tan enormemente abstracto que ninguna rama de las matemáticas aplicadas es comparable en dificultad. Es un campo que requiere enormes saltos de imaginación. Hice mi primer grado en ciencias de la computación donde me enfoqué mucho en CS teórica y áreas aplicadas como programación, sistema operativo, compiladores. También obtuve un título en Ingeniería Eléctrica, posiblemente la rama más difícil de la ingeniería, y trabajé en áreas difíciles de matemáticas aplicadas, como las ecuaciones de Maxwell, la teoría de control y las ecuaciones en derivadas parciales en general. También hice investigación en matemáticas aplicadas y puras, y hasta el día de hoy me parece mucho más fácil aplicarlo. En cuanto a los matemáticos puros, son una raza completamente diferente.

Ahora hay una tendencia para que alguien estudie un año o dos de cálculo desquiciado de la aplicación y concluye que las matemáticas puras son fáciles. No tienen idea de lo que están hablando. Estudiar el cálculo o incluso la topología desquiciada de la aplicación no le da ningún indicio de lo que hace un matemático puro. La tarea de probar realmente esos teoremas es tan profundamente difícil que voy a ceder ante un científico de la computación para señalar la distinción: "Si P = NP, entonces el mundo sería un lugar profundamente diferente de lo que generalmente suponemos que es. no tiene ningún valor especial en ''saltos creativos'', no hay una brecha fundamental entre resolver un problema y reconocer la solución una vez que se encuentra. Cualquiera que pudiera apreciar una sinfonía sería Mozart, cualquiera que pudiera seguir un argumento paso a paso sería Gauss. .. "-Scott Aaronson, (Científico de Computación Teórica, MIT)


Matemáticas + arte + lógica


No creo haber escuchado que la programación sea un subconjunto de las matemáticas. Incluso el enlace que usted proporciona es simplemente un enfoque propuesto para la programación (sin pretender que sea un subconjunto de las matemáticas) y la página wiki también tiene muchos desacuerdos.

La programación requiere (al menos algunas) matemáticas aplicadas. Las matemáticas se pueden usar para ayudar a describir y analizar programas y fragmentos de programas. La programación tiene una relación muy estrecha con las matemáticas y la usa y los conceptos de ella en gran medida. Pero subconjunto? no.

Me encantaría ver a alguien afirmar que es uno con un razonamiento claro. No creo que haya tenido

El hecho de que pueda usar las matemáticas para razonar sobre algo no implica que sea, ipso facto, un objeto matemático. Las matemáticas se utilizan para razonar sobre los motores de combustión interna, la desintegración radiactiva y los patrones de malabarismo. Usar las matemáticas no está haciendo matemáticas.


Parte de la razón por la que soy programador es porque no me gustan las matemáticas. No tengo ningún problema con las matemáticas en sí, y estoy bien con eso conceptualmente, simplemente no me gusta hacer cálculos a mano. Cuando descubrí que podía contar a una computadora cuál era el problema de las matemáticas y dejar que me hiciera los cálculos, nació una pasión y una carrera para toda la vida.

Para responder a la pregunta, de acuerdo con mi alma mater, math == programación, ya que me permitieron llevar a Intro a C ++ para cumplir con mis requisitos de matemáticas.

Editar: Debo mencionar que mi título es en telecomunicaciones que, en ese momento, solo tenía el requisito matemático de artes liberales estándar de un semestre.


Si solo quieres las especificaciones de diseño que te ha entregado tu jefe, entonces no son muchas las matemáticas, pero ese trabajo no es nada divertido ... Sin embargo, pensar en cómo hacer las cosas requiere ideas matemáticas, al menos cosas como abstracción, gráficos, a veces teorías numéricas y dependiendo de los problemas, cálculo. Personalmente, mientras más he participado en la programación, más veo el lado matemático de la misma. Sin embargo, la mayoría de las veces IMO, puede simplemente recoger el libro de la biblioteca y buscar los conceptos básicos de lo que necesita hacer, pero eso requiere un poco de comprensión matemática por adelantado.

Realmente no se pueden diseñar algoritmos "buenos" sin entender las matemáticas que hay detrás. La búsqueda en google solo te lleva tan lejos.


También es interesante comparar programación con música. En el Reino Unido, de todos modos, hay cursos universitarios de pregrado computacionales que aceptarán postulantes sobre la base de las cualificaciones musicales como supuestamente informáticas debido a la lógica, los patrones, etc. involucrados.


Yo diría que la programación es menos sobre las matemáticas de lo que solía ser a medida que avanzamos a los lenguajes de cuarta generación. El ensamblaje se trata mucho de matemáticas, C #, no tanto. ¿Pensamientos?


Yo diría...

Es en parte matemática, especialmente en el nivel teórico. Imagine el diseño de algoritmos de búsqueda / clasificación / clustering / asignación / fooificación eficientes, eso es todo matemática ... abarcando desde la teoría de los números hasta las estadísticas.

Es en parte ingeniería. Los sistemas complejos rara vez pueden alcanzar niveles ideales de rendimiento y confiabilidad, y el software no es una excepción. Una gran cantidad de desarrollo de software se trata de lograr robustez frente a hardware poco confiable y (ejem) humanos.

Y es en parte arte. El diseño de software creativo e idiosincrásico a menudo genera nuevas ideas geniales ... como el lenguaje ensamblador, los sistemas operativos multitarea, las interfaces gráficas de usuario, los lenguajes dinámicos y la web.

Solo mi 2 ¢ ...


si su definición de matemática incluye todas las formas de lógica formal, y la programación se define solo por la lógica y los cálculos existentes en el código, entonces la programación es un subconjunto de matemáticas QED ;-)

pero esto es como decir que pintar es simplemente poner pigmentos coloreados en una superficie: rellena completamente el arte, la intuición, la intuición, todo el proceso creativo

uno podría argumentar que la música es un subconjunto de las matemáticas por el mismo razonamiento

así que tendría que decir que no, la programación no es un subconjunto de las matemáticas. La programación usa un subconjunto de matemáticas, pero también requiere habilidades / talentos no matemáticos [al igual que la composición musical]


No menciona la programación, pero la idea sigue siendo relevante.