All topics (ခေါင်းစဉ်အားလုံး)

ခေါင်းစဉ်တစ်ခုကို ရှာပါ၊ ဒါမှမဟုတ် ဘာသာရပ် အပိုင်းတွေကို လှန်ကြည့်ပါ။


Information (အချက်အလက် အလွှာ)

ကွန်ပျူတာတွေက ဂဏန်း၊ စာသား၊ ပုံနဲ့ အသံတွေကို binary (0 နဲ့ 1 ကိုပဲ သုံးတဲ့ ဂဏန်းစနစ်) အဖြစ် ဘယ်လို သိမ်းသလဲ။

ခေါင်းစဉ် ဘာတွေ လေ့လာရမလဲ
Number Systems (ဂဏန်းစနစ်များ) Binary၊ hexadecimal (အခြေ 16 ဂဏန်းစနစ်) နဲ့ decimal (အခြေ 10 ဂဏန်းစနစ်) တို့ကြား ပြောင်းခြင်း
Representing Data (ဒေတာကို binary နဲ့ ဖော်ပြခြင်း) စာသား၊ ပုံ၊ အသံနဲ့ ဗီဒီယိုတွေကို binary အဖြစ် encode (သတ်မှတ်ထားတဲ့ code ပုံစံအဖြစ် ပြောင်း) လုပ်ခြင်း

Hardware (Hardware အလွှာ)

ကွန်ပျူတာတွေ ရုပ်ပိုင်းဆိုင်ရာ အဆင့်မှာ ဘယ်လို အလုပ်လုပ်သလဲ: logic gate (input bit တွေကနေ output bit တစ်ခု ထုတ်ပေးတဲ့ circuit အစိတ်အပိုင်း) တွေကနေ cloud service (အင်တာနက်ကနေ ငှားသုံးတဲ့ ကွန်ပျူတာ ဝန်ဆောင်မှု) တွေအထိ။

ခေါင်းစဉ် ဘာတွေ လေ့လာရမလဲ
CPU Architecture (CPU ရဲ့ ဖွဲ့စည်းပုံ) ALU (တွက်ချက်ပြီး နှိုင်းယှဉ်ပေးတဲ့ CPU အပိုင်း)၊ CU (control unit: CPU ထဲက ညွှန်ကြားချက် ထိန်းချုပ်ရေး အပိုင်း)၊ register (CPU ထဲက အမြန်ဆုံး သိမ်းဆည်းရာ) များ၊ fetch-decode-execute cycle (ညွှန်ကြားချက်ကို ယူ၊ နားလည်၊ လုပ်ဆောင်တဲ့ စက်ဝန်း)
GPU (ဂရပ်ဖစ် processor) Graphics processing (screen ပေါ်က ပုံတွေကို တွက်ချက်ပြီး ပုံဖော်ခြင်း)၊ CPU (ကွန်ပျူတာရဲ့ အဓိက processor) နဲ့ GPU နှိုင်းယှဉ်ချက်
Primary Memory (ပင်မ မှတ်ဉာဏ်) RAM (ပါဝါပိတ်ရင် ပျောက်တဲ့ အဓိက memory)၊ ROM (ဖတ်ရုံသာ ရတဲ့ memory)၊ cache (CPU နဲ့ RAM ကြားက မြန်တဲ့ memory) (L1/L2/L3)၊ register များ
Secondary Storage (ပါဝါပိတ်ပြီးလည်း ဒေတာ ကျန်နေတဲ့ ရေရှည် storage) SSD (ရွေ့လျားတဲ့ အစိတ်အပိုင်း မပါတဲ့ သိုလှောင်စက်)၊ HDD (လည်နေတဲ့ သံလိုက်ပြား သုံးတဲ့ သိုလှောင်စက်)၊ optical (laser အလင်းနဲ့ ဖတ်တဲ့ storage)၊ flash (chip ပေါ်မှာ သိမ်းတဲ့ storage): internal (ကွန်ပျူတာ အတွင်းမှာ တပ်ထားတဲ့) နဲ့ external (ကွန်ပျူတာ အပြင်ကနေ ချိတ်သုံးတဲ့)
Logic Gates (Logic gate များ) AND၊ OR၊ NOT၊ NAND၊ NOR၊ XOR၊ XNOR gate များ၊ truth table (input အားလုံးနဲ့ output ကို ပြတဲ့ ဇယား) များ၊ logic diagram (logic gate တွေနဲ့ ဆွဲထားတဲ့ circuit ပုံ) များ
Compression (ဒေတာ ချုံ့ခြင်း) Lossy compression (ဒေတာ တချို့ကို ဖယ်ပြီး ချုံ့ခြင်း) နဲ့ lossless compression (ဒေတာ မဆုံးရှုံးဘဲ ချုံ့ခြင်း) ကွာခြားချက်၊ run-length encoding (ထပ်နေတဲ့ တန်ဖိုးတွေကို အရေအတွက်နဲ့ ချုံ့ခြင်း)
Cloud Computing (အင်တာနက်ကနေ ငှားသုံးတဲ့ ကွန်ပျူတာ resource) SaaS (အင်တာနက်ကနေ အသင့်သုံး software)၊ PaaS (app တင်ဖို့ အသင့်ပြင်ထားတဲ့ platform)၊ IaaS (virtual machine နဲ့ storage ကို ငှားသုံးခြင်း)၊ deployment model (cloud ကို ဘယ်သူ ပိုင်ပြီး ဘယ်သူတွေ သုံးခွင့်ရလဲ ဆိုတဲ့ ပုံစံ) များ
Translation (program code ကို ဘာသာပြန်ခြင်း) Compiler (code တစ်ခုလုံးကို ကြိုတင် ဘာသာပြန်တဲ့ program) နဲ့ interpreter (code ကို တစ်ကြောင်းချင်း ဘာသာပြန်ပြီး run တဲ့ program) ကွာခြားချက်၊ JIT (JIT compilation: run နေစဉ် machine code အဖြစ် ပြောင်းခြင်း)၊ bytecode (virtual machine က run တဲ့ ကြားခံ code)
Hardware Practice Library (Hardware လေ့ကျင့်ခန်း စုစည်းမှု) Hardware လေ့ကျင့်ခန်း မေးခွန်း အားလုံး၊ ခက်ခဲမှု အဆင့်နဲ့ အမှတ်အလိုက် စစ်ထုတ်ကြည့်နိုင်ပါတယ်

Programming Fundamentals (Programming အခြေခံများ)

Programming ရဲ့ အခြေခံ သဘောတရားများ: variable (တန်ဖိုး သိမ်းထားတဲ့ နာမည်ပေးထားတဲ့ နေရာ)၊ string (စာသား)၊ error handling (အမှား ကိုင်တွယ်ခြင်း)၊ debugging (program ထဲက အမှားကို ရှာပြီး ပြင်ခြင်း)။

ခေါင်းစဉ် ဘာတွေ လေ့လာရမလဲ
Variables & Types (Variable နဲ့ Data Type များ) int၊ double၊ boolean၊ char၊ String: declaration (ကြေညာခြင်း) နဲ့ အသုံးပြုပုံ
Strings (String နဲ့ သုံးတဲ့ method များ) length၊ substring၊ indexOf၊ charAt၊ equals၊ compareTo
Exception Handling (Exception တွေကို ကိုင်တွယ်ခြင်း) try/catch/finally၊ runtime error (program run နေစဉ် ဖြစ်တဲ့ error) တွေကို ကိုင်တွယ်ခြင်း
Debugging (Debugging နည်းလမ်းများ) Trace table (variable တန်ဖိုးတွေကို အဆင့်ဆင့် မှတ်တဲ့ ဇယား) များ၊ breakpoint (program ကို ခဏ ရပ်ခိုင်းတဲ့ အမှတ်အသား) များ၊ print debugging (တန်ဖိုးတွေကို print ထုတ်ကြည့်ပြီး အမှား ရှာခြင်း)
Working in GitHub Codespaces (GitHub Codespaces မှာ အလုပ်လုပ်ပုံ) GitHub Classroom (ဆရာက assignment တွေ ပေးပြီး စစ်ဆေးနိုင်တဲ့ GitHub ရဲ့ ဝန်ဆောင်မှု) မှာ assignment (ဆရာ ပေးတဲ့ လုပ်ရမယ့် အလုပ်) တစ်ခုကို လက်ခံခြင်း၊ browser ထဲမှာ code ရေးခြင်း၊ test တွေ run ခြင်း၊ အလုပ်ကို တင်ခြင်းနဲ့ feedback (တုံ့ပြန်ချက်) ကို ဖတ်ခြင်း

Programming Constructs (Program တည်ဆောက်တဲ့ အခြေခံ ပုံစံများ)

Control flow (program ထဲမှာ code တွေ run တဲ့ အစဉ်): ဆုံးဖြတ်ချက် ချခြင်းနဲ့ လုပ်ဆောင်ချက်တွေကို ထပ်ခါထပ်ခါ လုပ်ခြင်း။

ခေါင်းစဉ် ဘာတွေ လေ့လာရမလဲ
Selection (if/else) (condition ပေါ်မူတည်ပြီး လမ်းကြောင်း ရွေးခြင်း) if၊ else if၊ else၊ boolean condition (true ဒါမှမဟုတ် false ဖြစ်တဲ့ အခြေအနေ) များ၊ nested selection (if ထဲမှာ ထပ်ပါတဲ့ if)
Iteration (Loops) (ထပ်ခါထပ်ခါ လုပ်ခြင်း) for၊ while၊ do-while၊ nested loop (loop ထဲမှာ ထပ်ပါတဲ့ loop) များ
Methods & Modularization (method တွေ ရေးပြီး program ကို အပိုင်းငယ်တွေ ခွဲတည်ဆောက်ခြင်း) Parameter (method ကို ပေးလိုက်တဲ့ တန်ဖိုးကို လက်ခံတဲ့ variable) များ၊ return value (ပြန်ပေးတဲ့ တန်ဖိုး) များ၊ scope (variable ကို သုံးလို့ရတဲ့ နယ်ပယ်)၊ ဘာကြောင့် modularize (သီးခြား အပိုင်းငယ်တွေ ခွဲရေး) လုပ်သလဲ

Data Structures (ဒေတာ သိမ်းဆည်းပုံများ)

Collection (ဒေတာအစု) တွေကို စနစ်တကျ စီစဉ်ပြီး သိမ်းဆည်းခြင်း။

