Materiais da mudança para estudantes de matemática e programação em "Sirius"

Em janeiro deste ano, ocorreu uma mudança para os alunos em Sirius . Organizador - Faculdade de Matemática e Ciências da Computação, Universidade Estadual de São Petersburgo .

O programa consistiu em três faixas: "Matemática", "Programação" e "Ciência da Computação". Os cursos foram diluídos com palestras de educação geral e festas com professores e organizadores. Entre os professores estão cientistas e professores da Faculdade de Matemática e Matemática da Universidade Estadual de São Petersburgo, BSU, Escola Superior de Economia, Universidade Estadual de Moscou, desenvolvedores Yandex e JetBrains, funcionários da POMI RAS. Conversamos sobre como a mudança foi organizada aqui e agora estamos postando materiais para parte dos cursos.

imagem

Matemática


1. Teoria Morse Discreta


Professores: Gayane Panieva (Universidade Estadual de São Petersburgo, POMI), Galina Pass (Universidade de Tartu), Nikita Kalinin (Universidade Estadual de São Petersburgo, Escola Superior de Economia)

Sobre o curso. A teoria discreta de Morse é uma ferramenta de trabalho em muitas áreas, uma boa mistura de combinatória e topologia. No curso, os caras redescobriram esse método no processo de resolução de problemas. Tudo começou com exemplos ilustrativos: com a teoria de Morse em superfícies bidimensionais (esferas com alças e filmes) e depois passou para construções mais abstratas. As tarefas foram divididas em projetos que poderiam ser realizados em grupos.

Materiais

2. Por que o teorema de Fermat não foi comprovado há 300 anos?


Professor: Ivan A. Panin (POMI)

Sobre o curso. O grande teorema de Fermat ou o último teorema de Fermat é um dos teoremas mais populares da matemática. Sua condição é formulada simplesmente, no nível aritmético da "escola", no entanto, muitos matemáticos têm procurado a prova do teorema há mais de trezentos anos. Provado em 1994 por Andrew Wiles. A prova foi publicada em 1995, ocupa cerca de 100 páginas e usa várias seções da matemática criadas no século XX. No curso, foi dada uma prova do teorema de Fermat no caso em que algum anel é fatorial. A prova é acessível a estudantes do ensino médio e baseia-se na teoria clássica dos números dos séculos XIX e XX.

Consulte Mais informação:parágrafos 1 e 7, seção 3 do livro Borevich Z. I., Shafarevich I. R. "Theory of numbers". Segunda edição, Nauka Publishing House.

Materiais

3. Sobre métodos para calcular médias na teoria dos números analíticos


Palestrante: Alisa Sedunova (Universidade Estadual de São Petersburgo)

imagem

imagem

Materiais

4. Introdução à teoria das somas de produtos


Palestrante: Ilya Shkredov (Universidade Estadual de Moscou, Instituto de Matemática Steklov)

Seja A um conjunto finito arbitrário de números inteiros. Considere a soma e o
produto de A conosco, a saber, o conjunto

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

Existem conjuntos com uma pequena soma, por exemplo, progressões aritméticas:
seP=1,2,...,n,|P+P|=2n1(lembre-se de que | A | indica o número de elementos do conjunto A).

Da mesma forma, a progressão geométrica G = {2, 2², ..., 2ⁿ} possui um pequeno produto: | G · G | = 2n - 1. A hipótese da soma do produto afirma que não há conjuntos que tenham simultaneamente uma pequena soma e um produto, a saber, para um conjunto arbitrário A que A + A ou A · A é quase igual em tamanho | A | ² (mais precisamente um pouco menos: | A | ²⁻ᵋ). A desigualdade acima ainda não foi comprovada, mas mesmo o progresso parcial nessa área já levou a um progresso significativo em problemas da teoria dos números, combinatória aditiva, criptografia e teoria dos sistemas dinâmicos. O curso especial é uma introdução a esta parte maravilhosa da matemática.

Veja mais:

  • A página do professor no arquivo Likbez contém muitos artigos introdutórios e não muito sobre combinatória aditiva.
  • Vídeo Pós-Ciência
  • Pesquisas “Soma e produtos de conjuntos e estimativas de somas trigonométricas racionais em campos de ordem simples”, “Teorema de Semeredi e problemas em progressões aritméticas”.
  • Livro de Tao Wu Aditive combinatorics, Cambridge University Press 2006.

