Python програмування. Рівень 2.

e-Learning group/community All Groups Join the group

Challenges (9)
Learning steps
About the group
Information & Summary
Resources (1)
Courses (7)
Members (25)

Це група для спільного вивчення Python до професійного рівня. Група для початківців

Upcoming Events View all 2 events

Challenges View all 9 challenges

Completed: 8 (%32), Skipped: 0 (%0)
10
0

Потрібно придумати як саме ми будемо вчитися.

Я попоную писати спільний проект або декілька проектів. Вибрати щось корисне та зробити його опен сорс

Інші варіанти: знайти якись список задач та вирішувати їх, в звіті публікувати своє рішення

Задача цього челенджу прибумати свою ідею та описати її у звіті до челенджу

Completed: 2 (%8), Skipped: 0 (%0)
1
0

Учасники групи не писали великих програм на Пайтоні (будемо так вважати)

Знаходимо в інтернеті якісь великі чи середні проекти на Пайтоні та вивчаємо вихідні коди. Бажано щоб це не був один скрипт, а багато модулів (класів).

У звіті пишемо що саме ви дослідили.

Вивчити як організовані зв’язки між компонентами. Які є способи організації складної структури. Як виконується запуск програми та підключення компонентів динамічно. 

Результатом має бути розуміння "best practices" програмування складних систем на Python.

Completed: 6 (%24), Skipped: 0 (%0)
4
0

Потрібно вибрати правила кодування спільного проекту. Проведемо дослідження різних рекомендацій та стандартів. 

Хай кожен погуглить та розкаже що він знайшов. У репорті описати стандарт який ви вважаєте найкращим. 

Потім виберемо що нам найбільше підходить.

Completed: 9 (%36), Skipped: 0 (%0)
23
0

На скайп конференції ми вирішили що будемо роботи гру "Хрестики Нолики" і на її основі вчити різні техніки, підходи, методи програмування в Пайтоні.

Отже, завдання №1. Написати "Хрестики Нолики".

  • Не заморочуватися із інтерфейсом. Може бути командна строка
  • Не дуже заморочуватися із "інтелектом". Програма може грати "як тупий гравець". Але по правилах. Може ставити ходи рандомно, без аналізу.
  • Має бути підтримка "людина проти омпютера" та "людина проти людини"
Інших вимог на даному етапі немає. Потім ми будемо вдосконалювати наші програми.

Результат опублкувати на Гітхаб або аналогічному сервісі щоб можна було показати свій код іншим учасникам.

Ссилку на код дати в репорті. 

Не аналізуйте код інших учасників поки самі не зробили!

Completed: 0 (%0), Skipped: 0 (%0)
3
0
0

Коли будуть опубліковані звіти учасників групи до завдання "Робимо гру Хрестики Нолики" то оцініть кожен звіт.

Подивіться код та потестуйте його.

В звіті оцініть за такими критеріями:

  • Чи взагалі працює, які проблеми знайдено
  • Чи одразу запустився скрипт, що було не так при запуску
  • Чи вам подобається код, чи легко його читати. Що саме не подобається в коді
  • Чи легко вам було би модифікувати такий код
  • ЧИ є у вас інші зауваження

Переглянути мінімум 5 звітів якщо їх є більше. Бажано вибирати випадковим чином який звіт ви бедете аналізувати

Completed: 2 (%8), Skipped: 0 (%0)
2
0

Ми вже зробили програму Хрестики Нолики. Але ця програма є "некрасивою". Її важко розширювати чи модифікувати. 

Також важко використати цю програму як компонент до іншої більшої програми.

Ми розділимо наш код на модулі та створимо класи щоб використовувати їх в інших системах.

Завдання.

Модифікувати код програми "Хрестики Нолики". Розділити її на 3 компоненти:

  • клас TicTacToe який керує процесом гри. Об’єкт цього класу містить стан гри та апрацьовує ходи
  • клас Gamer отримує об’єкт класу TicTacToe та виконує хід від імені комп’ютера. він використовується тоді коли користувач грає із комп’ютером тільки.
  • основна програма. виконує ввід та вивід. створює об’єкти відповідних класів

потрібно розібратися який найкращий спосіб передати об’єкт TicTacToe у Gamer. чи є в python підтримка передачі об’єкта "за почиланням" (по ссилці) чи треба передавати копію кожного разу коли треба зробити хід щоб мати актувальний стан гри.

Коли ми будемо мати ці 2 класи ми зможемо легко міняти інтерфейс програми, адже логіка вже буде окремо

Completed: 0 (%0), Skipped: 0 (%0)
6
0
0

Для наших наступний завдань потрібно буде обмінюватися нашими реалізаціями гри Хрестики Нолики.

Ми будемо брати свій GUI  але використовувати логіку інших учасників. Для цього нам треба щоб класи із логікою всі мали однаковий інтерфейс. (тут я маю на увазі інтерфейс в значенні об’єктно-орієнтованого програмування).

Такий обмін нам потрібен для того щоб потренуватися працювати в команді, щоб вміти ефективно розподіляти роботу між учасниками і потім збирати всі компоненти до купи.

Перше завдання це почитати і знайти чи взагалі є підтримка таких інтерфейсів в Пайтоні. Якщо ні то треба буде подивитися які є "костилі" чи "best practices" для такого випадку. 