ခေါင်းစဉ် ဘာတွေ လေ့လာရမလဲ
1D Arrays (တန်းတစ်တန်းတည်းမှာ စီထားတဲ့ ဒေတာအစုများ) Array (အရွယ်အစား ပုံသေ၊ အမျိုးအစားတူ ဒေတာစု) ကို ကြေညာခြင်း၊ traversal (element တိုင်းကို အစဉ်တကျ သွားကြည့်ခြင်း)၊ အသုံးများတဲ့ operation (ဒေတာပေါ်မှာ လုပ်တဲ့ လုပ်ဆောင်ချက်) များ၊ copy ကူးခြင်း
2D Arrays (row နဲ့ column ပါတဲ့ ဇယားကွက် array များ) Row (အလျားလိုက် အတန်း) နဲ့ column (ဒေါင်လိုက် ကော်လံ) များ၊ nested traversal (loop ထဲမှာ loop ထပ်ပြီး element တိုင်းကို သွားကြည့်ခြင်း)၊ matrix (ကိန်းဇယား) operation များ
ArrayList (ကြီးလာ၊ သေးသွားနိုင်တဲ့ list) Dynamic list (အရွယ်အစား ပြောင်းနိုင်တဲ့ list) များ၊ add/remove/traverse (ထည့်ခြင်း၊ ဖယ်ခြင်း၊ တစ်ခုချင်း သွားကြည့်ခြင်း)၊ wrapper type (primitive type ရဲ့ object ပုံစံ) များ၊ array နဲ့ နှိုင်းယှဉ်ချက်
Stacks (အပေါ်ကနေပဲ ထည့်၊ ထုတ်တဲ့ အထပ်များ) LIFO (နောက်ဆုံးဝင်တာ အရင်ထွက်)၊ push/pop/peek (stack ရဲ့ အပေါ်ဆုံးမှာ ထည့်ခြင်း၊ အပေါ်ဆုံးကနေ ဖယ်ထုတ်ခြင်း၊ မဖယ်ဘဲ ကြည့်ခြင်း)၊ undo (လုပ်ခဲ့တာကို ပြန်ပယ်ခြင်း)၊ browser history (browser မှာ ဖွင့်ခဲ့တဲ့ စာမျက်နှာ မှတ်တမ်း)၊ bracket matching (ကွင်း အဖွင့်နဲ့ အပိတ် ကိုက်မကိုက် စစ်ခြင်း)
Queues (အရင်ထည့်တာ အရင်ထွက်တဲ့ တန်းများ) FIFO (အရင်ဝင်တာ အရင်ထွက်)၊ enqueue/dequeue (queue ရဲ့ နောက်ဆုံးမှာ ထည့်ခြင်း၊ ရှေ့ဆုံးကနေ ဖယ်ထုတ်ခြင်း)၊ print queue (print ထုတ်ဖို့ စောင့်နေတဲ့ အလုပ် တန်း) များ၊ scheduling (ဘယ် process ကို CPU အချိန် ပေးမလဲ ဆုံးဖြတ်ခြင်း)၊ task processing (အလုပ်တွေကို အစဉ်လိုက် လုပ်ဆောင်ခြင်း)

Algorithms (အယ်လ်ဂိုရီသမ်များ)

ပြဿနာတွေကို ထိရောက်စွာ ဖြေရှင်းခြင်း: searching (ရှာဖွေခြင်း)၊ sorting (အစဉ်တကျ စီခြင်း) နဲ့ performance (စွမ်းဆောင်ရည်) ကို တိုင်းတာခြင်း။

ခေါင်းစဉ် ဘာတွေ လေ့လာရမလဲ
Big-O Notation (algorithm ရဲ့ ကြာချိန် တိုးနှုန်းကို ပြတဲ့ သင်္ကေတ) O(1)၊ O(log n)၊ O(n)၊ O(n^2): efficiency (ထိရောက်မှု) ကို နှိုင်းယှဉ်ခြင်း
Searching Algorithms (ရှာဖွေရေး အယ်လ်ဂိုရီသမ်များ) Linear search (တစ်ခုချင်း ဆက်တိုက် ရှာနည်း)၊ binary search (တစ်ဝက်စီ ခွဲပြီး ရှာနည်း): ဘယ်ဟာကို ဘယ်အချိန် သုံးမလဲ
Sorting Algorithms (ဒေတာကို အစဉ်လိုက် စီတဲ့ အယ်လ်ဂိုရီသမ်များ) Bubble sort (ဘေးချင်းကပ် တန်ဖိုးတွေကို လဲပြီး စီခြင်း)၊ selection sort (အငယ်ဆုံးကို ရှာပြီး နေရာချ စီခြင်း): trace (တစ်ဆင့်ချင်း လိုက်ကြည့်ပြီး မှတ်) လုပ်ခြင်းနဲ့ နှိုင်းယှဉ်ခြင်း
Recursion (method က သူ့ကိုယ်သူ ပြန်ခေါ်ခြင်း) Base case (recursion ကို ရပ်စေတဲ့ condition) နဲ့ recursive case (သူ့ကိုယ်သူ ပြန်ခေါ်တဲ့ အပိုင်း)၊ call stack (လက်ရှိ method ခေါ်မှုတွေကို သိမ်းတဲ့ stack)၊ factorial (1 ကနေ n အထိ ကိန်းပြည့်တွေကို မြှောက်ထားတဲ့ ရလဒ်)၊ Fibonacci ကိန်းစဉ် (HL: Higher Level၊ နိုင်ငံတကာ ကျောင်းတွေမှာ သင်တဲ့ IB Computer Science သင်တန်းရဲ့ ပိုမြင့်တဲ့ အဆင့်)
Quicksort (pivot နဲ့ ခွဲပြီး မြန်မြန် စီတဲ့ နည်း) Pivot (တခြား တန်ဖိုးတွေကို ဘယ်ညာ ခွဲဖို့ ရွေးထားတဲ့ တန်ဖိုး)၊ partition (pivot ကို အခြေခံပြီး တန်ဖိုးတွေကို နှစ်ဘက် ခွဲခြင်း)၊ recursion tree (recursion ခေါ်မှုတွေကို သစ်ပင်ပုံ ဆွဲပြတဲ့ ပုံ)၊ BST (binary search tree: ဘယ်ဘက် ငယ်၊ ညာဘက် ကြီးတဲ့ binary tree) နဲ့ ဆက်စပ်ပုံ၊ best case (အကောင်းဆုံး အခြေအနေ)၊ average case (ပျမ်းမျှ အခြေအနေ) နဲ့ worst case (အဆိုးဆုံး အခြေအနေ)၊ ပျမ်းမျှ O(n log n) နဲ့ အဆိုးဆုံး O(n^2) ကွာခြားချက် (HL၊ ရှင်းပြနိုင်ဖို့ပဲ လိုတယ်)

File Processing (File တွေကို ဖတ်ခြင်းနဲ့ ရေးခြင်း)

Data persistence (program ပိတ်သွားပြီးနောက်မှာလည်း ဒေတာ ဆက်ရှိနေအောင် သိမ်းထားခြင်း) အတွက် text file တွေကနေ ဖတ်ခြင်းနဲ့ text file တွေထဲ ရေးခြင်း။

ခေါင်းစဉ် ဘာတွေ လေ့လာရမလဲ
Reading Files (File ထဲက ဒေတာကို ဖတ်ခြင်း) Scanner (keyboard ဒါမှမဟုတ် file ကနေ input ဖတ်တဲ့ Java class)၊ BufferedReader (file ကို ထိရောက်စွာ ဖတ်တဲ့ Java class)၊ CSV (comma နဲ့ ခြားထားတဲ့ စာသား file) ကို parse (အဓိပ္ပာယ်ရှိတဲ့ အပိုင်းတွေအဖြစ် ခွဲထုတ်) လုပ်ခြင်း၊ error handling
Writing Files (File ထဲကို ဒေတာ ရေးခြင်း) FileWriter (file ထဲ စာရေးတဲ့ Java class)၊ BufferedWriter (file ထဲ ထိရောက်စွာ ရေးတဲ့ Java class)၊ overwrite (ရှိပြီးသား content ကို ဖျက်ပြီး အသစ် ရေးခြင်း) နဲ့ append (ရှိပြီးသား content ရဲ့ နောက်မှာ ဆက်ရေးခြင်း) ကွာခြားချက်၊ CSV output

Object-Oriented Programming (object တွေကို အခြေခံပြီး program ရေးနည်း)

လက်တွေ့ ကမ္ဘာက စနစ်တွေကို class (object တွေ ဖန်တီးဖို့ ပုံစံခွက်)၊ object (class တစ်ခုကနေ ဖန်တီးထားတဲ့ instance) နဲ့ သူတို့ကြား ဆက်နွယ်မှုတွေနဲ့ ပုံဖော်ခြင်း။

အခြေခံများ

ခေါင်းစဉ် ဘာတွေ လေ့လာရမလဲ
What is OOP? (OOP ဆိုတာ ဘာလဲ) OOP ရဲ့ အခြေခံ သဘောတရား လေးခု၊ procedural programming (ဒေတာနဲ့ function တွေကို သီးခြားစီ ထားပြီး အဆင့်ဆင့် ရေးတဲ့ program ရေးနည်း) နဲ့ OOP နှိုင်းယှဉ်ချက်၊ OOP ဘာကြောင့် ရှိလာသလဲ
Classes & Objects (class နဲ့ object များ) Class ကို blueprint (တည်ဆောက်ဖို့ ပုံစံ ပုံကြမ်း) အဖြစ် မြင်ခြင်း၊ new နဲ့ instantiation (class ကနေ object အသစ် ဖန်တီးခြင်း)
Constructors (object ဖန်တီးချိန် attribute တွေကို စတင် သတ်မှတ်ပေးတဲ့ method များ) Default constructor (parameter မယူဘဲ default တန်ဖိုးတွေ ထည့်ပေးတဲ့ constructor)၊ parameterised constructor (parameter တွေ လက်ခံတဲ့ constructor)၊ overloaded constructor (parameter list မတူတဲ့ constructor အများ)
The this Keyword (လက်ရှိ object ကို ညွှန်းတဲ့ this keyword) Parameter shadowing (နာမည်တူ parameter က instance variable ကို ဖုံးထားခြင်း)၊ this.field ပုံစံ
Encapsulation (ဒေတာနဲ့ method ကို တစ်စုတည်း ထုပ်ပိုးခြင်း) Private field (class အပြင်ကနေ တိုက်ရိုက် သုံးလို့ မရတဲ့ field) များ၊ getter (private attribute ရဲ့ တန်ဖိုးကို ပြန်ပေးတဲ့ method) / setter (private attribute ရဲ့ တန်ဖိုးကို ပြောင်းတဲ့ method) များ၊ data hiding (object ရဲ့ အတွင်း ဒေတာကို ဖုံးထားခြင်း)
Access Modifiers (ဘယ်ကနေ သုံးခွင့်ရလဲ သတ်မှတ်တဲ့ keyword များ) private၊ public၊ protected၊ default
Static Members (class ကိုယ်တိုင် ပိုင်တဲ့ member များ) Static နဲ့ instance (object တစ်ခုချင်း ပိုင်တဲ့) member ကွာခြားချက်၊ object အားလုံး မျှသုံးတဲ့ counter (အရေအတွက် မှတ်တဲ့ variable) များ၊ main ဘာကြောင့် static ဖြစ်ရလဲ
Object References (object ရှိရာ memory နေရာကို ညွှန်းတဲ့ တန်ဖိုးများ) Aliasing (variable နှစ်ခုက object တစ်ခုတည်းကို ညွှန်းနေခြင်း)၊ null (ဘာ object ကိုမှ မညွှန်းတဲ့ တန်ဖိုး)၊ == နဲ့ .equals() ကွာခြားချက်
UML Class Diagrams (class တစ်ခုကို အကွက် သုံးကွက်နဲ့ ပြတဲ့ ပုံများ) အပိုင်း သုံးပိုင်းပါတဲ့ အကွက်၊ သင်္ကေတများ၊ code ကနေ diagram ဆွဲခြင်း
Aggregation (သီးခြား ရှိနေနိုင်တဲ့ has-a ဆက်နွယ်မှု) Has-a relationship (object တစ်ခုထဲမှာ နောက် object တစ်ခု ပါဝင်တဲ့ ဆက်နွယ်မှု) များ၊ object တွေရဲ့ array များ

Inheritance နဲ့ Polymorphism (HL)

