Materialien aus der Schicht für Studenten der Mathematik und Programmierung in "Sirius"

Im Januar dieses Jahres fand bei Sirius eine Schicht für Schulkinder statt . Veranstalter - Fakultät für Mathematik und Informatik, St. Petersburg State University .

Das Programm bestand aus drei Tracks: "Mathematik", "Programmierung" und "Informatik". Die Kurse wurden mit allgemeinbildenden Vorträgen und Teepartys mit Lehrern und Organisatoren verwässert. Unter den Lehrern sind Wissenschaftler und Lehrer der Fakultät für Mathematik und Mathematik der St. Petersburg State University, der BSU, der Higher School of Economics, der Moscow State University, der Entwickler von Yandex und JetBrains sowie Mitarbeiter von POMI RAS. Wir haben darüber gesprochen, wie die Schicht hier arrangiert wurde , und jetzt veröffentlichen wir Materialien für einen Teil der Kurse.

Bild

Mathematik


1. Diskrete Morse-Theorie


Lehrer: Gayane Panieva (Staatliche Universität St. Petersburg, POMI), Galina Pass (Universität Tartu), Nikita Kalinin (Staatliche Universität St. Petersburg, Hochschule für Wirtschaft)

Über den Kurs. Die diskrete Morse-Theorie ist in vielen Bereichen ein funktionierendes Werkzeug, eine schöne Mischung aus Kombinatorik und Topologie. Während des Kurses haben die Jungs diese Methode bei der Lösung von Problemen wiederentdeckt. Alles begann mit anschaulichen Beispielen: mit der Morse-Theorie auf zweidimensionalen Oberflächen (Kugeln mit Griffen und Filmen) und ging dann zu abstrakteren Konstruktionen über. Die Aufgaben wurden in Projekte unterteilt, die in Gruppen durchgeführt werden konnten.

Materialien

2. Warum wurde der Satz von Fermat vor 300 Jahren nicht bewiesen?


Lehrer: Ivan A. Panin (POMI)

Über den Kurs. Der Satz des großen Fermat oder der Satz des letzten Fermat ist einer der beliebtesten Sätze in der Mathematik. Sein Zustand wird einfach formuliert, auf der arithmetischen Ebene der "Schule" haben jedoch viele Mathematiker seit mehr als dreihundert Jahren nach dem Beweis des Theorems gesucht. 1994 von Andrew Wiles bewiesen. Der Beweis wurde 1995 veröffentlicht, umfasst etwa 100 Seiten und verwendet mehrere Abschnitte der Mathematik, die im 20. Jahrhundert erstellt wurden. Auf dem Kurs wurde ein Beweis für den Satz von Fermat für den Fall gegeben, dass ein Ring faktoriell ist. Der Beweis ist für Schüler zugänglich und basiert auf der klassischen Zahlentheorie des 19. und frühen 20. Jahrhunderts.

Weiterlesen:Absätze 1 und 7, Abschnitt 3 des Buches Borevich Z. I., Shafarevich I. R. "Zahlentheorie". Zweite Ausgabe, Nauka Verlag.

Materialien

3. Über Methoden zur Berechnung von Durchschnittswerten in der analytischen Zahlentheorie


Dozentin: Alisa Sedunova (Staatliche Universität St. Petersburg)

Bild

Bild

Materialien

4. Einführung in die Theorie der Produktsummen


Dozent: Ilya Shkredov (Moskauer Staatliche Universität, Steklov Mathematical Institute)

Sei A eine beliebige endliche Menge von ganzen Zahlen. Betrachten Sie
bei uns die Summe und das Produkt von A, nämlich die Menge

A + A: = {c = a + b | a, b aus A} und A · A: = {c = a · b | a, b von A}.

Es gibt Mengen mit einer kleinen Summe, zum Beispiel arithmetische Progressionen:
ifP=1,2,...,n,|P+P|=2n1(Denken Sie daran, dass | A | die Anzahl der Elemente der Menge A bezeichnet).

