Guided challenge — একটি section একসঙ্গে প্রয়োগ করুন¶
ছোট problem-এ একটি pattern চিনেছেন; এবার একই কাজের বিভিন্ন অংশে কয়েকটি pattern একসঙ্গে ব্যবহার করুন। প্রতিটি challenge-এ statement, input/output, prerequisites, ছোট example, milestone, hint, reference solution ও unit test আছে।
একটি challenge পুরো chapter-এর সব আলাদা problem-এর বিকল্প নয়। Coverage table দেখে কোন ধারণা ব্যবহার করেছেন এবং কোন variation এখনও বাকি তা মিলিয়ে নিন। Math-এর challenge-এ ১২টি level-এর প্রতিনিধিত্বকারী ১২টি stage আছে; প্রতিটি level-এর সব theorem বা problem সেখানে চাপিয়ে দেওয়া হয়নি।
কোথা থেকে শুরু করবেন¶
- সব problem-এর map খুলে section-এর আগে পড়ার topics দেখুন।
- সেই section-এর আগে করতেই হবে সমস্যাগুলোতে নিজে চেষ্টা করুন।
- নিচের challenge-এ একবারে একটি milestone লিখুন; পুরো solution একসঙ্গে দেখে শুরু করবেন না।
- Worked example হাতে মেলান, তারপর unit tests চালান। ভুল হলে failing test-এর সবচেয়ে ছোট input নিয়ে ফিরে আসুন।
- শেষে reference না দেখে invariant, complexity ও edge case বলুন। নিজের নতুন test যোগ করুন।
১৪টি section challenge¶
| Section | Challenge | আগে কোন ভিত্তি | চালানোর test file |
|---|---|---|---|
| Math · level 00–11 | বিজ্ঞানমেলার প্রস্তুতি | digit, GCD, modular, prefix, search, counting | test_math_lab.py |
| Array / String | Study-session analytics | traversal, merge, prefix, window | test_arrays_lab.py |
| Sorting / Searching | পণ্যের catalogue | comparison, sorted interval, boundary | test_sorting_lab.py |
| Linked List | Delivery manifest | node, next, pointer, cycle | test_linked_list_lab.py |
| Stack / Queue | Nested job batch | LIFO/FIFO, decode, monotonic queue | test_stack_queue_lab.py |
| Hashing | Transaction reconciliation | key/value, frequency, complement | test_hashing_lab.py |
| Recursion | Workshop planning | state, base case, choose/undo | test_recursion_lab.py |
| Trees | BST library report | BST order, traversal, height | test_trees_lab.py |
| Heap | Job scheduling | priority, heap operations, two heaps | test_heap_lab.py |
| Graphs | Dependency-aware deliveries | adjacency, BFS/DFS, shortest path | test_graphs_lab.py |
| DSU | Road repair plan | connected component, union/find | test_dsu_lab.py |
| Segment / Fenwick | Inventory monitor | prefix, interval, point update | test_range_queries_lab.py |
| Dynamic Programming | Study planner | LCS state, knapsack choice, reconstruction | test_dynamic_programming_lab.py |
| Mixed Interview | Request-stream analytics | hash, queue, heap, sliding window | test_interview_lab.py |
Code ও tests চালানো¶
Repository clone/download করে তার root folder থেকে Python 3.12 বা নতুন সংস্করণে চালান। Lab-গুলোর জন্য extra package লাগে না। প্রতিটি challenge-এর পাতায় আলাদা solution ও test file-এর link আছে; আলাদা download করলে practice/ folder-এর মধ্যে একই filename রাখুন এবং root folder থেকে command চালান।
একটি challenge বেছে:
Reference solution আগে থেকেই tests পাস করে। নিজের অনুশীলনের জন্য সেটির function body নিজে লিখে একই contract রাখুন, তারপর tests চালান। ValueError-এর test মানে ভুল input প্রত্যাখ্যানও problem-এর অংশ। Random test থাকলে seed নির্দিষ্ট—একই failure আবার দেখা যাবে।
Microsoft course-এর সঙ্গে ব্যবহার¶
Module mapping ও badge-এর অর্থ দেখুন। Course-এর .NET/C# code আলাদা; এই Python solution থেকে logic বুঝে একই example ও edge case C#-এ লিখতে পারেন। কোনো lab-কে official graded assignment-এর উত্তর হিসেবে চিহ্নিত করা হয়নি।