1. Python Basics
- Programming language, interpreter, interface, frontend and backend, platform features
- Getting to know Python
- Built-in functions, variables, arithmetic operators
- Data types
- Strings, Numbers, Lists, Boolean data type
- Functions
- Body, parameters, arguments of a function, calling one function from another
- Branches
- Concept, conditions, ternary operators, multiple branches
- Cycles
- For and while loops, sequences and ranges, nested loops
Result: Learn how to create games using the Turtle library
2. Advanced Python
- Variables and data types
- Simple data types, collections, imported data types, application of arithmetic operators
- Creating functions
- Functions in Python, code splitting into functions, default parameter values, positional and named parameters
- Branches
- Comparison operators, logical operators, nested constructions
- Collections
- Ordered and unordered collections, mutable and immutable data types, working with dictionaries
- Iterations and cycles
- Iterators, for loop and while loop, list and dictionary inclusions, working with nested loops
- Setting up the environment
- Installing Python, working in a virtual environment, Git and GitHub, selecting and configuring a code editor, package manager and installing modules, working in a terminal
- Debugging programs
- Types of errors, debugging programs in the code editor
- Objects and classes
- Attributes and methods, abstraction, inheritance, polymorphism, encapsulation, OOP in Python
- Advanced features
- Iterators and generators, lambda functions, decorators, scopes, introspection, and working with files
Result: Learn how to create games using the Turtle library Learn how to create games using the Pygame library
3. Algorithms and Data Structures
- Introduction to Algorithms
- Algorithms, linear and binary search, execution time, algorithmic tasks, program testing, I/O in various programming languages
- Data structures
- RAM and data representation, spatial complexity of the algorithm, arrays of constant size, dynamic arrays, linked lists, data structure
- Recursion and sorting
- Recursive and base cases, binary search implementation, sorting algorithms, selection of sorting algorithm, insertion and key sorting, comparison
- Hash functions
- Mapping abstraction, hash table and hash function, collisions, search index
- Trees
- Binary and balanced, search trees, AVL‑tree balancing, priority queue, pyramid sorting, algorithm and its complexity
Result: Learn how to create games using the Turtle libraryLearn how to evaluate the complexity of algorithms and choose the most effective solutions for a specific task.
4.Django backend
- Paths and view functions
- Learn the HTTP protocol, address scheduling and path converters, address allocation across applications, and view functions.
- HTML and Django templates
- HTML in Django, include, extends, block tags, context dictionary, branching, loops, links and filters in templates, connecting styles, images and scripts, configuring VS Code
- Introduction to databases
- Obtaining data through query practice, sorting, limiting, shifting selections, aggregating functions, and grouping records
- Relationships between tables
- "One to one", "many to one", "many to many", joining tables: JOIN, changing tables in the database, referential integrity
- Django ORM
- Description of tables and relationships, Django Shell, CRUD operations in Django ORM, Django Debug Toolbar
- Django Admin Area
- Creating a superuser, registering models in the admin area, localization and translation, configuring the admin area
- Working with forms
- Forms in HTML and Django, data processing, connecting Bootstrap styles to an HTML form, CSRF token, deleting and editing objects, validation, working with images
- The Pytest Library
- Selectively running tests, running failed tests, debugging tests, markers, fixtures, configuration file, Pytest for Django
- The Unittest Library
- The subTest method, parameterization of tests, fixtures, and Unittest in Django
Result: Learn how to create games using the Turtle libraryCreate a web application platform for blogs with authorization and comments
5. API: Program interaction interface
- What is an API?
- Program interaction over the network, API First, REST: resources, endpoints and HTTP methods, query research, authorization mechanisms, OAuth 2.0
- protocol Working with external APIs
- Client API in Telegram, Bot API in Telegram, incoming message processing, everything about chat and user, buttons instead of text input, sending images
- Django Rest Framework
- REST API, API testing tools, serializers, API view functions, view classes, API viewsets and routers, token authentication, JWT + Djoser
- Interaction of the frontend and backend
- Multi Page Application vs Single Page Application, API documentation, CORS, and Single source policy
- Request limits and response filtering
- Rights verification: Permissions, Throttling: limiting the number of requests, API pagination, filtering, sorting, and search
Result: Learn how to create games using the Turtle libraryMake a REST API service and write a bot that interacts with popular web services.
6. Project management on a remote server
- Working with the server
- Setting up a connection, working in a Linux terminal, installing and configuring a web and proxy server, configuring SGI
- Deploying the web application to the server
- DNS and domain names, HTTPS protocol, application monitoring
- Working with containers
- Containerization tools using Docker as an example, packaging and launching an application in a container, Docker Network, container orchestration, deployment automation
- Additional tools
- PostgreSQL, Docker Hub, GitHub Actions
- Working with clouds
- Setting up and configuring virtual machines in Yandex Cloud
Result: Learn how to create games using the Turtle libraryBuild 2 projects: in the classic way and with containers. Learn how to automate deployment using orchestration tools
7. Asynchrony and Flask
- Competitiveness, parallelism, and asynchrony
- Interpreters and compilers, principles of multithreading and multiprocessing in Python, GIL, threading and multiprocessing libraries, asyncio, aiofiles
- The basics of Flask
- Query routing, SQLAlchemy, ORM, SQLite, Flask interactive shell, models and templates in Flask, Jinja2, Path converter, forms, Flash messages, Migrations, Click module
- API on Flask
- Creating a REST API on Flask, data serialization, validation, error handling
- Asynchronous Flask
- Interaction with the Dropbox API, cloud storage, asynchronous network requests in Flask, interaction with the Yandex.Disk API
Result: Learn how to create games using the Turtle libraryUsing an asynchronous approach, create a service that will shorten links.
7. Parsing
- Introduction to parsing
- Data collection, structuring, and information storage using the Beautiful Soup library
- Working with the browser
- The developer's tools in the browser, researching the HTML markup of the site and working with regular expressions
- Parsing and authorization
- Parsing a page with authorization and dynamic content
- The Scrapy Framework
- Using Scrapy to create asynchronous parsers
Result: Learn how to create games using the Turtle libraryYou will do parsing of statuses and types of documents from websites, as well as an asynchronous parser for collecting and storing data about documents.
7. FastAPI
- FastAPI Framework
- Create a typical FastAPI application and understand the basics of working with asynchronous code.
- Migrations: Alembic Library
- Learn how to use the library to apply migrations when working with SQLAlchemy
Result: Learn how to create games using the Turtle libraryYou will make a QRKot application for the seal support fund on FastAPI