ခေါင်းစဉ် ဘာတွေ လေ့လာရမလဲ
Inheritance (parent class ကနေ အမွေဆက်ခံခြင်း) extends၊ super()၊ constructor chaining (constructor တစ်ခုက နောက် constructor တစ်ခုကို ဆက်ခေါ်ခြင်း)၊ is-a (class တစ်ခုက နောက် class တစ်ခုရဲ့ အမျိုးအစားခွဲ ဖြစ်တဲ့ ဆက်နွယ်မှု)
Method Overriding (parent ရဲ့ method ကို child က အစားထိုး ရေးခြင်း) @Override၊ parent class ရဲ့ behaviour (object က လုပ်နိုင်တာတွေ) ကို အစားထိုးခြင်း
Polymorphism (ပုံစံ အမျိုးမျိုး ယူနိုင်ခြင်း) Polymorphic array (မတူတဲ့ subclass တွေရဲ့ object တွေကို အတူ သိမ်းထားတဲ့ array) များ၊ runtime method dispatch (program run နေစဉ် ဘယ် method ကို run မလဲ ဆုံးဖြတ်ခြင်း)
Abstract Classes (object တိုက်ရိုက် မဖန်တီးနိုင်တဲ့ class များ) abstract keyword၊ subclass (အမွေဆက်ခံတဲ့ child class) တွေက method တွေကို မဖြစ်မနေ ရေးပေးရအောင် လုပ်ခြင်း
Interfaces (class တစ်ခု implement လုပ်ရမယ့် method စာရင်းများ) interface၊ implements၊ interface အများကို တစ်ပြိုင်နက် implement လုပ်ခြင်း
Composition vs Inheritance (composition နဲ့ inheritance နှိုင်းယှဉ်ချက်) Has-a နဲ့ is-a ကွာခြားချက်၊ composition (ပိုခိုင်မာတဲ့ has-a ဆက်နွယ်မှု) ကို ဦးစားပေး ရွေးခြင်း

စာမေးပွဲ ဖြေဆိုရေး ကျွမ်းကျင်မှုများ

ခေါင်းစဉ် ဘာတွေ လေ့လာရမလဲ
OOP Method Patterns (OOP မှာ အသုံးများတဲ့ method ပုံစံများ) Filter (condition နဲ့ ကိုက်တာတွေကိုပဲ ရွေးထုတ်ခြင်း)၊ count (ရေတွက်ခြင်း)၊ accumulate (တန်ဖိုးတွေကို တဖြည်းဖြည်း စုပေါင်းခြင်း)၊ find-by-ID (ID နဲ့ ရှာခြင်း)၊ max/min (အကြီးဆုံး/အငယ်ဆုံး)၊ remove (ဖယ်ရှားခြင်း)
Selection Sort on Objects (object တွေကို selection sort နဲ့ စီခြင်း) Attribute (object ရဲ့ ဒေတာကို သိမ်းတဲ့ variable) တစ်ခုအလိုက် စီခြင်း၊ .compareTo()၊ reference တွေကို လဲလှယ်ခြင်း
OOP Terminology Reference (OOP ဝေါဟာရ ကိုးကားစာရင်း) ပြန်လှန် လေ့ကျင့်ဖို့ IB သင်ရိုးက OOP term တိုင်းနဲ့ သူ့ရဲ့ တိကျတဲ့ အဓိပ္ပာယ်ဖွင့်ဆိုချက်

IA (IB သင်တန်းမှာ ကိုယ်တိုင် တည်ဆောက်ရတဲ့ project) အတွက် ပြင်ဆင်ခြင်း

ခေါင်းစဉ် ဘာတွေ လေ့လာရမလဲ
JavaFX Basics (JavaFX အခြေခံများ) JavaFX (Java နဲ့ desktop app တည်ဆောက်တဲ့ library) ရဲ့ Stage (window ကိုယ်တိုင်)၊ Scene (window ထဲမှာ ပြတဲ့ screen တစ်ခုစာ content)၊ control (button၊ text box စတဲ့ user သုံးတဲ့ အစိတ်အပိုင်း) များ၊ layout (control တွေကို screen ပေါ်မှာ စီစဉ်ထားပုံ) များ၊ event handling (user က နှိပ်တာ ဒါမှမဟုတ် စာရိုက်တာကို program က တုံ့ပြန်အောင် လုပ်ခြင်း)၊ alert (JavaFX မှာ အသင့်ပါတဲ့ message window) များ
MVC Architecture (MVC ဖွဲ့စည်းပုံ) Model-View-Controller (app ကို Model၊ View၊ Controller ဆိုပြီး အပိုင်းသုံးပိုင်း ခွဲရေးတဲ့ ပုံစံ)၊ separation of concerns (အလုပ် တစ်မျိုးစီကို သီးခြား အပိုင်းစီမှာ ခွဲထားခြင်း)၊ ပြည့်စုံတဲ့ ဥပမာ တစ်ခု
FXML and Controllers (FXML နဲ့ Controller များ) FXML markup (screen ပုံစံကို tag တွေနဲ့ ဖော်ပြတဲ့ ရေးထုံး)၊ @FXML annotation (code အကြောင်း compiler ကို အချက်ပြတဲ့ အမှတ်အသား)၊ FXMLLoader၊ Scene Builder (FXML layout ကို ပုံနဲ့ မြင်ရင်း ပြင်တဲ့ editor)
Multi-Window Apps (Window အများ ပါတဲ့ app များ) Scene swapping (scene တစ်ခုကနေ နောက်တစ်ခုကို ပြောင်းပြခြင်း)၊ popup window (main window ရှေ့မှာ ပွင့်လာတဲ့ သီးခြား window) များ၊ shared model (window အားလုံး မျှသုံးတဲ့ model)၊ data passing (window တွေကြား ဒေတာ ပေးပို့ခြင်း)
File I/O in Apps (App တွေထဲမှာ file ဖတ်ခြင်း၊ ရေးခြင်း) CSV file နဲ့ persistence၊ try-with-resources (file ကို အလိုအလျောက် ပိတ်ပေးတဲ့ try ပုံစံ)၊ load/save ပုံစံများ
Structuring Your IA (IA ကို ဖွဲ့စည်း တည်ဆောက်ခြင်း) Class တွေကို စီစဉ်ခြင်း၊ criteria (အမှတ်ပေး စံနှုန်းများ) က ဘာတွေကို ရှာလဲ၊ MVC စစ်ဆေးစာရင်း၊ အဆင့်ဆင့် တိုးပြီး တည်ဆောက်ခြင်း
tkinter Basics (tkinter အခြေခံများ) Python: tkinter (Python နဲ့ desktop app တည်ဆောက်တဲ့ library) ရဲ့ main window (အဓိက window)၊ widget (button၊ text box စတဲ့ screen ပေါ်က အစိတ်အပိုင်း) များ၊ pack နဲ့ grid (widget တွေကို window ထဲမှာ နေရာချတဲ့ နည်း နှစ်မျိုး)၊ event handling၊ message box (စာတို တစ်ခု ပြတဲ့ window အသေး) များ
MVC with tkinter (tkinter နဲ့ MVC) Python: tkinter နဲ့ Model-View-Controller၊ မျှသုံးတဲ့ controller တစ်ခုတည်း (singleton: instance တစ်ခုတည်းပဲ ရှိတဲ့ class ပုံစံ)
Multi-Window Apps with tkinter (tkinter နဲ့ window အများ ပါတဲ့ app များ) Python: Toplevel window (main window ကနေ ဖွင့်တဲ့ နောက်ထပ် window) များ၊ modal popup (မပိတ်မချင်း နောက်က window ကို သုံးလို့ မရတဲ့ popup) များ၊ shared model၊ data passing

Abstract Data Types (HL) (operation တွေနဲ့ သတ်မှတ်တဲ့ ဒေတာ အမျိုးအစားများ)

Data structure တွေကို အစကနေ ကိုယ်တိုင် တည်ဆောက်ခြင်း: node (ဒေတာ သိမ်းထားတဲ့ အကွက်) များ၊ reference များနဲ့ ကိုယ်သုံးနေတဲ့ tool တွေ နောက်ကွယ်က သီအိုရီ။

ခေါင်းစဉ် ဘာတွေ လေ့လာရမလဲ
What Are ADTs? (ADT ဆိုတာ ဘာလဲ) Interface (တခြား code က သုံးလို့ရတဲ့ public method များ) နဲ့ implementation (တကယ် အလုပ်လုပ်အောင် ရေးထားတဲ့ code) ကွာခြားချက်၊ static (အရွယ်အစား ပုံသေ) နဲ့ dynamic (ကြီးလာ၊ သေးသွားနိုင်တဲ့) structure ကွာခြားချက်၊ အဓိက operation များ၊ ADT ကို contract (လိုက်နာရမယ့် သဘောတူချက်) အဖြစ် မြင်ခြင်း (HL)
Linked Lists (node တွေ ချိတ်ဆက်ထားတဲ့ list များ) Node class၊ singly linked list (တစ်ဘက်တည်း ချိတ်ဆက်ထားတဲ့ linked list)၊ traversal၊ insertion (ထည့်ခြင်း)၊ deletion (ဖျက်ခြင်း)၊ search (ရှာခြင်း) (HL)
Ordered Linked Lists (တန်ဖိုးအလိုက် အစဉ်တကျ စီထားတဲ့ linked list များ) Sorted insertion (အစဉ်မပျက်အောင် ထည့်ခြင်း)၊ early-termination search (ရှာနေတဲ့ တန်ဖိုး မရှိနိုင်တော့တာနဲ့ စောစော ရပ်တဲ့ ရှာနည်း)၊ ordered နဲ့ unordered (အစဉ်တကျ နဲ့ အစဉ်မကျ) list ကြား trade-off (တစ်ခု ရဖို့ တစ်ခု အလျှော့ပေးရတာ) များ (HL)
Doubly Linked Lists (နှစ်ဘက်လုံး ချိတ်ဆက်ထားတဲ့ linked list များ) prev + next reference များ၊ bidirectional traversal (ရှေ့ကို ရော နောက်ကို ပါ သွားကြည့်ခြင်း)၊ O(1) deletion၊ circular variant (အဆုံးကနေ အစကို ပြန်ချိတ်ထားတဲ့ ပုံစံ) (HL)
Stacks from Scratch (Stack ကို အစကနေ ကိုယ်တိုင် တည်ဆောက်ခြင်း) Linked list node တွေနဲ့ stack တစ်ခု တည်ဆောက်ခြင်း၊ push/pop အတွင်းပိုင်း အလုပ်လုပ်ပုံ၊ bracket matching (HL)
Queues from Scratch (Queue ကို အစကနေ ကိုယ်တိုင် တည်ဆောက်ခြင်း) Linked list node တွေနဲ့ queue တစ်ခု တည်ဆောက်ခြင်း၊ enqueue/dequeue အတွင်းပိုင်း အလုပ်လုပ်ပုံ၊ FIFO အသုံးချပုံများ (HL)
Binary Search Trees (ဘယ်ဘက် ငယ်၊ ညာဘက် ကြီးတဲ့ binary tree များ) TreeNode၊ BST property (node တိုင်းရဲ့ ဘယ်ဘက်မှာ ပိုငယ်တာ၊ ညာဘက်မှာ ပိုကြီးတာ ရှိရမယ့် စည်းမျဉ်း)၊ recursive insert နဲ့ search၊ in-order traversal (ဘယ်၊ node၊ ညာ အစဉ်နဲ့ node တွေကို သွားကြည့်ခြင်း) (HL)
BST Operations (binary search tree ပေါ်မှာ လုပ်တဲ့ operation များ) Delete (ဖြစ်နိုင်တဲ့ အခြေအနေ 3 မျိုး)၊ tree height (tree ရဲ့ အမြင့်)၊ balanced နဲ့ unbalanced tree (ဘယ်ညာ ညီမျှတဲ့ tree နဲ့ တစ်ဘက်ကို စောင်းနေတဲ့ tree)၊ pre-order (node၊ ဘယ်၊ ညာ အစဉ်) နဲ့ post-order (ဘယ်၊ ညာ၊ node အစဉ်) traversal များ (HL)
Sets and HashMaps (set နဲ့ HashMap များ) HashSet (မထပ်တဲ့ element တွေ သိမ်းတဲ့ Java collection)၊ HashMap (Java ရဲ့ key-value hash table)၊ hashing (key ကို index အဖြစ် ပြောင်းခြင်း)၊ collision resolution (key နှစ်ခု index တူသွားရင် ဖြေရှင်းပုံ)၊ load factor (hash table ဘယ်လောက် ပြည့်နေလဲ ဆိုတာ)၊ set operation (set နှစ်ခုကို ပေါင်းခြင်း၊ ဘုံ element ရှာခြင်း စတဲ့ လုပ်ဆောင်ချက်) များ (HL)
Choosing the Right Structure (သင့်တော်တဲ့ data structure ကို ရွေးချယ်ခြင်း) နှိုင်းယှဉ် ဇယား၊ ဆုံးဖြတ်ချက် ချဖို့ flowchart (လုပ်ငန်းစဉ်ကို သင်္ကေတတွေနဲ့ ဆွဲပြတဲ့ ပုံ)၊ trade-off များ၊ structure တစ်ခုစီကို ဘယ်အချိန် သုံးမလဲ (HL)

