Thursday, May 29, 2014

Finding the Roots of an Equation

WHAT
"Root" is a more formal way to say "answer" or "solution". A number is called a root of an equation if when the number is substituted into the equation and both sides simplified, the result is an identity, such as 2=2 or 8=8, etc.

Or

The root of a one dimensional equation is the value of x for which the equation y=f(x)=0.

Example 1
There are two roots to this equation x²+6=5x
They are 3 and 2.
3 is one root because when you substitute 3 for x
3²+6=5(3)
9+6=15
15=15

Also 2 is a root, because when you substitute 2 for x
2²+6=5(2)
4+6=10
10=10

Example 2
The root value for the given equation y = f(x) = 10x2 + 31x - 14 is "0.4"
because if we substitute the root value "0.4" to the equation and we get zero.
(10 * (0.4)^2) + (31 * 0.4) -14 = 0

WHY
One might ask what this has to do with chemistry or science, etc. There are many examples of chemical problems in which one needs to find the roots of equations. Some of the chemical examples include

  • · Weak acid/base equilibria; titrations
  • · The vapor pressure equation, ln P = A + (B/T) + C ln T
  • · Equation of state problems
  • · Equilibrium calculations
  • · Quantum mechanics
  • · Kinetics



HOW
So, now is the time to ask how do we fine the roots for the given equation?

1. Newton’s method (Newton-Raphson method)
Newton’s method consists of four steps:
1. Guess a value of the root, x.
2. Calculate f(x) and the derivative f’(x), i.e., df(x)/dx
3.



4. Iterate

[to be continued...]

Monday, January 6, 2014

ကွန်ပြူတာသိပ္ပံ ၌ သင်္ချာ၏အခန်းကဏ္ဌ

