The YuriODev Comprehensive Python Course is designed to provide learners with a solid foundation in Python programming, from basic data types to advanced topics like object-oriented programming and file handling.
Module | Description |
---|---|
Simple Data Types 📊 | Introduction to variables, data types, and basic operations. |
Conditional Statements 🔀 | Making decisions in your code with if , elif , and else . |
Iterations and Loops ➿ | Mastering loops (for , while ) and iteration techniques. |
String Manipulation 🧵 | Techniques for working with text and strings in Python. |
Lists and Tuples 📝 | Understanding Python collections and their applications. |
Dictionaries 🗂 | Efficient ways to store and retrieve data with key-value pairs. |
Functions 🛠 | Building reusable blocks of code with functions. |
Files 🗄 | Reading from and writing to files in Python. |
Object-Oriented Programming (OOP) 🤖 | Introduction to classes and objects in Python. |
Modules and Packages 📦 (Coming soon ❌) | Organizing and reusing code with modules and packages. |
Unit Testing ✅ (Coming soon ❌) | Writing tests to ensure code correctness. |
- Beginner-Friendly: Start with basic concepts and progress to more advanced topics with detailed explanations and examples.
- Practical Exercises: Each module includes exercises designed to challenge and reinforce learning, from simple data types to advanced programming concepts such as object-oriented programming (OOP) and unit testing.
- Autograded Tests: Automatically grade and test your code upon pushing updates to the GitHub repository, showing a beautiful and detailed result view.
- Professional Code Testing: Includes detailed checks for loop usage, error handling, and adherence to the specific instructions in exercises.
- Python Learning Tools: Explore the course using well-organized examples, exercises, and solutions.
- Comprehensive Feedback: Detailed custom test feedback to help guide improvements in your solutions.
- GitHub Actions Integration: Automatically run tests every time changes are made to the exercise files, giving immediate feedback through GitHub Actions.
- Clone the repository:
git clone https://github.com/YurioDev/python-yuriodev-01-simple-data-types.git
- Start learning:
- Open the theory section to get started.
- Explore examples and try out exercises.
- Submit solutions:
- After completing exercises, compare your results with the provided solutions.
├── theory
├── examples
├── exercises
└── solutions
- Theory: Contains explanations and concepts for each topic.
- Examples: Practical code snippets that demonstrate concepts in action.
- Exercises: Problems to test your understanding.
- Solutions: Answers to the exercises (check only after attempting).
To ensure a smooth learning experience, you may use the following tools:
- Visual Studio Code: An editor that supports Python and Jupyter notebooks. Download Visual Studio Code.
- Replit: An online IDE for writing, running, and sharing code. Start with Replit for Education.
- VSCode Web: Code directly in your browser with VSCode Web.
-
Clone the repository:
git clone https://github.com/YurioDev/ComprehensivePythonCourse.git
-
Run the autograding tests:
- Every time you update your code and push changes, tests will run automatically using GitHub Actions.
- You can also run tests locally using
pytest
:pytest exercises/
-
Explore the exercises:
- Work through each module, practice coding with the exercises, and check your results through the autograding tests.
-
Continuous Integration:
- Your code is automatically tested with every commit, providing instant feedback through detailed custom tests.
The Computer Science department team encourages all students to seek help and engage deeply with the course material. We're here to support your learning journey:
- Ask for Help: Never hesitate to ask for help. Whether you're stuck on a problem or need clarification on a concept, we're here to assist.
- Extra Work: We encourage you to go beyond the coursework. Tackling additional problems and projects can significantly enhance your understanding and skills.
- We're Here to Help: Our team is dedicated to supporting you. Reach out through issues in the repository, or contact us directly for guidance.
To enhance your Python coding experience in Visual Studio Code, we recommend the following extensions. These extensions provide support for Markdown preview, Python development, linting, sorting imports, running Jupyter notebooks, and more:
-
GitHub Markdown Preview -
bierner.markdown-preview-github-styles
: Provides a GitHub-style preview for Markdown files, making documentation more readable. -
Flask Snippets -
cstrap.flask-snippets
: Offers snippets for Flask, enhancing productivity when working with this Python web framework. -
GitHub Copilot -
github.copilot
: Acts as your AI pair programmer, assisting with Python code and more. -
Python Test Adapter -
littlefoxteam.vscode-python-test-adapter
: Integrates with the Test Explorer UI to run Python tests directly from VS Code. -
Debugpy -
ms-python.debugpy
: An implementation of the Debug Adapter Protocol, enabling debugging of Python applications. -
Flake8 Linting -
ms-python.flake8
: Provides linting for Python using flake8, helping to catch coding errors and enforce style conventions. -
Isort -
ms-python.isort
: Automatically sorts imports alphabetically and separates them into sections, improving code organization. -
Python -
ms-python.python
: Offers comprehensive support for Python development in VS Code, including IntelliSense, linting, debugging, and more. -
Pylance -
ms-python.vscode-pylance
: A fast, feature-rich language server for Python, enhancing code comprehension and navigation. -
Jupyter -
ms-toolsai.jupyter
: Adds support for Jupyter notebooks with features like interactive programming, IntelliSense, and debugging. -
Jupyter Keymap -
ms-toolsai.jupyter-keymap
: Provides Jupyter keyboard shortcuts in VS Code for a familiar notebook experience. -
Jupyter Renderers -
ms-toolsai.jupyter-renderers
: Enables custom output renderers for Jupyter notebooks. -
Jupyter Cell Tags -
ms-toolsai.vscode-jupyter-cell-tags
: Adds cell tag support for organizing and running Jupyter notebook cells. -
Jupyter Slideshow -
ms-toolsai.vscode-jupyter-slideshow
: Allows you to turn Jupyter notebooks into slideshows for presentations. -
IPython -
pancho111203.vscode-ipython
: Brings IPython support to VS Code, offering an enhanced interactive Python console. -
Markdown PDF -
yzane.markdown-pdf
: Converts Markdown files to PDF, HTML, PNG, or JPEG, useful for documentation and reports.
For correct indentation and code formatting, consider:
- EditorConfig for VS Code -
editorconfig.editorconfig
: Helps developers define and maintain consistent coding styles between different editors and IDEs.
To install any of these extensions, you can search for their ID in the Extensions view (Ctrl+Shift+X
) in VS Code or use the command palette (Ctrl+Shift+P
) with the command Extensions: Install Extension
and then enter the extension ID.
This project is licensed under the MIT License. Forks and contributions are welcome for personal and educational use.
The YuriODev team is here to help you on your Python learning journey. If you're stuck, raise an issue in the repository or contact us directly.
Your feedback helps us improve. If you have suggestions or comments, please raise an issue in this repository.
Happy Coding!
If you find this project helpful and would like to support its development, consider contributing through one of the following options:
Every contribution, no matter how small, helps and is greatly appreciated! 🙏