JavaFX Cookbook (JavaFX အသင့်သုံး code နမူနာများ)

Desktop application (ကွန်ပျူတာပေါ်မှာ တိုက်ရိုက် run တဲ့ app) တစ်ခု တည်ဆောက်ဖို့ JavaFX recipe (ချက်ချင်း ယူသုံးလို့ရတဲ့ code နမူနာ) များ။ Recipe တစ်ခုစီက ကိုယ့် project နဲ့ ကိုက်အောင် ပြင်ပြီး သုံးရတဲ့ သေးငယ်တဲ့၊ ဘယ် project မှာမဆို သုံးလို့ရတဲ့ ပုံစံ တစ်ခုပါ။ JavaFX က စာမေးပွဲမှာ မေးတဲ့ ခေါင်းစဉ် မဟုတ်ပါဘူး။ ဒီ စာမျက်နှာတွေက app တည်ဆောက်ဖို့ လက်တွေ့ အထောက်အကူတွေ ဖြစ်ပြီး IB IA ဒါမှမဟုတ် ဘယ် Java GUI (window၊ button၊ text box တွေကို မြင်ရပြီး နှိပ်သုံးရတဲ့ user interface) project အတွက်မဆို အသုံးဝင်ပါတယ်။

စာမျက်နှာ ဘာတွေ လေ့လာရမလဲ
Cookbook Overview (JavaFX အသင့်သုံး code နမူနာများ အကျဉ်းချုပ်) Cookbook က ဘာလဲ၊ ဘယ်လို သုံးရမလဲ၊ recipe စာရင်း အပြည့်အစုံ
Start here: how every recipe fits together (ဒီမှာ စပါ: recipe တိုင်း ဘယ်လို ချိတ်ဆက်ထားလဲ) ကိုယ်ပြင်ရမယ့် နေရာ နှစ်ခုနဲ့ fx:id၊ onAction ချိတ်ဆက်မှုများ။ အရင်ဆုံး ဖတ်ပါ
Controlling UI state (UI ရဲ့ အခြေအနေကို ထိန်းချုပ်ခြင်း) Control တွေကို သုံးလို့ရအောင် ဖွင့်ခြင်း/သုံးလို့မရအောင် ပိတ်ခြင်း၊ focus (keyboard နဲ့ ရိုက်ထည့်တာကို လက်ခံမယ့် control ဖြစ်နေခြင်း)၊ Enter key ကို တုံ့ပြန်ခြင်း
Dialogs and feedback (Dialog များနဲ့ user ကို အသိပေးခြင်း) အချက်အလက် ပြတဲ့ dialog (message ပြဖို့ ဒါမှမဟုတ် user ကို မေးဖို့ ပေါ်လာတဲ့ window အသေး) နဲ့ အတည်ပြုချက် တောင်းတဲ့ dialog များ၊ မှားတဲ့ input ကို ဖမ်းခြင်း
Input controls (ဒေတာ ထည့်တဲ့ control များ) Radio button (အုပ်စုထဲက တစ်ခုပဲ ရွေးလို့ရတဲ့ အဝိုင်း ခလုတ်) များ၊ checkbox (အမှန်ခြစ် အကွက်) များ၊ combo box (ရွေးချယ်စရာ စာရင်း) များ၊ date picker (ပြက္ခဒိန်ကနေ ရက်စွဲ ရွေးတဲ့ control) များ၊ ဂဏန်းပဲ လက်ခံတဲ့ field များ
Showing data in a table (ဒေတာကို ဇယားနဲ့ ပြခြင်း) TableView (ဒေတာကို row နဲ့ column တွေနဲ့ ပြတဲ့ JavaFX control)၊ table ကို ဒေတာနဲ့ ဖြည့်ခြင်း၊ ရွေးထားတဲ့ row ကို ဖတ်ခြင်း၊ စာရိုက်နေရင်း ချက်ချင်း စစ်ထုတ်ပြခြင်း
Time, progress, and animation (အချိန်၊ အလုပ် ပြီးမြောက်မှုနဲ့ animation) Timeline (အချိန်ကိုက် code ကို ထပ်ခါထပ်ခါ run ပေးတဲ့ JavaFX object) နဲ့ အချိန်မှန်မှန် run ခြင်း၊ progress bar (ဘယ်လောက် ပြီးပြီလဲ ပြတဲ့ ဘား) များ
Files and persistence (File တွေနဲ့ ဒေတာ ရေရှည် သိမ်းဆည်းခြင်း) FileChooser (file ရွေးဖို့ ပွင့်လာတဲ့ window)၊ စာသားကို save လုပ်ခြင်းနဲ့ load လုပ်ခြင်း၊ SQLite (file တစ်ခုတည်းထဲမှာ သိမ်းတဲ့ database အသေး) အထိ အဆင့်မြှင့် သုံးခြင်း
Exporting and sharing (ဒေတာ ထုတ်ပေးခြင်းနဲ့ မျှဝေခြင်း) CSV export (app ထဲက ဒေတာကို CSV file အဖြစ် ထုတ်ပေးခြင်း)၊ button ကနေ email ပို့ခြင်း၊ ဝဘ်စာမျက်နှာ ဖွင့်ခြင်း
App structure and navigation (app ရဲ့ ဖွဲ့စည်းပုံနဲ့ screen တွေကြား သွားလာခြင်း) initialize၊ menu များ၊ app ကို ပိတ်ခြင်း၊ ဒုတိယ window များ၊ ဒေတာ ပေးပို့ခြင်း၊ tab (window တစ်ခုထဲမှာ ခေါင်းစဉ်ကို နှိပ်ပြီး ပြောင်းကြည့်ရတဲ့ စာမျက်နှာ) များ၊ CSS (screen ရဲ့ အရောင်၊ စာလုံး ပုံစံတွေကို သတ်မှတ်တဲ့ ရေးထုံး)
Charts and graphs (Chart နဲ့ ဂရပ်များ) Line chart၊ bar chart နဲ့ pie chart (မျဉ်း၊ ဘား၊ စက်ဝိုင်းပုံ chart) များနဲ့ သူတို့ကို update လုပ်ခြင်း
Images and media (ပုံများနဲ့ media) ပုံ ပြခြင်း၊ ပုံပါတဲ့ button များ၊ အသံ
Drawing and animation (ပုံဆွဲခြင်းနဲ့ animation) Canvas (တိုက်ရိုက် ပုံဆွဲလို့ရတဲ့ အလွတ် အကွက်) ပေါ်မှာ ပုံဆွဲခြင်း၊ mouse handler (mouse နဲ့ နှိပ်တာ၊ ဆွဲတာကို တုံ့ပြန်တဲ့ code) များ၊ game loop (game ကို update လုပ်ပြီး ပြန်ဆွဲတာကို ဆက်တိုက် လုပ်နေတဲ့ loop) များ
Keep the UI responsive during slow work (ကြာတဲ့ အလုပ် လုပ်နေစဉ် UI ကို တုံ့ပြန်နေအောင် ထားခြင်း) Window ရပ်မသွားအောင် background thread (နောက်ကွယ်မှာ သီးခြား run နေတဲ့ အလုပ်လမ်းကြောင်း) တွေနဲ့ Task ကို သုံးခြင်း

Software Development (Software တည်ဆောက်ခြင်း)

လူတွေ သုံးနိုင်တဲ့ software ကို စီစဉ်ခြင်း၊ ဒီဇိုင်းဆွဲခြင်း၊ စမ်းသပ်ခြင်းနဲ့ ရှင်းပြတဲ့ စာရွက်စာတမ်း ရေးခြင်း။ ဒီ ကျွမ်းကျင်မှုတွေကို IB Internal Assessment (IA) အပါအဝင် programming project တစ်ခုလုံးမှာ သုံးရပါတယ်။

စာမျက်နှာ ဘာတွေ လေ့လာရမလဲ
Software Development (Software တည်ဆောက်ခြင်း အကျဉ်းချုပ်) ဒီ အပိုင်းမှာ ဘာတွေ ပါလဲ၊ အဆင့်တွေ ဘယ်လို ဆက်စပ်နေလဲ
Requirements Gathering (Requirement တွေ စုဆောင်းခြင်း) Client (product ကို သုံးမယ့်သူ) နဲ့ တိုင်ပင်ခြင်း၊ functional requirement (စနစ်က လုပ်ရမယ့် အလုပ်ကို ဖော်ပြတဲ့ requirement) နဲ့ non-functional requirement (system မှာ ရှိရမယ့် အရည်အသွေး ဒါမှမဟုတ် ကန့်သတ်ချက်ကို ဖော်ပြတဲ့ requirement) ကွာခြားချက်၊ success criteria (အောင်မြင်မှု စံနှုန်းများ)၊ feasibility (လက်တွေ့ ဖြစ်နိုင်ခြေ) (TELOS: နည်းပညာ၊ ကုန်ကျစရိတ်၊ ဥပဒေ၊ လုပ်ငန်း လည်ပတ်မှု၊ အချိန်ဇယား ဆိုတဲ့ ရှုထောင့် ငါးခုနဲ့ စစ်တဲ့ နည်း)
Design Representations (ဒီဇိုင်းကို ဖော်ပြတဲ့ နည်းလမ်းများ) Flowchart များ၊ DFD (data flow diagram: စနစ်ထဲမှာ ဒေတာ စီးဆင်းပုံကို ပြတဲ့ ပုံ) များ၊ structure chart (program ကို အပိုင်းငယ်တွေ အဆင့်ဆင့် ခွဲထားပုံ ပြတဲ့ ပုံ) များ၊ data dictionary (ဒေတာ item တစ်ခုချင်းရဲ့ type နဲ့ စည်းမျဉ်းတွေကို စာရင်းပြုစုထားတဲ့ ဇယား) များနဲ့ UML class diagram တွေထဲက ရွေးချယ်ခြင်း
Testing Strategy (စမ်းသပ်ပုံ အစီအစဉ်) Test အမျိုးအစားများ၊ normal (ပုံမှန်)၊ boundary (အစွန်း) နဲ့ invalid (လက်မခံရမယ့်) test data (စမ်းစစ်တဲ့အခါ ထည့်ပေးတဲ့ တန်ဖိုးများ) ရွေးခြင်း၊ test plan (ဘာကို ဘယ်လို စမ်းစစ်မလဲ ကြိုရေးထားတဲ့ အစီအစဉ်) ရေးခြင်း
Documentation and User Guides (program ကို ရှင်းပြတဲ့ စာရွက်စာတမ်းနဲ့ အသုံးပြုနည်း လမ်းညွှန်များ) User guide (အသုံးပြုနည်း လမ်းညွှန်) များ၊ technical documentation (software ကို ပြင်ဆင်မယ့် developer တွေအတွက် နည်းပညာပိုင်း ရှင်းပြချက်)၊ တကယ် အသုံးဝင်တဲ့ comment (code ထဲမှာ ရေးထားတဲ့ မှတ်ချက်၊ run မလုပ်ပါ) များ၊ source တွေကို ကိုးကားခြင်း
UI/UX and Accessibility (user interface၊ user experience နဲ့ လူတိုင်း သုံးနိုင်မှု) Usability (သုံးရလွယ်ခြင်း) ရဲ့ အခြေခံ စည်းမျဉ်းများ၊ accessibility (လူတိုင်း သုံးနိုင်အောင် လုပ်ပေးထားမှု) အတွက် ဒီဇိုင်းဆွဲခြင်း၊ ergonomics (မကြာခဏ လုပ်ရတဲ့ အလုပ်တွေကို မြန်ပြီး သက်တောင့်သက်သာ ဖြစ်အောင် လုပ်ခြင်း)

