លំហសិក្សាកម្ពុជា លំហសិក្សាកម្ពុជា V1.0
ចូល ចុះឈ្មោះ

កិច្ចការផ្ទះ

មូលសង្ខេប / Abstract

Lesson 01: Expert system This assignment introduces Expert System Development as a discipline that goes beyond simple keyword search. An expert system uses a knowledge base of IF–THEN rules, written from expert knowledge, and an inference engine that applies those rules to specific cases to reach conclusions and recommendations. The assignment illustrates this with Python programming errors. It classifies errors into three types: Syntax Errors, which Python detects before execution; Runtime Errors, which appear during execution; and Logic Errors, which produce no error message and can only be found by comparing actual output with the specification. Three short case studies are presented, each with code, evidence, expected and actual results, error type, cause, and a hint. The assignment concludes that Logic Errors require a clear specification to be identified, and it asks students to support their claims with IEEE-style references.

ពាក្យគន្លឹះ

កិច្ចការផ្ទះ (Homework 01)

ប្រធានបទ ៖ “ ការកំណត់កំហុស​ Python និងភស្តុតាងសម្រាប់ការបង្កើត Expert System ”

១.​HW1.1 -សេចក្ដីពន្យល់ជាភាសាខ្មែរ តើ Expert System ខុសពីកម្មវិធីរកពាក្យគន្លឹះធម្មតាយ៉ាងដូចម្ដេច ?
ចូរលើកឧទាហរណ៍ពីការរៀន
Python មកបញ្ជាក់ឱ្យបានមួយយ៉ាងតិចតាមប្រភពផ្លូវការ។

ចម្លើយ ៖
មុននឹងឈានដល់ការពន្យល់យើងត្រូវយល់ដឹងអំពី កម្មវិធីរកពាក្យគន្លឹះ និង Expert System ជាមុនសិន។
_កម្មវិធីរកពាក្យគន្លឹះ ឬក៏យើងអាចហៅបានថាជា (Keyword Search) គឺជាការស្វែងរកទិន្នន័យដែលដូចគ្នាបេះបិទ ហើយវាមិនយល់ន័យ ឬអាចសម្រេចចិត្តបានឡើយ។ ឧទាហរណ៍ថា យើងចូលទៅ Google ដើម្បី Search រកអ្វីមួយ។ ឥឡូវគិតថាអ្នករកមើលពាក្យថា Learn នោះវានឹងបង្ហាញប្រធានបទផ្សេងដូចជា Learn code, Learning, Learn English ជាដើម។ ទាំងនេះមានន័យថាវាចាប់យកតែឯកសារណាដែលមានពាក្យ Learn ប៉ុណ្ណោះ។
ឧទាហរណ៍ដោយប្រើកូដក្នុង
Python៖
code = """
score = 65
if score >=50:
       print("Pass")

if score >=80:
      print("Excellent")
"""
keyword = "if"


for line in code.splitlines():
      if keyword in line:
          print(line)


លទ្ធផលដែលចេញមក៖
if score >=50:
if score >=80:

>បកស្រាយកូដ
.
code គឺជាអត្ថបទកូដ Python ដែលយើងចង់ស្វែងរក។
.keyword = "if" គឺជាពាក្យដែលយើងចង់រក។
.splitlines() បំបែកអត្ថបទជាបន្ទាត់ៗ [1]។
.if keyword in line ពិនិត្យថា បន្ទាត់នោះមានពាក្យ if ឬអត់។
.
print(line) បង្ហាញបន្ទាត់ដែលមានពាក្យនោះ។

ដំណើរការកូដប្រព្រឹត្តទៅដោយ
១.ដំបូងឡើយកូដបានដំណើរការដោយប្រើពាក្យដែលត្រូវរកគឺ
if ដែលយើងបានតាំងវានៅក្នុងកូដជា Keyword។ ហើយ
    បន្ទាប់មកនៅពេលដែលវាបានរកឃើញ វានឹងចាប់យកតែជួរណាដែលមានពាក្យ
if ហើយកាត់ផ្តាច់ជួរ
    នោះចេញពីគេមកឈរតែម្នាក់ឯងដោយសារ មុខងារ
splitlines() [1]។ ក្រោយមកយើងក៏ទទួលបានលទ្ធផលដូចដែល
​    បានបង្ហាញខាងលើ។
ចំណុចសំខាន់ដែ
លយើងគួរដឹងត្រង់ចំណុចនេះគឺ៖
កម្មវិធីបានរកឃើញ
if ប៉ុន្តែវាមិនបានយល់ថាតើវាមានគោលបំណងអ្វីឬបង្កើតឡើងសម្រាប់អ្វីឡើយ។