မိတ်ဆက်နိဒါန်း
ကျွန်တော်ဟာ programming, software engineering နဲ computer science ပညာရပ်တွေနဲ  ပတ်သက်ပြီး နီးစပ်ရာ လူငယ်တွေနဲ  တွ ဆုံဆွေးနွေးတဲ့အခါ “သင်္ချာပညာရပ်ဟာ ကွန်ပြူတာသိပ္ပံရဲ့ အခြေခံအုတ်မြစ်တွေထဲကတခုဖြစ်ကြောင်း၊ အဲဒါအပြင် ကွန်ပြူတာသိပ္ပံအတွက် အလွန်အရေးကြီးတဲ့ အစိပ်အပိုင်းတွေထဲက တခုဖြစ်ကြောင်း၊ ဒါကြောင့် အိုင်တီသမား လူငယ်တွေအနေနဲ  သင်္ချာကို အလေးလား လ့လာသင့်ကြောင်း” တင်ပြလေ့ရှိပါတယ်။ အဲဒီအခါမှာ တချို က သင်္ချာရဲ့အရေးပါမှု၊ သူ ရဲ့အကျိုးသက်ရောက်မှုနဲ  ပတ်သက်ပြီး ပန်လှန်မေးခွန်းထုတ်တာ ဆွးနွေးတာကို ကြုံရပါတယ်။ “ကျုပ်တို လည်း programming, software engineering, computer science ဘာသာရပ်တွေ အသုံးပြုပြီး ရးနေ သားနေ အလုပ် လုပ်နေသူတွေပါ။ ကျာင်းမှာတော့ ကွန်ပြူတာသိပ္ပံဘာသာအတွက် သင်္ချာကို အထိုက်အလျောက် သင်ခဲ့ရပေမယ့် ကျုပ်တို ရဲ့ လုပ်ငန်းခွင်တွေမှာတော့ သင်္ချာဆိုတာကို တသီးတသန်  တခန်းတနားကြီး အသုံးပြုနေတာမတွေ ရပါဘူး။ ခင်ဗျားပြောသလိုဆိုရင် သင်္ချာကို ဘယ်လိုနေရာမျိုးတွေမှာ ဘယ်လောက်အတိုင်းအတာအထိ ဘယ်သူတွေက ဘယ်လိုအသုံးချနေကြတာလဲဗျ” ဆိုတာပါ။ တချို ကဆိုရင် “ပရိုဂရမ်မာ ဆာ့ဖ်၀ဲအင်ဂျင်နီယာဖြစ်ဖို  သင်္ချာ ဒီလောက် မလိုပါဘူး။ သင်္ချာက ဘာမှ သိသိသာသာ အထောက်အကူမဖြစ်ဘူး။” လို  ဆိုကြပါတယ်။ တကယ်တော့ ဒီဆောင်းပါးဟာ အဲဒီလို ငင်းချက်တွေအတွက် တတ်နိုင်သလောက် အတိုချုပ် ကျိုးစားရှင်းလင်းချက်တခုမျှသာဖြစ်ပါတယ်။
အမှန်တော့လည်း သာမန်လက်တွေ လုပ်ငန်းခွင် အများစုမှာတော့ သိပ်အဆင့်မြင့်တဲ့ သင်္ချာပညာရပ်တွေကို အမြဲတန်းကြီးအသုံးချ နတာမဟုတ်ပဲ အခြေခံ အက္ခရာသင်္ချာ ပညာရပ်လောက်ကိုသာ “ကျွဲကူးရေပါ” မသိမသာ သုံးနေတာဖြစ်ပါတယ်။ ဘယ်နေရာမှာလဲဆိုတာ့ ပရိုဂရမ်ရေးတဲ့နေရာမှာပါ။ ဒါပေမယ့် အထူးသတိပြုရမယ့်အချက်က ကွန်ပြူတာသိပ္ပံဆိုတာ ပရိုဂရမ်ရေးခြင်းဆို တဲ့ ဘာင်ကျဉ်းကျဉ်းလေးမဟုတ်ပါဘူး။ အကြောင်းအရာတွေ ထပ်နေမှာမလိုလားတဲ့အတွက်၊ ၂၀၁၃ ဂျွန်လိုင်လထုတ် ကွန်ပြူတာဂျာနယ်မှာ ဖါ်ပြခဲ့တဲ့ ‘ကွန်ပြူတာသိပ္ပံ နှင့် ကိုင်းကွဲပညာရပ်များ’ ဆိုတဲ့ ဆာင်းပါးကိုသာ ပန်လည်ဖတ်ရှုကြည့်ပါလို  ရည်ညွှန်းပါရစေ။
တကယ်တော့ အာင်မြင်တဲ့ ကွန်ပြူတာသိပ္ပံပညာရှင်တရောက် ဖစ်နိုင်ဖို အတွက် အသုံးချသင်္ချာပညာတွေဖြစ်တဲ့ အစုသီအိုရီ (Sets Theory), ဖစ်နိုင်ခြေသီအိုရီ (Probability Theory), ကိန်းသီအိုရီ(Number Theory) နဲ  ဘူးလ် ရဲ့ အက္ခရာသင်္ချာ (Boolean Algebra) ပညာရပ်တွေဟာ မရှိမဖြစ်တွေပါ။ ကွန်ပြူတာသိပ္ပံပညာရှင်တရောက်ဟာ သူ အတွက် သင့်လျော်မယ့် လိုအပ်မယ့် သင်္ချာပညာရပ်တွေကို ထဲထဲ၀င်၀င် ကျွမ်းကျင်မှုမရှိဘူးဆိုရင် သူ ကို computer scientist လို တာင် ခါ်နိုင်မှာမဟုတ်ပါဘူး။ ဘာလို လဲဆိုတာကို ရှ လျှာက် ဆက်လက်တင်ပြမယ့် အပိုင်းတွေမှာ မိတ်ဆွေတို  အထင်အရှား တွ မင်ရမှာဖြစ်ပါတယ်။ သတိပြုသင့်တဲ့အချက်ကတော့ ကွန်ပြူတာသိပ္ပံမှာ ဘယ်လိုသင်္ချာအမျိုးအစားကို ဘယ်လောက်အတိုင်းအတာအထိ အသုံးချကြသလဲဆိုတာက ကွန်ပြူတာသိပ္ပံပညာမဟာဌာန (Faculty of Computer Science) ကြီးရဲ့ ဌာနခွဲ (department) အမျိုးအစားတွေပေါ်မှာလည်း မူတည်မှာဖြစ်ပါတယ်။ Theoretical Computer Science, Software, Networking, Database, Operating Systems, Computing Systems, Artificial Intelligence စသည်ဖြင့် ဘာသာရပ်တွေ ဌာနတွေ ကွဲပြားသွားတာနဲ အမျှ၊ သူတို  အသုံးပြုကြတဲ့ သင်္ချာကိုင်းကွဲ တွလည်း အနည်းနဲ အများ မတူခြားနားသွားမှာဖြစ်ပါတယ်။ ဘာပဲဖြစ်ဖြစ် သချာတာတခုကတော့ ကွန်ပြူတာသိပ္ပံရဲ့ ကိုင်းကွဲဘာသာရပ်တိုင်းမှာ သင်္ချာပညာကိုင်းကွဲတွေဟာ တခုမဟုတ် တခု၊ ဒါမှမဟုတ် တခုထက်ပိုပြီး အမြဲပါ၀င်နေမှာသာဖြစ်ပါတယ်။