Operating Systems (Operating system အလွှာ)

Hardware၊ process (run နေတဲ့ program) တွေနဲ့ resource (သုံးလို့ရတဲ့ ကွန်ပျူတာ အရင်းအမြစ်) တွေကို စီမံတဲ့ software layer (အလွှာ)။

ခေါင်းစဉ် ဘာတွေ လေ့လာရမလဲ
OS Fundamentals (operating system ရဲ့ အခြေခံများ) Operating system (ကွန်ပျူတာကို စီမံတဲ့ အဓိက software) ရဲ့ အခန်းကဏ္ဍနဲ့ လုပ်ဆောင်ချက်များ
Scheduling (ဘယ် process ကို CPU အချိန် ပေးမလဲ ဆုံးဖြတ်ခြင်း) FCFS (အရင်ရောက် အရင်ရ scheduling)၊ round robin (အလှည့်ကျ အချိန်ပေးတဲ့ scheduling)၊ priority (ဦးစားပေး အဆင့်အလိုက် scheduling)၊ multilevel queue (process တွေကို အမျိုးအစားအလိုက် queue အများ ခွဲထားတဲ့ scheduling)
Polling & Interrupts (polling နဲ့ interrupt) CPU က device (စက်ပစ္စည်း) တွေနဲ့ ဆက်သွယ်မှုကို ဘယ်လို ကိုင်တွယ်သလဲ: polling (စက်တွေကို အလှည့်ကျ စစ်ကြည့်ခြင်း) နဲ့ interrupt (CPU ကို ခဏ ရပ်ခိုင်းတဲ့ signal)
Multitasking (အလုပ် အများကို တစ်ပြိုင်နက်လို လုပ်ခြင်း) Context switching (process တစ်ခုကနေ တစ်ခုကို CPU ပြောင်းခြင်း)၊ deadlock (အချင်းချင်း စောင့်ရင်း ပိတ်မိနေခြင်း)၊ resource contention (resource တစ်ခုတည်းကို process အများ တစ်ပြိုင်နက် လိုချင်ကြခြင်း)
Control Systems (ထိန်းချုပ်ရေး စနစ်များ) Sensor (ပတ်ဝန်းကျင် အပြောင်းအလဲကို ထောက်လှမ်းတဲ့ ကိရိယာ) များ၊ actuator (ရုပ်ပိုင်းဆိုင်ရာ လုပ်ဆောင်ချက် လုပ်ပေးတဲ့ ကိရိယာ) များ၊ feedback loop (output ကို တိုင်းပြီး အလိုအလျောက် ညှိခြင်း) များ၊ လက်တွေ့ ကမ္ဘာက အသုံးချပုံများ

Databases (ဒေတာ သိမ်းဆည်းတဲ့ စနစ်များ)

Relational model (ဒေတာကို ချိတ်ဆက်ထားတဲ့ table တွေထဲမှာ သိမ်းတဲ့ ပုံစံ)၊ database ဒီဇိုင်း၊ SQL (Structured Query Language: database ကို မေးခွန်းမေးဖို့နဲ့ ပြင်ဆင်ဖို့ သုံးတဲ့ စံ language) နဲ့ (HL) အခြား နည်းလမ်းများ။

ခေါင်းစဉ် ဘာတွေ လေ့လာရမလဲ
Databases (ဒေတာ သိမ်းဆည်းတဲ့ စနစ်များ အကျဉ်းချုပ်) ဒီ layer မှာ ဘာတွေ ပါလဲ၊ အပိုင်းတွေ ဘယ်လို ဆက်စပ်နေလဲ
Relational Database Fundamentals (Relational database ရဲ့ အခြေခံများ) Table (database ထဲက ဇယား) များ၊ record (အချက်အလက် အများကြီး စုထားတဲ့ ဒေတာ တစ်ခု) များ၊ field (record တစ်ခုထဲက အချက်အလက် တစ်ကွက်) များ၊ key (row တစ်ခုချင်းကို ခွဲခြားပေးတဲ့ တန်ဖိုး) များ၊ အကျိုးကျေးဇူးများ၊ ကန့်သတ်ချက်များ၊ object-relational impedance mismatch (OOP object တွေနဲ့ relational table တွေကြား မကိုက်ညီမှု)
Database Schemas (Database ဖွဲ့စည်းပုံ ဖော်ပြချက်များ) Conceptual၊ logical နဲ့ physical schema layer များ (လုပ်ငန်းရဲ့ အမြင်၊ table ဒီဇိုင်းနဲ့ disk ပေါ်မှာ သိမ်းပုံ)
Entity-Relationship Diagrams (entity တွေနဲ့ ဆက်နွယ်မှုတွေကို ပြတဲ့ ပုံများ) Cardinality (ဆက်နွယ်မှု တစ်ဖက်စီရဲ့ အများဆုံး အရေအတွက်) နဲ့ modality (ဆက်နွယ်မှုမှာ မဖြစ်မနေ ပါရမလား ဆိုတာ) ပါတဲ့ ERD များ၊ M:M (အများနဲ့ အများ) ဆက်နွယ်မှုအတွက် junction table (entity နှစ်ခုကြားမှာ ထားပြီး ချိတ်ပေးတဲ့ table) များ
Data Types and Keys (ဒေတာ အမျိုးအစားများနဲ့ key များ) INT၊ DECIMAL၊ VARCHAR၊ DATE၊ BOOLEAN၊ primary key (row တစ်ခုချင်းကို ခွဲခြားပေးတဲ့ key)၊ foreign key (တခြား table ရဲ့ primary key ကို ညွှန်းတဲ့ column)၊ composite key (column အများ ပေါင်းထားတဲ့ primary key) နဲ့ concatenated key (တန်ဖိုး အများကို ဆက်ပြီး ဖွဲ့ထားတဲ့ key)
Normalisation (ဒေတာ ထပ်မနေအောင် table တွေကို စီစဉ်ခြင်း) 1NF၊ 2NF၊ 3NF (ပထမ / ဒုတိယ / တတိယ normal form)၊ functional dependency (column တစ်ခုက နောက်တစ်ခုကို ဆုံးဖြတ်ခြင်း)၊ partial dependency (composite key ရဲ့ တစ်စိတ်တစ်ပိုင်းပေါ်ပဲ မှီခိုခြင်း) နဲ့ transitive dependency (key မဟုတ်တဲ့ တခြား column ကနေတစ်ဆင့် မှီခိုခြင်း)၊ 3NF database တည်ဆောက်ခြင်း၊ denormalisation (ဖတ်တာ မြန်အောင် ထပ်နေမှုကို တမင် ပြန်ထည့်ခြင်း)
SQL Queries (SQL query များ) DDL (database ဖွဲ့စည်းပုံကို သတ်မှတ်တဲ့ SQL အပိုင်း) နဲ့ DML (ဒေတာကို ဖတ်၊ ပြင်တဲ့ SQL အပိုင်း) ကွာခြားချက်၊ SELECT/JOIN/WHERE/GROUP BY/HAVING/ORDER BY၊ aggregate function (row အများကနေ တန်ဖိုး တစ်ခု တွက်တဲ့ SQL function) များ (HL)
SQL Updates (SQL နဲ့ ဒေတာ ပြင်ဆင်ခြင်း) INSERT၊ UPDATE၊ DELETE၊ index (ရှာတာ မြန်အောင် လုပ်ထားတဲ့ ညွှန်းစာရင်း) ထားတဲ့ column တွေက performance ကို ဘယ်လို သက်ရောက်လဲ
Transactions and Views (HL) (transaction နဲ့ view များ) Transaction (အကုန်ဖြစ် ဒါမှမဟုတ် ဘာမှမဖြစ်တဲ့ database လုပ်ဆောင်ချက် အစု) တွေရဲ့ ACID (အာမခံချက် လေးခု)၊ BEGIN/COMMIT/ROLLBACK၊ view (query ရလဒ်ကို table တစ်ခုလို ပြပေးတဲ့ database object): virtual view (ခေါ်တိုင်း ရလဒ်ကို ပြန်တွက်တဲ့ view) နဲ့ materialised view (ရလဒ်ကို သိမ်းထားတဲ့ view) ကွာခြားချက်
Alternative Databases (HL) (အခြား database နည်းလမ်းများ) NoSQL (ပုံသေ table ပုံစံ မသုံးတဲ့ database)၊ cloud၊ spatial (တည်နေရာ ဒေတာအတွက်) နဲ့ in-memory (ဒေတာကို memory ထဲမှာ ထားတဲ့) database နည်းလမ်းများ
Data Warehouses (HL) (ခွဲခြမ်းစိတ်ဖြာဖို့ ယခင် ဒေတာ သိုလှောင်ရုံများ) Data warehouse ရဲ့ ရည်ရွယ်ချက်များ၊ OLAP (ဒေတာကို ခွဲခြမ်းစိတ်ဖြာဖို့ online စနစ်)၊ data mining (ဒေတာ အများကြီးထဲက ပုံစံတွေကို ရှာဖွေခြင်း) နည်းလမ်းများ
Distributed Databases (HL) (နေရာ အများမှာ ခွဲသိမ်းထားတဲ့ database များ) Partitioning (database ကို အပိုင်းတွေ ခွဲသိမ်းခြင်း)၊ replication (ဒေတာ copy တွေကို နေရာ အများမှာ ထားခြင်း)၊ transparency (database က နေရာ အများမှာ ခွဲထားမှန်း user က မသိရဘဲ database တစ်ခုတည်းလို သုံးနိုင်ခြင်း)၊ fault tolerance (တစ်စိတ်တစ်ပိုင်း ပျက်ရင်လည်း ဆက်အလုပ်လုပ်နိုင်မှု)၊ scalability (ဒေတာ များလာတဲ့အခါမှာလည်း ကောင်းကောင်း ဆက်အလုပ်လုပ်နိုင်မှု)
Databases Practice Library (Database လေ့ကျင့်ခန်း စုစည်းမှု) Databases လေ့ကျင့်ခန်း မေးခွန်း အားလုံး၊ ခက်ခဲမှု အဆင့်နဲ့ အမှတ်အလိုက် စစ်ထုတ်ကြည့်နိုင်ပါတယ်

Machine Learning (ဒေတာကနေ သင်ယူတဲ့ စနစ်)