_ Expert System (ឬប្រព័ន្ធអ្នកជំនាញ) គឺជាប្រព័ន្ធ AI ដែលមាន ចំណេះដឹង (knowledge base) ជាច្បាប់ IF–THEN ដែលមនុស្សជាអ្នកជំនាញបានកំណត់ និង ម៉ាស៊ីនអនុមាន (inference engine) ដែលយកច្បាប់ទាំងនោះមកអនុវត្តលើករណីជាក់លាក់ ដើម្បីផ្តល់ការសន្និដ្ឋាន [2]។ ប្រព័ន្ធ AI នេះត្រូវបានគេបង្កើតឡើងដោយផ្អែកលើគោលការណ៍សំខាន់ៗមួយចំនួន ដែលរួមមាន ចំណេះដឹងពិតប្រាកដ (Knowledge Base), ការពិតជាក់ស្ដែង (Facts), ភស្តុតាង ច្បាប់ និងលក្ខខណ្ឌពិតប្រាកដ ដើម្បីធ្វើការសន្និដ្ឋាន (Inference Engine) [2] ហើយចុងក្រោយគឺសេចក្ដីពន្យល់
(​
Explanation Facility) ។

ឧទាហរណ៍ទី ១៖
ស្រមៃមើលថាយើងមានអាការៈដូចជា៖
.ក្ដៅ
.ក្អក
.ឈឺក្បាល
ហើយនៅពេលដែលយើងបញ្ចូលវាទៅប្រព័ន្ធ វានឹងអនុវត្តតាមច្បាប់ដែលគេកំណត់ថា
IF fever = YES
AND cough = YES
AND headache = YES

THEN possible flu

កន្លែងនេះមានន័យថា៖
បើសិនជាយើងក្ដៅខ្លួន ឈឺក្បាល និងក្អក
នោះវានឹងបង្កើតការសន្និដ្ឋានថាយើងអាចនឹងមានជំងឺផ្ដាសាយ។
ប៉ុន្តែចូ
រចាំថាវាគ្រាន់តែដើរតាមច្បាប់ដែលគេកំណត់មក វាមិនមែនជាការវិនិច្ឆ័យពិតប្រាកដទេ។

ដូច្នេះយើងនឹងសន្និដ្ឋានអំពីភាពខុសគ្នារវាង ការស្វែងរកពាក្យគន្លឹះ និង
Expert System

ចំណុចប្រៀបធៀប

Keyword Search

Expert System

និយមន័យ

កម្មវិធីស្វែងរកពាក្យដែលដូចគ្នាក្នុងអត្ថបទ ឬទិន្នន័យ

ប្រព័ន្ធ AI ដែលប្រើចំណេះដឹង និងច្បាប់ដើម្បីដោះស្រាយបញ្ហា

របៀបធ្វើការ

ស្វែងរកពាក្យដែលត្រូវគ្នា

វិភាគព័ត៌មានដោយប្រើច្បាប់ IF–THEN

ការយល់ដឹង

មិនយល់អត្ថន័យនៃព័ត៌មានទេ

ប្រើចំណេះដឹងដែលបានកំណត់ដើម្បីសន្និដ្ឋាន

ការសម្រេចចិត្ត

មិនធ្វើការសម្រេចចិត្តទេ

អាចផ្តល់ការសន្និដ្ឋាន ឬដំបូន្មាន

ធាតុសំខាន់

ពាក្យគន្លឹះ (Keyword)

Knowledge Base និង Inference Engine

ឧទាហរណ៍

ស្វែងរកពាក្យ if ក្នុងឯកសារ Python

ប្រព័ន្ធជួយពិនិត្យជំងឺអ្នកជំងឺ

លទ្ធផល

បង្ហាញបន្ទាត់ ឬអត្ថបទដែលមានពាក្យ

ផ្តល់លទ្ធផលវិភាគ ឬដំបូន្មាន

 

 

 

 

២. HW1.2 - ​បង្កើតករណីខ្លីៗ ៣ ដោយសម្រាប់ករណីនីមួយៗ បង្ហាញ Code Snippet, Evidence, Expected/Actual Result ប្រសិនបើពាក់ព័ន្ធ, Error Type, Cause និង Hint 1 ។​កុំយកករណីដែលមិនអាចពន្យល់ដោយភស្តុតាង។

ក. Syntax Error

ខ​. Runtime Error

​គ. Logic Error

ចម្លើយ៖

ក. Syntax Error

Field

បំពេញ

Case ID

ក. PY-001

Exercise / Specification

