1) Lenguaje informático
Con el desarrollo exitoso de la primera computadora electrónica de propósito general con programas almacenados en la década de 1940, el desarrollo de las computadoras entró en una nueva etapa después de la década de 1950. escenario. Sin embargo, en la aplicación inicial, la gente generalmente sentía que la programación con instrucciones de máquina no solo era ineficiente, sino también torpe y no favorecía la comunicación y el mantenimiento del software. Encontrar errores en programas complejos es especialmente difícil. Por lo tanto, el desarrollo de software necesita urgentemente un lenguaje de programación de alto nivel similar al lenguaje natural. En 1952 apareció el primer código corto para un lenguaje de programación. Dos años después, salió Fortran. Como lenguaje de programación de alto nivel para informática científica, el mayor logro de Fortran es establecer firmemente el estado de un lenguaje de alto nivel y convertirlo en un lenguaje de programación de propósito general. El nacimiento de Algol60 marca que el estudio del lenguaje informático se ha convertido en una ciencia. En el texto de este lenguaje se proponen una serie de conceptos nuevos, como descripciones de tipos y reglas de alcance para variables, recursividad de procesos y mecanismos de paso de parámetros. Y es el primer lenguaje de alto nivel que define la gramática del lenguaje con reglas gramaticales estrictas: BNF. Después de que la investigación y el desarrollo de lenguajes de programación produjeron una serie de lenguajes de alto nivel exitosos, su desarrollo posterior comenzó a verse afectado por ideas, métodos y tecnologías de programación, así como por la teoría de la programación, la ingeniería de software, la inteligencia artificial y muchos otros aspectos. , especialmente aspectos prácticos. Si bien el debate sobre la "crisis del software" disminuyó gradualmente, algunos principios de diseño comenzaron a ser aceptados por la mayoría de la gente y reflejados en varios lenguajes de alto nivel. Por ejemplo, el lenguaje PASCAL admite programación estructurada, ADA es un lenguaje de programación general a gran escala adecuado para diversas aplicaciones militares, MODULA-2 admite programación concurrente, el lenguaje PROLOG admite programación lógica y el lenguaje LISP admite programación de inteligencia artificial que admite SMALLTALK y C. conversión de programa de objeto de área, etc. Y con el surgimiento y desarrollo de estos lenguajes, se han desarrollado una gran cantidad de teorías, métodos y tecnologías para resolver problemas en la compilación y aplicación de lenguajes. Una gran cantidad de artículos académicos pueden demostrar que las diversas ideas, métodos, teorías y tecnologías derivadas del desarrollo de lenguajes de alto nivel han tocado la mayoría de las disciplinas de la informática, pero el contenido todavía está relativamente concentrado en lenguajes, modelos informáticos y Metodologías de desarrollo de software.
(2) Modelos informáticos y métodos de desarrollo de software
La década de 1980 fue testigo del tremendo desarrollo de las redes informáticas, el procesamiento distribuido y la multimedia. Agregar mecanismos de concurrencia a varios lenguajes de programación de alto nivel para admitir la programación distribuida y extender las subrutinas de dibujo en el lenguaje para admitir la programación de gráficos por computadora se convirtió en una moda en los lenguajes de programación en ese momento. Luego, con el apoyo de tecnologías de interfaz como la conversión A/D y la tecnología de bases de datos, la idea de la programación multimedia se hace realidad mediante la expansión de bibliotecas de lenguajes de alto nivel. Desde la década de 1990, el desarrollo de computadoras paralelas y redes informáticas heterogéneas distribuidas a gran escala ha creado tecnologías clave y lenguajes de alto nivel para el desarrollo de software de prueba, como lenguajes de programación paralelos, compiladores paralelos, sistemas operativos paralelos, sistemas de bases de datos paralelos y distribuidos. , etc. Estrechamente relacionado con los modelos informáticos, como varios lenguajes de programación paralelos y concurrentes, álgebra de procesos, redes PETRI, etc. , es un lenguaje de programación y base teórica que respalda el desarrollo de software en diferentes etapas de los métodos de desarrollo de software y la investigación tecnológica.
(3) Aplicación informática
Para utilizar computadoras para reemplazar a las personas en los cálculos, primero debemos estudiar los métodos de cálculo y los algoritmos informáticos correspondientes, y luego compilar programas informáticos. Dado que las primeras aplicaciones informáticas se concentraban principalmente en el campo de la informática científica, los métodos de cálculo numérico se convirtieron en la primera rama de las matemáticas aplicadas y establecieron conexiones con las aplicaciones informáticas.
Al principio, debido a que la capacidad de memoria de las computadoras era pequeña y la velocidad no era rápida, para calcular algunos problemas un poco más grandes, la gente a menudo tenía que estudiar cómo ahorrar unidades de almacenamiento y cómo reducir operaciones innecesarias. Con este fin, se desarrolló la teoría del cálculo de matrices dispersas para resolver sistemas de ecuaciones. Desarrollar funciones hash para almacenar y acceder a datos dinámicamente. Las ideas de programación virtual y tecnología de cobertura de programas se desarrollaron para ejecutar programas más grandes en computadoras con memoria más pequeña; después de que se propusieron los conceptos de subrutinas y paquetes, muchas personas comenzaron a escribir algunas fórmulas y métodos de cálculo comunes en matemáticas como subrutinas, y más. desarrollado en un paquete, que está abierto a los usuarios mediante simples comandos de llamada. La introducción de subrutinas es el comienzo del pensamiento actual sobre la reutilización del software.
En el campo de las aplicaciones informáticas, la informática científica es una dirección a largo plazo. Esta dirección depende principalmente del desarrollo de los cálculos numéricos en las matemáticas aplicadas. El desarrollo de los cálculos numéricos también se ve afectado por la estructura de los sistemas informáticos. Los primeros cálculos científicos se realizaban principalmente en una sola máquina y pasaban por etapas desde el análisis numérico a pequeña escala hasta el análisis numérico a mediana y gran escala. Con la aparición de las computadoras paralelas y las computadoras paralelas distribuidas, la computación numérica paralela se ha convertido en un punto caliente en la computación científica, y los problemas que maneja también se han transformado del análisis numérico de mediana a gran escala a problemas complejos de mediana a gran escala. Los llamados problemas complejos a gran escala no se deben al aumento de datos, lo que hace que el cálculo sea difícil y complicado, sino principalmente a que se consideran demasiados factores en el cálculo, especialmente algunos factores son inciertos, lo que dificulta el cálculo. y complicado. El resultado es a menudo que la contradicción entre precisión y complejidad es difícil de superar en la investigación de algoritmos.
La geometría es una rama de las matemáticas que realiza la combinación de números y formas en el pensamiento humano. Después de la invención de las computadoras, la gente naturalmente pensó en usarlas para procesar gráficos, lo que llevó a los gráficos por computadora. Los gráficos por computadora son la ciencia del uso de computadoras para generar y procesar gráficos. Esto ha promovido el desarrollo del diseño asistido por computadora (CAD), la instrucción asistida por computadora (CAI), el procesamiento de información asistido por computadora, las pruebas asistidas por computadora (CAT) y otras direcciones.
En el desarrollo de diversos sistemas de aplicaciones prácticas, hay una dirección importante que merece atención, es decir, el desarrollo de sistemas en tiempo real.
El uso de computadoras para demostrar teoremas matemáticos se considera una dirección de la inteligencia artificial. Otra dirección de la inteligencia artificial es el estudio de programas o sistemas generales de resolución de problemas que no dependen de ningún campo, llamados GPS. Cabe mencionar especialmente que en el desarrollo de sistemas expertos se han desarrollado una serie de nuevas tecnologías, como métodos de representación del conocimiento y técnicas de razonamiento inexactas, que han acumulado experiencia y profundizado la comprensión de la inteligencia artificial. A finales de la década de 1970, algunos académicos se dieron cuenta de la débil base de la investigación de la inteligencia artificial en el pasado y comenzaron a prestar atención a la investigación sobre la base lógica de la inteligencia artificial. Intentaron estudiar el pensamiento automático desde la perspectiva de resumir y estudiar lo general. leyes del pensamiento de razonamiento humano y publicó varios artículos en 1980. Trabajo de investigación sobre lógica no monótona en inteligencia artificial. Su trabajo recibió inmediatamente la respuesta de un gran número de informáticos. La investigación sobre la lógica no monótona pronto se puso en pleno apogeo y la base lógica de la inteligencia artificial se convirtió en la corriente principal del desarrollo de la inteligencia artificial.
El desarrollo de la tecnología de bases de datos, la tecnología multimedia y la tecnología de gráficos ha dado lugar a dos nuevas direcciones: la tecnología de visualización computacional y la tecnología de realidad virtual.
Con el desarrollo de las redes informáticas, varios ordenadores distribuidos por todo el mundo se conectan entre sí a una velocidad asombrosa. En Internet se intercambian y intercambian cada día una gran cantidad de información política, económica, militar, diplomática, comercial, de investigación científica y artística. El frecuente intercambio de grandes cantidades de información en Internet ha acortado la distancia entre regiones, pero al mismo tiempo también ha hecho que sea difícil protegerse de diversos recursos de información en Internet. Por lo tanto, la seguridad de la información informática es muy valorada por los gobiernos de todo el mundo. Además de hacer grandes esfuerzos para investigar tecnologías de software y hardware para hacer frente a los virus informáticos, debido a la necesidad de confidencialidad de diversas tareas, la investigación de la criptografía informática también ha recibido cada vez más atención por parte de los gobiernos de todo el mundo.
De hecho, en informática, los modelos informáticos y la teoría informática son tan importantes como la tecnología de implementación. Pero ahora muchos estudiantes tienden a prestar atención sólo a algunas técnicas de operación de computadoras, descuidando el estudio de las teorías básicas, y se muestran complacientes porque son "maestros operadores". desarrollarse en el sujeto en una posición pasiva. Por ejemplo, en las décadas de 1950 y 1960, con el desarrollo de la investigación informática y el desarrollo de software, China capacitó a expertos en fabricación y mantenimiento de computadoras que eran muy competentes en ciertos aspectos de los equipos informáticos.
Pueden descubrir con precisión qué parte de la memoria central, el tambor magnético, la unidad aritmética, el controlador y el circuito completo de la máquina tienen un problema, repararlo y solucionarlo, utilizar la menor cantidad de unidades de almacenamiento para escribir programas rápidos y estar bastante familiarizados con el código de máquina. Sin embargo, cuando las memorias de núcleo magnético de pequeña capacidad, los tambores magnéticos, los dispositivos informáticos lentos y los controladores son rápidamente reemplazados por circuitos integrados, y cuando los lenguajes de alto nivel, las herramientas de desarrollo de software y los nuevos métodos de desarrollo de software se utilizan ampliamente en la programación y el desarrollo de software. Estos expertos calificados, a excepción de unos pocos que tienen una base matemática sólida y dirigen su trabajo de investigación en otras direcciones durante su trabajo, son todos eliminados en el proceso de desarrollo de reemplazar la tecnología original con la aparición de nuevas tecnologías. Entonces, en informática, la computación es más importante que la tecnología que la implementa. Sólo estableciendo una base teórica sólida, especialmente una base matemática, podemos obtener el doble de resultado con la mitad de esfuerzo. Sólo la informática y la tecnología basadas en una teoría de punto de partida elevado tienen un enorme potencial y perspectivas de desarrollo.
Un tema central en teoría de la computación
La tradición de los departamentos de informática en nuestro país es formar personas que realicen investigación académica, especialmente investigación teórica (no hay gran problema en la dirección , pero no es tan perfecta la voluntad del pueblo). Después de todo, la investigación teórica sobre computadoras, como la seguridad de redes, gráficos e imágenes, y procesamiento de audio y video, están estrechamente relacionadas con las matemáticas, aunque pueden ser matemáticas no convencionales a los ojos de los matemáticos ortodoxos. También quiero aclarar mi punto de vista aquí: como todos sabemos, las matemáticas son una teoría abstraída de la vida real. La razón por la que la gente abstrae la realidad en teorías es que quiere utilizar las teorías abstraídas para guiar mejor la práctica. A algunos investigadores de matemáticas les gusta utilizar algunos conocimientos teóricos existentes para derivar varias inferencias, pero no saben que una es que el problema no se considera de manera integral y pueden ser inferencias erróneas, y la otra es que sus inferencias no pueden encontrar prototipos en la vida real y No se puede guiar la práctica. Estrictamente hablando, no soy un idealista. Combinar la teoría con la práctica en los cursos políticos siempre ha sido un faro que me guía para aprender conocimientos científicos y culturales (al menos creo que la informática y la tecnología deberían ir en esta dirección).
Mi humilde opinión es que los estudiantes del departamento de informática tienen requisitos diferentes para las matemáticas, pero incluso son diferentes a los de la física. ¿No eres estudiante de matemáticas? "Matemáticas Avanzadas" no es más que eliminar las partes teóricas más difíciles del análisis matemático y enfatizar la aplicación de cálculos con fórmulas. Para los departamentos de informática, la parte más útil del análisis matemático es la parte teórica eliminada. ¿Puedes entender las matemáticas con sólo memorizar un montón de fórmulas para integrales de superficie? Es mejor comprobarlo ahora que recordarlo. O utilice Mathematica o Matlab directamente. Demos un paso atrás. No necesito decir mucho sobre los logros de Hua en matemáticas, pero hizo varias cosas en su gloriosa vida que creo que son las más importantes para nosotros: primero, estableció el Instituto de Tecnología Informática de la Academia China de Ciencias, que es nuestra cuna nacional de la informática. Ahora enseña muchas teorías matemáticas avanzadas a técnicos dedicados a la producción industrial, lo que promueve el progreso de la industria china. La tercera cosa es que escribió muchos libros en su vida, pero lo que es más valioso para los profesores y estudiantes universitarios es que escribió "Introducción a las Matemáticas Avanzadas" con su amado Wang Yuan durante su enfermedad (no tanto que Wang Yuan fuera su amado Es un investigador de la generación anterior en el Instituto de Matemáticas de la Academia de Ciencias de China, y su contribución a la conjetura de Goldbach es superada solo por Chen Jingrun en el mundo). Este libro está realmente disponible en nuestra biblioteca. Para ser honesto, en ese momento había un error en el libro. Otros se hacían a un lado dondequiera que fueran, pero yo estaba particularmente interesado. Después de leer los dos primeros volúmenes, mi mayor ganancia no reside en la elaboración de la teoría, sino en la completa instanciación de su teoría y en encontrar modelos en la vida. Por eso prefiero las matemáticas concretas. Como mencioné anteriormente, sin práctica, la teoría pierde su significado. Precisamente porque la teoría se abstrae de la práctica, la investigación teórica puede guiar mejor la práctica. Se puede decir que la teoría que no se utiliza para guiar la práctica no tiene valor.
Como se mencionó anteriormente, los estudiantes de informática aprenden matemáticas avanzadas: saben qué son y, lo que es más importante, por qué son. El propósito de su estudio debe ser: aplicar la teoría abstracta a la práctica, no solo para dominar los métodos de resolución de problemas, sino también para dominar las ideas de resolución de problemas. El estudio de teoremas no se trata de una simple aplicación, sino de dominar el proceso de demostración, es decir, dominar el origen del teorema y entrenar la capacidad de razonamiento. Sólo así podremos lograr el propósito de aprender esta ciencia y, al mismo tiempo, reducir la brecha de pensamiento entre nosotros y nuestros compañeros en el departamento de matemáticas.
Creo que el aprendizaje de la tecnología informática es así: cualquier ciencia que se ofrezca en las escuelas tiene su rezago. No siempre pienses que eres invencible si dominas una determinada tecnología.
Aunque Java, VB, C y C++ se utilizan mucho ahora, ¿cómo podemos asegurarnos de que no se eliminen algún día? Creo. NET y el lenguaje X# lo dicen todo. En otras palabras, cuando dominemos una nueva tecnología, aparecerán tecnologías más nuevas. Como estudiantes universitarios contemporáneos, debemos tener la calidad para mantenernos al día con el desarrollo científico. Por ejemplo, como siempre dicen algunos estudiantes, cuando diseño páginas web, prefiero escribir HTML directamente en lugar de usar Frontpage o Dreamweaver. Es bueno poder escribir páginas web en un idioma, pero existen métodos eficientes. ¿Por qué no los usas? ¿Solo para mostrar tu alto nivel y ser único? Creo que las personas de realmente alto nivel son aquellas que pueden aceptar cosas nuevas lo más rápido posible. El desarrollo de lenguajes de programación de alto nivel es rápido. En el futuro programar será como hablar. Creo que todo el mundo debería saber algo sobre xml. ¿Realmente tenemos que escribir todo en asamblea para mostrar nuestro alto nivel? Si es así, también podríamos escribirlo directamente en lenguaje de máquina. Por otro lado, la clave para la rápida aceptación y utilización de las nuevas tecnologías reside en el dominio de la informática.
En general, desde el punto de vista educativo, la disposición curricular de los colegios y universidades nacionales no es muy razonable. Hace hincapié en la teoría, pero no está dispuesta a educar en profundidad en la teoría y no puede aceptar nuevas. tecnologías y no podemos evitar completamente las nuevas tecnologías. Creo que el problema clave es que a las universidades nacionales les resulta difícil romper el status quo y las regulaciones restringen la forma de buscar el desarrollo. Aunque somos conscientes de las ventajas de la educación en el extranjero, ¿por qué no podemos actuar? Incluso un poquito de grueso a fino.