စက်တွေက ရေးပေးထားတဲ့ စည်းမျဉ်းတွေကို လိုက်လုပ်မယ့်အစား ဒေတာကနေ ဘယ်လို သင်ယူသလဲ။ ပထမ စာမျက်နှာက SL (Standard Level: IB သင်တန်းရဲ့ အခြေခံ အဆင့်) နဲ့ HL နှစ်ဆင့်လုံး လေ့လာရတဲ့ core အပိုင်းပါ၊ ပိုနက်တဲ့ နည်းစနစ်တွေနဲ့ model (ဒေတာကနေ သင်ယူထားပြီး ခန့်မှန်းပေးတဲ့ အရာ) ကို အကဲဖြတ်ခြင်းက HL ပါ။ Concept တစ်ခုစီက တွဲသုံးတဲ့ app ပေါ်က interactive simulator (တကယ့် ဖြစ်စဉ်ကို ကွန်ပျူတာနဲ့ အတုလုပ်ပြတဲ့ tool) ဆီ ချိတ်ပေးထားပြီး အောက်က ethics (ကျင့်ဝတ်ဆိုင်ရာ အချက်များ) စာမျက်နှာတွေက အကြောင်းအရာကို ဆက်ပြောပါတယ် (IB သင်ရိုးရဲ့ A4.4)။

ခေါင်းစဉ် ဘာတွေ လေ့လာရမလဲ
Machine Learning (ဒေတာကနေ သင်ယူတဲ့ စနစ် အကျဉ်းချုပ်) ဒီ အပိုင်းမှာ ဘာတွေ ပါလဲ၊ SL နဲ့ HL အဆင့်တွေ ဘယ်လို ခွဲထားလဲ
What Machine Learning Is (Machine learning ဆိုတာ ဘာလဲ) ဒေတာကနေ သင်ယူခြင်း၊ learning အမျိုးအစား ငါးမျိုးနဲ့ သူတို့ရဲ့ အသုံးချပုံများ၊ machine learning ကို run တဲ့ hardware (A4.1.1, A4.1.2)
Types of Learning (HL) (သင်ယူမှု အမျိုးအစားများ) k-NN (အနီးဆုံး k ခုနဲ့ ဆုံးဖြတ်ခြင်း)၊ decision tree (ဟုတ်/မဟုတ် မေးခွန်းတွေနဲ့ ခန့်မှန်းတဲ့ သစ်ပင်ပုံ) များ၊ clustering (ဆင်တူတာတွေကို အုပ်စုဖွဲ့ခြင်း)၊ association rule (X ဝယ်ရင် Y ပါ ဝယ်တတ်တယ်ဆိုတဲ့ ပုံစံ) များ၊ reinforcement learning (ဆုနဲ့ ဒဏ်ကနေ သင်ယူခြင်း)၊ genetic algorithm (ဆင့်ကဲဖြစ်စဉ်ကို အတုယူတဲ့ ရှာဖွေနည်း) များ (A4.3)
Training and Evaluating a Model (HL) (Model ကို train လုပ်ခြင်းနဲ့ အကဲဖြတ်ခြင်း) Data cleaning (train မလုပ်ခင် ဒေတာကို သန့်ရှင်းအောင် ပြင်ခြင်း)၊ feature selection (model သင်ယူမယ့် input တွေကို ရွေးခြင်း)၊ regression (ပမာဏကို ဂဏန်းနဲ့ ခန့်မှန်းခြင်း)၊ overfitting (training ဒေတာကို အလွတ်ကျက်သလို သင်ယူမိခြင်း) / underfitting (model ရိုးလွန်းလို့ ပုံစံကို မဖမ်းမိခြင်း)၊ accuracy (ခန့်မှန်းချက် မှန်တဲ့ အချိုး)/precision/recall/F1 (model ရဲ့ ခန့်မှန်းချက်တွေ ဘယ်လောက် မှန်လဲ တိုင်းတဲ့ နည်းများ)၊ CNN (ပုံတွေအတွက် deep network) များ၊ model selection (model တွေကို နှိုင်းယှဉ်ပြီး ရွေးချယ်ခြင်း) (A4.2, A4.3)
How Large Language Models Work (stretch) (Large Language Model တွေ အလုပ်လုပ်ပုံ) Token (model က တစ်ယူနစ်အဖြစ် ကိုင်တွယ်တဲ့ စာအပိုင်း) များ၊ embedding (token ရဲ့ အဓိပ္ပာယ်ကို ကိုယ်စားပြုတဲ့ ကိန်းဂဏန်း စာရင်း) များ၊ attention (ဘယ် စကားလုံးကို အာရုံစိုက်ရမလဲ ချိန်ဆတဲ့ နည်း) နဲ့ transformer (attention ကို သုံးတဲ့ neural network ပုံစံ)၊ generation loop (စာသား ထုတ်ပေးတဲ့ loop)၊ human feedback (လူတွေရဲ့ အကဲဖြတ်ချက်)၊ retrieval (document တွေထဲက အချက်အလက်ကို ရှာထုတ်ခြင်း) နဲ့ model က ဘာတွေ မလုပ်နေဘူးဆိုတာ (stretch စာမျက်နှာ: ထပ်ဆင့် လေ့လာစရာ ဖြစ်ပြီး စာမေးပွဲမှာ မမေးပါ)
How AI Image Generation Works (stretch) (AI က ပုံတွေကို ဘယ်လို ဖန်တီးလဲ) GAN (အပြိုင်အဆိုင် လုပ်ရင်း ပုံ ဖန်တီးတဲ့ network) များ၊ autoencoder (ဒေတာကို ချုံ့ပြီး ပြန်ဖော်ဖို့ သင်ယူတဲ့ network) နဲ့ VAE (variational autoencoder: ချုံ့ထားတဲ့ ပုံစံကနေ ပုံအသစ် ဖန်တီးနိုင်တဲ့ autoencoder) များ၊ diffusion (noise ကို တစ်ဆင့်ချင်း ဖယ်ရင်း ပုံ ဖန်တီးတဲ့ နည်း)၊ စာကြောင်း တစ်ကြောင်းက ပုံကို ဘယ်လို လမ်းကြောင်းပေးသလဲ၊ generative media (AI နဲ့ ဖန်တီးထားတဲ့ ပုံ စတဲ့ media) ရဲ့ ကျင့်ဝတ် (စာမေးပွဲမှာ မမေးပါ)
AI Beyond Machine Learning (stretch) (Machine learning ထက် ကျယ်တဲ့ AI) Symbolic AI (symbol တွေနဲ့ logic ကို အခြေခံတဲ့ AI) နဲ့ inference (သိပြီးသား အချက်တွေကနေ ကောက်ချက် ဆွဲခြင်း)၊ game search (ဂိမ်းတွေမှာ ရှာဖွေခြင်း) နဲ့ minimax (ပြိုင်ဘက်က အကောင်းဆုံး ပြန်ကစားမယ်လို့ ယူဆပြီး ရွှေ့ကွက် ရွေးတဲ့ နည်း)၊ path planning (သွားစရာ လမ်းကြောင်း ရှိသလား ရှာခြင်း) နဲ့ motion planning (စက်ရုပ်က အဲဒီ လမ်းကြောင်းအတိုင်း တကယ် သွားနိုင်သလား စီစဉ်ခြင်း)၊ localisation (ကိုယ့်တည်နေရာကို ခန့်မှန်းခြင်း)၊ object detection (ပုံထဲက အရာဝတ္ထုတွေကို ရှာပြီး နေရာ သတ်မှတ်ခြင်း) (စာမေးပွဲမှာ မမေးပါ)

Communication (ဆက်သွယ်ရေး အလွှာ)

ကွန်ပျူတာတွေ ဘယ်လို ဆက်သွယ်ကြသလဲ: local network (အဆောက်အအုံ တစ်ခုလို နေရာ သေးသေးကို ဖုံးတဲ့ network) တွေကနေ ကမ္ဘာတစ်ဝှမ်းက infrastructure (hardware၊ network စတဲ့ အခြေခံ အဆောက်အအုံ) အထိ။

ခေါင်းစဉ် ဘာတွေ လေ့လာရမလဲ
Network Fundamentals (Network အခြေခံများ) LAN (နေရာ သေးသေးကို ဖုံးတဲ့ network)၊ WAN (နယ်မြေ ကျယ်ကျယ်ကို ဖုံးတဲ့ network)၊ PAN (လူတစ်ယောက် ပတ်ဝန်းကျင်က network)၊ VPN (public network ပေါ်က လုံခြုံတဲ့ ကိုယ်ပိုင် လမ်းကြောင်း)၊ network device (network စက်ပစ္စည်း) များ
Protocols & Layers (Protocol များနဲ့ network အလွှာများ) Protocol (ဒေတာ ပို့ပုံအတွက် သဘောတူ စည်းမျဉ်း) များ: TCP (ဒေတာကို စိတ်ချရအောင် ပို့တဲ့ protocol)၊ UDP (အမြန်ပို့ပြီး ရောက်ဖို့ အာမမခံတဲ့ protocol)၊ HTTP (ဝဘ်စာမျက်နှာ ပို့တဲ့ protocol)၊ HTTPS (encrypt လုပ်ထားတဲ့ HTTP)၊ DHCP (IP address ကို အလိုအလျောက် ခွဲပေးတဲ့ protocol)၊ TCP/IP model (network အလွှာ လေးလွှာ model)
Network Architecture (Network ဖွဲ့စည်းပုံ) Topology (network ထဲက စက်တွေ ချိတ်ဆက်ထားပုံ) များ၊ client-server (server က ဝန်ဆောင်ပြီး client က တောင်းတဲ့ model) နဲ့ P2P (peer-to-peer: စက်တိုင်း တန်းတူ မျှဝေတဲ့ network model) နှိုင်းယှဉ်ချက်၊ segmentation (network ကို အပိုင်းငယ်တွေ ခွဲခြင်း)
Data Transmission (ဒေတာ ပို့လွှတ်ခြင်း) IP addressing (network ပေါ်က စက်တွေကို လိပ်စာ သတ်မှတ်ခြင်း)၊ packet switching (packet တွေကို သီးခြား လမ်းကြောင်းနဲ့ ပို့ခြင်း)၊ routing (လမ်းကြောင်း ရွေးခြင်း)
Network Security (Network လုံခြုံရေး) Firewall (network အဝင်အထွက်ကို စစ်ထုတ်တဲ့ အကာအကွယ်) များ၊ vulnerability (တိုက်ခိုက်ခံရနိုင်တဲ့ အားနည်းချက်) များ၊ countermeasure (တိုက်ခိုက်မှုကို ကာကွယ်တဲ့ နည်းလမ်း) များ
Encryption (ဒေတာကို ဖတ်မရအောင် ပြောင်းခြင်း) Symmetric encryption (key တစ်ခုတည်း သုံးတဲ့ encryption)၊ asymmetric encryption (key နှစ်ခု သုံးတဲ့ encryption)၊ digital certificate (public key ကို ပိုင်ရှင်နဲ့ ချိတ်ပေးတဲ့ အီလက်ထရွန်နစ် စာရွက်) များ

Computational Thinking (ကွန်ပျူတာ သိပ္ပံ နည်းနဲ့ ပြဿနာကို စဉ်းစားခြင်း)

ဖြေရှင်းချက်တိုင်း နောက်ကွယ်မှာ ရှိတဲ့ စဉ်းစားနည်း ကျွမ်းကျင်မှုများ: code မရေးခင်မှာ လုပ်ရတဲ့ အဆင့်။

