Programming Layer (Programming အလွှာ)

Theme B - Computational Thinking & Problem-Solving (B2, B3)
မြန်မာလို: Theme B: computational thinking (ကွန်ပျူတာ သိပ္ပံ နည်းနဲ့ ပြဿနာကို စဉ်းစားခြင်း) နဲ့ ပြဿနာ ဖြေရှင်းခြင်း (B2, B3)။ IB Computer Science (နိုင်ငံတကာ ကျောင်းတွေမှာ သင်တဲ့ ကွန်ပျူတာသိပ္ပံ သင်ရိုး) ကို theme (အပိုင်းကြီး) နှစ်ခု ခွဲထားပြီး ဒါက ဒုတိယ theme ပါ။ B2, B3 က အဲဒီ theme ထဲက ခေါင်းစဉ် နံပါတ်တွေပါ။

Programming ဆိုတာ စိတ်ကူးထဲက အယူအဆတွေ လက်တွေ့ ဖြစ်လာတဲ့ layer (အလွှာ) ပါ: loop (ထပ်ခါထပ်ခါ run တဲ့ code အပိုင်း) က iteration (ထပ်ခါထပ်ခါ လုပ်ခြင်း) ကို လက်တွေ့ လုပ်ဆောင်ပေးပါတယ်၊ array (အရွယ်အစား ပုံသေ၊ အမျိုးအစားတူ ဒေတာစု) ဆိုတာ memory (မှတ်ဉာဏ်) ထဲမှာ တစ်ဆက်တည်း ကပ်လျက် ရှိတဲ့ နေရာ (contiguous memory) အပိုင်း တစ်ခုပါ၊ object (class တစ်ခုကနေ ဖန်တီးထားတဲ့ instance) က လက်တွေ့ ကမ္ဘာက အရာ တစ်ခုကို ကိုယ်စားပြု ပုံဖော်ပါတယ်။

ဒီ layer မှာ code ကို ကိရိယာ တစ်ခုအဖြစ် သုံးပြီး ကွန်ပျူတာတွေ အချက်အလက်ကို ဘယ်လို ကိုင်တွယ် တွက်ချက်သလဲ၊ algorithm (အယ်လ်ဂိုရီသမ်၊ ပြဿနာကို အဆင့်ဆင့် ဖြေရှင်းတဲ့ နည်းလမ်း) တွေ ဘယ်လို အလုပ်လုပ်သလဲ၊ computational thinking နည်းနဲ့ ဘယ်လို စဉ်းစားမလဲ ဆိုတာတွေကို နားလည်အောင် လေ့လာပါတယ်။ ဥပမာ တိုင်းကို Java နဲ့ Python နှစ်မျိုးလုံးနဲ့ ရေးထားပါတယ် (IB Computer Science မှာ သုံးတဲ့ programming language နှစ်ခုပါ)။ ဘယ် code block မှာမဆို tab တွေကို နှိပ်ပြီး ကိုယ်သုံးမယ့် language ကို ရွေးပါ၊ site က ကိုယ့်ရွေးချယ်မှုကို မှတ်ထားပေးပါတယ်။ ရည်ရွယ်ချက်က programming language တစ်ခုကို သုံးပြီး ပြဿနာတွေကို ကျိုးကြောင်း ဆင်ခြင် စဉ်းစားတတ်ဖို့ပါ။

ကိုယ်တိုင် ဖြေကြည့်လို့ရတဲ့ quiz မေးခွန်းတွေကို Java version နဲ့ တိုက်စစ်ပြီး အမှတ်ပေးပါတယ်။ Python ကို ကြည့်နေတဲ့အခါ Java မှာပဲ ရှိတဲ့ အသေးစိတ်ကို စစ်တဲ့ မေးခွန်းတွေမှာ Java label သေးသေးလေး ပါပါတယ်။ ဒါကြောင့် မေးခွန်း တစ်ခုက ဘယ် language အတွက်လဲ ဆိုတာ အမြဲ သိနိုင်ပါတယ်။


ဒီ layer ထဲက အပိုင်းများ

အပိုင်းတွေကို သင်ကြားတဲ့ အစဉ်အတိုင်း စီထားပါတယ်: အခြေခံတွေကို အရင် လေ့လာပါတယ် (Fundamentals ကနေ File Processing အထိ)၊ ပြီးရင် Object-Oriented Programming၊ ပြီးတော့ HL (Higher Level၊ IB သင်တန်းရဲ့ ပိုမြင့်တဲ့ အဆင့်) data structure (ဒေတာ သိမ်းဆည်းပုံ) တွေကို အစကနေ ကိုယ်တိုင် တည်ဆောက်တဲ့ အပိုင်း လာပါတယ်။

