Materiales del turno para estudiantes de matemáticas y programación en "Sirio"

En enero de este año, se produjo un cambio para los escolares en Sirius . Organizador - Facultad de Matemáticas e Informática, Universidad Estatal de San Petersburgo .

El programa constaba de tres pistas: "Matemáticas", "Programación" y "Informática". Los cursos se diluyeron con conferencias de educación general y fiestas de té con maestros y organizadores. Entre los docentes se encuentran científicos y docentes de la Facultad de Matemáticas y Matemáticas de la Universidad Estatal de San Petersburgo, BSU, Escuela Superior de Economía, Universidad Estatal de Moscú, desarrolladores Yandex y JetBrains, empleados de POMI RAS. Hablamos sobre cómo se organizó el turno aquí , y ahora estamos publicando materiales para parte de los cursos.

imagen

Matemáticas


1. Teoría discreta de Morse


Profesores: Gayane Panieva (Universidad Estatal de San Petersburgo, POMI), Galina Pass (Universidad de Tartu), Nikita Kalinin (Universidad Estatal de San Petersburgo, Escuela Superior de Economía)

Sobre el curso. La teoría discreta de Morse es una herramienta de trabajo en muchas áreas, una buena combinación de combinatoria y topología. En el curso, los chicos redescubrieron este método en el proceso de resolución de problemas. Todo comenzó con ejemplos ilustrativos: con la teoría de Morse en superficies bidimensionales (esferas con asas y películas), y luego pasó a construcciones más abstractas. Las tareas se dividieron en proyectos que se podían hacer en grupos.

Materiales

2. ¿Por qué no se probó el teorema de Fermat hace 300 años?


Profesor: Ivan A. Panin (POMI)

Sobre el curso. El gran teorema de Fermat o el último teorema de Fermat es uno de los teoremas más populares en matemáticas. Su condición se formula simplemente, en el nivel aritmético de la "escuela", sin embargo, muchos matemáticos han buscado la prueba del teorema durante más de trescientos años. Probado en 1994 por Andrew Wiles. La prueba se publicó en 1995, ocupa alrededor de 100 páginas y utiliza varias secciones de matemáticas creadas en el siglo XX. En el curso, se dio una prueba del teorema de Fermat en el caso de que algún anillo sea factorial. La prueba es accesible para estudiantes de secundaria y se basa en la teoría clásica de los números del siglo XIX y principios del XX.

Lee mas:párrafos 1 y 7, sección 3 del libro Borevich Z. I., Shafarevich I. R. "Teoría de los números". Segunda edición, Nauka Publishing House.

Materiales

3. Sobre métodos para calcular promedios en teoría analítica de números


Profesora: Alisa Sedunova (Universidad Estatal de San Petersburgo)

imagen

imagen

Materiales

4. Introducción a la teoría de sumas de productos.


Profesor: Ilya Shkredov (Universidad Estatal de Moscú, Instituto de Matemáticas Steklov)

Sea A un conjunto arbitrario de números enteros finitos. Considere la suma y el
producto de A con nosotros, a saber, el conjunto

A + A: = {c = a + b | a, b de A} y A · A: = {c = a · b | a, b de A}.

Hay conjuntos con una pequeña suma, por ejemplo, progresiones aritméticas:
siP=1,2,...,n,|P+P|=2n1(recuerde que | A | denota el número de elementos del conjunto A).

Del mismo modo, la progresión geométrica G = {2, 2², ..., 2ⁿ} tiene un pequeño producto: | G · G | = 2n - 1. La hipótesis de la suma del producto establece que no hay conjuntos que tengan simultáneamente una pequeña suma y un producto, es decir, para un conjunto arbitrario A que A + A o A · A tengan un tamaño casi igual | A | ² (más precisamente un poco menos: | A | ²⁻ᵋ). La desigualdad anterior aún no se ha demostrado, pero incluso el progreso parcial en esta área ya ha llevado a un progreso significativo en problemas de teoría de números, combinatoria aditiva, criptografía y la teoría de sistemas dinámicos. El curso especial es una introducción a esta maravillosa parte de las matemáticas.

Ver más:

  • La página del profesor en el archivo Likbez contiene muchos artículos introductorios y no muy detallados sobre combinatoria aditiva.
  • Video Post-Ciencia
  • Encuestas "Sumas y productos de conjuntos y estimaciones de sumas trigonométricas racionales en campos de orden simple", "Teorema de Semeredi y problemas en progresiones aritméticas".
  • El libro de Tao Wu, Combinatoria aditiva, Cambridge University Press 2006.