ခေါင်းစဉ် ဘာတွေ လေ့လာရမလဲ
Problem Specification (ပြဿနာကို တိတိကျကျ ဖော်ပြချက်) Problem statement (ပြဿနာ ဖော်ပြချက်)၊ constraint (ဖြေရှင်းချက်က လိုက်နာရမယ့် ကန့်သတ်ချက်) များ၊ objective (ရည်ရွယ်ချက်) များ၊ goal (ပန်းတိုင်) များ၊ input (program ထဲ ထည့်ပေးတဲ့ ဒေတာ) များ၊ output (program က ထုတ်ပြတဲ့ ရလဒ်) များ၊ evaluation criteria (ဖြေရှင်းချက် အောင်မြင်မအောင်မြင် အကဲဖြတ်မယ့် စံနှုန်းများ)
CT Concepts (Computational thinking ရဲ့ အခြေခံ သဘောတရားများ) Decomposition (ပြဿနာကို အပိုင်းငယ်တွေ ခွဲခြင်း)၊ pattern recognition (တူညီတဲ့ ပုံစံတွေကို ရှာဖွေခြင်း)၊ abstraction (မလိုတဲ့ အသေးစိတ်ကို ဖယ်ပြီး အဓိကကိုပဲ ကြည့်ခြင်း)၊ algorithmic design (ပြဿနာကို ဖြေရှင်းမယ့် အဆင့်တွေကို ဒီဇိုင်းဆွဲခြင်း)
Flowcharts (လုပ်ငန်းစဉ်ကို သင်္ကေတတွေနဲ့ ဆွဲပြတဲ့ ပုံများ) စံ သင်္ကေတများ၊ algorithm တွေကို trace လုပ်ခြင်း၊ algorithm တွေကနေ flowchart ဆွဲခြင်း
Pseudocode (program ပုံစံ ရိုးရိုးစာနဲ့ ရေးတဲ့ algorithm) Pseudocode ကို ဖတ်ခြင်းနဲ့ ရေးခြင်း၊ အခြေခံ အစိတ်အပိုင်း သုံးခု၊ Java နဲ့ Python code အဖြစ် ပြောင်းရေးခြင်း

Ethics & Implications (ကျင့်ဝတ်နဲ့ အကျိုးဆက်များ)

Computing ရဲ့ လူမှုရေး၊ ကျင့်ဝတ်ရေးနဲ့ ဥပဒေရေးရာ ရှုထောင့်များ။ စာမျက်နှာ နှစ်ခုလုံးက “Discuss” (IB မေးခွန်းတွေမှာ သုံးတဲ့ command term: အမြင် အမျိုးမျိုးကို ချိန်ဆပြီး ဆွေးနွေးပါ) ကျွမ်းကျင်မှုကို လေ့ကျင့်ပေးပါတယ်: ဘက်နှစ်ဘက်လုံးကို ချိန်ဆပြီး အကြောင်းပြချက် ခိုင်လုံတဲ့ ကောက်ချက်ကို ဆွဲပါ။

ခေါင်းစဉ် ဘာတွေ လေ့လာရမလဲ
Ethics of Machine Learning (machine learning ဆိုင်ရာ ကျင့်ဝတ်) Accountability (တာဝန်ခံမှု)၊ fairness (မျှတမှု)၊ bias (ဘက်လိုက်မှု)၊ consent (သဘောတူ ခွင့်ပြုချက်)၊ privacy (ကိုယ်ရေးကိုယ်တာ လုံခြုံမှု)၊ security (လုံခြုံရေး)၊ environmental impact (သဘာဝ ပတ်ဝန်းကျင်အပေါ် သက်ရောက်မှု) နဲ့ societal impact (လူ့အဖွဲ့အစည်းအပေါ် သက်ရောက်မှု)၊ transparency (ဆုံးဖြတ်ပုံကို ဖောက်ထွင်း မြင်ရမှု)၊ training data (model သင်ယူဖို့ ပေးတဲ့ ဒေတာ) ထဲက bias၊ online ဆက်သွယ်ရေးရဲ့ ကျင့်ဝတ် (A4.4.1)
Computing in Daily Life (နေ့စဉ်ဘဝထဲက ကွန်ပျူတာ) Pervasive computing (နေရာတိုင်းမှာ ရှိနေတဲ့ ကွန်ပျူတာ စနစ်)၊ surveillance (စောင့်ကြည့် ထောက်လှမ်းခြင်း)၊ digital divide (နည်းပညာ ရနိုင်သူနဲ့ မရနိုင်သူကြား ကွာဟချက်)၊ equity (တရားမျှတစွာ ရရှိနိုင်မှု)၊ quantum computing (qubit သုံးတဲ့ ကွန်ပျူတာ နည်းပညာ)၊ AR/VR (augmented reality နဲ့ virtual reality: အစစ်အမှန် ကမ္ဘာပေါ် digital အချက်အလက် ထပ်ပြခြင်းနဲ့ headset နဲ့ ဝင်ရောက်ရတဲ့ ကွန်ပျူတာ ကမ္ဘာ)၊ pervasive AI (နေရာတိုင်းမှာ ပါဝင်လာတဲ့ ဉာဏ်ရည်တု) စတဲ့ ပေါ်ထွန်းလာနေတဲ့ နည်းပညာများ၊ ကျင့်ဝတ် လမ်းညွှန်ချက်တွေကို ပြန်လည် သုံးသပ်ခြင်း (A4.4.2)

IB CS Internal Assessment (IB သင်တန်းမှာ ကိုယ်တိုင် တည်ဆောက်ရတဲ့ project)

Coursework (သင်တန်းကာလအတွင်း လုပ်ပြီး တင်ရတဲ့ အလုပ်) အပိုင်းအတွက် လမ်းညွှန်ချက်: problem specification (ပြဿနာ ဖော်ပြချက်)၊ planning (စီစဉ်ခြင်း)၊ system overview (system ကို ခြုံငုံ ဖော်ပြခြင်း)၊ development (တည်ဆောက်ခြင်း) နဲ့ evaluation (အကဲဖြတ်ခြင်း)။ ဒီ စာမျက်နှာတွေက IB သင်တန်းအတွက် ဖြစ်ပြီး English လိုပဲ ရှိပါတယ်။

ခေါင်းစဉ် ဘာတွေ လေ့လာရမလဲ
Internal Assessment Overview (Internal Assessment အကျဉ်းချုပ်) Criteria (အမှတ်ပေး စံနှုန်း) ငါးခု၊ တင်ရမယ့် file အစုံ၊ စကားလုံး အရေအတွက်၊ video အရှည်
IA Guidelines (IA လမ်းညွှန်ချက်များ) Programming language ရွေးချယ်ခြင်း၊ အခြား ရွေးချယ်စရာ နည်းလမ်းတွေကို လေ့လာခြင်း၊ product (ကိုယ်တည်ဆောက်မယ့် software) အတွက် အကြံပြုချက်များ
Criterion A: Problem specification (အမှတ်ပေး စံနှုန်း A: ပြဿနာကို တိတိကျကျ ဖော်ပြခြင်း) Problem scenario (ပြဿနာ ဖြစ်နေတဲ့ အခြေအနေ)၊ success criteria၊ computational context (ဖြေရှင်းချက် ပါဝင်တဲ့ computing နယ်ပယ်) (4 marks)
Criterion B: Planning (အမှတ်ပေး စံနှုန်း B: စီစဉ်ခြင်း) Decomposition နဲ့ chronology (အလုပ်တွေကို အချိန်အစဉ်အတိုင်း စီခြင်း)၊ Gantt chart (အလုပ်တစ်ခုစီကို အချိန်ဘားတွေနဲ့ ပြတဲ့ ဇယား) ဒါမှမဟုတ် Agile (အလုပ်ကို အပိုင်းတိုလေးတွေ ခွဲပြီး ထပ်ခါထပ်ခါ တိုးတက်အောင် လုပ်တဲ့ နည်း) (4 marks)
Criterion C: System overview (အမှတ်ပေး စံနှုန်း C: system တစ်ခုလုံးကို ခြုံငုံ ဖော်ပြခြင်း) System model (system ရဲ့ ဖွဲ့စည်းပုံကို ပြတဲ့ ပုံ ဒါမှမဟုတ် ဖော်ပြချက်)၊ algorithm များ၊ testing strategy (စမ်းသပ်ပုံ အစီအစဉ်) (6 marks)
Criterion D: Development (အမှတ်ပေး စံနှုန်း D: product ကို တည်ဆောက်ခြင်း) သုံးထားတဲ့ နည်းစနစ်များ၊ ဘာကြောင့် ရွေးသလဲ အကြောင်းပြချက်၊ video၊ testing (12 marks)
Criterion E: Evaluation (အမှတ်ပေး စံနှုန်း E: အကဲဖြတ်ခြင်း) Success criteria နဲ့ တိုက်စစ်ပြီး အကဲဖြတ်ခြင်း၊ တိုးတက်အောင် ပြင်ဆင်ချက်တွေကို အကြောင်းပြချက်နဲ့ ပြခြင်း (4 marks)
IA Templates (IA ပုံစံ file များ) IA Proposal Form (IA အဆိုပြု ပုံစံ၊ .docx) နဲ့ Testing Strategy Template (စမ်းသပ်ပုံ အစီအစဉ် ပုံစံ၊ .docx) ကို download လုပ်ရန်
Common IA mistakes (and how to avoid them) (IA မှာ အဖြစ်များတဲ့ အမှားများနဲ့ ရှောင်ရှားနည်း) အမှတ် လျော့စေတဲ့ အမှားများကို criterion အလိုက် စုထားပြီး အဲဒီအစား ဘာလုပ်ရမလဲ ပြထားပါတယ်

IB CS Extended Essay (IB သင်တန်းရဲ့ ကိုယ်ပိုင် သုတေသန essay)

စကားလုံး 4,000 ပါတဲ့ ကိုယ်တိုင် သုတေသန လုပ်ရတဲ့ essay အတွက် လမ်းညွှန်ချက်။ ခေါင်းစဉ် ရွေးချယ်ခြင်း၊ criteria၊ reflection (ကိုယ့် လုပ်ငန်းစဉ်ကို ပြန်လည် သုံးသပ်ခြင်း) နဲ့ ရှောင်ရမယ့် အဖြစ်များတဲ့ အမှားများ။ ဒီ စာမျက်နှာတွေက IB သင်တန်းအတွက် ဖြစ်ပြီး English လိုပဲ ရှိပါတယ်။

ခေါင်းစဉ် ဘာတွေ လေ့လာရမလဲ
Extended Essay Overview (Extended Essay အကျဉ်းချုပ်) EE ဆိုတာ ဘာလဲ၊ ဘာတွေ တင်ရမလဲ၊ criteria ငါးခု၊ EE နဲ့ IA ကွာခြားချက်
EE Topic Selection (EE ခေါင်းစဉ် ရွေးချယ်ခြင်း) ခေါင်းစဉ် စစ်ဆေးချက်၊ RQ (research question: သုတေသန မေးခွန်း) အရည်အသွေး စစ်ဆေးချက်၊ ဥပမာ မေးခွန်းများ၊ ရှောင်ရမယ့် အရာများ
EE Research and Writing (EE သုတေသနနဲ့ ရေးသားခြင်း) Source (ကိုးကားတဲ့ ရင်းမြစ်) များ၊ essay ဖွဲ့စည်းပုံ၊ စကားလုံး အရေအတွက် စည်းမျဉ်းများ၊ formatting (စာမျက်နှာ ပုံစံချခြင်း)၊ literature matrix (ဖတ်ခဲ့တဲ့ source တွေကို နောက်မှ နှိုင်းယှဉ်လို့ရအောင် စနစ်တကျ စီထားတဲ့ ဇယား)
EE Criteria A to E in Detail (EE အမှတ်ပေး စံနှုန်း A ကနေ E အထိ အသေးစိတ်) Mark band (အမှတ် အဆင့် အပိုင်းအခြား) များ၊ computer science အတွက် အဓိပ္ပာယ်ကောက်ပုံ၊ TOK (Theory of Knowledge: လူတွေ တစ်ခုခုကို ဘယ်လို သိလဲ ဆိုတာကို မေးခွန်းထုတ် လေ့လာတဲ့ IB ဘာသာရပ်) နဲ့ တွဲတွက်တဲ့ EE+TOK points matrix (diploma အမှတ် ပေါင်းပေးတဲ့ ဇယား)
EE Reflection (EE ပြန်လည် သုံးသပ်ခြင်း) Session (ဆရာနဲ့ တွေ့ဆုံ ဆွေးနွေးပွဲ) သုံးကြိမ်၊ RRS (Researcher’s Reflection Space: သုတေသန လုပ်ရင်း ကိုယ့် အတွေးတွေကို မှတ်ထားတဲ့ ကိုယ်ပိုင် နေရာ)၊ စကားလုံး 500 ပါတဲ့ reflective statement (ပြန်လည် သုံးသပ်ချက် စာ)
EE Timeline (EE အချိန်ဇယား) Computer science နဲ့ ဆိုင်တဲ့ မှတ်တိုင်တွေ ပါတဲ့ တစ်နှစ်စာ အကြံပြု ပြက္ခဒိန်
EE Common Pitfalls (EE မှာ အဖြစ်များတဲ့ အမှားများ) အဖြစ်များတဲ့ အမှား ဆယ်ခုနဲ့ တစ်ခုချင်းစီရဲ့ ပြင်နည်း