၁။ Programming နှင့် သင်္ချာ
ပရိုဂရမ်ဘာသာစကားအားလုံးမှာရှိတဲ့ လုပ်ဆောင်ချက် (function) တွနဲ  လုပ်ဆောင်ချက်ဆိုင်ရာ သငေ်္ကတ (operator) တွအကြောင်း ကာင်းကောင်းနားလည်နိုင်ဖို အတွက် သင်္ချာအခြေခံ အသိပညာတွေဟာ မဖြစ်မနေလိုအပ်ပါတယ်။ ဥပမာအနေနဲ ပရရင် ပရိုဂရမ်ဘာသာစကားတိုင်းမှာ ပါ၀င်သုံးစွဲထားတဲ့
• ပါင်း နှုတ် မှာက် စား အကြွင်း သငေ်္ကတတွေဖြစ်တဲ့ arithmetic operator (+, -, *, /, %)
• ကြီးသလား ငယ်သလား ညီသလား ဆိုတဲ့ comparison operator (>, <, ==)
• နှင့် ၊ သို မဟုတ် ၊ မဟုတ် ..စတာတွေ ပါ၀င်တဲ့ logical operator (and, or, not, &&, ||, !)
• တန်ဘိုးထည့်သွင်းရာမှာသုံးတဲ့ assignment operator (=, :=)
• တကယ်လို  ဒါဖြစ်ရင် ဒါလုပ်၊ မဖြစ်ရင် ဒါလုပ် ဆိုတဲ့ အခြေအနေပြ conditional operator(if..else, ? .. :)
စတာတွေ အားလုံးဟာ သင်္ချာပညာကနေ ဆင်းသက်လာတဲ့ programming language တခုအတွက် တကယ့်အခြေခံ မရှိမဖြစ် သငေ်္ကတတွေပဲ မဟုတ်ပါလား။ အဲဒီထဲကမှ အထူးသဖြင့် arithmetic operator, logical operator နဲ  conditional operator တွကို program ရးသားရာမှာ ကျွမ်းကျွမ်းကျင်ကျင် အသုံးချနိုင်ဖို အတွက်ဆိုရင် သူတို နဲ သက်ဆိုင်တဲ့ သင်္ချာအသိပညာကို ပိုင်နိုင်ထားရမှာဖြစ်ပါတယ်။
ပရိုဂရမ်(ဆော့ဖ်၀ဲ) ရးတဲ့နေရာမှာ ယုတ္တိဗေဒ(logic) ဟာ ဗဟိုချက်မ လိုအပ်ချက်ဖြစ်ပါတယ်။ အဲဒီ ယုတ္တိဗေဒပညာရပ်ဟာ သင်္ချာနဲ  သင်္ချာပညာရပ်ဆိုင်ရာ စည်းမျဉ်း စည်းကမ်း နည်းလမ်း တွမှာ အခြေခံထားတာပါ။ ဒါဆိုရင်ရှင်းပါပြီ။ ဘယ်လို ရှုဒေါင့်ကပဲကြည့်ကြည့် သင်္ချာဟာ တွက်ချက်မှုပညာရပ် (computing) ကို အာင်မြင် မှန်ကန်တဲ့ လမ်းကြောင်းပေါ်ရောက်ဖို  မရှိမဖြစ်ပဲ ဆိုတာတွေ ရမှာဖြစ်ပါတယ်။
Quicksort, Hoare Logic နဲ  Communicating Sequential Process (CSP) စတာတွေကို တည်ထွင် ဖန်တီးခဲ့တဲ့၊ တားရင်းဆု(Turing Award)ရှင် အလွန်ထင်ရှားတဲ့ ဗိတိသျှ ကွန်ပြူတာသိပ္ပံပညာရှင် Sir Charles Antony Richard Hoare (born 11 January 1934) က
• ကွန်ပြူတာဆိုတာ သင်္ချာစက် (mathematical machine) တွဖြစ်တယ်။ (သူ ရဲ့ အပြုအမူ လုပ်ဆောင်ချက်တွေကို သင်္ချာနည်းနဲ  သတ်မှတ်ထားတာဖြစ်တယ်။)
• ကွန်ပြူတာပရိုဂရမ်ဆိုတာ သင်္ချာဆိုင်ရာ ဖါ်ပြချက်တွေဖြစ်တယ်။ (ဘယ်ဟာက ဘာလဲဆိုတာကို တိတိကျကျ သတ်မှတ်ဖေါ်ပြထားရတယ်။)
• ပရိုဂရမ်ဘာသာစကားဆိုတာ သင်္ချာဆိုင်ရာ အတွေးအခေါ်အယူအဆ ဖစ်တယ်။
• ပရိုဂရမ်ရေးတယ်ဆိုတာ သင်္ချာတွက်တာပဲ။
လို ဆိုခဲ့ပါတယ်။
၂။ Software Engineering နှင့် သင်္ချာ
ပရိုဂရမ် စ’ ရးကာစ လူသစ်တန်းတွေအတွက် သင်္ချာက အရေးမကြီးသေးပေမယ့်၊ ရှုပ်ထွေး ခက်ခဲ နက်နဲတဲ့ ပရိုဂရမ်တွေ ရးတဲ့အဆင့်မျိုး ရာက်လာပြီဆိုရင်တော့ အဲဒီပရိုဂရမ်မာအနေနဲ  အဆင့်မြင့်သင်္ချာတွေကို အသုံးမပြုလို ကို မရတော့တဲ့ အခြေအနေမျိုး ရာက်လာမှာ အသေအချာသာဖြစ်ပါတယ်။ အဆင့်မြင့် scientific calculators, video games နဲ  3-D Graphical applications တွ၊ Image Processing ဆာ့ဖ်၀ဲတွေဖြစ်တဲ့ မျက်နှာသွင်ပြင်ခွဲခြားတဲ့စနစ် (Face Recognition System) တို  လက်ဗွေရာတွေကို တိုက်ဆိုင်စစ်ဆေးတဲ့စနစ် (Finger-Printing Matching System)တို လို ဆာ့ဖ်၀ဲတွေ၊ ရဒါစနစ် (Radar System) အချက်ပြစနစ် (signaling system) စတဲ့ program တွ software တွ ရးတော့မယ်ဆိုရင် ရှုပ်ထွေး အဆင့်မြင့်တဲ့ သင်္ချာပညာတွေမသုံးပဲ မသိပဲ ရးလို လုံး၀မရတော့ပါဘူး။

