Welcome to my learning repository! This project documents my progress in the Paschim Benga Society for Skill Development (PBSSD) Python Programming course.
💡 The Engineering Pivot: > Although my official curriculum shifted to Web Development on Day 16, I am continuing my Python mastery independently. This repository now documents my transition into self-taught advanced logic, bridging the gap between core Python and full-stack engineering.
| Day | Topic | Highlights | Links |
|---|---|---|---|
| 01-11 | Core Foundations | Variables, Memory, Data Types | View Folders |
| 12 | Armstrong & Loops | for loops, range(), logic building |
Notes |
| 13 | Nested Loop Geometry | Pattern printing, Range Algorithms | Notes |
| 14 | Matrix Operations | 2D Searching, Coordinate Mapping | Notes |
| 15 | Advanced Pattern Design | Geometric logic, Region filling | Notes |
| 16 | Functional Programming | def, return, Lambda functions |
Code |
| 17 | Advanced Iterators | map, filter, *args, **kwargs |
Notebook |
- Language: Python 3.x
- Environment: Anaconda / Jupyter Notebooks / VS Code
- Focus: Logic Building, Data Structures, and Modular Programming
Summary of core concepts covered in the initial weeks:
- Memory Management: Object IDs, Stack (LIFO), and PVM logic.
- Data Types: Dynamic typing, ASCII conversions (
ord/chr), and Number Systems (Hex, Binary, Octal). - Control Flow:
if-elif-elseladders and basicwhileloops for automation. - Math Assignments: 100+ problems solved across basic, intermediate, and advanced levels.
Focus: Digit logic and Range-based iteration.
A number is an Armstrong number if the sum of its own digits each raised to the power of the number of digits equals the number itself.
Example:
- Stream Processing: Python treats sequences as data streams starting at index 0.
range(start, stop, step): Mastered forward and reverse iteration.
Focus: Coordinate-based iteration and the "Clock Hand" model.
- Clock Hand Model: Outer loop (Hour) and Inner loop (Minute).
- Pattern Logic:
- Left Triangle:
if i >= j - Right Triangle:
if i + j >= r + 1 - Diagonal (X-Shape):
if i == j or i + j == r + 1
- Left Triangle:
Focus: Numerical matrices and 2D searching.
- Numerical Filling: Implemented row-major and column-major matrix population.
-
2D Search: Built a search algorithm that returns the exact Coordinate Pair
$(x, y)$ of a target value.
Focus: Multi-conditional logic and region filling.
- Advanced Shapes: Implemented "N" and "Z" shapes using diagonal boundary conditions.
- Symmetry: Mastered the center point calculation
(f + 1) // 2for odd-numbered grids. - Region Filling: Used inequalities to create solid geometric shapes within matrices.
Focus: Reusability and Lambda Expressions.
- Types: Built-in vs. User-defined (
def). - Lambda Functions: Single-line, anonymous functions for quick operations.
- Higher-Order Functions: Passing functions as arguments to other functions to create modular "tools."
Focus: Scalable functions and Jupyter integration.
- Tools:
map()for transformations andfilter()for conditional data extraction. - Scalability: *
*args: Tuple-based positional arguments.**kwargs: Dictionary-based keyword arguments.
- Environment: Successfully migrated to Jupyter Notebooks for interactive debugging.
PBSSD-PYTHON-LEARNING/ ├── Day_01_to_11/ # Foundation logic and 100-problem assignment ├── Day_12/ # Armstrong numbers & For loops ├── Day_13/ # Pattern printing part 1 ├── Day_14/ # Matrix & 2D Search ├── Day_15/ # Advanced Geometry Patterns ├── Day_16/ # Functions & Lambda ├── Day_17/ # Jupyter Notebooks (*args/**kwargs) └── assets/ # Project images and logos
"Reputation is built one commit at a time." 🚀
Below is the detailed organization of the repository. Each day folder contains the source code, relevant assets, and a dedicated .md summary of that day's concepts.
PBSSD-PYTHON-LEARNING/
├── assets/ # Global images/logos
├── Day_01/
│ ├── assets_day01/ # Concept screenshots
│ ├── day01_pbssd.py # Foundations
│ └── Day_01.md # Documentation
├── Day_02/
│ ├── assets_day02/ # Memory & ASCII diagrams
│ ├── day02_pbssd.py # Identifiers
│ └── Day_02.md
├── Day_03/
│ ├── assets_day03/ # Scope & Stack diagrams
│ ├── Assignment_day03.py # 12 Logic scripts
│ ├── day03_pbssd.py # Variable Scope
│ └── Day_03.md
├── Day_04/ to Day_11/ # Foundational Phase (Standardized Structure)
│ ├── dayXX_pbssd.py
│ └── Day_XX.md
├── Day_12/
│ ├── day12_pbssd.py # Armstrong Logic
│ └── Day_12.md
├── Day_13/
│ ├── day13_pbssd_pattern_printing.py
│ ├── day13_pbssd.py
│ └── Day_13.md
├── Day_14/
│ ├── day14_pbssd_pattern_printing.py
│ └── Day_14.md
├── Day_15/
│ ├── day15_pbssd_pattern_printing.py
│ └── Day_15.md
├── Day_16/
│ ├── day16_pbssd_functions.py
│ └── Day_16.md
├── Day_17/ # Advanced Modular Phase
│ ├── Day_17.md # Detailed concept notes
│ ├── day17_pbssd_function.py
│ └── day17_pbssd.ipynb # Interactive Notebook
├── Day_18/
│ ├── Assignment_day18_pattern_printing.py
│ └── Day_18.md
├── .gitignore # Version control exclusions
├── LICENSE # Repository license
└── README.md # Main Documentation (This file)
