Acerca de la informática
Uno de los temas centrales de la teoría de la computación proviene de las matemáticas;
Recuerdo que cuando era estudiante de primer año, tomaba clases de matemáticas avanzadas todos los sábados e hacía los deberes todos los días (era un sistema de trabajo de seis días en ese momento). Muchos estudiantes exclamaron que se habían equivocado de puerta: ¿Qué departamento estudiamos aquí? Sí, fuiste a la puerta equivocada. Este es el Departamento de Informática y Tecnología. 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 (la dirección puede no ser problemática, pero el trabajo no es tan satisfactorio). 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).
De hecho, no es suficiente que nuestro departamento de informática estudie matemáticas avanzadas en matemáticas y óptica (las escuelas de ingeniería típicas generalmente ofrecen matemáticas avanzadas). Deberíamos aprender análisis matemático como el departamento de matemáticas (el departamento de informática de Tsinghua parece tener análisis matemático). Nosotros, los estudiantes de informática, tenemos sentimientos muy complicados al respecto. Es un curso de matemáticas que favorece la demostración, lo que nos ayuda mucho a desarrollar buenas habilidades analíticas. Mi tutor de ingeniería de software, el profesor Wang Yihua de la Escuela de Matemáticas y Física del Instituto de Tecnología de Beijing, una vez nos enseñó que la mayoría de los estudiantes del departamento de matemáticas se dedican al diseño y análisis de software, mientras que la mayoría de los estudiantes del departamento de informática se dedican a la programación. . La razón es que la capacidad de razonamiento analítico de los estudiantes de matemáticas es muy superior a la nuestra. Un fenómeno extraño que ocurrió ese año fue que los estudiantes del departamento de computación estaban entre los mejores en matemáticas de la escuela secundaria (espero que no ofendieran a otros estudiantes), y el número de horas de enseñanza solo era superado por el departamento de matemáticas, pero el Los resultados después del aprendizaje no fueron satisfactorios. ¿No todos los estudiantes están trabajando duro? No lo vi. No sé si es la dirección equivocada. ¿Cuál es la razón? Alimento para el pensamiento.
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. Por lo general, las llamadas "Matemáticas Avanzadas" para estudiantes que no son matemáticas no son más que eliminar las partes teóricas más difíciles del análisis matemático y enfatizar la aplicación de fórmulas. Para los departamentos de informática, la parte más útil del análisis matemático es la parte teórica eliminada. Para decirlo sin rodeos, para los estudiantes de informática, las llamadas "matemáticas de ingeniería" que persiguen cálculos son completamente un malentendido. ¿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 matemáticas o Matalab directamente.
Lo que más me gusta hacer en el departamento es recomendar libros de referencia a los estudiantes de tercer año. Entre los libros chinos de análisis matemático, "Nuevas conferencias sobre análisis matemático" de Zhang Zhusheng de la Universidad de Pekín se considera generalmente el mejor. En caso de que seas muy bueno en matemáticas, puedes consultar el "Tutorial sobre cálculo" de Fichkingolz, pero no creo que sea necesario. Después de todo, no querrás transferirte al departamento de matemáticas. El "Conjunto de problemas de análisis matemático" de Jimmy Dowich es básicamente una cuestión de cálculo. El libro es famoso, pero puede que no sea adecuado para nosotros. Nuevamente lo importante es el establecimiento de ideas matemáticas. Al vivir en una sociedad de la información, lo que perseguimos es una alta eficiencia. Dejemos el cálculo a la computadora. Sin embargo, el Análisis Matemático de la Universidad de Fudan parece ser un buen libro de texto.
La llamada álgebra avanzada en China es igual al álgebra lineal más un poco de teoría polinomial.
Creo que esto tiene un lado bueno, porque permite a los estudiantes sentir que el álgebra es una estructura anterior, en lugar de un montón de matrices dando vueltas. Debo mencionar "Álgebra avanzada" editado por Nanda Lin Chengsen y Sheng, que es bastante cómodo. Este libro cubre los resultados elementales básicos de polinomios y álgebra lineal de manera bastante completa, y también proporciona contenido útil y esclarecedor, como secuencias de Sturm, fórmulas de Shermon-Morrison, matrices inversas generalizadas, etc. Se puede decir que, como estudiante universitario, si puedes comprender este libro a fondo, entonces podrás ser considerado un maestro. Los mejores libros de texto de álgebra avanzada en China son los que utiliza el Departamento de Ciencias de la Computación de la Universidad de Tsinghua. Son publicados por Tsinghua Press y hay muchos en las librerías. Desde un punto de vista algebraico abstracto, los resultados en álgebra superior son sólo algunos ejemplos de las propiedades de los sistemas algebraicos. "Álgebra" del Sr. Mo Zongjian tiene una discusión profunda sobre esto. Sin embargo, el libro del profesor Mo es demasiado profundo y me temo que será difícil para un estudiante aceptarlo. También podría esperar hasta madurar.
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.
La teoría de la probabilidad y la estadística matemática son cursos muy importantes, pero desafortunadamente, la mayoría de los colegios y universidades rara vez imparten este curso. Lo que falta ahora es al menos un proceso aleatorio. Es una pena para los estudiantes de informática no haber oído hablar de los procesos de Markov antes de graduarse. ¿Cómo se analizan redes y sistemas distribuidos sin procesos estocásticos? ¿Cómo diseñar algoritmos y protocolos de aleatorización? Se dice que el Departamento de Ciencias de la Computación de la Universidad de Tsinghua ofrece "Matemáticas Estocásticas", que ha sido un curso obligatorio durante mucho tiempo. Además, la teoría de la probabilidad discreta es particularmente importante para los estudiantes de informática. Las matemáticas de ingeniería en nuestro país tienen que ver con la probabilidad continua. Algunas escuelas en los Estados Unidos ahora ofrecen cursos simples de "teoría de la probabilidad discreta", simplemente eliminando la probabilidad continua y enseñando la probabilidad discreta en profundidad. No necesariamente tenemos que hacer esto, pero deberíamos prestar más atención a las probabilidades discretas. Creo que lo mejor es hacer esto lo antes posible.
Metodología computacional (también llamada análisis matemático en algunas escuelas) es el último curso que nos imparte la Facultad de Matemáticas y Ciencias. El estudiante medio concede una importancia limitada a este curso y lo considera inútil. ¡Es sólo una fórmula! De hecho, los gráficos y las imágenes no pueden prescindir de él, y la criptografía no puede prescindir de él. Y los cálculos aplicados en muchos proyectos científicos son principalmente numéricos. Hay dos extremos de este curso: el clásico "Análisis numérico", que se centra completamente en principios y algoritmos matemáticos, y el cada vez más popular "Computación científica y de ingeniería", que simplemente enseña a los estudiantes a programar utilizando paquetes de software. Personalmente creo que los estudiantes del departamento de informática deben entender por qué nosotros, los estudiantes del departamento de informática, deberíamos tomar este curso. Tiendo a aprender bien la teoría y luego uso computadoras para implementarla. Lo mejor es utilizar lenguaje C o programación C++. Hay bastantes libros que trabajan en esta dirección. Aquí, recomiendo "Métodos computacionales", publicado conjuntamente por CHEP y Springer-Verlag, y escrito por el Departamento de Matemáticas de la Universidad de Ciencia y Tecnología de Huazhong (ahora Universidad de Ciencia y Tecnología de Huazhong). En este sentido, la USTC ha trabajado mucho en China, pero personalmente creo que este libro es el mejor, al menos en términos de programación: evaluación de funciones matemáticas arbitrarias, búsqueda de raíces de ecuaciones. El libro de Li Qingyang es demasiado teórico y no está estrechamente integrado con aplicaciones prácticas.
Cada escuela ofrecerá cursos de matemáticas discretas, que incluyen teoría de conjuntos, teoría de grafos, álgebra abstracta y lógica matemática. Pero, ¿exprimir tanto contenido en un curso de matemáticas discreto es demasiado estricto? Además, también es un gran defecto que los estudiantes de informática no comprendan la teoría combinatoria y de números. Si quieres hacer teoría pero no sabes combinaciones o teoría de números, estarás en una gran desventaja. Idealmente, sería mejor separar los seis cursos de conjuntos, lógica, teoría de grafos, combinatoria, álgebra y teoría de números. Por supuesto, esto no es realista ya que no hay tantas horas de clase. Tal vez se puedan ofrecer tres cursos en el futuro: conjuntos y lógica, teoría de grafos y combinaciones, y álgebra y teoría de números. (Nuestra escuela ya ha comenzado a hacer esto). No importa cómo se imparta la clase, los estudiantes siempre tienen que aprender. Hablemos de los tres grupos anteriores respectivamente.
Para la teoría de conjuntos clásica, la Universidad Normal de Beijing ha publicado un libro "Teoría básica de conjuntos", que es bueno. Para la lógica matemática, "Lógica matemática de la informática" del profesor Lu Zhongwan del Instituto de Software de la Academia de Ciencias de China es buena. Ahora se pueden encontrar vídeos de las conferencias del profesor Lu Zhongwan.
/html/dir/2006 54 38+0/11/06/3391 htmVaya y compruébelo usted mismo. En general, aprender conjuntos/lógica no es difícil y puede ser entendido por estudiantes promedio de secundaria. Pero cuanto más retrocedo, más insondable se vuelve.
Después de estudiar los libros anteriores, si todavía tienes la energía y el interés para explorar más a fondo, puedes probar "Introducción a la teoría de conjuntos de axiomas" y un curso de lógica matemática de la serie GTM. Ambos libros están disponibles en ediciones importadas de World Book Press. Si puedes manejar estos dos libros, realmente podrás entrar de manera lógica y no habrá necesidad de perder el tiempo escuchándome.
Se dice que sólo hay como máximo treinta personas en China que entienden la teoría de grafos. Esta afirmación es correcta. La teoría de grafos es tan hábil que casi todos los problemas tienen un método único, lo que provoca dolor de cabeza a la gente. Pero eso es lo bueno de esto: mientras seas creativo, puede darte una sensación de logro. Mi instructor dijo que puedes escribir un artículo sobre cualquier cosa que aprendas en teoría de grafos. ¡Puedes apreciar la profundidad y amplitud del contenido que contiene! Entre los libros nacionales de teoría de grafos, "La teoría de grafos y sus algoritmos" de Wang Shuhe tiene mucho éxito. Por un lado, su contenido es muy completo entre los libros de texto nacionales. Por otro lado, su énfasis en los algoritmos es muy adecuado para el Departamento de Ciencias de la Computación (originalmente un libro de texto para el Departamento de Ciencias de la Computación de HKUST). Concéntrese en este libro y consulte varios libros traducidos, como "Teoría de gráficos y sus aplicaciones" de Bondy & Murthy, "Teoría de gráficos y redes de circuitos" traducido por People's Posts and Telecommunications Press, etc. Todos son promedio, suficientes para estudiantes universitarios. Además, se introdujo en World Books la serie GTM "Teoría de grafos moderna". ¡Este libro es realmente un clásico! Parece que otra empresa en China ha lanzado una versión traducida. Sin embargo, para aprender este nivel, es mejor leer el trabajo original. La finalización de este libro también marcó la entrada de la teoría de grafos.
En términos de matemáticas discretas, contamos con expertos de talla mundial en la Escuela Experimental de la Universidad Tecnológica de Beijing. Su nombre es Shao Xuecai. Se graduó de la Universidad de Fudan con especialización en teoría de la probabilidad. Enseñó matemáticas avanzadas, álgebra lineal y teoría de la probabilidad. Con el tiempo, recurrió a las matemáticas discretas y publicó numerosos trabajos. Hay una colección de ensayos en Singapur, que es muy clásica. Si quieres aprender el verdadero significado de las matemáticas discretas, también puedes buscarlo. He tomado la clase de este profesor exclusivamente y es extremadamente clásica. Pero hay que desenterrar la esencia de sus palabras casuales. Mientras hablaba con él, descubrí otro problema. Aunque el Sr. Shao ha escrito innumerables libros, según sus propias palabras, cada libro es similar. Estoy realmente sorprendido. Dijo que se debía principalmente a las limitaciones del esquema, lo que hacía inconveniente escribir más. No es de extrañar que sea raro escuchar que escribir un libro en el extranjero requiere un esquema (aunque lo tenga, el contenido es mucho más amplio), por lo que todos somos iguales. Ésta es la belleza de la versión en idioma extranjero de este libro. Se discuten los últimos logros científicos y tecnológicos. Al menos, "el conocimiento teórico sigue el ritmo de los tiempos".
La combinación siente que no existe un libro nacional adecuado. Leamos el clásico "Matemáticas Concretas" de Graham y Knut. La Prensa de la Universidad de Ciencia y Tecnología Electrónica de Xi'an tiene una versión traducida. Para el álgebra abstracta, el clásico nacional es "Álgebra" del Sr. Mo Zongjian. Este libro es un libro de texto para el Departamento de Matemáticas de la Universidad de Pekín y ha sido bien recibido. Sin embargo, este libro es demasiado esotérico para estudiantes universitarios. Puedes estudiar algunos otros libros de texto primero y luego volver a álgebra. Hay muchos clásicos internacionales, incluida la serie GTM. Recomiendo un libro que no es un clásico, sino el más sencillo.
Simple y fácil de aprender: informática (la base matemática de la informática), que es informática teórica. Resulta que una vez leí una traducción de la década de 1970 en la biblioteca de la ciudad universitaria de Dongfang (la portada ya no está, pero me encanta este tipo de libros), probablemente llamada Computer Mathematics. Ese libro habría sido un buen libro en ese momento, pero ahora, mirando hacia atrás, tenía una cobertura muy amplia, pero no muy profunda. Sin embargo, todavía recomiendo que los estudiantes de primer año le echen un vistazo, lo que al menos les dará una introducción a las matemáticas computacionales.
¿Cuáles son las palabras más comúnmente asociadas con la informática teórica? Respuesta: Matemáticas discretas. Los dos están tan estrechamente relacionados que en muchas ocasiones se han convertido en sinónimos. (Esto también se reflejó en libros anteriores) Tradicionalmente, las matemáticas han tenido un enfoque analítico. Los estudiantes del Departamento de Matemáticas tienen que estudiar análisis matemático durante tres o cuatro semestres, y luego funciones complejas, funciones de variables reales, funciones genéricas, etc. Muchos consideran que las variables reales y los funcionales son la introducción a las matemáticas modernas. Las aplicaciones en física, química e ingeniería son principalmente analíticas.
Con la llegada de la informática, algunas ramas de las matemáticas previamente desatendidas de repente adquirieron importancia. Se encuentra que los objetos matemáticos manejados por estas ramas son obviamente diferentes del análisis tradicional: las soluciones de resolución de problemas del análisis y la investigación son continuas, por lo que las operaciones diferenciales e integrales se convierten en operaciones básicas, pero los objetos de estas ramas son discretos, por lo que las oportunidades; para tales cálculos son muy pocos.
Por eso la gente llama a estas ramas "matemáticas discretas". El nombre de "matemáticas discretas" se está volviendo cada vez más popular, y finalmente la rama tradicional de las matemáticas centrada en el análisis se denomina "matemáticas continuas".
Después de décadas de desarrollo, las matemáticas discretas básicamente se han estabilizado. Generalmente se cree que las matemáticas discretas incluyen las siguientes disciplinas:
1) Teoría de conjuntos, lógica matemática y metamatemática. Esta es la base de las matemáticas y la informática.
2) Teoría de grafos, teoría algorítmica de grafos; matemática combinatoria, algoritmo combinatorio. El núcleo de la informática, especialmente la informática teórica, son los algoritmos, y una gran cantidad de algoritmos se basan en gráficos y combinaciones.
3) Álgebra abstracta. El álgebra está en todas partes y es muy importante en matemáticas. En informática, la gente se sorprende al descubrir que el álgebra tiene tantas aplicaciones.
Sin embargo, ¿la informática teórica es tan sencilla como añadir un sombrero "discreto" a las matemáticas? No fue hasta hace unos diez años que un maestro finalmente nos dijo: No. D.E. Knuth (no creo que sea necesario decir tonterías sobre lo genial que es) abrió un nuevo curso de "Matemáticas Concretas" en Stanford. La palabra concreto tiene aquí dos significados:
Primero: abstracción. Knuth cree que los objetos de la investigación matemática tradicional son demasiado abstractos, lo que da como resultado una atención insuficiente a cuestiones específicas. Se quejaba de que las matemáticas que necesitaba a menudo no existían para su investigación, por lo que tenía que inventar algunas él mismo. Para satisfacer directamente las necesidades de las aplicaciones, debería promover las matemáticas "concretas". Déjame explicarte brevemente aquí. Por ejemplo, en la teoría de conjuntos, los matemáticos se ocupan de las cuestiones más fundamentales: las diversas propiedades de los sistemas axiomáticos, etc. No importa lo que los matemáticos piensen que son las propiedades de algunos conjuntos particulares, conjuntos comunes, relaciones y asignaciones. Sin embargo, son estas cosas específicas las que se utilizan en informática. Knut fue el primero en ver esto y merece ser el primer informático del mundo. En segundo lugar, el hormigón es continuo más discreto. ¡Tanto las matemáticas continuas como las discretas son matemáticas útiles!
La combinación de teoría y práctica: el alcance de la investigación en ciencias de la computación
Lo anterior es principalmente desde la perspectiva de las matemáticas. Desde una perspectiva informática, las principales áreas de investigación actuales de la informática teórica incluyen: teoría de la computabilidad, diseño de algoritmos y análisis de complejidad, criptografía y seguridad de la información, teoría de la computación distribuida, teoría de la computación paralela, teoría de redes y bioinformática Computación, geometría computacional, lenguaje de programación teoría, etcétera. Estos campos están entrelazados entre sí y constantemente se proponen nuevos temas, lo que dificulta encontrar una pista. Si quieres hacer este trabajo, te recomiendo que leas la serie de libros de la Federación de Computación de China, que al menos representa la autoridad de nuestro país. A continuación se muestran algunos ejemplos aleatorios.
Debido a los requisitos de las aplicaciones, la criptografía se ha convertido ahora en un tema de investigación popular. La base de la criptografía es la teoría de números (especialmente la teoría de números computacional), el álgebra, la teoría de la información, la teoría de la probabilidad y los procesos aleatorios. A veces también se utilizan la teoría de grafos y la combinatoria. Mucha gente piensa que la criptografía es cifrado y descifrado, y que el cifrado consiste en utilizar una función para codificar datos. Esta comprensión es demasiado simple.
La criptografía moderna incluye al menos los siguientes niveles:
Primero, la base de la criptografía. Por ejemplo, ¿es realmente difícil factorizar un número grande? ¿Existe una herramienta general para demostrar la corrección del protocolo?
En segundo lugar, la disciplina básica de la criptografía. Como mejores funciones unidireccionales, protocolos de firma, etc.
En tercer lugar, cuestiones avanzadas en criptografía. Por ejemplo, la duración de las pruebas de conocimiento cero y los métodos para compartir secretos.
En cuarto lugar, nuevas aplicaciones de la criptografía. Como efectivo digital, seguimiento de traidores, etc.
En los sistemas distribuidos, también hay muchas cuestiones teóricas importantes. Por ejemplo, protocolos de sincronización y exclusión mutua entre procesos. Una consecuencia clásica es que no existe un algoritmo determinista para lograr la cooperación entre procesos cuando el canal de comunicación no es confiable. Por lo tanto, mejorar el protocolo de enlace de tres vías de TCP casi no tiene sentido. Como la cuestión del tiempo. Un orden común es el orden causal, pero el orden causal no ha tenido una consecuencia teórica hasta hace poco... por ejemplo, no existe una forma práctica de abordar perfectamente los puntos muertos. Por ejemplo... si has aprendido el sistema operativo, ¡menciónalo tú mismo!
Si las computadoras solo tienen teoría, entonces son solo una rama de las matemáticas, no una ciencia independiente. De hecho, además de la teoría, la informática tiene un cielo más amplio.
Siempre he creído que cuatro años no es tiempo suficiente para aprender conocimientos básicos de informática porque el alcance es demasiado amplio.
......
En este sentido, me gustaría hablar sobre los "Conceptos básicos de la informática" que se enseñan habitualmente en varias escuelas de nuestro departamento. El establecimiento de cursos básicos de informática en colegios y universidades es un requisito de curso obligatorio para todas las carreras estipuladas por el departamento de educación superior de mi país. El contenido principal es permitir a los estudiantes dominar la historia del desarrollo informático y aprender a utilizar de forma sencilla sistemas operativos, procesamiento de textos, procesamiento de tablas y funciones preliminares de aplicaciones de red. Pero el objetivo de impartir este curso en el departamento de informática no debe ser coherente con esto. El objetivo de los cursos de informática debe ser permitir a los estudiantes comprender completamente el desarrollo de la informática y comprender claramente la dirección de investigación de la informática. La vanguardia del desarrollo es la posición de cada curso en todo el sistema de materias. Comprender el propósito de aprendizaje, el contenido de aprendizaje y las áreas de aplicación de cada materia. Esto permite a los estudiantes tener una comprensión general de toda la materia en las primeras etapas de su aprendizaje, de modo que puedan saber claramente qué y cómo aprender en el futuro. La posición de habilidades básicas de aplicaciones informáticas debe ubicarse en segundo lugar o incluso más abajo, porque los estudiantes de este departamento deben tener esta capacidad de exploración. Esto es muy importante. Recomiende un libro: "Nuevas perspectivas sobre la informática" de Machinery Industry Press. Después de leer este libro, me di cuenta profundamente de que todavía soy un principiante en informática y ya tengo un conocimiento profundo de lo que es la informática. Además, muchas teorías clásicas de la "Introducción a las ciencias de la computación" escritas por el profesor Zhao de la Universidad de Xiamen son difíciles de encontrar en libros similares. Mírelo y tal vez comprenda la pregunta más básica: por qué la informática es más precisa que la ciencia computacional. Este libro también puede convertirse en un libro de fama mundial.
Un estudiante destacado en un departamento de informática de primer nivel nunca debe ser sólo un maestro en programación, sino que primero debe ser un maestro en programación. Cuando estaba en la universidad, mi primer curso profesional fue programación en lenguaje C. Desde cierta perspectiva, un número considerable de personas que leen ordenadores se ganan la vida escribiendo programas. Ha habido un debate en el Departamento de Ciencias de la Computación del Instituto de Tecnología Experimental de Beijing (incluso en el CSDN actual) sobre cuál debería usarse como primer lenguaje de programación. Personalmente, creo que la clave a qué lenguaje pertenece la última sección es desarrollar buenos hábitos de programación. En ese momento, la maestra nos dijo que solo toma una semana aprender un nuevo idioma después de sentar las bases. Ahora no creo que lleve más de una semana. La premisa es sentar unas buenas bases primero. No lo dudes, simplemente apréndelo. Cuando hagas tu elección, los demás ya sabrán varios idiomas.
El lenguaje ensamblador y los principios de la microcomputadora son dos cursos particularmente molestos. No importa cuán buena sea tu base matemática/teórica, no podrás aprovecharla. El orden entre estos dos platos es también cuál viene primero, la gallina o el huevo. No importa qué curso tomes primero, implicará cosas del otro curso. Por lo tanto, sólo puedo calmarme y pensar lentamente. Este es un campo de ingeniería típico que no requiere demasiada inteligencia o iluminación, pero requiere una iluminación gradual. No es difícil encontrar libros sobre estos dos cursos en librerías de informática. Compare algunos libros recientes. "Principios de composición" recomienda "Composición y estructura de computadoras" escrito por el profesor Wang Aiying de la Universidad de Tsinghua. Lenguaje ensamblador Todo el mundo trae 8086/8088 por la puerta, y luego tienes que aprender el lenguaje ensamblador 80x86. Tiene un gran valor práctico, no está atrasado y tiene una buena estructura. Escribir virus eficientes, incorporar un poco de ensamblador en lenguajes de alto nivel y realizar desarrollos de bajo nivel siempre son inseparables de él. Recomiende la programación en lenguaje ensamblador de IBM-PC por Shen Meimei de la Universidad de Tsinghua. Algunas personas dicen que si no quieres entender la arquitectura de las computadoras o manejar computadoras, no es necesario aprender los principios de la computadora, el lenguaje ensamblador, las interfaces y otros cursos. ¿Es esto razonable? Obviamente no es razonable. Tarde o temprano, estas cosas deben dominarse y exponerse a ellas. Y estas son las pocas ventajas que tienen las carreras de informática sobre otras carreras. Es importante comprenderlos cuando se trabaja en un proyecto. No se puede decir que la tecnología sea sólo por la tecnología. Las personas que sólo entienden de tecnología sólo pueden ser codificadores en el mejor de los casos y nunca entenderán completamente el diseño de todo el sistema. Cuanto mayor es un codificador, menos valioso es. También existe una cuestión de enseñanza respecto de los principios de composición. Cuando estaba tomando este curso, el profesor omitió los principios de funcionamiento de la CPU y la microprogramación. La razón es que la tecnología de CPU de nuestro país no es tan buena como la de otros países, y después de tanto tiempo, finalmente se nos ocurrió un Loongson que es muy inferior a Intel. Se recomienda no aprender de él. No creo que esto sea un problema en todas las escuelas. De ser cierto, China puede detener la informática en cualquier dirección. Estados Unidos puede hacer algunas cosas, como software, hardware y aplicaciones, pero no puede hacer nada más. Entonces, ¿por qué estamos sentados aquí? Los conceptos de enseñanza deben cambiar.
Hoy en día, no sólo los estudiantes de informática no pueden manejar circuitos analógicos, sino que la mayoría de los estudiantes de electrónica también tienen miedo.
Si realmente desea consumir tanto software como hardware, le sugiero que primero eche un vistazo a los "Principios de circuitos" de Qiu Guanyuan y tal vez observe los circuitos analógicos. Libro de texto: "Fundamentos de la tecnología electrónica" de Kang (Prensa de educación superior) es bastante bueno (utilizado por el Departamento de Electrónica de nuestra escuela). Si está interesado, también puede consultar el libro de Tong.
Los circuitos digitales son mucho mejores que los circuitos analógicos. Le recomiendo que lea "Lógica digital" escrita por el profesor Liu Yingxian de la Universidad Tecnológica de Beijing. La gente en la feria dijo que este libro tenía un gran valor de referencia (de Machinery Industry Press). La razón es muy clara y tiene un gran valor práctico. Escuchar los cursos que imparte es una sensación de "disfrutar de la ciencia". El libro de Yan Shi de la Universidad de Tsinghua también es un buen libro de texto, pero desafortunadamente no habla mucho sobre circuitos integrados. Estoy muy interesado. Echemos un vistazo al diseño de sistemas digitales a gran escala (que todavía se utilizan con más frecuencia en la Universidad de Beihang).
Cómo enseñar arquitectura de sistemas informáticos sigue siendo controvertido a nivel internacional. El mejor libro de texto que se puede encontrar en China es "Diseño de arquitectura y organización informática orientado al rendimiento" de Stallings (fotocopiado por la Universidad de Tsinghua). El libro más popular del mundo es "Arquitectura informática: un enfoque acuático", escrito por Patterson & Hennessy.
Para los sistemas operativos, puede elegir "Diseño e implementación de núcleos de sistemas operativos" y "Modern Operating System". Sistemas" Uno de los dos libros. Ambos pueden considerarse clásicos, el único inconveniente es que no son lo suficientemente rigurosos teóricamente. Pero este campo pertenece a un sistema intransigente y el descuido es comprensible en teoría. Si desea ver la teoría, recomiende "Operating System" de Tsinghua University Press, escrito por Zhang Yao, director del Ministerio de Educación Superior, y es el libro de texto que utilizamos. También recomiendo una copia de los "Principios del sistema operativo Windows" publicado por Machinery Industry Press. Este libro fue escrito por expertos chinos en sistemas operativos después de una inspección minuciosa de Microsoft durante medio año. Su redacción tomó más de un año. Participaron casi todos los expertos que enseñan sistemas operativos, excepto Zhang Yaoxue de la Universidad de Tsinghua (ahora director del Ministerio de Educación Superior). El propio Bill Gates escribió el prólogo. No solo presenta en detalle el núcleo del sistema operativo basado en Windows 2000, XP y una introducción detallada.
Si primero aprende el lenguaje formal, creo que solo necesita aprender los cuatro algoritmos en la parte frontal del principio de compilación: descenso recursivo, el más fácil de implementar y el mejor algoritmo de arriba hacia abajo LL (; k); el mejor algoritmo ascendente LR(k); un SLR simplificado de LR(1) (y quizás otro LALR simplificado). El backend es enteramente un proyecto, por lo que, naturalmente, es una idea de último momento.
Libro de texto recomendado: "Principios y prácticas de compilación" escrito por Kenneth C. Louden es "Principios y prácticas de compilación" (traducido por Machinery Industry Press).
Al aprender sobre bases de datos, me gustaría recordarles a todos que saber cómo usar VFP, VB y PowerBuilder no significa saber cómo usar bases de datos. ¡Hay demasiadas personas en el mundo que creen que entienden las bases de datos! El diseño de bases de datos es a la vez ciencia y arte, y la implementación de bases de datos es un proyecto típico. Entonces, en cierto sentido, la base de datos es el curso de computación más típico: una combinación de ciencia e ingeniería, interpenetradas entre sí. Además, te recomiendo que estudies tecnología de bases de datos después de estudiar ingeniería de software. Será una sensación nueva. Libro de texto recomendado: "Conceptos de sistemas de bases de datos" de Abraham Silberschatz y otros. Para completar el conocimiento, también recomiendo a todos que lean la traducción de "Data Warehouse" de Machinery Industry Press.
El libro de texto estándar sobre redes informáticas proviene de "Computer Networks" de Tanenbaum (traducido por la Universidad de Tsinghua). También existe la recomendación del "Tutorial de redes informáticas" de Xie Xiren (Editorial de Correos y Telecomunicaciones del Pueblo), que es relativamente claro y tiene referencias relativamente autorizadas. Pero Internet también es un sistema básico y no basta con leer libros. Se recomienda leer más RFC. Puede descargar el documento RFC por número desde IP Reading en http://www.ietf.org/rfc.htm. Cuando puedas dominar unos 10 protocolos de uso común, pocas personas se atreverán a menospreciarte. Creo que sería mejor hacer un trabajo de diseño web.