Why is PHYSICS necessary for Computer Science?

Why is PHYSICS necessary for Computer Science?

Computer University တွေမှာ Physics ဘာသာရပ်ကို ဘာကြောင့်သင်ကြားရတာလဲ ပတ်သတ်ပြီး ကွန်ပျူတာကျောင်းသားတချို့မှာ မေးခွန်းတွေရှိနေပါတယ်။ အဲ့ဒီမေးခွန်းရဲ့အဖြေနဲ့ ဘာကြောင့် Physics ကို Information Technology ရဲ့ဘယ်နေရာတွေမှာ အသုံးချလဲဆိုတာ အမြင်လေးနည်းနည်း share ချင်ပါတယ်။

CU လို ကျောင်းမျိုးမှာ Programming ဘာသာရပ်တွေ၊ Software engineering ဘာသာရပ်တွေ၊ Database management လို ဘာသာရပ်တွေ သင်ကြားတာ သဘာဝကျပေမယ့် Physics လို ဘာသာရပ်မျိုးကို ထည့်သွင်းသင်ကြားတာကတော့ နည်းနည်းစဥ်းစားစရာတော့ ရှိပါတယ်။

အဲ့လိုစဥ်းစားလိုက်ပြီဆိုကတည်းကိုက ကွန်ပျူတာကျောင်းဆိုတာ Software Engineers တွေ၊ Full Stack developers တွေပဲ မွေးထုတ်ပေးတဲ့ကျောင်းကြီးလို့ ထင်နေလို့ပါ။ CU ဆိုတာအပြင်မှာ ၂ သိန်းခွဲ၊ ၃ သိန်းပေးပြီး တတ်ရတဲ့ သင်တန်းတွေကဟာတွေကိုပဲ သင်ပေးနေတာမဟုတ်ပါ။ Information Technology အတွက် Cover ဖြစ်စေမယ့် ဘာသာရပ်တွေပါဝင်ပါတယ်။ Maths ပိုင်းဆိုင်ရာမှာလည်း Discrete Mathematics, Calculus, Mathematics of Computing စတဲ့ Advanced maths တွေ၊ နောင်တချိန် ဟော့ ဖြစ်လာမယ့် AI နည်းပညာ (Artificial intelligence)၊ AI နည်းပညာအတွက် အဓိကလိုအပ်တဲ့ Algorithms analysis ဘာသာရပ်တွေ၊ Software engineeringDatabase Management၊ Information security စတဲ့ Technical skills ရော Soft skills တွေပါပေးမယ့် ဘာသာရပ်အားလုံးပါဝင်ပါတယ်။

ဒီနှစ်တွေမှာဆိုရင် အပြင်မှာကွန်ပျူတာအခြေခံလို့ပြောတဲ့ Office Softwares သုံးနည်းတွေတောင် First-year level မှာကတည်းက သင်ကြားပေးနေပါပြီ။ (ဒါ ဝမ်းသာစရာပါ၊ ကွန်ပျူတာတက္ကသိုလ်တတ်ပြီး စာမရိုက်တတ်ဘူးလို့ အပြောမခံရတော့ဘူးပေါ့ 😎)

photo-1554415707-6e8cfc93fe23.jpeg


ကဲ အဲ့တော့ Physics ကို ဘာလို့သင်တာလဲ

Computer Science မှာ ဘယ်လိုအသုံးချတာလဲ။

Physics က Computer Science မှာ တကယ်အသုံးဝင်တဲ့ ဘာသာရပ်တစ်ခုပါ။ Physics အကြောင်းခဏထား Computer Science အကြောင်းအရင်ပြောမယ်။