បង្ហាញថាPass ប្រសិនបើពិន្ទុ ≥ 50 (លក្ខខណ្ឌ: score >= 50)

Code Snippet / Input

python<br>score = 65<br>if score >= 50<br> print('Pass')

Evidence

SyntaxError: expected ':'

Expected / Actual Result

Expected: Pass · Actual: កូដមិនដំណើរការសោះ (error មុនដំណើរការ)

Error Type

Syntax Error

Cause

បន្ទាត់ if ខ្វះ colon : នៅចុងលក្ខខណ្ឌ

Hint 1

បន្ថែម : នៅចុងបន្ទាត់ if

Reference / Verified By

Python Docs – Compound statements: https://docs.python.org/3/reference/compound_stmts.html (ពិនិត្យដោយការរត់កូដ) [3], [4]

 

ខ. Runtime Error

Field

បំពេញ

Case ID

ខ. PY-002

Exercise / Specification

បង្ហាញ Pass ប្រសិនបើពិន្ទុ ≥ 50 (ពិន្ទុទទួលពីអ្នកប្រើ)

Code Snippet / Input

python<br>score = input("Enter score: ") # ឧទាហរណ៍បញ្ចូល 65<br>if score >= 50:<br> print('Pass')

Evidence

TypeError: '>=' not supported between instances of 'str' and 'int'

Expected / Actual Result

Expected: Pass · Actual: កម្មវិធីឈប់នៅបន្ទាត់ if

Error Type

Runtime Error

Cause

input() ត្រឡប់ជា string ("65") ប៉ុន្តែលក្ខខណ្ឌប្រៀបធៀបជាមួយលេខ 50

Hint 1

បម្លែងតម្លៃទៅជាលេខជាមុនសិន ដោយប្រើ int(score)

Reference / Verified By

Python Docs – Built-in Functions (input, int): https://docs.python.org/3/library/functions.html (ពិនិត្យដោយការរត់កូដ) [3], [5]


គ. Logic Error

Field

បំពេញ

Case ID

គ. PY-003

Exercise / Specification

បង្ហាញ Pass ប្រសិនបើពិន្ទុ ≥ 50 (ពិន្ទុ 50 ត្រូវតែជាប់)

Code Snippet / Input

python<br>score = 50<br>if score > 50:<br> print('Pass')<br>else:<br> print('Fail')

Evidence

Expected output: Pass · Actual output: Fail (គ្មាន error message)

Expected / Actual Result

Expected: Pass · Actual: Fail

Error Type

Logic Error

Cause

ប្រើ > ជំនួស >= ដូច្នេះពិន្ទុ 50 មិនត្រូវបានរាប់ថាជាប់

Hint 1

ពិនិត្យតម្លៃព្រំដែន (boundary): តើ 50 គួរតែ Pass ឬ Fail?

Reference / Verified By

Python Docs – Comparisons: https://docs.python.org/3/reference/expressions.html#comparisons (ពិនិត្យដោយការរត់កូដ) [6]

 

៣. HW1.3 -​សរសេរចម្លើយ៖
     មូលហេតុចំបងបំផុតដែល
Logic Error ត្រូវការលក្ខខណ្ឌលំហាត់គឺដើម្បីប្រៀបធៀបលទ្ធផលដែលកម្មវិធីផ្ដល់ឱ្យជាមួយលទ្ធផលដែលគួរតែទទួលបាន។ វាមិនបានបង្ហាញយើងថាកំហុសបានកើតឡើងទេ តែលទ្ធផលដែលទទួលបានខុសពីការរំពឹងទុក ដូច្នេះជាដាច់ខាតយើងត្រូវតែមានលក្ខខណ្ឌច្បាស់លាស់។
_ ដូច្នេះប្រព័ន្ធគួរតែឆ្លើយតបទៅនឹងករណីដែលភស្តុតាងមិនគ្រប់គ្រាន់ គឺនៅពេលដែលព័ត៌មានដែលអ្នកប្រើប្រាស់ ឬយើងបានផ្ដល់ទៅឱ្យប្រព័ន្ធនោះ មិនទាន់គ្រប់គ្រាន់ដើម្បីឱ្យវាសម្រេចចិត្ត។