Щось є для цього. Але треба шукати і розбиратися. 

Отже, завдання:

  • Зрозуміти що таке інтерфейс класу в теорії. Можна почати звідси. Якщо знайшли хороший опис то додайте в коментарі
  • Знайти способи реалізації в Пайтоні для інтерфейса класу.
  • У звіті описати ваш варіант інтерфейсу для двох класів які ми робили в попередньому завданні (логіка гри та логіка гравця-компютера)
Completed: 0 (%0), Skipped: 0 (%0)
0
0
0

Модифікувати свій варіант хрестиків-ноликів із використанням інтерфейсу узгодженого в попередньому завданні

Потестувати свою реалізацію із класами всіх інших учасників. Для цього треба просто перезаписати 2 своїх класи на відповідні 2 класи іншого учасника.

У звіті описати проблеми та помилки які виникли.

Повторювати тести поки всі варіанти не будуть правильно працювати із вашою основною програмою. Нагадаю, основна програма тільки запитує ввід від користувача та виводить результати, а вся логіка в класах які можне міняти (назва модулів у всіх однакові)

Discussions

-- no discussions in this group yet --

Go to the Forum/Discussion board to start a new discussion

Resources View all 1 resources

0

Учасники групи узгодили цей формат як обовязковий для коду який ми будемо писати.

Этот документ описывает соглашение о том, как писать код для языка python, включая стандартную библиотеку, входящую в состав python. Пожалуйста, посмотрите также на сопутствующий PEP (python enhanced proposal — заявки на улучшение языка python), описывающий, какого стиля следует придерживаться при написании кода на C в реализации языка python

Courses

Recommended online courses and MOOC. If you have suggestions discuss them in the Forum

Popular

328 1 0

This course is designed to be a fun introduction to the basics of programming in Python. Our main focus will be on building simple…

14 0 0

Computer programming skills are now becoming part of basic education as these skills are increasingly of vital importance for futu…

4 0 0

Learn the fundamentals of computer programming in Python with topics that include basic decisions and loops, advanced data structu…

108 0 0

Behind every mouse click and touch-screen tap, there is a computer program that makes things happen. This course introduces the fu…

About the group

Python програмування. Рівень 2.

Ця група створена для спільного вивчення Python до професійного рівня. Учасниками групи можуть бути програмісти які вже мають базові знання (синтаксис, основні конструкції та принципи ) в цій мові програмування.

Ця група створена як продовження групи Вивчаємо Python. Для початківців де ми вивчається база мови програмування Python.

Швидше за все група вибере проект для спільного виконання і навчання на його базі. Це буде обговорено коли група почне роботу. 

В групу запрошуються починаючі програмісти з України. Для інших країн група також відкрита.

Робочі мови українська та російська.

В цій групі немає вчителя чи експерта який буде все роз’яснювати. Це група людей які займаються самостійним вивченням Python і допомагають один одному. Можливо будемо організовувати реальні зустрічі, залежно від географії.

Subject: Computer Sciences, Computer Programming
Associated job: Python Software Developer
Work Language: Ukranian
Location: Ukraine, Україна
Membership: Membership moderated
Count of members: 25

Learning Target

Наша ціль вивчити Python на професійному рівні. Створити проект який можна включити в резюме для пошуку роботи програміста на Python

 

2015-06-20 06:19:16
Welcome new group member - Antonina !
2015-06-12 12:50:37
Welcome new group member - Andriy Varunok !
2015-05-29 13:08:05
Welcome new group member - Vadim !
2015-05-23 23:17:20
New challenge report posted by Andrew Vakulenko in the group Python програмування. Рівень 2. http://myeduc...TicTacToe.htm !
2015-05-20 14:03:26
New comment on a Report http://www.my...go=comment283
2015-05-20 13:56:42
New challenge report posted by Anton in the group Python програмування. Рівень 2. http://www.my...c+Tac+Toe.htm !
2015-05-14 09:37:31
Welcome new group member - Prateek Bansal !
2015-05-13 04:14:15
New comment on a Challenge http://myeduc...go=comment277
2015-05-12 17:45:40
New comment on a Challenge http://myeduc...go=comment275
2015-05-08 15:49:43
Welcome new group member - Yura Ivanochko !
2015-05-08 15:49:03
New challenge Автоматичне тестування модулів created in the group Python програмування. Рівень 2. http://myeduc...%96%D0%B2.htm !
2015-05-08 15:31:35
New comment on a Challenge http://myeduc...go=comment253
2015-05-08 14:43:25
New comment on a Challenge http://myeduc...go=comment252
2015-05-08 13:01:14
New comment on a Event http://myeduc...go=comment247
2015-05-08 06:28:05
New course Programming for Everybody (Python) favorited in the group Python програмування. Рівень 2. !
2015-05-08 06:27:38
New course Python for Informatics: Exploring Information favorited in the group Python програмування. Рівень 2. !
2015-05-08 06:27:06
New course Introduction to Python 2.5 Programming favorited in the group Python програмування. Рівень 2. !
2015-05-08 06:26:37
New course Introduction to Programming with Python favorited in the group Python програмування. Рівень 2. !
2015-05-08 06:26:22
New course Python Programming favorited in the group Python програмування. Рівень 2. !
2015-05-08 06:26:15
New course Learn to Program: The Fundamentals favorited in the group Python програмування. Рівень 2. !