Computer Science ဆိုတာ Web sites တွေ၊ Applications တွေ၊ Compiler theory နဲ့ Programming languages တွေကိုပဲ လုပ်နေရတဲ့အရာမဟုတ်ပါဘူး။ Computer Science မှာ Physics နဲ့ ပတ်သတ်ပြီး သုံးနေတဲ့အပိုင်းတွေက အများကြီးရယ်...

  1. Optics (အလင်းနဲ့ဆိုင်တဲ့ ပညာရပ်တွေ)
    (e.g. အနီအောက်ရောင်ခြည်၊ X-rays၊ Microwaves၊ Radio waves စတဲ့အလင်းလှိုင်းများအား အသုံးပြုပြီး Sensor နဲ့ Remote Control များ ပြုလုပ်ခြင်း)

  2. Biometrics (ဇီဝဗေဒနဲ့ပတ်သတ်တဲ့ တိုင်းတာမှုတွေနဲ့ တွက်ချက်မှုတွေ) (e.g. Biometrics authentication ဖြစ်တဲ့ Fingerprint unlocking, Face recognition, Voice Control)

  3. Astronomy (Universe နဲ့ဆိုင်သော ကိစ္စတွေ)
    (e.g. ဂြိုလ်၊ လ၊ ကြယ်တွေ၊ Galaxies (စကြဝဠာ) နဲ့ ဆိုင်တဲ့ လေ့လာရေးတွေ)

  4. Aeronautics (လေကြောင်းနဲ့ဆိုင်သော ပညာရပ်တွေ)
    (e.g. Flights, Aircrafts တွေနဲ့ Rockets လွှတ်တင်ခြင်းကိစ္စရပ်တွေ)

  5. Weather simulation (Weather condition ခန့်မှန်းမှုနဲ့ တွက်ချက်မှုများ)
    (e.g. Mathematical models တွေအသုံးပြုပြီး Supercomputers တွေနဲ့ တွက်ချက်မှုတွေ)

ဒီလိုမျိုးတွေ တည်ဆောက်ဖို့အတွက် Computer Science တစ်ခုတည်းမဟုတ်ပဲ Computer Technnology‌ ‌ေ‌တွလည်းပါဝင်ပါတယ်။ (Computer Architecture ကြီးတစ်ခုလုံးနဲ့ အထဲမှာသုံးထားတဲ့ Microprocessors တွေကလည်း Physics နဲ့ Advanced Electronics technology တွေသုံးပြီး တည်ဆောက်ထားတာပဲလေ။)

ပြီးတော့ Computer Fields မှာ Physics background ရှိတဲ့သူတွေက Programming နဲ့ ပတ်သတ်တဲ့ Problems တွေကို Solve လုပ်တဲ့နေရာမှာ အကူညီဖြစ်တယ်လို့လည်းသိရတယ်။

အဲ့တော့ လက်ရှိမှာ Physics နဲ့ပတ်သတ်ပြီး Computer ကျောင်းသားတွေအနေနဲ့ နီးနီးစပ်စပ် လက်တွေ့အသုံးချလို့ရမယ့် နေရာတွေကိုပြောပါဆိုရင်တော့ Game Development တွေပါပဲ။ အစကတော့ ကိုယ်ကိုတိုင်လည်း Physics က သိပ်မလိုဘူးထင်ခဲ့တာ ‌ကျောင်းပြီးပြီးချင်း Game Company ရောက်မှပဲ အခက်ကြုံတော့တာပဲ။

ဒါကြောင့်မို့လို့ ကိုယ်က Web apps တွေ Mobile apps တွေပဲဖန်တီးရတာ ဝါသနာပါတဲ့သူဆိုရင် Physics ကို ကျွမ်းကျင်နေဖို့ မလိုပါဘူး။


Physics က Game development မှာ ဘယ်လိုအရေးပါလဲ နည်းနည်းပြောမယ်။

ဟုတ်ပါတယ်......

Game development life ထဲ သွားမယ်ဆိုရင် Physics ကိုတော့ ကျွမ်းကျွမ်းကျင်ကျင်သိရှိနေဖို့ လိုပါတယ်။

1_81GhGbn6cnJycDP92rBDqQ.png

Tic Tac Toe (X & O two-player Paper-and-pencil game) လို game မျိုးလောက်ဆိုရင် Physics အကြောင်း ကောင်းကောင်းမသိလည်းရပေမယ့် Advanced ဖြစ်တဲ့ Video games တွေဆိုရင် Physics ကို ရှောင်လို့မရတော့ဘူး။ Flappy Bird လို game ဆိုရင်တောင် အနည်းဆုံး Gravitational acceleration နဲ့ ပတ်သတ်ပြီး နည်းနည်းစဥ်းစားရမယ်။

နောက်ထပ်တစ်ခု Angry Bird။ အဲ့လို Game မျိုးမှာဆိုရင် Gravity ကြောင့်ဖြစ်ပေါ်တဲ့ Projectile motion က Game ရဲ့ Physics concepts ‌ေ‌တွထဲက တစ်ခုပါပဲ။

88398672db15f5b15ed58c0f26747784-1024-80.jpg