Materiais

Programação


1. Os princípios de programação


Professor: Vitaliy Bragilevsky (JetBrains)

Sobre o curso. Este curso é dedicado ao estudo e prática dos princípios básicos subjacentes à programação industrial moderna. Como parte do curso, o palestrante tentou formular uma atitude em relação à programação como um tipo de atividade profissional que visa criar software produtivo, suportado e de alta qualidade. Para fazer isso, os alunos estudaram o conceito e as maneiras de alcançar a qualidade do software, discutiram métodos para testar programas, conversaram sobre diferentes estilos de programação e como trabalhar com dados que deveriam viver entre os lançamentos do programa.

A principal linguagem de programação do curso é Python, os alunos também se familiarizaram com vários outros (por exemplo, Rust). Isso permite expandir os horizontes do programador e também entender que os recursos de uma linguagem de programação determinam substancialmente o que um programador pode expressar com sua ajuda, com quais tarefas ele se sentirá confortável e com as quais poderá ter algumas dificuldades.

Leia mais: S. McConnell. Código perfeito. Classe mestre. Edição russa, 2019.

Materiais

2. Programação funcional


Palestrante: Denis Nikolaevich Moskvin (Universidade Estadual de São Petersburgo, Escola Superior de Economia)

Sobre o curso. O curso começou com uma discussão de diferentes modelos computacionais, os alunos tentaram entender como um modelo de substituição de cálculos permite programar sem instruções, usando apenas expressões e declarações. Eles discutiram uma abordagem enérgica e preguiçosa da computação, o papel da recursão em linguagens funcionais e maneiras de garantir a implementação eficaz de funções recursivas. Nós nos familiarizamos com os princípios de construção de sistemas de tipos de linguagens funcionais, vamos falar sobre por que seus tipos são chamados algébricos.

Eles viram como os tipos permitem exercer controle sobre o que o programador faz e ficaram surpresos ao ver como esse controle é discreto e total ao mesmo tempo. A linguagem de programação para este curso é Haskell. Os alunos discutiram brevemente sua história e a infraestrutura desenvolvida até o momento, familiarizaram-se com a sintaxe, sem esquecer a semântica, e escreveram vários programas: primeiro juntos e depois individualmente.

Veja mais:


Materiais

3. Trabalhe na linha de comando do Unix


Professor: Vitaliy Bragilevsky (JetBrains)

Sobre o curso. A eficácia do uso de um computador para resolver uma variedade de tarefas depende significativamente de quais ferramentas são usadas. Muitas pessoas preferem aplicativos gráficos e trabalham principalmente com o mouse (ou trackpad!). Os programadores, por outro lado, preferem o teclado com mais frequência e às vezes recusam a interface gráfica em favor dos utilitários de linha de comando e editores de texto do console.

Neste curso, os alunos aprenderam a usar a linha de comando no estilo UNIX, aprenderam a programar no bash e também usaram dezenas de utilitários diferentes que são tradicionalmente usados ​​em sistemas UNIX, como Linux e Mac OS X. Os usuários do Windows 10 usavam WSL e Terminal do Windows E o mais importante: aprendemos a sair do editor vi e descobrimos por que o editor Emacs ainda é melhor (ou vice-versa!).

Materiais

4. Leia e escreva na língua Kotlin


Professor : Mikhail Senin (JetBrains)

imagem

Sobre o curso. Kotlin é uma linguagem de programação moderna e de uso geral desenvolvida pela JetBrains. O Kotlin possui recursos importantes na programação industrial. A linguagem é concisa e possui um bom suporte de IDE. Em 2017, o Kotlin foi escolhido pelo Google como idioma para o desenvolvimento de aplicativos móveis para Android. A linguagem é conveniente para o desenvolvimento de aplicativos de servidor, nativos e da web.

Como parte do curso, estudamos a sintaxe do idioma e implementamos um projeto de nosso próprio messenger, que inclui um aplicativo de servidor, um cliente web e um aplicativo Android. Trabalhou no Intellij IDEA (Community Edition) e no Android Studio.