Materiales

Programación


1. Los principios de la programación.


Profesor: Vitaliy Bragilevsky (JetBrains)

Sobre el curso. Este curso está dedicado al estudio y la práctica de los principios básicos que subyacen a la programación industrial moderna. Como parte del curso, el profesor trató de formular una actitud hacia la programación como un tipo de actividad profesional dirigida a crear software productivo, compatible y de alta calidad. Para hacer esto, los estudiantes estudiaron el concepto y las formas de lograr la calidad del software, discutieron los métodos para probar programas, hablaron sobre diferentes estilos de programación y cómo trabajar con datos que deberían vivir entre los lanzamientos de programas.

El lenguaje de programación principal del curso es Python, los estudiantes también se familiarizaron con varios otros (por ejemplo, Rust). Esto le permite expandir los horizontes de su programador y también comprender que las capacidades de un lenguaje de programación determinan sustancialmente lo que un programador puede expresar con su ayuda, con qué tareas se sentirá cómodo y con las cuales puede tener algunas dificultades.

Leer más: S. McConnell. Código perfecto Clase maestra. Edición rusa, 2019.

Materiales

2. Programación funcional


Profesor: Denis Nikolaevich Moskvin (Universidad Estatal de San Petersburgo, Escuela Superior de Economía)

Sobre el curso. El curso comenzó con una discusión de diferentes modelos computacionales, los estudiantes trataron de descubrir cómo un modelo de sustitución de cálculos le permite programar sin instrucciones, utilizando solo expresiones y declaraciones. Discutieron un enfoque energético y perezoso de la informática, el papel de la recursividad en lenguajes funcionales y las formas de garantizar la implementación efectiva de las funciones recursivas. Nos familiarizamos con los principios de la construcción de sistemas de tipos de lenguajes funcionales, hablemos de por qué sus tipos se llaman algebraicos.

Vieron cómo los tipos le permiten ejercer control sobre lo que hace el programador, y se sorprendieron de cómo este control es discreto y total al mismo tiempo. El lenguaje de programación para este curso es Haskell. Los estudiantes discutieron brevemente su historia y la infraestructura que se ha desarrollado hasta ahora, se familiarizaron con la sintaxis, sin olvidar la semántica, y escribieron una serie de programas: primero juntos y luego individualmente.

Ver más:


Materiales

3. Trabajar en la línea de comando de Unix


Profesor: Vitaliy Bragilevsky (JetBrains)

Sobre el curso. La efectividad del uso de una computadora para resolver una variedad de tareas depende significativamente de las herramientas que se utilicen. Muchas personas prefieren las aplicaciones gráficas y trabajan principalmente con el mouse (o el trackpad). Los programadores, por otro lado, prefieren el teclado con más frecuencia y a veces rechazan la interfaz gráfica en favor de las utilidades de línea de comandos y los editores de texto de la consola.

En este curso, los estudiantes aprendieron a usar la línea de comandos al estilo UNIX, aprendieron a programar en bash y también usaron docenas de diferentes utilidades que se usan tradicionalmente en sistemas UNIX como Linux y Mac OS X. Los usuarios de Windows 10 usaron WSL y Terminal de Windows Y lo más importante: aprendimos a salir del editor vi y descubrimos por qué el editor Emacs es aún mejor (¡o viceversa!).

Materiales

4. Leer y escribir en el idioma Kotlin


Profesor : Mikhail Senin (JetBrains)

imagen

Sobre el curso. Kotlin es un lenguaje de programación moderno y de propósito general desarrollado por JetBrains. Kotlin tiene características que son importantes en la programación industrial. El lenguaje es conciso y tiene un buen soporte IDE. En 2017, Kotlin fue elegido por Google como el idioma para desarrollar aplicaciones móviles para Android. El lenguaje es conveniente para desarrollar aplicaciones de servidor, nativas y web.

Como parte del curso, estudiamos la sintaxis del lenguaje e implementamos un proyecto de nuestro propio messenger, que incluye una aplicación de servidor, un cliente web y una aplicación de Android. Trabajó en Intellij IDEA (Community Edition) y Android Studio.