Rovio entertainment company က ဖန်တီးထားတဲ့ Realistic interactions တွေပါတဲ့ Casual game တစ်ခုပါ။ Gameplay မှာရှိတဲ့ Projectile motion ကို နည်းနည်းရှင်းမယ်။

  1. Velocity
    Velocity အတွက် Horizontal motion နဲ့ Vertical motion နဲ့ဆိုပြီး ၂ ခုခွဲပြီးစဥ်းစားရပါတယ်။ Air resistance ကိုတော့ ignore လုပ်ထားပါတယ်။ Horizontal motion အတွက် speed က ကိန်းသေ (constant) ဖြစ်ပြီး Vertical motion အတွက်ကတော့ Dynamic ဖြစ်ပါတယ်။ Vertical velocity အတွက် စစချင်းပစ်လွှတ်ချိန်မှာ Initial velocity တန်ဖိုးတစ်ခုနဲ့ စတင်ပြီးတော့ Zero တန်ဖိုးအထိဖြစ်စေပြီး Zero velocity ကနေ Negative velocity အထိဆင်းမှာဖြစ်ပါတယ်။ အဲ့အတွက် Kinematics theory (v = u + at ) က အထောက်ကူပြုပေးမှာပါ။ (u - initial velocity, a - constant acceleration, t - time)

Screen Shot 2020-01-20 at 23.35.07.png

  1. Distance
    Distance လည်း Velocity လိုပါပဲ။ Horizontal distance နဲ့ Vertical distance ၂ မျိုးရှိပါတယ်။ Horizontal distance အတွက်က ရိုးရှင်းပါတယ် Horizontal velocity ကို အချိန်ရဲ့မြောက်ခြင်းနဲ့ သွားပါတယ်။ Vertical distance ကတော့ Kinematic formula ကြောင့် Vertical velocity ပေါ်မူတည်ပြီး ဖြစ်ပေါ်မှာပါ။ Initial velocity value တစ်ခုကနေ zero ၊ zero တန်ဖိုးကနေမှာ Negative value အထိဆင်းစေပြီး Distance ကိုလည်း အောက်ကိုဦးတည်စေတဲ့ Position မျိုးနဲ့သွားမှာဖြစ်ပါတယ်။

Screen Shot 2020-01-20 at 23.37.03.png

ဒီလိုမျိုးတွက်ချက်မှုတွေက Horizontal နဲ့ Vertical distance ကိုရရှိစေပြီး ပုံမှာပြထားတဲ့အတိုင်း တူညီသော Square board ဇယားပေါ်မှာ Yellow dot များဖြင့် Horizontal နဲ့ Vertical distance များကိုဖော်ပြပေးထားပါတယ်။ Horizontal အပိုင်းကဏ္ဍအတွက် ဘယ်ဘက်ကနေ ညာဘက်အထိ တူညီတဲ့အကွာအဝေးများဖြစ်စေပြီး Vertical အပိုင်းကဏ္ဍအတွက် အမြင့်ဆုံးရောက်လေလေ အကွာအဝေးတိုလေဖြစ်ပြီး ပြန်ကျပြီး အောက်ရောက်လေလေ အကွာအဝေးရှည်လေဖြစ်သည်။

အဲ့လိုနဲ့ Kinematics theory အရ (p - initial position, v - initial velocity, a - constant acceleration, t - time) တို့ပါဝင်တဲ့

( q = p + vt + 0.5a*t^2 ) Quadratic equation တစ်ခုရစေပြီး ပြည့်စုံတဲ့ Parabolic path ကိုဖြစ်ပေါ်စေပါပြီ။

aecfffb23605d73db9eb72882f17f399-970-80.jpg

Game ထဲမှာ နောက်ထပ် Physics အသုံးချမှုတွေလည်း ရှိပါသေးတယ်။ Bird က obstacles တွေကို တိုက်ရင် Nature အတိုင်းဖြစ်မယ့် Collision physics (ထိတိုက်မှု) နဲ့ Impulse (တွန်းအား) နဲ့ဆိုင်တဲ့ကိစ္စတွေရှိပါသေးတယ်။

ed16edfba101da3875607aa4cd024e6c-970-80.jpg

Screen Shot 2020-01-20 at 23.39.36.png