សំណួរសំខាន់ដែលប្រព័ន្ធត្រូវការសម្រាប់កំណត់ថា៖
.តើកម្មវិធីរបស់យើងត្រូវធ្វើអ្វី?
.តើ
លទ្ធផលដែលចេញមកនោះមានលក្ខណៈយ៉ាងដូចម្ដេច?
.តើលទ្ធផលចេញមក
វាខុសពីអ្វីដែលយើងចង់បានឬអត់?
ឥឡូវយើងលើកឧទាហរណ៍មួយ៖
បើតាមជាង
ពេលកុំព្យូទ័របើកមិនដំណើរការ ហើយឆ្នាំងសាកថ្មរបស់វាដោតហើយភ្លើងមិនចូល ដូច្នេះគេសន្និដ្ឋានថាកុំព្យូទ័រនោះខូចឆ្នាំងសាកថ្ម។
តែ
ពេលយើងសួរទៅអតិថិជន គាត់ប្រាប់ថា កុំព្យូទ័របើកមិនដំណើរការ ហើយរឿងឆ្នាំងសាកនោះគាត់មិនច្បាស់ថាសាកចូលឬអត់ដែរ។

ដូច្នេះត្រង់ចំណុចនេះ ទោះបីជា
System ឬជាងក៏ដោយ ក៏គេមិនអាចសម្រេចបានដែរថាកុំព្យូទ័រខូច ឬឆ្នាំងសាកខូច។
ដូច្នេះចុងក្រោយ យើងសន្និដ្ឋានបានថា ភស្តុតាងមិនទាន់គ្រប់គ្រាន់សម្រាប់ធ្វើការសន្និដ្ឋាន។

ផ្ទុយទៅវិញ យើងអាចសួរបន្ថែមថាឆ្នាំងសាកថ្មនោះដំណើរការឬអត់?

 

សេចក្តីប្រកាសអំពីការប្រើប្រាស់ AI (AI Usage Disclosure)

ក្នុងការធ្វើកិច្ចការផ្ទះនេះ ខ្ញុំបានប្រើជំនួយពី AI ដូចខាងក្រោម៖

·       [ChatGPT / Microsoft Copilot] ត្រូវបានប្រើដើម្បីជួយឱ្យខ្ញុំយល់អំពីគំនិតនៃ Expert System, Keyword Search និងប្រភេទកំហុសក្នុង Python ព្រមទាំងជួយកែលម្អការពន្យល់ឱ្យកាន់តែច្បាស់។

·       Claude (Anthropic) ក្នុង Microsoft Word ត្រូវបានប្រើដើម្បីជួយកែអក្ខរាវិរុទ្ធ វេយ្យាករណ៍ និងទម្រង់អត្ថបទ ព្រមទាំងរៀបចំឯកសារយោង និងការដកស្រង់ក្នុងអត្ថបទតាមរចនាប័ទ្ម IEEE។

ខ្ញុំបានពិនិត្យខ្លឹមសារ កូដ និងប្រភពឯកសារយោងទាំងអស់ដោយខ្លួនឯង ហើយគំនិត និងការពន្យល់សំខាន់ៗនៅក្នុងកិច្ចការនេះ គឺជារបស់ខ្ញុំផ្ទាល់។
Samath pannharoth

 

ឯកសារយោង (References)

[1]       Python Software Foundation, “Built-in Types: str.splitlines(),” The Python Standard Library, Python 3 Documentation. Accessed: Oct. 23, 2026. [Online]. Available: https://docs.python.org/3/library/stdtypes.html#str.splitlines

[2]       Encyclopaedia Britannica, “Inference engine,” Encyclopædia Britannica. Accessed: Oct. 23, 2026. [Online]. Available: https://www.britannica.com/technology/inference-engine

[3]       Python Software Foundation, “Errors and Exceptions,” The Python Tutorial, Python 3 Documentation. Accessed: Oct. 23, 2026. [Online]. Available: https://docs.python.org/3/tutorial/errors.html

[4]       Python Software Foundation, “Compound statements,” The Python Language Reference, Python 3 Documentation. Accessed: Oct. 23, 2026. [Online]. Available: https://docs.python.org/3/reference/compound_stmts.html

[5]       Python Software Foundation, “Built-in Functions,” The Python Standard Library, Python 3 Documentation. Accessed: Oct. 23, 2026. [Online]. Available: https://docs.python.org/3/library/functions.html

[6]       Python Software Foundation, “Expressions: Comparisons,” The Python Language Reference, Python 3 Documentation. Accessed: Oct. 23, 2026. [Online]. Available: https://docs.python.org/3/reference/expressions.html#comparisons

 

 

កិច្ចការផ្ទះ.pdf
PDF ឯកសារ
ទាញយក អាន
ចែករំលែក 3
រក្សាទុក
link: 2 telegram: 1
ការផ្សព្វផ្សាយ
ការផ្សព្វផ្សាយ
មតិយោបល់ 0
ចូលគណនី ដើម្បីបញ្ចេញមតិ