၃။ Relational Database နှင့် သင်္ချာ
ဒီကနေ ခတ်အခါမှာ database နဲ  ကင်းလွတ်တဲ့ business application ရယ်လို မရှိပါဘူး။ အဲဒီလို အရေးပါလှတဲ့ database (relational database ပါ့ဗျာ) နည်းပညာတွေဟာ ဘယ်အပေါ်မှာ အခြေပြုပြီး တည်ထွင်ဖန်တီးတည်ဆောက်ထားတာဖြစ်ပါသလဲ။ အလွန်ပဲရှင်းပါတယ်။ မိတ်ဆွေတို  ရဲ့ မရှိမဖြစ် RDBMS မှာ မသုံးမဖြစ်သုံးနေရတဲ့ စကားလုံးတွေဖြစ်တဲ့ one to one relation, one to many, many to many, စတဲ့ စကားလုံးတွေဟာ အစုသီအိုရီ (Set Theory) က စကားလုံးတွေဆိုတာ ဆယ်တန်းကျောင်းသားတောင်အလွယ်တကူသိနိုင်ပါတယ်။ ဒါ့အပြင် union, intersection, set difference, cartesian product or cross product စတဲ့ စကားလုံးတွေကရော။ ဒါ့အပြင် programmer တိုင်း၊ software engineer တိုင်း၊ developer တိုင်း မတတ်မဖြစ် မသိမဖြစ် Structured Query Language (SQL) ဆိုတာလည်း relational algebra နဲ  relational calculus ဆိုင်ရာ အတွေးအခေါ် အယူအဆ သဘောတရားတွေကို အခြေပြုတည်ဆောက်ထားတာပါ။ relational calculus ဆိုတာ သင်္ချာယုတ္တိ(mathematical logic) ပညာရပ်တခုဖြစ်တဲ့ first-order logic နဲ  predicate calculus ကို အခြေခံထားတာပါ။

၄။ ကွန်ပြူတာသိပ္ပံနှင့်သင်္ချာ
ကွန်ပြူတာသိပ္ပံဟာ ပဿနာဖြေရှင်းပုံ နည်းလမ်းအဆင့်ဆင့် (algorithm) နဲ ဆိုင်တဲ့ ပညာရပ်တွေကို အသေးစိပ် သရုပ်ခွဲ ဆန်းစစ်လေ့လာတဲ့ ပညာရပ်ဖြစ်ပြီး၊ အဲဒီ algorithm နဲ  နှီးနွယ်ပတ်သက် ဆက်စပ်တဲ့ ပညာရပ်တွေဟာ သင်္ချာပညာပေါ်မှာ အကြီးအကျယ်မှီခိုနေတာဖြစ်ပါတယ်။ အထူးသဖြင့် သဘောတရားရေးရာ ကွန်ပြူတာသိပ္ပံ (Theoretical Computer Science) ပညာရပ်မှာဆိုရင် discrete mathematics ဟာ ခိုင်ခိုင်မာမာ ပါ၀င် နရာယူထားတာကိုတွေ ရမှာဖြစ်ပါတယ်။ Discrete Maths ဆိုတာ တကယ်တော့ အစဉ်မပြတ် ဆက်တိုက်ဖြစ်ပျက်နေခြင်း သဘောတရားတွေထက်၊ အပိုင်းလိုက် အပိုင်းလိုက် သီးခြား ရှိနေတဲ့ ပတ်တောင်းဖြစ်စဉ်တွေ တန်ဘိုးတွေ ရလာဒ်တွေ ကို လ့လာတဲ့ သင်္ချာဖွဲ စည်းပုံတည်ဆောက်ပုံ တမျိုးပဲဖြစ်ပါတယ်။ Discrete Maths ရဲ့ အနှစ်သာရကို မိတ်ဆွေတို မင်သာအောင် ဥပမာပြရလျှင်၊ ကိန်းစဉ်တန်းတွေကို number line ပါ်မှာဖေါ်ပြတဲ့အခါ ကိန်းတခုကနေ နာက်တခုကို ချက်ခြင်းကြီး တိုက်ရိုက် ရာက်သွားတာ ပာင်းသွားတာမဟုတ်ဘူးဗျ။ ဆိုလိုတာကဗျာ 1 ကနေ 2 ကို သွားဖို  ရာက်ဖို ဆိုရင်၊ 1.1, 1.2, 1.3, 1.4.. စသည်ဖြင့် တန်ဘိုးတွေ စဉ်ဆက်မပြတ် တဆင့်ခြင်း နဲနဲခြင်း တိုးတက်သွားပြီး မှ 2 ကိုရောက်လာတာ။ အဲဒီလို စဉ်ဆက်မပြတ်ဖြစ်ခြင်း သဘောတရားကို သုံးတဲ့သင်္ချာ (Continuous Maths) က calculus လို သင်္ချာမျိုး။ Discrete Maths က 1, 2, 3 ဆိုတဲ့ ကိန်းပြည့် (integer) တွကိုပဲ စိတ်၀င်စားတယ်။ ကြားတန်ဘိုးတွေကို စိတ်မ၀င်စားဘူး။  ခါင်းဆိုခေါင်း ပန်းဆိုပန်း ဒင်္ဂါးပြား ဒါင်လိုက်ဖြစ်နေမှာကို မစဉ်းစားဖူး၊ အမှန်ဆိုရင်လည်း အမှန် အမှားဆိုရင်လည်းအမှား နဲနဲမှန်တာတို  များများမှန်တာတို  ဆိုတဲ့ တဆင့်ခြင်း တိုးတက်ပြောင်းလဲလာတဲ့ ကြားသဘာ၀ တွကို မစဉ်းစားဘူး။ အဲဒီလို သီးသန် ပတ်တောင်း သဘောဆောင်လို  သူ ကို Discrete Maths လို ခါ်တာ။ ကဲ ထားပါတော့။ ဒါကြောင့် သီအိုရီသဘောတရားရေးရာတွေကို အသားပေးလေ့လာတဲ့ အဲဒီ သီအိုရီကွန်ပြူတာသိပ္ပံ ပညာရပ်မှာဆိုရင် Discrete Maths ကိုင်းကွဲတွေဖြစ်တဲ့ Graph Theory, Set Theory, Probability Theory, Number Theory, Computational Geometry, Quantum Computation, Algebra နဲ  တခြား အဆင့်မြင့် သင်္ချာဘာသာရပ်တွေ အများအပြားပါ၀င်နေတာဖြစ်ပါတယ်။