In ähnlicher Weise hat der geometrische Verlauf G = {2, 2², ..., 2ⁿ} ein kleines Produkt: | G · G | = 2n - 1. Die Produktsummenhypothese besagt, dass es keine Mengen gibt, die gleichzeitig eine kleine Summe und ein Produkt haben, nämlich für eine beliebige Menge A, dass entweder A + A oder A · A nahezu gleich groß sind | A | ² (genauer gesagt etwas weniger: | A | ²⁻ᵋ). Die obige Ungleichung wurde noch nicht bewiesen, aber selbst teilweise Fortschritte in diesem Bereich haben bereits zu signifikanten Fortschritten bei Problemen der Zahlentheorie, der additiven Kombinatorik, der Kryptographie und der Theorie dynamischer Systeme geführt. Der Spezialkurs ist eine Einführung in diesen wunderbaren Teil der Mathematik.

Mehr sehen:

  • Die Seite des Dozenten in der Likbez-Datei enthält viele einführende und nicht sehr Artikel über additive Kombinatorik.
  • Post-Science-Video
  • Umfragen „Summen und Produkte von Mengen und Schätzungen rationaler trigonometrischer Summen in Bereichen einfacher Ordnung“, „Semeredi-Theorem und Probleme bei arithmetischen Fortschritten“.
  • Tao Wus Buch Additive Kombinatorik, Cambridge University Press 2006.

Materialien

Programmierung


1. Die Prinzipien der Programmierung


Lehrer: Vitaliy Bragilevsky (JetBrains)

Über den Kurs. Dieser Kurs widmet sich dem Studium und der Praxis der Grundprinzipien, die der modernen industriellen Programmierung zugrunde liegen. Im Rahmen des Kurses versuchte der Dozent, eine Einstellung zum Programmieren als eine Art berufliche Tätigkeit zu formulieren, die darauf abzielt, qualitativ hochwertige, unterstützte und produktive Software zu erstellen. Zu diesem Zweck untersuchten die Schüler das Konzept und die Möglichkeiten zur Erzielung von Softwarequalität, diskutierten Methoden zum Testen von Programmen, sprachen über verschiedene Programmierstile und wie mit Daten gearbeitet werden sollte, die zwischen den Programmstarts gespeichert werden sollten.

Die Hauptprogrammiersprache des Kurses ist Python. Die Schüler haben auch einige andere kennengelernt (zum Beispiel Rust). Auf diese Weise können Sie den Horizont Ihres Programmierers erweitern und verstehen, dass die Fähigkeiten einer Programmiersprache im Wesentlichen bestimmen, was ein Programmierer mit seiner Hilfe ausdrücken kann, mit welchen Aufgaben er vertraut sein wird und mit welchen Schwierigkeiten er möglicherweise konfrontiert ist.

Lesen Sie mehr: S. McConnell. Perfekter Code. Master Class. Russische Ausgabe, 2019.

Materialien

2. Funktionale Programmierung


Dozent: Denis Nikolaevich Moskvin (Staatliche Universität St. Petersburg, Higher School of Economics)

Über den Kurs. Der Kurs begann mit einer Diskussion verschiedener Rechenmodelle. Die Schüler versuchten herauszufinden, wie ein Substitutionsmodell von Berechnungen es Ihnen ermöglicht, ohne Anweisungen nur mit Ausdrücken und Deklarationen zu programmieren. Sie diskutierten einen energetischen und faulen Ansatz für das Rechnen, die Rolle der Rekursion in funktionalen Sprachen und Möglichkeiten, um die effektive Implementierung rekursiver Funktionen sicherzustellen. Wir haben uns mit den Prinzipien der Konstruktion von Systemen für Typen funktionaler Sprachen vertraut gemacht. Lassen Sie uns darüber sprechen, warum ihre Typen als algebraisch bezeichnet werden.

