Программирование для всех (основы работы с Python): различия между версиями

Материал из MathINFO
Перейти к навигации Перейти к поиску
 
(не показано 8 промежуточных версий этого же участника)
Строка 59: Строка 59:
 
* Интерактивные [https://ipywidgets.readthedocs.io/en/stable/examples/Widget%20Basics.html виджеты] в Jupyter (альтернатива стандартному вводу и не только).
 
* Интерактивные [https://ipywidgets.readthedocs.io/en/stable/examples/Widget%20Basics.html виджеты] в Jupyter (альтернатива стандартному вводу и не только).
  
=== Лабораторная работа 1. Логические выражения и условные конструкции ===
+
=== Лабораторная работа №1. Логические выражения и условные конструкции ===
  
 
Для выполнения лабораторной работы необходимо изучить формулировку логических выражений<br>
 
Для выполнения лабораторной работы необходимо изучить формулировку логических выражений<br>
Строка 122: Строка 122:
 
=== Неделя 5. Функции ===
 
=== Неделя 5. Функции ===
  
* Практикум 4: продолжение. Словари и методы на словарях ([https://github.com/allatambov/PyAll25/blob/main/practice04-ctd.ipynb ipynb])
+
* Видео с занятия, все материалы в одной папке: [https://disk.yandex.ru/d/3ybhJbP4Fzy9cg ссылка]
* Практикум 5. Функции ([https://github.com/allatambov/PyAll25/blob/main/practice05.ipynb ipynb])
+
* Практикум 4: продолжение. Словари и методы на словарях ([https://github.com/allatambov/PyAll25/blob/main/practice04-ctd.ipynb ipynb]), решения ([https://github.com/allatambov/PyAll25/blob/main/practice04-ctd-solved.ipynb ipynb])
 +
* Функции: [https://github.com/allatambov/PyAll25/blob/main/04-functions-short.ipynb ipynb] с кратким конспектом, расширенная [https://github.com/ischurov/pythonhse/blob/master/Lecture%204.ipynb версия] лекции (автор – И.В.Щуров)
 +
* Практикум 5. Функции ([https://github.com/allatambov/PyAll25/blob/main/practice05.ipynb ipynb]), решения ([https://github.com/allatambov/PyAll25/blob/main/practice05-solved.ipynb ipynb])
 +
 
 +
=== Лабораторная работа №3. Цикл while ===
 +
 
 +
Для выполнения этой работы необходимо понимать устройство цикла while <br>и его альтернативу в виде цикла for с оператором break.
 +
 
 +
Для этого можно:
 +
 
 +
* Прослушать материалы [https://edu.hse.ru/course/view.php?id=133389&section=3 раздела 3] ''Цикл с условием'' и ''Ввод с клавиатуры. Цикл while True''<br>онлайн-курса «Python как иностранный».
 +
* Прочитать [https://github.com/allatambov/PyAll24/blob/main/05-for-range-while.ipynb конспект] лекции про циклы.
 +
 
 +
{| class="wikitable"
 +
|-
 +
! Лабораторная работа !! Дедлайн !! Куда сдавать
 +
|-
 +
| [https://github.com/allatambov/PyAll25/blob/main/lab03.ipynb Лабораторная работа 3] || 04.11 23:59 || [https://www.dropbox.com/request/UiTrjBlep22AnnqmBNQS ссылка] на Dropbox
 +
|-
 +
|}
  
 
== Learning outcomes ==
 
== Learning outcomes ==
Строка 138: Строка 157:
  
 
'''Неделя 4:''' кортежи и функция zip(), сортировка с функцией sorted(), словари и основные методы на словарях.
 
'''Неделя 4:''' кортежи и функция zip(), сортировка с функцией sorted(), словари и основные методы на словарях.
 +
 +
'''Неделя 5:''' написание собственных функций через def (функции с одним и несколькими аргументами,<br>задание аргумента по умолчанию).
 +
 +
'''Лабораторная работа 3:''' цикл while и конструкция while True, цикл for с оператором break.
 +
 +
== Домашние задания ==
 +
 +
{| class="wikitable"
 +
|-
 +
! Задание !! Дедлайн !! Куда сдавать
 +
|-
 +
| [https://github.com/allatambov/PyAll25/blob/main/hw01.ipynb Домашнее задание №1] || 11.11 23:59 || [https://www.dropbox.com/request/MLQaoi2Vik4OJXEyLVPd ссылка] на Dropbox
 +
|-
 +
|}

Текущая версия на 01:36, 22 октября 2025

Дорогие студенты!

Это страница курса «Программирование для всех (основы Python)», читаемого в 1-2 модулях 2025-2026 учебного года. Курс является обязательным для студентов магистерской программы «Прикладная политология» и курсом по выбору в рамках МагоЛего для студентов других образовательных программ.

Преподаватель: Тамбовцева Алла Андреевна.

Программу курса можно найти здесь.
Вспомогательный онлайн-курс «Python как иностранный» доступен всем слушателям в SmartLms.

Оценивание

  • Формула оценки: ИТОГ = 0.16 * Лабораторные работы + 0.2 * Тест + 0.1 * ДЗ1 + 0.14 * ДЗ2 + 0.4 * Экзамен.
  • Лабораторные работы: небольшие наборы задач по программированию, решение которых предполагает знакомство с главами онлайн-курса и/или дополнительными материалами, предоставляемыми преподавателем.
  • Тест: состоит из вопросов с выбором ответа или кратким ответом и предполагает выбор верных или неверных утверждений о базовых конструкциях и структурах данных Python, запись результата, получаемого после запуска представленного фрагмента кода, указание ошибок в коде или выбор безошибочных вариантов решений предложенной задачи. Запускать код на компьютере и пользоваться материалами во время теста запрещено. Ожидаемое время выполнения теста – 30 минут.
  • ДЗ1 и ДЗ2: наборы задач по программированию по темам 1 и 2 модуля соответственно.
  • Экзамен: практическая работа в виде набора задач (по типу семинарских задач, домашних заданий и лабораторных).

Тест и экзамен – очные работы (для слушателей МагоЛего предусмотрена возможность сдавать онлайн), остальное – домашние с фиксированными дедлайнами. Задания, сданные позже дедлайна, оцениваются со штрафом: в пределах часа – 10% от оценки, суток – 30%, недели – 50%.

Программное обеспечение

Перед занятиями необходимо установить дистрибутив Anaconda (скачать можно здесь, регистрацию можно пропустить), который включает в себя интерпретатор языка Python, библиотеки для обработки, анализа и визуализации данных, а также среду для работы Jupyter Notebook. Также есть возможность работать в аналоге Jupyter Notebook онлайн, используя ресурс Google Colab (для создания и редактирования файлов нужен аккаунт Gmail).

Подробности по установке и работе – см. ниже в неделе 0.

Материалы и лабораторные работы

Неделя 0. Подготовка к работе. Настройка рабочего места

Для подготовки к работе на курсе можно ознакомиться с материалами онлайн-курса:

А также с материалами по работе в Jupyter Notebook и Google Colab:

Дополнительные материалы для желающих:

Неделя 1. Введение в Python. Типы данных. Ввод и вывод

  • Видео, «сырой» файл ipynb с занятия, все материалы в одной папке: ссылка.
  • Введение в Python: вычисления, переменные, типы данных (слайды), визуализатор кода от Pythontutor.
  • Вычисления и импорт библиотек в Python (ipynb). Переменные и типы данных (ipynb).
  • Ввод и вывод, форматирование строк (ipynb).
  • Практикум 1: типы данных, ввод и вывод, форматирование строк (ipynb), решения (ipynb).

Дополнительно для желающих:

  • Стандарты оформления кода PEP8.
  • Документация модулей decimal и fractions для работы с десятичными и обычными дробями соответственно.
  • Документация библиотеки sympy для символьных вычислений (уравнения, производные, интегралы и проч).
  • Интерактивные виджеты в Jupyter (альтернатива стандартному вводу и не только).

Лабораторная работа №1. Логические выражения и условные конструкции

Для выполнения лабораторной работы необходимо изучить формулировку логических выражений
и конструкцию if-else. Для этого (один из вариантов на выбор) можно:

  • Прослушать материал темы 2 Условия и логические выражения онлайн-курса «Python как иностранный».
  • Прочитать конспект лекции Логические выражения и условные конструкции.
  • Изучить материалы онлайн-учебника Pythontutor.
Лабораторная работа Дедлайн Куда сдавать
Лабораторная работа 1 30.09 23:59 ссылка

Неделя 2. Индексированные структуры данных. Цикл for

  • Видео, «сырой» ipynb-файл с занятия: ссылка
  • Структуры данных в Python, изменяемость и неизменяемость (слайды)
  • Индексированные структуры данных: строки и списки, методы .split() и .join() (ipynb)
  • Цикл for и функция range() (ipynb)
  • Практикум 2: Списки и цикл for, методы .split() и .join() (ipynb), решения (ipynb)

Неделя 3. Методы на строках и основы работы с текстом

  • Видео, «сырой» файл ipynb с занятия, все материалы в одной папке: ссылка
  • Альтернатива циклу for: списковые включения ([ipynb])
  • Практикум 3.1: методы на строках и работа с текстом (ipynb), решения (ipynb)
  • Практикум 3.2: предварительная обработка текста и построение облака слов (ipynb), решения (ipynb)
  • Файлы для практикума 3.2: txt, картинка guitar

Дополнительно для желающих:

  • Чтение, изменение и запись txt-файлов (ipynb, intro.txt для работы)

Лабораторная работа №2. Методы на списках и строках

Для выполнения этой работы необходимо уметь применять методы на списках и строках.

Для этого (один из вариантов на выбор) можно:

  • Прослушать материал темы 5 Методы онлайн-курса «Python как иностранный».
  • Прочитать конспект лекции Методы на строках, конспект лекции Методы на списках.
Лабораторная работа Дедлайн Куда сдавать
Лабораторная работа 2 14.10 23:59 ссылка на Dropbox

Неделя 4. Кортежи. Словарь как пример неиндексированной структуры

  • Видео, «сырой» файл ipynb с занятия, все материалы в одной папке: ссылка
  • Кортежи, функция zip() и сортировка (ipynb)
  • Словари и методы на словарях (ipynb)
  • Практикум 4. Кортежи и функция zip() (ipynb), решения (ipynb)

Неделя 5. Функции

  • Видео с занятия, все материалы в одной папке: ссылка
  • Практикум 4: продолжение. Словари и методы на словарях (ipynb), решения (ipynb)
  • Функции: ipynb с кратким конспектом, расширенная версия лекции (автор – И.В.Щуров)
  • Практикум 5. Функции (ipynb), решения (ipynb)

Лабораторная работа №3. Цикл while

Для выполнения этой работы необходимо понимать устройство цикла while
и его альтернативу в виде цикла for с оператором break.

Для этого можно:

  • Прослушать материалы раздела 3 Цикл с условием и Ввод с клавиатуры. Цикл while True
    онлайн-курса «Python как иностранный».
  • Прочитать конспект лекции про циклы.
Лабораторная работа Дедлайн Куда сдавать
Лабораторная работа 3 04.11 23:59 ссылка на Dropbox

Learning outcomes

Программа-минимум – что необходимо знать по итогам каждой недели курса, без учета дополнительных тем «на будущее».

Неделя 1: базовые вычисления, создание переменных, базовые типы данных (int, float, bool, str) и операции с ними,
приведение типов, ввод через input() и вывод через print(), использование f-строк.

Лабораторная работа 1: логические выражения, операторы <, <=, >, >=, ==, !=, in, not in,
объединение условий через and и or, конструкция if-else.

Недели 2-3: индексируемые и неиндексируемые структуры в Python, изменяемые и неизменяемые структуры в Python,
создание списков и строк, выбор элементов списка/строки по индексам и срезам, основные методы на списках и строках
(какие основные – см ниже), функция range(), цикл for.

Лабораторная работа 2: основные методы на списках: .append(), .extend(), .index(), .count(), .copy() и .sort(),
основные методы на строках: .split(), .join(), .upper(), .lower(), .capitalize(), .replace(), .count(), .startswith(), .endswith().

Неделя 4: кортежи и функция zip(), сортировка с функцией sorted(), словари и основные методы на словарях.

Неделя 5: написание собственных функций через def (функции с одним и несколькими аргументами,
задание аргумента по умолчанию).

Лабораторная работа 3: цикл while и конструкция while True, цикл for с оператором break.

Домашние задания

Задание Дедлайн Куда сдавать
Домашнее задание №1 11.11 23:59 ссылка на Dropbox