၅။ ကွန်ပြူတာသိပ္ပံ ရူပဗေဒ နှင့် သင်္ချာ
ကွန်ပြူတာတွေအလုပ်လုပ်တဲ့ ကျွန်တော်တို မျက်စိနဲ မမြင်ရတဲ့ binary system ဆိုတာလည်း တကယ်တော့ သင်္ချာ ပဲမဟုတ်လား။ အဲဒါကို တကယ့်လက်တွေ မှာ အကောင်အထည်ဖေါ်တဲ့ အခါ၊ ထရန်စ္စတာ (transitor) တွ ဆီလီကွန် (cilicon chip) ပားတွေအပေါ်မှာ လျှပ်စီးကြောင်း ရဲ့ အဖွင့် အပိတ် (on-off) သဘောတရားနဲ  လုပ်ထားတာပဲ ဖစ်ပါတယ်။ အင်ဂျင်နီယာပညာရပ်အားလုံးရဲ့ ရသောက်မြစ်ဖြစ်တဲ့ အလင်း အသံ အပူ လျှပ်စစ် သံလိုက် မက္ကင်းနစ် အီလက်ထရွန်နစ် စတဲ့ ပညာရပ်တွေဟာ အားလုံးသိတဲ့အတိုင်း ရူပဗေဒပညာရပ်ရဲ့ ကိုင်းကွဲတွေပဲမဟုတ်ပါလား။ ဒါကြောင့် နာက်ထပ် အရေးကြီးတဲ့ အချက်တချက်ကတော့ ကွန်ပြူတာသိပ္ပံပညာရပ် ကိုင်းကွဲတချို မှာဆိုရင် ရူပဗေဒ (Physics) ပညာရပ်ဟာ အဓိက အခန်းကဏ္ဏက ပါ၀င်နေတယ် ဆိုတာ သိထားရပါမယ်။ ဥပမာ Computer Engineering, Computer Technology,
Hardware Engineering (processor, mother-board, memory, quantum memory ..စတာတွေ တည်ထွင် ထုတ်လုပ်ခြင်း)၊
System Engineering (ကွန်ပြူတာ network ပိုင်းသက်သက်ကို ပာတာမဟုတ်။ software, hardware, netware တွနဲ  ပူးပေါင်းပါ၀င်ဖွဲ စည်းတည်ဆောက်ထားတဲ့၊ လယာဉ် ပျံသန်းမှု ထိမ်းချုပ်ရေးစနစ်တို ၊ ဘဏ်တွေနဲ  ငွသွင်း ငွထုတ်စက် အကြွေး၀ယ် လက်ငင်း၀ယ် စနစ်တွေ ပါ၀င်ချိတ်ဆက်ထားတဲ့ Finicial Transaction System Management တို ၊ ကွန်ပြူတာနဲ  ထိမ်းချုပ်ထားတဲ့ မို ပ သယ်ယူပို ဆာင်ရေးစနစ် ကား/ရထား..စသည်တို ကို ဆိုလိုတာ)၊
Networking Engineering (ဖြုတ်ရုံ တတ်ရုံ ၊ သူများရေးပြီးသား software တွ၊ သူများတည်ထွင်ပြီးသား netware တွကို ဟိုဟိုဒီဒီ configure လုပ်ရုံ အလုပ်မျိုးကို ဆိုလိုတာမဟုတ်ပါ။ controlling , signaling, data transmission စတဲ့ အဆင့်မြင့် စနစ်တွေကို တည်ဆောက်တဲ့ ပညာရပ်မျိုးကို ဆိုလိုတာ) စတဲ့ ကွန်ပြူတာသိပ္ပံရဲ့ တချို ကိုင်းကွဲ ပညာရပ်တွေမှာ ရူပဗေဒ ဟာ မရှိမဖြစ်ပညာရပ်တခုပေါ့။ တခါ ရူပဗေဒ နဲ  သင်္ချာဆိုတာ အကြီးအကျယ် နှီးနွယ်ဆက်စပ် နတာဖြစ်ပါတယ်။ သင်္ချာမပါပဲ ရူပဗေဒကို ကုန်စင်ပြည့်စုံစွာ နားလည်အောင် လ့လာဖို ဆိုတာ ဘယ်လိုမှ မဖြစ်နိုင်ပါဘူး။ ဒါဆိုရင် ကွန်ပြူတာသိပ္ပံမှာ သင်္ချာပညာဟာ ဘယ်လောက်အထိ အရေးပါလှတယ်ဆိုတာ မိတ်ဆွေတို အနေနဲ ပိုပြီး ရှင်းရှင်းလင်းလင်း သိမြင်သွားပြီလို  ယူဆပါတယ်။
လက်တွေ အခက်အခဲများ
သို သာ်.. အင်း..သို သာ်လည်းပေါ့ဗျာ။ မိတ်ဆွေတို ရဲ့ ပတ်၀န်းကျင်မှာ အမှန်တရား နဲ  တကယ်ဖြစ်နေတာနဲ  အမြဲတမ်း မတူနိုင်ဘူးဆိုတာကိုတော့ သတိထားမိမယ်ထင်ပါတယ်။ အဲဒီ သဘောပါပဲ။ ကွန်ပြူတာသိပ္ပံအတွက် သင်္ချာဟာ အဓိကနေရာက ပါ၀င်နေတယ်ဆိုတာက တကယ့်အမှန်တရားပါ ဒါပေမယ့် တကယ်ဖြစ်နေတာကတော့ တမျိုးဖြစ်ကောင်း ဖစ်နေနိုင်ပါတယ်။ “ပရိုဂရမ်မာ ဆာ့ဖ်၀ဲအင်ဂျင်နီယာဖြစ်ဖို  သင်္ချာမလိုပါဘူးကွာ။ သင်္ချာက ဘာမှ သိသိသာသာ အထောက်အကူမဖြစ်ပါဘူး။” လို  ပာသူတွေအတွက် ကျာထောက်နောက်ခံပြုလောက်စရာ လက်တွေ အခြေအနေတွေကလည်း အထင်အရှားရှိနေပြန်တာကိုး။ အကြောင်းရင်းတွေက အလွန်ပဲရှုပ်ထွေး ကျယ်ပြန် လှတဲ့ ပညာရေး စနစ်ရဲ့ အားနည်းချက်တွေမှာ မစ်ဖျားခံနေပါတယ်။
ပထမအချက်အနေနဲ ကတော့ ကျာင်းသူကျောင်းသားတွေကို သင်္ချာဘွဲ ဒီဂရီ ရအောင်ယူဖို ၊ သင်္ချာပညာရပ်ကို ထဲထဲ၀င်၀င် ထူးထူးချွန်ချွန်ဖြစ်အောင်လုပ်ဖို  မက်လောက်တဲ့ တွန်းအားအနေနဲ  ဘာမှထင်ထင်ရှားရှားမရှိတာက အကြောင်းတချက်ပဲဖြစ်ပါတယ်။ အဲဒီလို တွန်းအားမရှိတဲ့အတွက် ကျာင်းသားတွေဟာ သင်္ချာပညာရပ်ကို နက်နက်နဲနဲ လ့လာသင်ယူဖို လိုလိုလားလားမရှိတာ၊ လိုလိုလားလားမရှိခဲ့လို  လုံလုံလောက်လောက် မပြင်ဆင်ခဲ့တာ၊ အဲဒီလို သင်္ချာပညာရပ်ကို အခြေခံကောင်းအောင် လုံလုံလောက်လောက် မပြင်ဆင်ခဲ့တာတွေရဲ့ နာက်ဆက်တွဲအကျိုးဆက်တွေအဖြစ်၊ ကျာင်းသူ ကျာင်းသားတွေရဲ့ တက္ကသိုလ် ဘာသာရပ် ရွးချယ်မှုပုံစံနဲ  ၊ ရွးချယ်လိုက်တဲ့ ဘာသာရပ်အပေါ်မှာ နားလည်တတ်ကျွမ်းမှု အပေါ်မှာ သိသိသာသာ ရိုက်ခတ်လာပါတော့တယ်။
နောက်တချက်အနေနဲ  ကျွန်တော်တို ရဲ့ အဆင့်မြင့်ပညာရေးစနစ်မှာ သင်္ချာကို သီးသန် ရပ်တည်နေတဲ့ ဘာသာရပ် (closed subject ) တခု အဖြစ်သင်ကြားပြီး၊ ကွန်ပြူတာသိပ္ပံကိုတော့ နည်းပညာဆိုင်ရာ ဘာသာရပ် (technical subject) တခုအဖြစ်သင်ကြားလာကြခြင်း ဖစ်ပါတယ်။ ဒါကြောင့် သင်္ချာဟာ တခြားပညာရပ်တွေနဲ  ဆက်စပ်အသုံးချမရတဲ့ သီးသန်  ထီးတည်း ပညာရပ်ကြီးအဖြစ် ရှုမြင်ခံရပြီး၊ ကွန်ပြူတာသိပ္ပံစစ်စစ် ဘွဲ  ဒီဂရီတွေကျပြန်တော့ သိပ္ပံပညာရှင်(scientist)တို  အင်ဂျင်နီယာ(engineer)တို  လို အလုပ်မျိုးတွေအတွက် လိုအပ်တဲ့ တကယ့်အဆင့်မြင့်ပညာရေး (education) အဖြစ်ကနေ၊ နည်းပညာပိုင်း သက်သက်ကိုသာ လ့ကျင့်သင်ကြားပေးလိုက်တဲ့ (purely technical training) ဘွဲ တွအဖြစ် တဖြည်းဖြည်း တန်ဘိုး အသွင်ပြောင်းလာတာ တွ ရပါတယ်။ အကျိုးဆက်ကတော့ “သင်္ချာသမားက ကွန်ပြူတာသိပ္ပံကို ထဲထဲ၀င်၀င်မသိ၊ ကွန်ပြူတာသိပ္ပံသမားက သင်္ချာကို ခခြေမြစ်မြစ် မတတ်” ပဲ ပညာရပ်နှစ်ခုဟာ အစေးမကပ်ဖြစ်လာရပါတော့တယ်။ အဲဒီအခါမှာ ၀ိရောဓိတွေ ကြီးကြီးမားမား ဖစ်လာပြန်ပါတယ်။ တချို အလုပ်ရှင်တွေက “သင်္ချာသမားနဲ  အင်ဂျင်နီယာတွေကိုပဲအလုပ်ခန် မယ်ဗျာ။ ကွန်ပြူတာသိပ္ပံနဲ ဘွဲ ရထားတဲ့သူတွေက ပဿနာကို ဘယ်လိုဖြေရှင်းရမလဲဆိုတာ မသိကြဘူးဗျ” လို ဆိုပါတယ်။ ဒါဟာဘာလို လဲဆိုတော့ အင်ဂျင်နီယာဘာသာရပ်တွေနဲ ၊ ရုပ်သိပ္ပံ(physical sciences) ဘာသာရပ်တွေမှာ သင်္ချာပညာကို ခိုင်ခိုင်မာမာ နာက်ခံထား သင်ကြားထားတဲ့အတွက်၊ သင်္ချာအခြေခံ အတွေးအခေါ် အားကောင်းတဲ့သူတွေဟာ ပဿနာကို ပိုပြီး ထိရောက်အောင်ဖြေရှင်းနိုင်တယ်လို  ယူဆတာကိုး။ တခြားဖက်က ကြည့်ပြန်တော့လည်း တချို အလုပ်ရှင်တွေက “တကယ်တန်းကျတော့ သင်္ချာသမားတွေ ပဿနာဖြေရှင်းပြီဆိုရင် သူတို ဖရှင်းတဲ့ ပုံစံကို တခြားသူတွေ အလွယ်တကူ နားမလည်ကြဘူးဗျ။ သူတို ရဲ့ လုပ်ထုံးလုပ်နည်းတွေနဲ  အဖြေတွေဟာ တခြား သင်္ချာသမားမဟုတ်သူတွေနဲ အဆင်ပြေပြေ မဆက်သွယ်နိုင်ဘူး (သင်္ချာသမားမဟုတ်သူတွေ နားမလည်နိုင်ဘူး)။ သူတို ရဲ့ဖြေရှင်းပုံတွေဟာ လက်တွေ လာကနဲ ကင်းကွာနေတယ်” လို  ဆိုကြပြန်ပါတယ်။
အဲဒီ၀ိရောဓိတွေကြောင့်လည်း ဆန်းသစ်တည်ထွင်ဖန်တည်းမှု အားကောင်းတဲ့ သူတချို က သင်္ချာ နဲ  ကွန်ပြူတာသိပ္ပံကို စာစောစီးစီး လမ်းခွဲလိုက်ကြတာ ဖစ်နိုင်ပါတယ်။ ဆိုလိုတာက တကယ့်အရည်အသွေးရှိတဲ့ သူတချို က ပုံမှန် ကွန်ပြူတာသိပ္ပံပညာရေးလမ်းကြောင်းကို အလေးအနက်မထားတော့ပဲ စွန် လွှတ်လိုက်တာ ကို ဆိုလိုတာပါ။ အထူးသဖြင့် ဆာ့ဖ်၀ဲသမားတွေပေါ့။ ဘာလို လဲဆိုတော့ အခုလက်ရှိအနေအထားအရ “ဆော့ဖ်၀ဲအင်ဂျင်နီယာဆိုတာ သီအိုရီတည်ဆောက်သူမဟုတ်ဘူး၊ နည်းလမ်းတွေကို အသုံးချသူသာဖြစ်တယ်..” လို  ခံယူထားကြတဲ့့အပြင်၊ ဆာ့ဖ်၀ဲအင်ဂျင်နီယာလုပ်ငန်းမှာ နာက်ဆုံးအဆင့် ထွက်ကုန်(final product) ကိုသာ အဓိကထားပြီး၊ ဘယ်လိုသီအိုရီ ဘယ်လိုသဘောတရားရေးရာတွေကို အသုံးချခဲ့တယ် ဆိုတာကျတော့ များသောအားဖြင့် လျစ်လျူရှု ထားကြလို ပဲ ဖစ်ပါတယ်။ ဒါကြောင့် သင်္ချာကို အလေးအနက်မထားတဲ့ ဆာ့ဖ်၀ဲသမားတွေအနေနဲ ၊ လတ်တလော လုပ်ငန်းခွင်မှာ အဆင်ပြေပေမယ့်၊ ရရှည်မှာကျတော့ ဆာ့ဖ်၀ဲကျွမ်းကျင်လုပ်သား အဆင့်ကနေ ကွန်ပြူတာသိပ္ပံပညာရှင်အဆင့်ကို ဘယ်လိုမှ တက်မလာနိုင်တော့ပါဘူး။ တက်လာနိုင်ဖို  လုံလောက်တဲ့ သီအိုရီ သဘောတရား နဲ  နာက်ခံသင်္ချာပညာရပ်တွေမှ မရှိတာကိုး။ ပီးတော့လည်း သင်္ချာ ကွန်ပြူသိပ္ပံ နဲ တခြားပညာရပ်တွေ ကို ကိုယ်ပိုင်စိတ်ကူးစိတ်သန်းနဲ  အချိုးညီညီ မပေါင်းစပ်နိုင်တဲ့အတွက် ဘယ်လိုအသစ်အဆန်းကိုမှ မယ်မယ်ရရ ထိထိရောက်ရောက် မတည်ထွင်နိုင်တော့ပါဘူး။
နိဂုံးအမှာ
ဆိုပါစို ဗျာ ကွန်ပြူတာသမားတွေအတွက် မန်မာစာအရေးကြီးသလားဆိုရင် အဖြေက “ကြံကြံ ဖန်ဖန်ဗျာ” အများစုက ဖကြမယ်ထင်ပါတယ်။ ဘယ်လိုမှ မဆက်စပ်ဘူးထင်ရတဲ့ အရာကိုပဲ ဆက်စပ်စဉ်းစားကြည့်ကြပါစို ။ နည်းပညာနဲ  အထိအတွေ နည်းသူတွေကို အထောက်အကူပြုနိုင်ဖို  (စေတနာကောင်း ရည်ရွယ်ချက်ကောင်းနဲ ) ရးသားထုတေ်၀တဲ့ တချို စာအုပ်တွေရဲ့ စာအုပ်မျက်နှာဖုံးမှာ software ဆိုတဲ့ အင်္ဂလိပ်စကားလုံးအတွက်(ထင်ပါရဲ့) မန်မာလို ‘ဆော့ဖ်၀ဲလ်’ ဆိုပြီး ရးသားထားတာတွေ မိတ်ဆွေတို တွ ဖူးမှာပါ။ ဒါကြောင့် ဒီ လို ရိုးရှင်းတွင်ကျယ်ပြီးသား software ဆိုတဲ့ စကားလုံးတလုံးကို တိုက်ရိုက်အသံဖလှယ်တာတောင် မူရင်းစကားလုံးနဲ  နီးစပ်မှုမရှိဘူးဆိုရင်၊ ကျယ်ပြန် တဲ့ လးနက်တဲ့ ခက်ခဲတဲ့ ၀ါဟာရတွေကို မှန်ကန်အောင် ဖွင့်ဆိုရှင်းပြနိုင်လိမ့်မယ်လို  တခြားနယ်ပယ်ကပုဂ္ဂိုလ်တွေ ပညာရှင်တွေက ဘယ် ကြည်ကြတော့မှာလဲ။ ........................................................................................
.................................
..........
............
ပညာသင်ကြားခြင်းရဲ့ ရည်ရွယ်ချက်က ကိုယ်ပိုင်ညာဏ်နဲ  အမှန်အမှားကို စဉ်းစား ချင့်ချင် ၀ဖန် ပိုင်းခြားနိုင်ဖို ပဲ မဟုတ်ပါလား။

ရွှင်လန်းချမ်းမြေ့ပါစေ။
infoTherapy-2014


REF:
1. “Benefits and Advantages of an Integrated Mathematics and Computer Science Degree” By T.C. Hurley, Department of Mathematics, National University of Ireland, Galway, http://www.uiginn.com/maths/pstudents/benefits.shtml

2. "The Mathematics of Programming" By C.A.R Hoare, Inaugural Lecture, University of Oxford, Clarendon Press 1986 (The mathematics of programming: an inaugural lecture delivered before the University of Oxford on Oct. 17, 1985)