Sie haben gesehen, wie Typen es Ihnen ermöglichen, die Kontrolle über die Arbeit des Programmierers auszuüben, und waren überrascht, wie unauffällig und vollständig diese Kontrolle gleichzeitig ist. Die Programmiersprache für diesen Kurs ist Haskell. Die Schüler diskutierten kurz die Geschichte und die Infrastruktur, die bisher entwickelt wurde, machten sich mit der Syntax vertraut, ohne die Semantik zu vergessen, und schrieben eine Reihe von Programmen: zuerst zusammen und dann einzeln.

Mehr sehen:


Materialien

3. Arbeiten Sie an der Unix-Befehlszeile


Lehrer: Vitaliy Bragilevsky (JetBrains)

Über den Kurs. Die Effektivität der Verwendung eines Computers zur Lösung einer Vielzahl von Aufgaben hängt wesentlich davon ab, welche Tools verwendet werden. Viele Menschen bevorzugen grafische Anwendungen und arbeiten hauptsächlich mit der Maus (oder dem Trackpad!). Programmierer hingegen bevorzugen die Tastatur häufiger und lehnen manchmal die grafische Oberfläche zugunsten von Befehlszeilenprogrammen und Konsolentexteditoren ab.

In diesem Kurs lernten die Schüler, wie man die Befehlszeile im UNIX-Stil verwendet, wie man in Bash programmiert und wie man Dutzende verschiedener Dienstprogramme verwendet, die traditionell auf UNIX-Systemen wie Linux und Mac OS X verwendet werden. Windows 10-Benutzer verwendeten WSL und Windows Terminal Und vor allem: Wir haben gelernt, den vi-Editor zu verlassen und herausgefunden, warum der Emacs-Editor immer noch besser ist (oder umgekehrt!).

Materialien

4. Lesen und schreiben Sie in der Kotlin-Sprache


Lehrer : Mikhail Senin (JetBrains)

Bild

Über den Kurs. Kotlin ist eine moderne, universelle Programmiersprache, die von JetBrains entwickelt wurde. Kotlin verfügt über Funktionen, die für die industrielle Programmierung wichtig sind. Die Sprache ist prägnant und bietet eine gute IDE-Unterstützung. 2017 wurde Kotlin von Google als Sprache für die Entwicklung mobiler Anwendungen für Android ausgewählt. Die Sprache eignet sich für die Entwicklung von Server-, Native- und Webanwendungen.

Im Rahmen des Kurses haben wir die Syntax der Sprache studiert und ein Projekt unseres eigenen Messenger implementiert, einschließlich einer Serveranwendung, eines Webclients und einer Android-Anwendung. Arbeitete bei Intellij IDEA (Community Edition) und Android Studio.

Mehr sehen:

  • Das Buch "Kotlin in Aktion" D. Zhemerova
  • Dokumentation und Übungen auf kotlinlang.ru und kotlinlang.org
  • Kotlin Kurse bei Stepik und Coursera

Materialien

Informatik


1. Suchen Sie mit ILP- und SAT-Solvern nach kombinatorischen Objekten


Dozent: Alexander Kulikov (Staatliche Universität St. Petersburg, CS Center, JetBrains)

Über den Kurs. Die Schüler wurden darin geschult, komplexe kombinatorische Objekte mithilfe von SAT-Solvern, Programmen zur Lösung des Booleschen Erfüllbarkeitsproblems und ILP-Solvern, Programmen zur Lösung des Problems der ganzzahligen linearen Programmierung, zu finden. Wir haben gelernt, wie diese beiden Aufgaben formuliert und wie viele praktisch wichtige Aufgaben auf sie reduziert werden. Insbesondere implementierten sie gemeinsam Programme zur Lösung von Sudoku, japanischen Kreuzworträtseln, zur Suche nach lateinischen und griechisch-lateinischen Quadraten. Danach gingen wir von Rätseln zu Aufgaben über, die in der Branche wichtig sind: Suche nach effektiven Booleschen Schaltkreisen (wir haben Knuths Programm zum Suchen von Schaltkreisen und seiner Hypothese über die Komplexität einer Funktion kennengelernt) und großen unabhängigen Mengen in Graphen.