# ခေါင်းစဉ် Syllabus အဓိက အယူအဆများ Level
1 Programming Fundamentals (Programming အခြေခံများ) B2.1 Variable (တန်ဖိုး သိမ်းထားတဲ့ နာမည်ပေးထားတဲ့ နေရာ)၊ data type (ဒေတာ အမျိုးအစား)၊ string (စာသား)၊ exception (program run နေစဉ် ဖြစ်တဲ့ အမှား)၊ debugging (program ထဲက အမှားကို ရှာပြီး ပြင်ခြင်း) SL + HL
2 Programming Constructs (Program တည်ဆောက်တဲ့ အခြေခံ ပုံစံများ) B2.3 Sequence (ရေးထားတဲ့ အစဉ်အတိုင်း တစ်ကြောင်းပြီး တစ်ကြောင်း run ခြင်း)၊ selection (condition ပေါ်မူတည်ပြီး လမ်းကြောင်း ရွေးခြင်း)၊ loop၊ function (သီးခြား အလုပ်တစ်ခု လုပ်ပေးတဲ့ code အပိုင်း၊ Java မှာ method လို့ ခေါ်ပါတယ်)၊ scope (variable ကို သုံးလို့ရတဲ့ နယ်ပယ်) SL + HL
3 Data Structures (ဒေတာ သိမ်းဆည်းပုံများ) B2.2 Array၊ ArrayList (ကြီးလာ၊ သေးသွားနိုင်တဲ့ list)၊ stack (အပေါ်ကနေပဲ ထည့်၊ ထုတ်တဲ့ အထပ်) (LIFO: နောက်ဆုံးဝင်တာ အရင်ထွက်)၊ queue (အရင်ထည့်တာ အရင်ထွက်တဲ့ တန်း) (FIFO: အရင်ဝင်တာ အရင်ထွက်) SL + HL
4 Algorithms (အယ်လ်ဂိုရီသမ်များ) B2.4 Big O (algorithm ရဲ့ ကြာချိန် တိုးနှုန်းကို ပြတဲ့ သင်္ကေတ)၊ linear search (တစ်ခုချင်း ဆက်တိုက် ရှာနည်း) / binary search (တစ်ဝက်စီ ခွဲပြီး ရှာနည်း)၊ bubble sort (ဘေးချင်းကပ် တန်ဖိုးတွေကို လဲပြီး စီခြင်း) / selection sort (အငယ်ဆုံးကို ရှာပြီး နေရာချ စီခြင်း)၊ HL အတွက်: recursion (method က သူ့ကိုယ်သူ ပြန်ခေါ်ခြင်း)၊ quicksort (pivot နဲ့ ခွဲပြီး မြန်မြန် စီတဲ့ နည်း) SL + HL
5 File Processing (File တွေကို ဖတ်ခြင်းနဲ့ ရေးခြင်း) B2.5 File ကို ဖတ်ခြင်း၊ ရေးခြင်းနဲ့ append (ရှိပြီးသား file ရဲ့ နောက်မှာ ဆက်ရေး) လုပ်ခြင်း SL + HL
6 Object-Oriented Programming (object တွေကို အခြေခံပြီး program ရေးနည်း) B3.1, B3.2 (HL) Class (object တွေ ဖန်တီးဖို့ ပုံစံခွက်)၊ object၊ encapsulation (ဒေတာနဲ့ method ကို တစ်စုတည်း ထုပ်ပိုးခြင်း)၊ UML (class တွေကို ပုံနဲ့ ပြတဲ့ စံ ရေးဆွဲနည်း) နဲ့ ဒီဇိုင်းဆွဲခြင်း၊ HL အတွက်: inheritance (parent class ကနေ အမွေဆက်ခံခြင်း)၊ polymorphism (ပုံစံ အမျိုးမျိုး ယူနိုင်ခြင်း)၊ abstraction (မလိုတဲ့ အသေးစိတ်ကို ဖယ်ပြီး အဓိကကိုပဲ ကြည့်ခြင်း)၊ composition (ပိုခိုင်မာတဲ့ has-a ဆက်နွယ်မှု) SL + HL
7 Abstract Data Types (operation တွေနဲ့ သတ်မှတ်တဲ့ ဒေတာ အမျိုးအစားများ) B4.1 Linked list (node တွေ ချိတ်ဆက်ထားတဲ့ list)၊ BST (ဘယ်ဘက် ငယ်၊ ညာဘက် ကြီးတဲ့ binary tree)၊ set (မထပ်တဲ့ element တွေ သိမ်းတဲ့ collection)၊ hash map (key-value တွေကို အမြန် ရှာနိုင်အောင် သိမ်းတဲ့ structure) HL
8 JavaFX Cookbook (JavaFX နဲ့ app တည်ဆောက်ဖို့ နည်းလမ်း စုစည်းမှု)   JavaFX (Java နဲ့ desktop app တည်ဆောက်တဲ့ library) နဲ့ MVC (app ကို Model၊ View၊ Controller ဆိုပြီး အပိုင်းသုံးပိုင်း ခွဲရေးတဲ့ ပုံစံ) ကို သုံးပြီး desktop app တစ်ခု တည်ဆောက်ဖို့ recipe (ချက်ချင်း ယူသုံးလို့ရတဲ့ code နမူနာ) များ၊ ဥပမာ IA (IB သင်တန်းမှာ ကျောင်းသားတစ်ယောက်ချင်း ကိုယ်တိုင် တည်ဆောက်ရပြီး ကျောင်းက ဆရာက အမှတ်ပေးတဲ့ အပိုင်း) အတွက် (syllabus ပြင်ပ အပိုင်းပါ)  
9 Software Development (software တည်ဆောက်ခြင်း)   Requirement (software က ဘာလုပ်ရမလဲ ဆိုတဲ့ သတ်မှတ်ချက်)၊ design (ဒီဇိုင်း)၊ testing (program မှန်မမှန် စမ်းစစ်ခြင်း)၊ documentation (program ကို ရှင်းပြတဲ့ စာရွက်စာတမ်း) နဲ့ သုံးရလွယ်တဲ့ interface (user နဲ့ program ကြားက မြင်ကွင်း)  