ပုံမှန်အားဖြင့် အခုဖော်ပြထားတဲ့ Physics concept တွေကို Game engine တွေက Support ပေးနိုင်ပေးမယ့် Specific ဖြစ်တဲ့ အခြေအနေ requirement ရှိလာပြီဆိုရင် ဒီ Concepts တွေကို နားလည်နေမှဖြစ်မှာပါ။ (ဥပမာ- Angry birds game ထဲမှာပါတဲ့ ငှက်တစ်ကောင်ချင်းစီရဲ့ Functions တွေ၊ နောက်ထပ် Rovio က ထုတ်ထားတဲ့ မတူညီတဲ့ Angry birds game အမျိုးအစားတွေလိုမျိုး)


Gaming ဆိုတာ Entertainment တစ်ခုအတွက်ပဲ မဟုတ်ပါဘူး။ ရည်ရွယ်ချက်များစွာရှိပါတယ်။

  1. Entertainment (Fun & Enjoy)
  2. Simulation (Driving, Flight, Aircraft)
  3. Teaching (Educational)
  4. Improve hand and eye coordination (Playing video games)
  5. Improve problem-solving skills
  6. Enhance memory, brain’s speed & multitasking skills** စတဲ့ အကျိုးကျေးဇူးများအတွက် ထောက်ပံ့ပေးနိုင်ပါတယ်။

Foreign မှာရှိတဲ့ Video game companies တော်တော်များများမှာဆိုရင် Physics နဲ့ Maths degree ရထားတဲ့သူတွေိကို Programmer အဖြစ်အလုပ်ခေါ်တာတွေရှိတယ်။ ဘာကြောင့်လဲဆိုတော့ တကယ့် Real-world 3D video games (God of War, Grand Theft Auto, Call of Duty) စတဲ့ Popular games တွေဆိုရင် 3D maths နဲ့ Physics တွေကို အသေးစိတ်လုပ်ရမှာမို့ပဲ ဖြစ်ပါတယ်။

ဒါကြောင့် အဲ့လို Fields တွေမှာဆိုရင် Computer Programming တစ်ခုတည်းမလုံလောက်တော့ပဲ Physics က Analytic problem-solving နဲ့ Nature ရဲ့ အခြေခံသဘောတွေကို သေချာနည်းလည်ဖို့အတွက် အထောက်ကူပြုပြီးတော့ Computer Science ဘက်ကနေ Computer ပေါ်မှာ Applications အဖြစ် တကယ့်အပြင်ကအတိုင်းဖြစ်အောင် Programming ကြရမှာပဲဖြစ်ပါတယ်။

နောက်ဆုံးအနေနဲ့ Physics ကို Computer Fields မှာ အသုံးချမှုတွေက Game development တစ်ခုတည်းသာရှိတာမဟုတ်ပါဘူး။ တခြားနယ်ပယ်အများကြီးရှိပါသေးတယ်။

IoT devices တွေ၊ Sensor ၊ Radar ၊ Drone နဲ့ Self-driving စတဲ့ နေရာတွေမှာလည်း ရှိပါသေးတယ်။ Silicon Valley တို့လို့ IT company တွေမှာတောင် Physics နယ်ပယ်မှာ Level မြင့်တဲ့သူတွေကိုသုတေသနတွေအတွက် ထားရှိနေရပါတယ်။

Screen Shot 2020-01-20 at 23.40.06.png

(C Programming ကို တီထွင်ခဲ့တဲ့ ဂုရုကြီး Dennis Ritchie သည်လည်း Harvard တက္ကသိုလ်မှ Physics Degree ရရှိထားသူဖြစ်ပါသည်)

ဒါကြောင့် နောက်ပိုင်း Level မြင့်လာတဲ့အခါမှာ Physics ရယ် Computer Science ရယ်လို့ မခွဲတော့ပဲ Overlap တွေဖြစ်လာမှာဖြစ်တဲ့အတွက်ကြောင့် Computer ကျောင်းသားတွေအနေနဲ့ Physics ကို တစ်နှစ်တည်းသင်ရမှာဖြစ်လို့ သေချာအားစိုက်သင့်ပါတယ်။

Screen Shot 2020-01-20 at 23.44.28.png

Resources:

techradar.com/news/software/applications/th..

wired.com/2010/10/physics-of-angry-birds

wired.com/2017/01/move-coders-physicists-wi..

en.wikipedia.org/wiki/Game_physics

gamedesigning.org/learn/game-physics