Zum Üben benötigte ich Grundkenntnisse der Programmiersprache Pyhton3 (Schleifen, Funktionen, E / A) sowie der Pycosat- und Mip-Bibliotheken.

Materialien

2. Bildanalyse und Faltungsnetzwerke


Lehrer: Alexey Artamonov (Yandex), Alexander Avdyushenko (Staatliche Universität St. Petersburg, CS Center, Yandex)

Über den Kurs. In der modernen Welt gibt es regelmäßig Durchbrüche auf dem Gebiet des Computer-Sehens: Erkennen der Ehe in der Produktion anhand des Bildes, Erkennen und sogar Ändern des Gesichts einer Person, Diagnostizieren von Krankheiten in einem frühen Stadium anhand von Fotos - jeder wird sich leicht an die neuesten Nachrichten aus diesem Bereich erinnern. Faltungsneurale Netze sind derzeit in der Bildverarbeitung einer der größten Erfolge beim maschinellen Lernen. In diesem Kurs studierten die Studenten:

  • Arbeiten Sie mit Bildern mit Python.
  • Extrahieren Sie einfache und komplexe semantische Attribute.
  • Entwerfen Sie Faltungs-Neuronale Netze.
  • Lauf und trainiere sie.

Mehr sehen:


Materialien

3. Verstärkungstraining


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

Über den Kurs. Jeden Tag suchen Sie im Internet nach etwas, indem Sie eine der wichtigsten Suchmaschinen wie beispielsweise Yandex oder Google verwenden. Oder schauen Sie sich die Serie über Kinopoisk an und er berät Sie, welche anderen Serien Ihnen gefallen könnten. Oder haben Sie vielleicht gehört, dass der Computer Menschen in Spielen wie go, Dota 2 und sogar Starcraft 2 übertroffen hat? Die Basis all dessen ist maschinelles Lernen, das in unserem Kurs angeboten wird. Wir werden über klassische und fortgeschrittenere Algorithmen wie neuronale Netze und Verstärkungslernen sprechen.

Im praktischen Unterricht implementieren wir unseren eigenen Bot für das klassische Pakman-Spiel. Unser Entscheider mit künstlicher Intelligenz wird auf einem der interessantesten Abschnitte des maschinellen Lernens basieren - dem verstärkten Lernen. Am Ende des Kurses kämpfen unsere Bots im Turnier.

Mehr sehen:

  • Sie können mit Open AI Gym üben.
  • Vorlesung über Deep Reinforcement Learning von Deep Mind, einer in Google ansässigen Tochtergesellschaft für künstliche Intelligenz.
  • Vorlesung „Reinforcement Learning“ von David Silver.
  • Das Buch "Reinforcement Learning: Eine Einführung".

Materialien

4. Empfehlungssysteme


Dozent: Andrey Danilchenko (Yandex)

Bild

Über den Kurs. Jeden Tag sind wir mit einer Vielzahl von Informationen konfrontiert: Bildungsprojekte laufen, Freunde schreiben in sozialen Netzwerken, interessante Artikel werden auf Habré veröffentlicht, neue Tracks von Lieblingsmusikern und neue Filme, die Sie sehen möchten, erscheinen. Um in dieser Vielfalt von Inhalten nicht zu ertrinken, werden Empfehlungssysteme eingesetzt. Radio nimmt Ihre persönlichen Titel auf, Zen und soziale Netzwerke bewerten den Inhalt persönlich. In diesem Kurs haben wir darüber gesprochen, wie solche Systeme „unter der Haube“ funktionieren: Woher kommen die Daten, welche Algorithmen werden verwendet, um Inhalte auszuwählen und zu bewerten.

Materialien

Liste aller Schichtkurse mit Präsentationen

All Articles