Ver más:

  • El libro "Kotlin en acción" D. Zhemerova
  • Documentación y ejercicios en kotlinlang.ru y kotlinlang.org
  • Cursos de Kotlin en Stepik y Coursera

Materiales

Ciencias de la Computación


1. Busque objetos combinatorios utilizando solucionadores ILP y SAT


Profesor: Alexander Kulikov (Universidad Estatal de San Petersburgo, Centro CS, JetBrains)

Sobre el curso. Estudiantes entrenados para encontrar objetos combinatorios complejos utilizando solucionadores SAT, programas para resolver el problema de satisfacción booleana y solucionadores ILP, programas para resolver el problema de programación lineal de enteros. Aprendimos cómo se formulan estas dos tareas y cuántas tareas prácticamente importantes se reducen a ellas. En particular, implementaron conjuntamente programas para resolver Sudoku, crucigramas japoneses, encontrar cuadrados latinos y greco-latinos. Después de eso, pasamos de rompecabezas a tareas importantes en la industria: buscar circuitos booleanos efectivos (nos familiarizamos con el programa de Knuth para buscar circuitos y su hipótesis sobre la complejidad de una función) y grandes conjuntos independientes en gráficos.

Para practicar, necesitaba conocimientos básicos del lenguaje de programación Pyhton3 (bucles, funciones, E / S) y las bibliotecas pycosat y mip.

Materiales

2. Análisis de imágenes y redes convolucionales.


Profesores: Alexey Artamonov (Yandex), Alexander Avdyushenko (Universidad Estatal de San Petersburgo, Centro CS, Yandex)

Sobre el curso. Los avances en el campo de la visión por computadora ocurren regularmente en el mundo moderno: detectar el matrimonio en producción por imagen, reconocer e incluso cambiar la cara de una persona, diagnosticar enfermedades en las primeras etapas a partir de fotografías: todos recordarán fácilmente las últimas noticias recientes de esta área. Las redes neuronales convolucionales en este momento en visión por computadora son uno de los mayores éxitos en el aprendizaje automático. En este curso, los estudiantes estudiaron:

  • Trabaja con imágenes usando Python.
  • Extraer atributos semánticos simples y complejos.
  • Diseñar redes neuronales convolucionales.
  • Correr y entrenarlos.

Ver más:


Materiales

3. Entrenamiento de refuerzo


Profesores: Alexey Tolstikov, Victor Otliga (Yandex, BSU)

Sobre el curso. Todos los días está buscando algo en Internet utilizando uno de los principales motores de búsqueda, como, por ejemplo, Yandex o Google. O mira la serie a través de Kinopoisk, y él te aconseja qué otras series te pueden gustar. ¿O tal vez has escuchado que la computadora ha superado a los humanos en juegos como go, Dota 2 e incluso Starcraft 2? La base de todo esto es el aprendizaje automático, que se propone cumplir en nuestro curso. Hablaremos sobre algoritmos clásicos y otros más avanzados, como las redes neuronales y el aprendizaje por refuerzo.

En clases prácticas, implementamos nuestro propio bot para el clásico juego Pakman. Nuestro tomador de decisiones con inteligencia artificial se basará en una de las secciones más interesantes del aprendizaje automático: el aprendizaje por refuerzo. Al final del curso, nuestros bots lucharán en el torneo.

Ver más:

  • Puedes practicar con Open AI Gym.
  • Conferencia sobre Aprendizaje de refuerzo profundo de Deep Mind, una subsidiaria de inteligencia artificial con sede en Google.
  • Conferencia Curso "Aprendizaje de refuerzo" por David Silver.
  • El libro "Aprendizaje de refuerzo: una introducción".

Materiales

4. Sistemas de recomendación


Profesor: Andrey Danilchenko (Yandex)

imagen

Sobre el curso. Todos los días nos encontramos con una gran cantidad de información: hay proyectos educativos en marcha, amigos escriben en las redes sociales, se publican artículos interesantes en Habré, aparecen nuevas pistas de músicos favoritos y nuevas películas que quieres ver. Para no ahogarse en esta variedad de contenido, se utilizan sistemas de recomendación. La radio recoge tus pistas personales, el zen y las redes sociales clasifican el contenido personalmente. En este curso, hablamos sobre cómo funcionan estos sistemas "bajo el capó": de dónde provienen los datos, qué algoritmos se utilizan para seleccionar y clasificar el contenido.

Lista de materiales

de todos los cursos por turnos con presentaciones

All Articles