Yesterday we launched a new online course “ Programming in Python ” on Coursera together with MIPT to teach everyone to program in this language. The course is taught by developers who use Python in projects that are used daily by millions of people. The course covers all topics necessary for the programmer’s daily work, and also tells about many features of the language that are often omitted when learning it.
During the course, you will learn language constructs, data types and structures, functions, learn how to apply object-oriented and functional programming, learn about the features of the Python implementation, learn how to write asynchronous and multi-threaded code. In addition to the theory you are waiting for practical tasks that will help test your knowledge and hone your programming skills in Python. After successful completion of the course, you can use the experience gained to develop projects of varying complexity.
To cope with the load, it will take from four to six hours of free time per week. About two hours will go on watching video lectures, the rest - on the execution of tests and homework. Be prepared to give the course more time if you want to get the maximum result.
The course consists of the following parts:
Lecture materials and assignments without evaluation are available for free, for the evaluated assignments and obtaining a certificate you must purchase a course.
Alexander Emelin
Developer Python, Go. Supporter open source. The author of a fairly large open-source project https://github.com/centrifugal/centrifugo .
I have long liked the idea of distance learning. Thank you Mail.Ru Group for the opportunity to participate in the creation of such a project.
Alexander Zhebrak
Programmer, teaches a course on Python in the Technopark of MSTU and Mail.Ru Group. Engaged in machine learning, worked for 4.5 years at Mail.Ru in the internal development department, led the development of the intranet. Now he is engaged in projects in the field of biomedical data analysis in InsilicoMedicine.
He took part in the creation of the course, as it is a wonderful experience of teaching, working with the camera, communicating with colleagues. In the course of creating the course I was able to hone the skills of presenting pure material, this is different from the lectures at the university within the Technopark.
Dmitry Shveenkov
He graduated from Penza State University. Works in Mail.Ru Group, leads the development team. In the past few years, has been developing high-load services in Python.
I decided to take up the creation of the course in order to try out a new task format.
The course consists of six modules - "weeks", during which students learn a specific topic or carry out a project. First, key knowledge of the structure and syntax of the language is given, and the further you go, the more you will learn the subtleties of Python and the possibilities of its practical application.
At the end of the course you will find the final project, where you independently implement the network application.
During the first week, the course participants will learn about the features of the language and its scope, select the development environment and start programming. The first stage deals with working with basic types: numbers, logical types, strings and byte strings. Participants will learn how to work with streams, expand the environment and build a program from modules and packages. For those who are already familiar with Python, this module will be an opportunity to refresh and systematize their knowledge in front of more complex topics.
Topics of the week
Programming assignments
In the second week, the program deals with the basic data structures required in any program: lists, tuples, dictionaries, and sets. Participants will see examples of the use of these structures, figure out how to read the documentation, and pass the test for this lesson.
Also the second week concerns functions and functional programming. The participants will also work with files, learn about decorators and generators, and learn how to read the documentation for these sections.
Topics of the week
Programming assignments
OOP is the main approach to building complex projects in a language that you simply need to know. The section consists of three lessons, two of them are devoted to the theory.
In the theoretical part, students will learn what classes, instances and methods are, learn simple and multiple inheritance, name mangling.
Topics of the week
Programming assignments
The fourth week concerns working with special classes and methods in Python. It is necessary in order to expand understanding of how everything works in the language. Students will learn what magic methods, iterators, context managers, descriptors and metaclasses are. Special attention is paid to the work with the documentation on these sections.
Topics of the week
Programming assignments
Knowledge of this week will help in answering the question of how to write a network program in Python. Almost no real task in life can do without network interaction.
Week concerns work with streams, a network and sockets. In the first part of the module, students will learn about creating processes and threads and about their synchronization. In the second part, work with sockets and client-server model of the program, timeouts, processing network errors and simultaneous work with several connections will be disassembled.
Topics of the week
Programming assignments
This week you will be able to use all the accumulated knowledge to solve a practical problem.
Programming assignments
The previous week, the course participants developed a network application — a client for the server of metrics that can send and receive various metrics. The time has come for the final task - you need to implement the server part yourself.
The server must comply with the protocol that was described in the assignment for the previous week. He should be able to accept put and get commands from clients, disassemble them and form a response according to the protocol.
Participants will create their own project - a full-fledged server application for obtaining metrics from a variety of clients using course technologies. To summarize, repeating what was said at the beginning: graduates of the course will acquire the necessary knowledge to develop in the Python language. In addition, the best graduates, we consider the appropriate vacancy in Mail.Ru Group.
Sign up on the link !
Already know Python? Explore other courses from Mail.Ru Group!
Coursera is one of the largest platforms for creating and taking online courses with 25 million users and more than 2,000 online courses in technical and humanities from leading universities and companies. Taking courses on the platform means not only viewing the lectures and completing assignments, but also communicating with other students and teachers in course forums.
Source: https://habr.com/ru/post/336880/
All Articles