2024a

Материал из PTHSWiki
(Различия между версиями)
Перейти к: навигация, поиск
(Задачи по программированию)
(Задания по программированию и не только)
 
(не показаны 59 промежуточных версий 1 участника)
Строка 1: Строка 1:
 +
== Немного LaTeX ==
 +
 +
Что читать:<br>
 +
[https://prog.school.ioffe.ru/tex/Baldin.pdf LaTeX,GNU/Linux и русский стиль (Е.М. Балдин)] (первая глава) <br>
 +
[https://prog.school.ioffe.ru/tex/Kotelnikov_Chebotaev.pdf LaTeX по-русски (И. Котельников, П. Чеботаев)] (до параграфа 1.4.1) <br>
 +
[https://prog.school.ioffe.ru/tex/Lvovsky.pdf Набор и вёрстка в системе LaTeX (С.М. Львовский)] (I глава, 2 и 3 параграфы) <br>
 +
[https://prog.school.ioffe.ru/tex/Vorontsov.pdf LaTeX в примерах (К.В. Воронцов)] (кому неохота лезть глубоко и нужны практические советы) <br>
 +
[https://prog.school.ioffe.ru/tex/Knuth._Texbook_(rus).pdf The TeXbook (Donald Knuth)] (кому, наоборот, хочется приникнуть в первоисточнику) <br>
 +
[https://prog.school.ioffe.ru/tex/Knuth._Texbook_(eng).pdf The TeXbook (Donald Knuth)] (это уже совсем первоисточник на родном языке автора) <br>
 +
 +
Как запускать:<br>
 +
[https://www.overleaf.com/ Онлайн-версия, можно править код совместно]<br>
 +
При установке на свой компьютер нужно различать интерпретатор языка и среду программирования (упрощённо говоря редактор со специфическими функциями).<br>
 +
Иногда вместе с интерпретатором поставляется и простой редактор (как вместе с Python можно поставить Python IDLE). Например, вместе с интерпретатором [https://miktex.org/ MikTex] поставляется вполне работоспособный редактор TexWorks.<br>
 +
Другая среда: [https://www.texstudio.org/ TeXstudio]<br><br>
 +
Для рисования разных картинок (в т.ч. геометрии) можно использовать пакет [https://tikz.net/ tikz]<br>
 +
А для изучения того, что вообще можно нарисовать, рекомендуется этот [https://texample.net/ прекрасный сайт].
 +
 
== Тренажёр слепой печати ==
 
== Тренажёр слепой печати ==
  
Строка 9: Строка 27:
 
|}
 
|}
  
== Задачи по программированию ==
+
== Задания по программированию и не только ==
  
 
{|
 
{|
Строка 16: Строка 34:
 
! style="text-align:left;width:500px;"|Критерии оценивания и замечания
 
! style="text-align:left;width:500px;"|Критерии оценивания и замечания
  
 +
|-
 +
|[https://prog.school.ioffe.ru/2022-2023/DP.pdf Динамическое программирование] <br> [https://zadachi.mccme.ru/plak/plak-levenstein2.pdf Про редакционное расстояние] || [https://prog.school.ioffe.ru//cgi-bin/new-client?contest_id=381 Вход в тестирующую систему (контест 381)] || До 30.11.2022 (задачи A-D: 2/3/4)<br> До 07.12.2022 (задачи E-L: 2/4/6)<br> До 14.12.2022 (задачи M-U: 4/5/6)
 +
 +
|-
 +
| [https://www.youtube.com/watch?v=jsYwFizhncE Самый странный способ вычисления числа &#960;] || (есть русские субтитры!) || ...
 +
 +
|-
 +
|[https://prog.school.ioffe.ru/2022-2023/search.pdf Двоичный поиск]<br>[https://prog.school.ioffe.ru/2022-2023/binsearch_theory.pdf Теория] || [https://prog.school.ioffe.ru//cgi-bin/new-client?contest_id=380 Вход в тестирующую систему (контест 380)] || До 16.11.2022 23:59:59 (задачи A-F: 3/4/5)<br> До 22.11.2022 23:59:59 (задачи G-N: 3/4/6)
 +
 +
|-
 +
| [https://prog.school.ioffe.ru/2022-2023/planes_to_land_problem.pdf Описание задачи про приземление самолётов] || ... || Внутри описаны две задачи: написать решение и написать тесты к задаче.
 +
 +
|-
 +
| [https://www.youtube.com/watch?v=P1ww1IXRfTA&t=895s Рассказ Ричарда Фейнмана про "почему"]<br>Смотреть и остальное, конечно, тоже. || ... || Навеяно обсуждением того, как обрабатываются в Python-функциях объекты изменяемого и неизменяемого типов. Если коротко, "всё сложно и есть нюансы".
 +
 +
|-
 +
|[https://prog.school.ioffe.ru/2022-2023/combinatorics_iterative.pdf Комбинаторика, перечисление объектов]<br>[https://zadachi.mccme.ru/plak/plak-catalan2.pdf Полезная ссылка для решения некоторых задач] || [https://prog.school.ioffe.ru//cgi-bin/new-client?contest_id=379 Вход в тестирующую систему (контест 379)] || [https://prog.school.ioffe.ru/2022-2023/iter_example.py Шаблон кода]<br>Часть 1 (A-M), срок сдачи 23:59:59 04.10.2022. Критерии: 4/6/10<br>Часть 2 (N-W), срок сдачи 23:59:59 18.10.2022. Критерии 2[N-Q]/2[N-Q], T/3[N-Q], T + любые две задачи на выбор<br> Часть 3 (Y-ZC), срок сдачи 23:59:59 25.10.2022. Критерии: 1/2/4
 +
 +
|-
 +
| [[https://prog.school.ioffe.ru/2022-2023/alg_latex.pdf Задачи по алгебре] ||  Какие именно задачи вам надо решить и оформить определяет [https://prog.school.ioffe.ru/2022-2023/oracle.py оракул].<br>Cкачайте и запустите эту программу. || Набрать в LaTeX решение двух задач, по одной из каждого раздела. В документе укажите номер обеих задач в соответствии с тем, что вам написал оракул.<br> Пришлите оба файла: *.tex и *.pdf<br>Срок сдачи: 23:59:59 17.09.2022<br>Можете посмотреть задачник по [https://prog.school.ioffe.ru/2022-2023/Prasolov_Zadachi_po_arifmetike_algebre_i_analizu.pdf ссылке]. Вы получите представление о том, как выглядят формулы, если раньше вы этого не видели.
 +
 +
|-
 +
| [[https://prog.school.ioffe.ru/2022-2023/start_10.pdf Осеннее программирование] || [https://prog.school.ioffe.ru//cgi-bin/new-client?contest_id=378 Вход в тестирующую систему (контест 378)] || Срок сдачи: 23:59:59 17.09.2022<br>Критерии: 2/3/5.
  
 
|-
 
|-
Строка 154: Строка 195:
 
| По поводу оформления программ на Python и C++.
 
| По поводу оформления программ на Python и C++.
 
|-
 
|-
| <li>Python: стандартный PEP-8 (Python Enhancement Proposal) [https://www.python.org/dev/peps/pep-0008/ официальная страница (англ.)], [https://pep8.ru/doc/pep8/ один из урезанных переводов, если англ. совсем никак]
+
| <li>Python: стандартный PEP-8 (Python Enhancement Proposal) [https://www.python.org/dev/peps/pep-0008/ официальная страница] (англ.), [https://defpython.ru/pep8 один из урезанных переводов], если по-английски совсем никак
 
|-
 
|-
| <li> C++: [https://google.github.io/styleguide/cppguide.html подробный гугловый стайлгайд, англ.]
+
| <li> C++: подробный [https://google.github.io/styleguide/cppguide.html гугловый стайлгайд] (англ.)
  
 
|-
 
|-
Строка 164: Строка 205:
 
|-
 
|-
 
|
 
|
* [https://www.python.org/downloads/ Интерпретатор Python] — вам нужна версия 3, из Stable releases (стабильных), а не pre-releases.
+
* [https://www.python.org/downloads/ Интерпретатор Python] — вам нужна версия 3 (лучше от 3.7), из Stable releases (стабильных), а не pre-releases.
 
* [https://code.visualstudio.com/ VS Code]
 
* [https://code.visualstudio.com/ VS Code]
 
* [https://www.jetbrains.com/pycharm-edu/ PyCharm Educational]
 
* [https://www.jetbrains.com/pycharm-edu/ PyCharm Educational]

Текущая версия на 12:43, 28 ноября 2022

Содержание

Немного LaTeX

Что читать:
LaTeX,GNU/Linux и русский стиль (Е.М. Балдин) (первая глава)
LaTeX по-русски (И. Котельников, П. Чеботаев) (до параграфа 1.4.1)
Набор и вёрстка в системе LaTeX (С.М. Львовский) (I глава, 2 и 3 параграфы)
LaTeX в примерах (К.В. Воронцов) (кому неохота лезть глубоко и нужны практические советы)
The TeXbook (Donald Knuth) (кому, наоборот, хочется приникнуть в первоисточнику)
The TeXbook (Donald Knuth) (это уже совсем первоисточник на родном языке автора)

Как запускать:
Онлайн-версия, можно править код совместно
При установке на свой компьютер нужно различать интерпретатор языка и среду программирования (упрощённо говоря редактор со специфическими функциями).
Иногда вместе с интерпретатором поставляется и простой редактор (как вместе с Python можно поставить Python IDLE). Например, вместе с интерпретатором MikTex поставляется вполне работоспособный редактор TexWorks.
Другая среда: TeXstudio

Для рисования разных картинок (в т.ч. геометрии) можно использовать пакет tikz
А для изучения того, что вообще можно нарисовать, рекомендуется этот прекрасный сайт.

Тренажёр слепой печати

Ссылка Критерии оценивания и замечания
Ссылка для входа в класс
Убедитесь, что у вас свежая версия браузера (Chrome, Mozilla)
...

Задания по программированию и не только

Тема Ссылка для входа Критерии оценивания и замечания
Динамическое программирование
Про редакционное расстояние
Вход в тестирующую систему (контест 381) До 30.11.2022 (задачи A-D: 2/3/4)
До 07.12.2022 (задачи E-L: 2/4/6)
До 14.12.2022 (задачи M-U: 4/5/6)
Самый странный способ вычисления числа π (есть русские субтитры!) ...
Двоичный поиск
Теория
Вход в тестирующую систему (контест 380) До 16.11.2022 23:59:59 (задачи A-F: 3/4/5)
До 22.11.2022 23:59:59 (задачи G-N: 3/4/6)
Описание задачи про приземление самолётов ... Внутри описаны две задачи: написать решение и написать тесты к задаче.
Рассказ Ричарда Фейнмана про "почему"
Смотреть и остальное, конечно, тоже.
... Навеяно обсуждением того, как обрабатываются в Python-функциях объекты изменяемого и неизменяемого типов. Если коротко, "всё сложно и есть нюансы".
Комбинаторика, перечисление объектов
Полезная ссылка для решения некоторых задач
Вход в тестирующую систему (контест 379) Шаблон кода
Часть 1 (A-M), срок сдачи 23:59:59 04.10.2022. Критерии: 4/6/10
Часть 2 (N-W), срок сдачи 23:59:59 18.10.2022. Критерии 2[N-Q]/2[N-Q], T/3[N-Q], T + любые две задачи на выбор
Часть 3 (Y-ZC), срок сдачи 23:59:59 25.10.2022. Критерии: 1/2/4
[Задачи по алгебре Какие именно задачи вам надо решить и оформить определяет оракул.
Cкачайте и запустите эту программу.
Набрать в LaTeX решение двух задач, по одной из каждого раздела. В документе укажите номер обеих задач в соответствии с тем, что вам написал оракул.
Пришлите оба файла: *.tex и *.pdf
Срок сдачи: 23:59:59 17.09.2022
Можете посмотреть задачник по ссылке. Вы получите представление о том, как выглядят формулы, если раньше вы этого не видели.
[Осеннее программирование Вход в тестирующую систему (контест 378) Срок сдачи: 23:59:59 17.09.2022
Критерии: 2/3/5.
Весеннее программирование Вход в тестирующую систему (контест 377) Критерии очень добрые


Классы (дроби) Вход в тестирующую систему (контест 376) сроки пока не определены (6/9/13)
За задачи N, O отдельная оценка.
Пример того, как можно написать первую задачу


Обзор последних достижений Deep Learning Видео (youtube, ~ 1 час)
Отдельная ссылка на статью про AlphaCode и "спортивное программирование"
Анонс автора обзора Григория Сапунова:
Нынешняя революция Deep Learning началась уже примерно десять лет назад. За это время много всего произошло. Мы научились решать множество ранее нерешённых задач: распознавать изображения на уровне лучше человека, играть в го, предсказывать структуру белков, генерировать картинки фотографического качества и неотличимые от человеческих тексты. Появились новые архитектуры нейросетей, высокоэффективные и мощные фреймворки и библиотеки, высокопроизводительное железо. Мы продвинулись в научном понимании того, что происходит. Но вопросов ещё множество.

В лекции я сделаю краткий обзор важных вех на этом пути, расскажу про перспективы области и открытые вопросы. Возможно, кто-то из вас поможет продвинуться по этому пути дальше.

Оптимизация перебора (задачи посложнее, после стандартных) Вход в тестирующую систему (контест 375) Внимание! Не все задачи могут быть решены на python с текущими ограничениями на время выполнения.


Рекурсивный перебор (т.н. "стандартные задачи") Вход в тестирующую систему (контест 374) ...


... Вход в тестирующую систему (контест 373) Новогодняя контрольная
Множества и словари Вход в тестирующую систему (контест 369) Множества (задачи A-J): до 23:59:59 18.01.2022 (3/5/8)
Словари (задачи K-Z): до 23:59:59 01.02.2022 (5/9/12)


Задачи, решение которых использует сортировку Вход в тестирующую систему (контест 372) первая неделя (задачи A-J): до 23:59:59 06.12.2021 (3/6/8)
вторая неделя (задачи K-U): до 23:59:59 13.12.2021 (2/4/5)
За решение пары задач OP, а также за задачи M, Q, S, U (за каждую в отдельности) ставится очень хорошая оценка.

Сроки сдачи второй части продлеваются до 23:59:59 20.12.2021.


Реализация стандартных алгоритмов сортировки Вход в тестирующую систему (контест 371) до 23:59:59 30.11.2021 (3/4/6);
За каждую задачу G, H ставится очень хорошая оценка.
Анимация, иллюстрирующая разные алгоритмы сортировки.
Двумерные массивы Вход в тестирующую систему (контест 370) первая неделя (задачи A-M): до 23:59:59 15.11.2021 (5/7/10); дополнительная оценка за первую половину будет ставиться после окончания всего контеста
вторая неделя (задачи N-Z): до 23:59:59 22.11.2021 (4/6/10)
А за каждую задачу ZA, ZB, ZC, ZD ставится очень хорошая оценка.

К одному из вариантов решения задач Q и R: ссылка.


И про то, как пишутся программы, тоже ... Простите пожалуйста, дорогие коллеги! Пока смотрел этот мультфильм, я много раз вспомнил ваше "ведь работает же"!
Обработка файлов (чтение и запись) Вход в тестирующую систему (контест 368) До 23:59:59 26.10.2021 (10/14/19)

Уважаемые коллеги, в этих задачах (да и раньше, но здесь особенно) стоит обратить внимание на разнообразные методы работы со строками (ссылка). Не ограничиваясь теми, что мы явно изучали в 8 классе (count, find, rfind, replace). Ещё раз вспомнить про split (этот метод часто делает за вас 50% вашего труда), прочитать про strip (и его меньших братьев lstrip и rstrip).

Контрольная работа "про всё" Вход в тестирующую систему (контест 367)


Массивы (коротко) Вход в тестирующую систему (контест 365) До 23:59:59 04.10.2021 (4/6/9)
Если вы захотите попробовать, например, пакет matplotlib, даже просто разобраться в примерах — вам очень пригодится умение писать такие штуки.

Стандартная документация

Вещественная арифметика Вход в тестирующую систему (контест 366) До 23:59:59 28.09.2021 30.09.2021 (3/5/8) за самый большой класс на турслёте, а также за красивые песни срок продлевается на два дня


Системы счисления Вход в тестирующую систему (контест 364) До 23:59 16.09.2021 (ABE/ABCEG/ABCEGHJ + любые 3 из набора KLPQ); за решение задач из набора DFUVW — отдельная (и очень хорошая) оценка

Про деление столбиком, периоды и смежные вопросы

Вариант 1
Вариант 2
Вход в тестирующую систему (контест 363) Контрольная "ЕЩЁ РАЗОК"
—————————————> —————————————> Клуб любителей чтения: как тестировать программу, проверять время её работы и писать генераторы тестов.
Контрольная работа по строкам, рекурсии и массивам Вход в тестирующую систему (контест 362)
—————————————> —————————————> Клуб любителей чтения: зачем давать переменной понятное имя? (обновлено 08.05.2021)
Дополнительный листок про массивы. Вход в тестирующую систему (контест 361) За каждые 4 задачи после обсуждения с вами решения ставится 5. За решение задачи N выдаётся шоколадка.
Массивы Вход в тестирующую систему (контест 360) До 15.04.2021 (задачи A-N, 14 задач): 6/9/12

До 22.04.2021 (задачи O-Z, 12 задач): 4/7/9
Тестирование проводится мягче, чем в предыдущих двух темах. Вы видите итог тестирования, но не видите тестов.
Про передачу параметров, в частности массивов, в качестве параметров функций можно почитать на 57 странице в справочнике.
Письменный разбор для любителей почитать. Если такой формат будет одобрен, попробую выкладывать регулярно.

[КР — строки] Вход в тестирующую систему (контест 359) ...


Памяти Джона Конвея, который придумал много чего разного, не только игру "Жизнь".
 Обзорное видео, посвящённое Game of Life
Строки и циклы Вход в тестирующую систему (контест 358) Пример использования функций ord() и chr() (запустите и посмотрите, что она делает.)
Внимание! Все решения проходят проверку только после окончания срока (т.е. 03.03.2021). Тестируйте самостоятельно!

Внимание! Срок продлён. До 23:59:59 03.03.2021, критерии: 13/16/21
Пример стресс-теста для чисел: быстрое решение / медленное решение / сравнение
Пример стресс-теста для строк: Cравнение / Медленное решение задачи E


Строки, срезы и методы Вход в тестирующую систему (контест 357) Внимание! Все решения проходят проверку только после окончания срока (т.е. 10.02.2021). Тестируйте самостоятельно!
До 23:59:59 10.02.2021, критерии: 4/8/11
Функции Вход в тестирующую систему (контест 356) Внимание! Срок продлён.
До 23:59:59 24.01.2021, критерии: 5/7/9 (только задачи A-L);

до 23:59:59 04.02.2021, критерии: 5/7/11 (только задачи M-ZA);

[КР — циклы и всё, что раньше] Вход в тестирующую систему (контест 355) ...
Цикл while Вход в тестирующую систему (контест 354) до 17.12.2020, критерии: 10/15/21 (или D, E, F, G, I, [2:K,L,O,P], M, N, U, V, Z)
Cрок продлён, но добавлен дополнительный критерий за текущую работу. Вечером в среду, точнее 09.12.2020 23:59:59 будут выставлены оценки по следующим критериям:
  • для тех, кто решает "подряд" это 6/8/13
  • для тех, кто решает на 5 это 3/5/7 (из числа указанных задач на 5).
  • Цикл for Вход в тестирующую систему (контест 353) до 26.11.2020, критерии: 10/15/22 (или E,L,N,O,Q,T,V,W,[1:X,Y] на 5), можно досдать до 23:59:59 27.11.2020
    [КР — вычисления и условия] Вход в тестирующую систему (контест 352) ...
    Условный оператор Вход в тестирующую систему (контест 351) до 22.10.2020, критерии: 10/15/20 (или D,I,M,N,T,W,X,Y на 5)
    Целочисленная арифметика Вход в тестирующую систему (контест 350) до 01.10.2020, критерии: 10/15/23 (или J,K,R,S,T,V,W,Y на 5)

    Ссылки

    По поводу оформления программ на Python и C++.
  • Python: стандартный PEP-8 (Python Enhancement Proposal) официальная страница (англ.), один из урезанных переводов, если по-английски совсем никак
  • C++: подробный гугловый стайлгайд (англ.)
  • Вердикты тестирующей системы и их описание
    Для установки Python и сред программирования (выбирайте нужный вариант для вашей версии операционной системы):

    Все 4 среды (VS Code, PyCharm, SublimeText и Thonny) умеют запускать код "внутри себя". Но это требует некоторой настройки этой среды.
    Вне зависимости от того, в каком редакторе вы пишете текст программы на Python, вы всегда можете запустить её в консоли (на Маке — в терминале) при помощи команды вида
    "путь_к_python.exe\python.exe путь_к_вашему_файлу_с_программой\ваш_файл_с_программой"
    Например, так:

    c:\Python37\python.exe c:\prog\01-int\G.py

    Если вы сможете настроить пути для запуска Python из текущей папки, где находится ваша программа запускать можно будет так (c:\prog\01-int> это, например, текущий каталог, где находится файл G.py с программой):

    c:\prog\01-int>python G.py

    Личные инструменты
    Пространства имён
    Варианты
    Действия
    Навигация
    Инструменты