Matériaux de la transition pour les étudiants en mathématiques et en programmation dans "Sirius"

En janvier de cette année, un changement pour les écoliers a eu lieu à Sirius . Organisateur - Faculté de mathématiques et d'informatique, Université d'État de Saint-Pétersbourg .

Le programme comportait trois volets: "Mathématiques", "Programmation" et "Informatique". Les cours ont été dilués avec des conférences d'enseignement général et des tea-parties avec des enseignants et des organisateurs. Parmi les enseignants figurent des scientifiques et des enseignants de la Faculté de mathématiques et de mathématiques de l'Université d'État de Saint-Pétersbourg, BSU, École supérieure d'économie, Université d'État de Moscou, Yandex et développeurs JetBrains, employés de POMI RAS. Nous avons parlé de la façon dont le changement a été organisé ici , et maintenant nous affichons du matériel pour une partie des cours.

image

Mathématiques


1. Théorie morse discrète


Enseignants: Gayane Panieva (Université d'État de Saint-Pétersbourg, POMI), Galina Pass (Université de Tartu), Nikita Kalinin (Université d'État de Saint-Pétersbourg, École supérieure d'économie)

À propos du cours. La théorie discrète de Morse est un outil de travail dans de nombreux domaines, un joli mélange de combinatoire et de topologie. Sur le parcours, les gars ont redécouvert cette méthode en train de résoudre des problèmes. Tout a commencé avec des exemples illustratifs: avec la théorie de Morse sur les surfaces bidimensionnelles (sphères avec poignées et films), puis est passé à des constructions plus abstraites. Les tâches ont été divisées en projets pouvant être réalisés en groupes.

Matériaux

2. Pourquoi le théorème de Fermat n'a-t-il pas été prouvé il y a 300 ans?


Enseignant: Ivan A. Panin (POMI)

À propos du cours. Le grand théorème de Fermat ou le dernier théorème de Fermat est l'un des théorèmes les plus populaires en mathématiques. Sa condition est formulée simplement, au niveau arithmétique «scolaire», cependant, de nombreux mathématiciens recherchent la preuve du théorème depuis plus de trois cents ans. Prouvé en 1994 par Andrew Wiles. La preuve a été publiée en 1995, compte environ 100 pages et utilise plusieurs sections de mathématiques créées au 20e siècle. Au cours, une preuve a été donnée du théorème de Fermat dans le cas où un anneau est factoriel. La preuve est accessible aux lycéens et se fonde sur la théorie classique des nombres du XIXe et du début du XXe siècle.

Lire la suite:paragraphes 1 et 7, section 3 du livre Borevich Z. I., Shafarevich I. R. «Théorie des nombres». Deuxième édition, Nauka Publishing House.

Matériaux

3. Sur les méthodes de calcul des moyennes dans la théorie analytique des nombres


Conférencier: Alisa Sedunova (Université d'État de Saint-Pétersbourg)

image

image

Matériaux

4. Introduction à la théorie des sommes de produits


Conférencier: Ilya Shkredov (Université d'État de Moscou, Institut mathématique de Steklov)

Soit A un ensemble fini arbitraire d'entiers. Considérons la somme et le
produit de A avec nous, à savoir l'ensemble

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

Il existe des ensembles avec une petite somme, par exemple, des progressions arithmétiques:
siP=1,2,...,n,|P+P|=2n1(rappelons que | A | désigne le nombre d'éléments de l'ensemble A).

De même, la progression géométrique G = {2, 2², ..., 2ⁿ} a un petit produit: | G · G | = 2n - 1. L'hypothèse de la somme des produits indique qu'il n'y a pas d'ensembles qui ont simultanément une petite somme et un produit, à savoir, pour un ensemble arbitraire A que A + A ou A · A est presque de taille égale | A | ² (plus précisément un peu moins: | A | ²⁻ᵋ). L'inégalité ci-dessus n'a pas encore été prouvée, mais même des progrès partiels dans ce domaine ont déjà conduit à des progrès significatifs dans les problèmes de théorie des nombres, de combinatoire additive, de cryptographie et de théorie des systèmes dynamiques. Le cours spécial est une introduction à cette merveilleuse partie des mathématiques.

Voir plus:

  • La page du conférencier dans le fichier Likbez contient de nombreux articles d'introduction et peu sur la combinatoire additive.
  • Vidéo post-science
  • Enquêtes «Sommes et produits d'ensembles et estimations de sommes trigonométriques rationnelles dans des domaines d'ordre simple», «Théorème de Semeredi et problèmes sur les progressions arithmétiques».
  • Livre de Tao Wu, Additive combinatorics, Cambridge University Press 2006.

Matériaux

Programmation


1. Les principes de programmation


Enseignant: Vitaliy Bragilevsky (JetBrains)

À propos du cours. Ce cours est consacré à l'étude et à la pratique des principes de base qui sous-tendent la programmation industrielle moderne. Dans le cadre du cours, le professeur a essayé de formuler une attitude envers la programmation en tant que type d'activité professionnelle visant à créer des logiciels de haute qualité, pris en charge et productifs. Pour ce faire, les étudiants ont étudié le concept et les moyens d'atteindre la qualité des logiciels, discuté des méthodes de test des programmes, discuté des différents styles de programmation et de la façon de travailler avec des données qui devraient vivre entre les lancements de programmes.

Le principal langage de programmation du cours est Python, les étudiants se sont également familiarisés avec plusieurs autres (par exemple, Rust). Cela vous permet d'élargir les horizons de votre programmeur et de comprendre également que les capacités d'un langage de programmation déterminent considérablement ce qu'un programmeur peut exprimer avec son aide, quelles tâches il sera à l'aise et avec lesquelles il peut avoir des difficultés.

Pour en savoir plus: S. McConnell. Code parfait. Cours de maître. Édition russe, 2019.

Matériaux

2. Programmation fonctionnelle


Conférencier: Denis Nikolaevich Moskvin (Université d'État de Saint-Pétersbourg, École supérieure d'économie)

À propos du cours. Le cours a commencé par une discussion sur différents modèles de calcul, les étudiants ont essayé de comprendre comment un modèle de substitution de calculs vous permet de programmer sans instructions, en utilisant uniquement des expressions et des déclarations. Ils ont discuté d'une approche énergétique et paresseuse de l'informatique, du rôle de la récursivité dans les langages fonctionnels et des moyens d'assurer la mise en œuvre efficace des fonctions récursives. Nous nous sommes familiarisés avec les principes de construction de systèmes de types de langages fonctionnels, parlons de la raison pour laquelle leurs types sont appelés algébriques.

Ils ont vu comment les types vous permettent d'exercer un contrôle sur ce que fait le programmeur, et ont été surpris de voir à quel point ce contrôle est discret et total en même temps. Le langage de programmation de ce cours est Haskell. Les étudiants ont brièvement discuté de son histoire et de l'infrastructure développée jusqu'à présent, se sont familiarisés avec la syntaxe, sans oublier la sémantique, et ont écrit un certain nombre de programmes: d'abord ensemble, puis individuellement.

Voir plus:


Matériaux

3. Travailler sur la ligne de commande Unix


Enseignant: Vitaliy Bragilevsky (JetBrains)

À propos du cours. L'efficacité de l'utilisation d'un ordinateur pour résoudre une variété de tâches dépend de manière significative des outils utilisés. Beaucoup de gens préfèrent les applications graphiques et travaillent principalement avec la souris (ou le trackpad!). Les programmeurs, en revanche, préfèrent le clavier plus souvent et refusent parfois l'interface graphique au profit des utilitaires de ligne de commande et des éditeurs de texte de console.

Dans ce cours, les étudiants ont appris à utiliser la ligne de commande de style UNIX, à programmer en bash et à utiliser des dizaines d'utilitaires différents traditionnellement utilisés sur les systèmes UNIX tels que Linux et Mac OS X. Les utilisateurs de Windows 10 ont utilisé WSL et Terminal Windows Et le plus important: nous avons appris à quitter l'éditeur vi et avons découvert pourquoi l'éditeur Emacs est toujours meilleur (ou vice versa!).

Matériaux

4. Lire et écrire dans la langue Kotlin


Enseignant : Mikhail Senin (JetBrains)

image

À propos du cours. Kotlin est un langage de programmation moderne et polyvalent développé par JetBrains. Kotlin possède des fonctionnalités importantes dans la programmation industrielle. Le langage est concis et a un bon support IDE. En 2017, Kotlin a été choisi par Google comme langue de développement d'applications mobiles pour Android. La langue est pratique pour développer des applications serveur, natives et Web.

Dans le cadre du cours, nous avons étudié la syntaxe du langage et implémenté un projet de notre propre messager, comprenant une application serveur, un client web et une application Android. A travaillé chez Intellij IDEA (Community Edition) et Android Studio.

Voir plus:

  • Le livre "Kotlin en action" D. Zhemerova
  • Documentation et exercices sur kotlinlang.ru et kotlinlang.org
  • Cours de Kotlin à Stepik et Coursera

Matériaux

L'informatique


1. Recherche d'objets combinatoires à l'aide de solveurs ILP et SAT


Conférencier: Alexander Kulikov (Université d'État de Saint-Pétersbourg, CS Center, JetBrains)

À propos du cours. Les étudiants ont été formés pour trouver des objets combinatoires complexes en utilisant des solveurs SAT, des programmes pour résoudre le problème de satisfiabilité booléenne et des solveurs ILP, des programmes pour résoudre le problème de programmation linéaire entière. Nous avons appris comment ces deux tâches sont formulées et combien de tâches pratiquement importantes leur sont réduites. En particulier, ils ont mis en œuvre conjointement des programmes pour résoudre le Sudoku, les mots croisés japonais et trouver des carrés latins et grec-latins. Après cela, nous sommes passés de puzzles à des tâches importantes dans l'industrie: pour rechercher des circuits booléens efficaces (nous nous sommes familiarisés avec le programme de recherche de circuits de Knuth et son hypothèse sur la complexité d'une fonction) et de grands ensembles indépendants dans les graphiques.

Pour m'entraîner, j'avais besoin d'une connaissance de base du langage de programmation Pyhton3 (boucles, fonctions, E / S) et des bibliothèques pycosat et mip.

Matériaux

2. Analyse d'images et réseaux convolutionnels


Enseignants: Alexey Artamonov (Yandex), Alexander Avdyushenko (Université d'État de Saint-Pétersbourg, CS Center, Yandex)

À propos du cours. Des percées dans le domaine de la vision par ordinateur se produisent régulièrement dans le monde moderne: détecter le mariage dans la production par l'image, reconnaître et même changer le visage d'une personne, diagnostiquer les maladies à un stade précoce à partir de photographies - tout le monde se souviendra facilement des dernières nouvelles fraîches de ce domaine. Les réseaux de neurones convolutifs actuellement en vision par ordinateur sont l'un des plus grands succès de l'apprentissage automatique. Dans ce cours, les étudiants ont étudié:

  • Travaillez avec des images à l'aide de Python.
  • Extraire des attributs sémantiques simples et complexes.
  • Concevoir des réseaux de neurones convolutifs.
  • Courez et entraînez-les.

Voir plus:


Matériaux

3. Formation de renforcement


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

À propos du cours. Chaque jour, vous recherchez quelque chose sur Internet en utilisant l'un des principaux moteurs de recherche, comme par exemple Yandex ou Google. Ou regardez la série via Kinopoisk, et il vous conseillera quelles autres séries vous aimerez. Ou peut-être avez-vous entendu dire que l'ordinateur a dépassé les humains dans des jeux comme go, Dota 2 et même Starcraft 2? La base de tout cela est l'apprentissage automatique, qui est proposé de se rencontrer dans notre cours. Nous parlerons des algorithmes classiques et des algorithmes plus avancés tels que les réseaux de neurones et l'apprentissage par renforcement.

Dans les cours pratiques, nous implémentons notre propre bot pour le jeu Pakman classique. Notre décideur en intelligence artificielle sera basé sur l'une des sections les plus intéressantes de l'apprentissage automatique - l'apprentissage par renforcement. A la fin du parcours, nos bots s'affronteront dans le tournoi.

Voir plus:

  • Vous pouvez vous entraîner avec Open AI Gym.
  • Cours magistral sur l'apprentissage par renforcement profond de Deep Mind, une filiale de l'intelligence artificielle basée sur Google.
  • Cours magistral «Renforcement de l'apprentissage» par David Silver.
  • Le livre "Renforcement de l'apprentissage: une introduction".

Matériaux

4. Systèmes de recommandation


Conférencier: Andrey Danilchenko (Yandex)

image

À propos du cours. Chaque jour, nous sommes confrontés à une énorme quantité d'informations: des projets éducatifs sont en cours, des amis écrivent sur les réseaux sociaux, des articles intéressants sont publiés sur Habré, de nouveaux morceaux de musiciens préférés et de nouveaux films que vous souhaitez regarder apparaissent. Afin de ne pas se noyer dans cette variété de contenus, des systèmes de recommandation sont utilisés. La radio reprend vos pistes personnelles, Zen et les réseaux sociaux classent le contenu personnellement. Dans ce cours, nous avons expliqué comment ces systèmes fonctionnent «sous le capot»: d'où viennent les données, quels algorithmes sont utilisés pour sélectionner et classer le contenu.

Liste des matériaux

de tous les cours postés avec présentations

All Articles