Syllabus နဲ့ Level ကော်လံတွေက IB Computer Science သင်တန်းအတွက်ပါ။ SL (Standard Level) နဲ့ HL (Higher Level) ဆိုတာ IB သင်တန်းရဲ့ အဆင့်နှစ်ဆင့်ဖြစ်ပြီး HL အပိုင်းတွေက ပိုနက်နက်ရှိုင်းရှိုင်း လေ့လာရတဲ့ အပိုင်းတွေပါ။ SL + HL ဆိုတာ အဆင့် နှစ်ဆင့်လုံးမှာ လေ့လာရတယ်လို့ ဆိုလိုပါတယ်။


ဒီ layer ကို ဘယ်လို လေ့လာမလဲ

  • Programming ကို အခုမှ စလေ့လာတာ ဆိုရင်၊ ဒါမှမဟုတ် data type နဲ့ operator (တန်ဖိုးတွေကို တွက်ချက်တဲ့ သင်္ကေတ) တွေကို ပြန်နွှေးချင်ရင် Programming Fundamentals ကနေ စပါ။
  • if/else၊ loop နဲ့ method (သီးခြား အလုပ်တစ်ခု လုပ်ပေးတဲ့ code အပိုင်း) တွေကို ကျွမ်းကျင်အောင် Programming Constructs ကို တစ်ဆင့်ချင်း လေ့လာပါ: ဒါတွေက program တိုင်းမှာ ပါပါတယ်။
  • Data Structures နဲ့ Algorithms က အနီးကပ် ဆက်စပ်နေပါတယ်: ဒေတာကို ဘယ်လို သိမ်းထားလဲ ဆိုတာက ဘယ် algorithm တွေ သုံးရင် သင့်တော်မလဲ ဆိုတာကို ဆုံးဖြတ်ပေးပါတယ်။
  • File Processing က ကိုယ့် program တွေကို လက်တွေ့ ကမ္ဘာနဲ့ ချိတ်ဆက်ပေးပါတယ်: program တစ်ကြိမ် run ပြီးသွားရင်တောင် ဒေတာက ဆက်ရှိနေပါတယ်။

IB Paper 2 (IB Computer Science စာမေးပွဲမှာ programming မေးခွန်းတွေ ပါတဲ့ စာစောင်) မေးခွန်းတွေမှာ code ကို trace လုပ်ခြင်း (တစ်ဆင့်ချင်း လိုက်ကြည့်ခြင်း)၊ အမှားတွေကို ရှာဖော်ခြင်း နဲ့ algorithm တိုတိုလေးတွေ ရေးခြင်း ကို မေးပါတယ်။ အပိုင်းတိုင်းမှာ ပါတဲ့ trace table (variable တန်ဖိုးတွေကို အဆင့်ဆင့် မှတ်တဲ့ ဇယား) လေ့ကျင့်ခန်းတွေက ဒီအတွက် တိုက်ရိုက် ပြင်ဆင်ပေးပါတယ်။


Table of contents


© EduCS.me. ကွန်ပျူတာသိပ္ပံ ပညာရေးအတွက် အရင်းအမြစ်တွေ စုထားတဲ့ နေရာပါ။ EduCS is an independent educational resource. It is not affiliated with, or endorsed by, the International Baccalaureate Organization. (EduCS ဟာ သီးခြား ပညာရေး အရင်းအမြစ်တစ်ခုပါ။ International Baccalaureate Organization နဲ့ ဆက်စပ်မှု မရှိသလို သူတို့ရဲ့ ထောက်ခံချက်လည်း မရှိပါဘူး။) ဆက်သွယ်ရန်