📜 ⬆️ ⬇️

Mail.Ru Group Online Course News: Restarting Advanced C ++ Programming

image


On April 17, we restarted the online course Advanced C / C ++ Programming on the Stepik platform. This course is for those who know C ++ and want to learn how to use it in industrial design. We have simplified access to the modules so that you can complete the course at a convenient time and receive a certificate. But first things first.


Who is this course for?


The course is suitable for senior students who are versed in language constructions. It is unlikely that it will be useful to those who work daily with C ++ and follow changes in the industry. However, the course will help to understand the material to those who missed something.



Program author Alexey Petrov talks about the course


Course content


Aspects of C ++


A third of the course is devoted to aspects of the C ++ language: inheritance, constructors, move semantics, virtual functions and the standard STL template library.


Industrial Libraries


You will be introduced to the Boost family of libraries. These are shells over programming language and system calls. Thanks to them, it is convenient to work with networks, streams, corortines (coroutines), data structures, dates, etc. In addition, they provide a framework for unit tests.


Design Patterns


You will learn the classic patterns from the book “ Gangs of Four ”: the factory method , the builder , the prototype , the loner (singleton), the adapter , the decorator , the bridge . These approaches make building a program easier, make the code stable and flexible. Thanks to them, you can easily write an expandable application.


Course result


You will create your own project by writing 3-5 thousand lines of code and applying course technologies. We do not limit the stack of technologies so that you can come up with any project that is interesting to you and bring it to life.


The result will be not only traditional mobile or desktop applications, but also solutions for wearable electronics and server parts of web sites.


For example, at a similar course in Technopark, students created applications for managing a smart home, pattern recognition, a console messenger, a service for delivering cargo using a UAV, a podcast player for foreign language learners and a music application for Android. All the details of these projects are in the video with public protection.



Protection of projects of the course “C ++ Programming” by Technopark students


Results of the last launch


At the first launch of the course 3,000 people signed up. However, less than 5% of those who arrived were able to reach the end. Usually the number of graduates is approximately twice as large. We analyzed the situation and simplified the delivery of tasks to increase the opportunity to complete the course. The changes did not affect its content.


Open the modules


The course is divided into four modules for two weeks each. Previously, you only got access to a new module if you scored enough points in the previous one. This approach turned out to be difficult for students of the course - only 20% were able to pass into the second module.


Now the new module will open regardless of your success in the previous one. In addition, you lose points for overdue tasks more slowly than before. We hope that this will help you complete the course at a convenient time.


Feedback on the course


We asked participants to share their views. Here are some of the reviews.


image


I gained general knowledge of POSIX and software quality standards. There were difficulties in almost every questionnaire. I don’t remember exactly, but maybe I had to answer a couple of questions by looking at the options :). Thanks to the course, I got the right motivation and “forcedly” began to create my project. I made a program that prepares the text of books for their subsequent dubbing.


I was able to start the design part (development of TZ), studied the UML and implemented the diagram, tested all the course technologies on the project (design patterns, boost, static analysis). At the same time, I forced myself to install Linux and began to “touch” it, otherwise my hands did not reach. I also registered on GitHub and started using Git.


Immediately after completing the course, I stopped my project, since I did not have enough knowledge to implement it. But it is ripe for the standard C ++ and understood what exactly needs to be read. Thanks to the course, I did a lot of what I put off. My current goal is to master C ++ programming qualitatively in order to apply this knowledge to software development.


image


Before the course, I knew little about UML, patterns and approaches to software development. To receive the certificate I was fully armed. Before writing the code, I thought about the extensibility and speed of development, each time carefully selecting the tools for the design. The course gave me beyond the desired.


The most difficult was the memory management section, I could not complete one of the tasks without copying from Stack Overflow. The course opened the way for me to write clear code, it is primarily important for coursework and laboratory. During the course, I wrote a game on SFML, however, the deadlines pushed me to the client-server application on Qt.


Now I consider R & D to be a promising vector of development and I am moving in this direction.


Registration for the course


Follow the link if you decide to try your hand at learning C ++ and developing software. Or sign up for the rest of the courses.


')

Source: https://habr.com/ru/post/326590/


All Articles