Unfortunately, I personally missed this meeting. I asked those who were present to write short reports. Below is a report on behalf of Roman Podolyaka.

On December 5, the seventh meeting of the “Python at APVT” club took place. The meeting was held in room 318 of the APVT department from 11:15 to 13:00.

1. Valentina Pikalova. Sites for Learning Python in Game Form

Valentina talked about a number of sites for learning Python (and other languages).

http://codecombat.com/

A colorful RPG in which you control your character by implementing small programs in Python (or JavaScript). The game’s source code is completely open and available on GitHub (https://github.com/codecombat/codecombat). The target audience is beginning programmers and computer science teachers. One of the features is the ability for many users to participate in the game — learn Python together with your friends!

image

http://www.codewars.com/

Unlike game sites, CodeWars has a fairly austere interface and is intended for undemanding programmers. As with the best establishments, you don’t just get in here — you’ll have to solve a couple of problems to prove (including to yourself) that you are capable and motivated enough to take part in the “code wars.”

Besides Python, you can also practice more exotic programming languages here (for example, Clojure or Haskell). You can compare your solutions with those of other programmers to make sure the problem was solved not just correctly (for which CodeWars provides automatic tests), but also in a way that is idiomatic for the given PL.

image

http://pythonchallenge.com

A puzzle site that is somewhat similar to the "Cryptomarathon from Kaspersky Lab. Here you’ll have to exercise not only in solving problems with Python, but also in understanding the wording of those very problems at the next stage of the puzzle :)

2. Club members’ stories about their self-study progress

Club members briefly talked about taking the Python course on Coursera.

We also discussed several other courses “for the future”:

https://www.coursera.org/course/algs4partI
https://www.coursera.org/course/algs4partII

A course by Princeton University professor Robert Sedgewick on algorithms and data structures. The homework is done in the Java programming language, but this should not be a problem for those who have never written in it: it is enough to learn the syntax of constructs you already know (classes, methods, loops, conditional statements, arrays). Subjectively, the easiest-to-understand course for those who want to learn 80% of everything one needs to know about algorithms and data structures and not “drown” in Knuth’s books.

https://www.coursera.org/learn/machine-learning

Stanford’s course on machine learning. A high-quality course for those who want to dispel all the myths about ML for themselves and understand “what it is and what you eat it with.”

https://see.stanford.edu/Course/CS107 (not available on Coursera)

A course on programming paradigms from Stanford University for seasoned and advanced programmers. Recommended after you already have experience writing programs in some PL (especially good if it is C and/or C++). It lets you systematize your knowledge of CS, computer architecture, and various programming paradigms (structured, object-oriented, functional, parallel programming), for which the course considers several PLs at once: C, C++, Python, Scheme, and Assembler.

3. Vladimir Rustinov. Data science: big data, machine learning, and more using the Python language

In the last 15–20 minutes before the classroom had to be vacated, we managed to talk a little about big data, where these data can be stored (distributed file systems — Hadoop FS, Ceph FS), how these data can be processed (Hadoop), why MapReduce is better than MPI, and what can be used to analyze such data (machine learning).

We agreed that at one of the next meetings Vladimir will show a demonstration of using Hadoop to process big data.

Next is information on behalf of Valentina Pikalova.

Online gaming platforms. In addition to the ones already being used.

Valentina Pikalova, vpikalova@hotmail.com

http://codecombat.com/ — a multiplayer RPG game that teaches programming.

Features:

1) it is really a game, not a set of gamified lessons;
2) there is a freely available set of ready-made levels devoted to different programming topics. Levels open as you progress;
3) implementation for Python and Javascript programming;
4) there is a section for the teacher, a guide to completing levels, the ability to create a class and add students to track their progress;
5) all code is openly available, as is the graphics. Posted on Github.
6) participation in the development of the project is welcome in the role of translator, programmer, level developer, tester, etc.;
7) almost full localization into Russian;
8) the site participates in the Hour of Code (code.org);
9) suitable for learning programming starting from grades 4–5. The approximate target audience is grades 4 through 7;
10) hints and video lessons by level are available;
11) as you complete levels, your hero develops and receives additional capabilities in the form of new Python commands;
12) additional points may be awarded for solving on the first try without errors and for optimal code;
13) the ability to organize team games,

Cons:

1) only the first course is available for free; subsequent courses are by subscription at $9.99 per month. The second option is to deploy the project yourself using the open code from Github;
2) the proposed version of Python is quite specific, since the commands are used only for this particular game.
3) commands are offered from the very beginning in the form self.moveDown(), instead of, for example, moveDown()

http://www.codewars.com/ — an analogue of the site checkio.org with a minimalist design.

Unlike the previous site, it assumes learning the language outside the project. It is excellent for honing problem-solving skills. The main goal is solving individual programming problems. Gamification elements: successfully solving problems raises the player’s rating in the system of Kyu and Dans, by analogy with martial arts. Each problem is a Kata; later, more complex problems — Kumite — become available. Built-in editor, test system, the ability to write and debug your own tests, analysis and comparison of different solutions to the same problem. The ability to switch between different programming languages.

The system is good for homework assignments (high school, lower-year university students), learning an additional programming language, and convenient for implementing the idea of pair programming.

http://www.pythonchallenge.com/ — a quest game. Completing levels involves solving puzzles by means of the Python language. There are 33 levels in the game. The difficulty may lie not only in the puzzle itself, but also in the form in which the answer is submitted. Since May 2005, about 2 million people have completed levels here.

https://opensource.com/education/15/7/codewars-codecombat-review — a very good review of the two platforms Codecombat and Codewars by a school teacher, in English

https://newtonew.com/overview/codecombat-teach-code — an article in Russian about the Codecombat project

Valentina’s presentation: Google Drive.


Previous meetings:

No. 6 28.11.2015 Summary of the Sixth Meeting of the “Python at APVT” Club
No. 5 21.11.2015 Summary of the Fifth Meeting of the “Python at APVT” Club
No. 3, No. 4 07.11.2015, 14.11.2015 Summary of the Third and Fourth Meetings of the “Python at APVT” Club
No. 2 31.10.2015 Summary of the Second Meeting of the “Python at APVT” Club
No. 1 24.10.2015 The first meeting of the “Python at APVT” club took place. Summary

How do you get news about meetings of the “Python at APVT” club?

Subscription to news about meetings of the “Python at APVT” club: http://bit.ly/python-apvt-reg The mailing list will be the main channel for information about meetings.

VKontakte and Facebook groups: https://vk.com/python.apvt and https://www.facebook.com/groups/python.apvt, respectively.

Site for questions and answers about Python and the club: http://bit.ly/python-apvt-qa

Questions? You can contact me personally: volodymyr.obrizan@gmail.com