IB CS Case Study (IB က စာမေးပွဲ မတိုင်ခင် ကြိုထုတ်ပေးတဲ့ ခေါင်းစဉ်တစ်ခုအကြောင်း လေ့လာစရာ)

Paper 1 Section B (IB Computer Science စာမေးပွဲ Paper 1 ရဲ့ Section B အပိုင်း) အတွက် ကြိုတင် ဖတ်ထားရတဲ့ scenario (မေးခွန်းမှာ ပေးထားတဲ့ အခြေအနေ) ဖြစ်ပြီး SL ရော HL ပါ ဖြေရပါတယ်။ 2027 ထုတ်က Generative AI for image creation (ပုံ ဖန်တီးဖို့ generative AI: စာသား ဒါမှမဟုတ် ပုံ အသစ်တွေ ဖန်တီးပေးတဲ့ ဉာဏ်ရည်တု) (Visionary Studios) ပါ။ (HL) လို့ မှတ်ထားတဲ့ စာမျက်နှာတွေက Higher Level အတွက်ပဲ ဖြစ်ပါတယ်။ ဒီ စာမျက်နှာတွေက English လိုပဲ ရှိပါတယ်။

စာမျက်နှာ ဘာတွေ လေ့လာရမလဲ
Case Study Overview (Case study အကျဉ်းချုပ်) Case study ဆိုတာ ဘာလဲ၊ နှစ်စဉ် လည်ပတ်ပုံ၊ စာမေးပွဲမှာ ဘယ်လို စစ်ဆေးလဲ
2027: Generative AI (2027: ပုံ ဖန်တီးတဲ့ generative AI) Scenario၊ စာမေးပွဲ ပုံစံ၊ SL နဲ့ HL အလိုက် ဘယ်လောက် နက်နက် သိရမလဲ ပြတဲ့ အဆင့်များ
Image Generation Techniques (ပုံ ဖန်တီးတဲ့ နည်းစနစ်များ) Text-to-image (စာကနေ ပုံ ထုတ်တဲ့)၊ conditional (သတ်မှတ်ချက် တစ်ခုခု ပေးပြီး ထုတ်တဲ့) နဲ့ unconditional (ဘာ သတ်မှတ်ချက်မှ မပေးဘဲ ထုတ်တဲ့) generation
Diffusion Models (Diffusion model များ) Noise (ပုံပေါ်က ကျပန်း အစက်အပြောက်)၊ denoising (noise ဖယ်ရှားခြင်း)၊ DDPM (denoising diffusion probabilistic model: diffusion model အမျိုးအစား တစ်ခု)၊ CNN denoiser (noise ဖယ်ပေးတဲ့ CNN)
GANs (HL) (အပြိုင်အဆိုင် လုပ်ရင်း ပုံ ဖန်တီးတဲ့ network များ) Generator (ပုံ ထုတ်ပေးတဲ့ network)၊ discriminator (အစစ်လား အတုလား ခွဲခြားတဲ့ network)၊ adversarial dynamic (network နှစ်ခု အပြိုင်အဆိုင် သင်ယူပုံ)၊ mode collapse (output တွေ တစ်မျိုးတည်းလို ဆင်တူသွားခြင်း)
Hybrid Models (HL) (ရောစပ် model များ) VAE များ၊ flow-based model (ပြန်လှည့်လို့ရတဲ့ အဆင့်တွေနဲ့ ပုံထုတ်တဲ့ model) များ၊ latent space (ဆင်တူတဲ့ ပုံတွေ အနီးမှာ ရှိအောင် ဒေတာကို ချုံ့ စီထားတဲ့ နေရာ)၊ ဘာကြောင့် ပေါင်းစပ် သုံးသလဲ
Evaluating Models (Model တွေကို အကဲဖြတ်ခြင်း) အချက် ငါးချက်: quality (အရည်အသွေး)၊ efficiency (ထိရောက်မှု)၊ stability (တည်ငြိမ်မှု)၊ scalability (ကြီးလာတဲ့အခါမှာလည်း ကောင်းကောင်း ဆက်အလုပ်လုပ်နိုင်မှု)၊ consistency (တစ်ပုံစံတည်း ဖြစ်ခြင်း)
Ethics and Law (ကျင့်ဝတ်နဲ့ ဥပဒေ) Dataset curation (training ဒေတာ စုဆောင်း ရွေးချယ်ခြင်း) နဲ့ IP (intellectual property: ဉာဏဆိုင်ရာ ပိုင်ဆိုင်မှု)၊ bias နဲ့ fairness၊ transparency နဲ့ disclosure (AI နဲ့ ဖန်တီးထားမှန်း ထုတ်ဖော် ပြောခြင်း)
Glossary Trainer (ဝေါဟာရ လေ့ကျင့်ကိရိယာ) အဓိပ္ပာယ် ဖွင့်ဆိုနိုင်ပြီး အသုံးချနိုင်ရမယ့် term တိုင်း၊ SL အစုနဲ့ HL အစု
Challenges and Exam Prep (စိန်ခေါ်ချက်များနဲ့ စာမေးပွဲ ပြင်ဆင်ခြင်း) စိန်ခေါ်ချက် လေးခု၊ markband များ၊ အဖြေ ဖွဲ့စည်းပုံ အကူ၊ အဖြေ ရေးပြထားတဲ့ Section B မေးခွန်းများ

VR in the Classroom (စာသင်ခန်းထဲမှာ VR သုံးခြင်း)

ဘာသာရပ် အမျိုးမျိုး သင်ကြားဖို့ VR app တွေကို ရှာပါ။ မေးခွန်းတွေ မေးပြီး ရွေးပေးတဲ့ chooser ကို သုံးပါ၊ ဒါမှမဟုတ် app စာရင်း အပြည့်အစုံကို လှန်ကြည့်ပါ။ စာရင်းထဲက app တစ်ခုစီမှာ ကိုးကားတဲ့ source တွေ ပါပြီး ထပ်စစ်ဖို့ လိုသေးတဲ့ အချက်တွေကိုလည်း ဖော်ပြထားပါတယ်။ ဒီ စာမျက်နှာတွေက English လိုပဲ ရှိပါတယ်။

စာမျက်နှာ ဘာတွေ တွေ့ရမလဲ
VR in the Classroom (စာသင်ခန်းထဲမှာ VR သုံးခြင်း) မိတ်ဆက် စာမျက်နှာ: ရှာနည်း နှစ်မျိုးလုံးနဲ့ app စာရင်းကို ဘယ်လို စုစည်း စစ်ဆေးထားလဲ
Help me choose (ရွေးဖို့ ကူညီပါ) ကိုယ့် အတန်းအကြောင်း မေးခွန်း လေးခု ဖြေပြီးရင် အနီးစပ်ဆုံး app တွေကို မှတ်ချက်တွေနဲ့ ပြပေးပါတယ်
Browse all apps (app အားလုံးကို ကြည့်ရန်) App စာရင်း အပြည့်အစုံ: sort (စီ)၊ filter (စစ်ထုတ်)၊ search (ရှာ)၊ column တွေ ရွေးခြင်း၊ CSV export
New to VR? Start here (VR ကို အခုမှ စသုံးမလား၊ ဒီမှာ စပါ) ပထမဆုံး VR သင်ခန်းစာကို စီစဉ်ခြင်း၊ print ထုတ်လို့ရတဲ့ checklist (စစ်ဆေးစာရင်း) ပါပါတယ်
Lesson plans (သင်ခန်းစာ အစီအစဉ်များ) စာသင်ခန်းထဲမှာ တကယ် သုံးခဲ့တဲ့ VR သင်ခန်းစာ မှတ်တမ်းများ၊ သုံးခဲ့တဲ့ app တွေနဲ့ ချိတ်ထားပါတယ်

စာမျက်နှာတိုင်းမှာ ဘာတွေ ပါလဲ

သင်ခန်းစာ စာမျက်နှာ အများစုမှာ ဒါတွေ ပါပါတယ်:

  • အဓိက အယူအဆများ: တိကျတဲ့ ဝေါဟာရတွေနဲ့ ရှင်းရှင်းလင်းလင်း ရှင်းပြထားချက်များ
  • အဆင့်ဆင့် ရှင်းပြထားတဲ့ ဥပမာများ: တစ်ဆင့်ချင်း လိုက်ကြည့်လို့ရတဲ့ ဖြေရှင်းချက်များ
  • လေ့ကျင့်ရန် မေးခွန်းများ: Quick Check (အမြန် စစ်ဆေးမေးခွန်း၊ အဖြေ တစ်ခု ရွေးရတဲ့ ပုံစံ)၊ Trace Exercise (code ကို တစ်ဆင့်ချင်း လိုက်ကြည့်ခြင်း)၊ Code Completion (code ကွက်လပ် ဖြည့်ခြင်း) ဒါမှမဟုတ် Fill in the Blanks (ကွက်လပ် ဖြည့်ခြင်း)၊ Spot the Error (အမှား ရှာခြင်း) နဲ့ Predict the Output (output ကို ကြိုခန့်မှန်းခြင်း)
  • Practice Exercises (လေ့ကျင့်ခန်းများ): အဆင့် သုံးဆင့် ရှိပါတယ်: Core (အခြေခံ အဆင့်)၊ Extension (တိုးချဲ့ အဆင့်)၊ Challenge (စိန်ခေါ်မှု အဆင့်)
  • ဝေါဟာရ ရှင်းလင်းချက်များ: အစက်ချ မျဉ်းသားထားတဲ့ ဝေါဟာရကို click နှိပ်ပါ ဒါမှမဟုတ် လက်နဲ့ ထိပါ (ဒါမှမဟုတ် Tab key နဲ့ အဲဒီ ဝေါဟာရဆီ သွားပြီး Enter နှိပ်ပါ)။ ဝေါဟာရရဲ့ အဓိပ္ပာယ်နဲ့ ဘယ်မှာ သင်ပေးထားလဲ ဆိုတာကို ပြပေးပါတယ်
  • ဆက်စပ် ခေါင်းစဉ်များ: အရင် သိထားသင့်တဲ့ ခေါင်းစဉ်တွေနဲ့ နောက်ထပ် ဆက်လေ့လာလို့ရတဲ့ ဆက်စပ် ခေါင်းစဉ်များ

HL only (HL အတွက်ပဲ) လို့ မှတ်ထားတဲ့ စာမျက်နှာနဲ့ အပိုင်းတွေက Higher Level အတွက်ပါ။ စာမျက်နှာ ခေါင်းစဉ်အောက်က HL / SL ခလုတ်က အဲဒီ စာမျက်နှာရဲ့ HL အပိုင်းတွေကို ပြပေး ဒါမှမဟုတ် ဖျောက်ပေးပါတယ်။


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