Veja mais:

  • O livro "Kotlin em ação" D. Zhemerova
  • Documentação e exercícios em kotlinlang.ru e kotlinlang.org
  • Cursos de Kotlin na Stepik e Coursera

Materiais

Ciência da Computação


1. Pesquise objetos combinatórios usando os solucionadores ILP e SAT


Palestrante: Alexander Kulikov (Universidade Estadual de São Petersburgo, CS Center, JetBrains)

Sobre o curso. Os alunos são treinados para encontrar objetos combinatórios complexos usando solucionadores SAT, programas para resolver o problema de satisfação booleana e solucionadores ILP, programas para resolver o problema de programação linear inteira. Aprendemos como essas duas tarefas são formuladas e quantas tarefas praticamente importantes são reduzidas a elas. Em particular, eles implementaram em conjunto programas para resolver Sudoku, palavras cruzadas em japonês e encontrar quadrados em latim e grego-latim. Depois disso, passamos de quebra-cabeças para tarefas importantes na indústria: procurar circuitos booleanos eficazes (nos familiarizamos com o programa de Knuth para pesquisar circuitos e sua hipótese sobre a complexidade de uma função) e grandes conjuntos independentes em gráficos.

Para a prática, eu precisava de conhecimentos básicos da linguagem de programação Pyhton3 (loops, funções, E / S) e das bibliotecas pycosat e mip.

Materiais

2. Análise de imagem e redes convolucionais


Professores: Alexey Artamonov (Yandex), Alexander Avdyushenko (Universidade Estadual de São Petersburgo, CS Center, Yandex)

Sobre o curso. As inovações no campo da visão computacional ocorrem regularmente no mundo moderno: detectando o casamento na produção por imagem, reconhecendo e até mudando o rosto de uma pessoa, diagnosticando doenças nas fases iniciais das fotografias - todos se lembram facilmente das últimas notícias novas nessa área. As redes neurais convolucionais no momento em visão computacional são um dos maiores sucessos no aprendizado de máquina. Neste curso, os alunos estudaram:

  • Trabalhe com imagens usando Python.
  • Extraia atributos semânticos simples e complexos.
  • Projetar redes neurais convolucionais.
  • Corra e treine-os.

Veja mais:


Materiais

3. Treinamento de reforço


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

Sobre o curso. Todos os dias você procura algo na Internet usando um dos principais mecanismos de pesquisa, como, por exemplo, Yandex ou Google. Ou assista à série através do Kinopoisk, e ele aconselha quais outras séries você pode gostar. Ou talvez você já tenha ouvido falar que o computador superou os humanos em jogos como go, Dota 2 e até Starcraft 2? A base de tudo isso é o aprendizado de máquina, proposto em nosso curso. Falaremos sobre algoritmos clássicos e mais avançados, como redes neurais e aprendizado por reforço.

Nas aulas práticas, implementamos nosso próprio bot para o clássico jogo Pakman. Nosso tomador de decisão com inteligência artificial será baseado em uma das seções mais interessantes do aprendizado de máquina - o aprendizado por reforço. No final do curso, nossos bots lutarão no torneio.

Veja mais:

  • Você pode praticar com o Open AI Gym.
  • Curso de palestras sobre Deep Reforcement Learning da Deep Mind, uma subsidiária de inteligência artificial do Google.
  • Curso de Palestra “Aprendizagem por Reforço”, de David Silver.
  • O livro "Aprendizagem por Reforço: Uma Introdução".

Materiais

4. Sistemas de recomendação


Palestrante: Andrey Danilchenko (Yandex)

imagem

Sobre o curso. Todos os dias nos deparamos com uma enorme quantidade de informações: projetos educacionais estão em andamento, amigos escrevem nas redes sociais, artigos interessantes são publicados no Habré, novas faixas de músicos favoritos e novos filmes que você deseja assistir. Para não se afogar nessa variedade de conteúdo, são utilizados sistemas de recomendação. O rádio capta suas faixas pessoais, o Zen e as redes sociais classificam o conteúdo pessoalmente. Neste curso, falamos sobre como esses sistemas funcionam “ocultamente”: de onde vêm os dados, quais algoritmos são usados ​​para selecionar e classificar o conteúdo.

Lista de materiais

de todos os turnos com apresentações

All Articles