10306103 หลักการเขียนโปรแกรมเบื้องต้น (Fundamentals of Programming)
วิชา หลักการเขียนโปรแกรมเบื้องต้น (Fundamentals of Programming) ปูพื้นฐานการเขียนโปรแกรมให้คุณตั้งแต่วิธีคิด ไม่ใช่แค่ไวยากรณ์ เริ่มจากการวิเคราะห์ปัญหาและออกแบบขั้นตอนวิธี แล้วลงมือเขียน คอมไพล์ และทดสอบโปรแกรมด้วยภาษา C ภาษาเดียวตลอดวิชา คุณจะค่อย ๆ สะสมทักษะจากตัวแปรและโครงสร้างควบคุม ไปจนถึงฟังก์ชัน โครงสร้างข้อมูล การทดสอบ และการพัฒนาโปรแกรมที่มีคุณภาพโค้ดตามมาตรฐาน
วิชานี้เป็นวิชาเฉพาะด้านของหลักสูตร วท.บ. เทคโนโลยีสารสนเทศ คณะวิทยาศาสตร์ มหาวิทยาลัยแม่โจ้ (หลักสูตร OBE2 ฉบับปรับปรุง พ.ศ. 2570) จำนวน 3 หน่วยกิต (2–3–5) และไม่มีวิชาบังคับก่อน เนื้อหาแบ่งเป็น 15 บท ตามภาคการศึกษา 15 สัปดาห์ แต่ละบทจัดทำเป็นคู่มือการสอน แสดงแผนบริหารการสอนประจำบท เนื้อหาสามระดับความลึก และปฏิบัติการพร้อมโค้ดภาษา C ที่ทดสอบจริง ส่วนเฉลยและแผนเวลาอยู่ในบล็อกสำหรับผู้สอน
ลำดับการเรียน
- บทนำ: ปัญหา การคิดเชิงอัลกอริทึม และกระบวนการพัฒนาโปรแกรม — การคิดเชิงอัลกอริทึม ผังงานและรหัสเทียม และการเขียน คอมไพล์ รันโปรแกรมภาษา C โปรแกรมแรกตามมาตรฐานโค้ด
- ตัวแปร ชนิดข้อมูล ค่าคงที่ และนิพจน์ — ชนิดข้อมูลพื้นฐาน การประกาศตัวแปร ตัวดำเนินการ การคำนวณนิพจน์ และการแปลงชนิดข้อมูล
- การรับเข้าและการแสดงผล — ตัวระบุรูปแบบและการจัดรูปแบบของ
printfและการรับข้อมูลด้วยscanf - โครงสร้างควบคุมแบบทางเลือก —
if,if-else, เงื่อนไขซ้อน,switchและตัวดำเนินการเปรียบเทียบ/ตรรกะ - โครงสร้างควบคุมแบบวนซ้ำ —
for,while,do-whileและการใช้break/continue - ฟังก์ชันและการออกแบบแบบโมดูล — การประกาศและเรียกใช้ฟังก์ชัน พารามิเตอร์แบบ by value ขอบเขตตัวแปร และการแบ่งงานเป็นโมดูล
- อาร์เรย์ — อาร์เรย์หนึ่งมิติและสองมิติ การประมวลผลด้วยลูป และการส่งอาร์เรย์เข้าฟังก์ชัน
- การจัดการสตริง — สตริงในฐานะอาร์เรย์ของอักขระ ฟังก์ชันใน
string.hและการอ่านทั้งบรรทัดด้วยfgets - โครงสร้างข้อมูลแบบระเบียน (struct) — การนิยาม
structการเข้าถึงสมาชิก อาร์เรย์ของระเบียน และการส่งระเบียนเข้าฟังก์ชัน - เทคนิคการแก้ปัญหา: การเรียงลำดับและการค้นหา — selection sort การค้นหาเชิงเส้นและแบบทวิภาค พร้อมแนวคิดประสิทธิภาพ
- การดีบักและการทดสอบระดับหน่วย — ชนิดข้อผิดพลาด การไล่หาจุดบกพร่อง การทดสอบระดับหน่วย และ
assert - การวัดประสิทธิภาพเบื้องต้นและคุณภาพโค้ด — การนับรอบ การจับเวลาด้วย
clock()และหลักคุณภาพโค้ด - มาตรฐานการเขียนโค้ดและแนวคิดการจัดการเวอร์ชัน — การจัดย่อหน้า การตั้งชื่อ คอมเมนต์ และข้อความ commit ที่สื่อความหมาย
- จริยธรรมทางวิชาการและความซื่อสัตย์ในการพัฒนาโค้ด — การพัฒนาโค้ดด้วยความเข้าใจของตนเอง การหลีกเลี่ยงการคัดลอก และการอ้างอิงอย่างซื่อสัตย์
- โครงงานบูรณาการ — พัฒนาโปรแกรมที่มีคุณภาพแบบครบวงจร โดยบูรณาการทักษะจากทุกบท
เผยแพร่บทเรียนและจัดชุดสอนพร้อมใช้ครบทั้ง 15 บทแล้วเมื่อ 23 ตุลาคม 2569 เพิ่มใบงาน กรณีศึกษา ตัวอย่าง และรายการตรวจส่งงาน โดยตรวจแหล่งปฐมภูมิและทดสอบโปรแกรมประกอบตามขอบเขตที่ระบุในแต่ละบท
แต่ละบทมีแผนบรรยาย 120 นาทีและปฏิบัติการ 180 นาที พร้อมแนวคำตอบในส่วนผู้สอน เวลาเหล่านี้เป็นแผนจัดกิจกรรม ไม่ใช่เวลาที่จับจากการอ่านหรือการสอนจริง
ลำดับ 15 บทคงตามมติผู้สอน 21 ต.ค. 2569 แผนคะแนนปรับตามมติผู้สอน 30 ต.ค. 2569 โดยใช้รูบริกในบทที่ 14–15 ก่อนใช้ประเมินให้เติมประกาศความช่วยเหลือ/AI และระเบียบจริงในบทที่ 14
การวัดผล
| หมวด | น้ำหนัก | วิธีคิด |
|---|---|---|
| การเข้าเรียน | 10% | มา 1 · สาย 0.5 · ขาด 0 · ลาไม่นับคาบนั้น |
| ใบงานบทที่ 1–13 | 15% | ชิ้นละ 10 คะแนน (LLO หลักข้อละ 3 และ LLO มาตรฐานโค้ด 1) ทุกชิ้นน้ำหนักเท่ากัน |
| ความซื่อสัตย์บทที่ 14 (C14-WS01) | 5% | LLO14.1–14.3 ข้อละ 10 รวม 30 คะแนน; คะแนนที่ได้ / 30 × 5 |
| ชุดฝึกท้ายบท 15 ชุด | 5% | ใช้คะแนนดีที่สุดที่ทำก่อนกำหนดของแต่ละชุด |
| แบบฝึกหัดวัดความเข้าใจ 15 ชุด | 15% | ทำในรอบสอบของแต่ละบท ผู้สอนตรวจ ใช้คะแนนดีที่สุดที่ส่งก่อนกำหนด |
| สอบกลางภาค | 20% | สอบในระบบ หรือผู้สอนกรอกคะแนน |
| สอบปลายภาค | 20% | สอบในระบบ หรือผู้สอนกรอกคะแนน |
| โครงงานบูรณาการ (บทที่ 15) | 10% | C15-WS01 รวม 20 คะแนน: ก 7 · ข 7 · ค 2 · ง 4 ทุกข้อเป็นคะแนน |
การสรุป CLO4: CLO4 สรุปผลแบบถ่วงน้ำหนัก เป้าหมาย 60% เพื่อสะท้อนผลการเรียนรู้เท่านั้น ไม่เป็นเงื่อนไขผ่านรายวิชา และไม่ทำให้ได้เกรด I โดยอัตโนมัติ
- จุดตรวจที่ 1 (บทที่ 1): แบบรับทราบจริยธรรมและข้อตกลง AI — ให้ข้อเสนอแนะเท่านั้น ไม่คิดคะแนน
- จุดตรวจที่ 2 (บทที่ 7): ทบทวนประวัติโค้ดและแหล่งอ้างอิงก่อนกลางภาค — ให้ข้อเสนอแนะเท่านั้น ไม่คิดคะแนน
- บทที่ 14–15: ใบงาน C14-WS01 คิดในหมวดความซื่อสัตย์ 5%; ข้อ ค ของ C15-WS01 ได้ 2 จาก 20 คะแนนโครงงาน ไม่เป็นด่านผ่าน/ไม่ผ่าน
ใช้รูบริกนี้กับงานที่ประกาศเกณฑ์ก่อนส่ง ไม่แปลงผลผ่าน/ไม่ผ่านเดิมเป็นคะแนนย้อนหลังโดยอัตโนมัติ ผู้สอนต้องตรวจหลักฐานและบันทึกคะแนนตามเกณฑ์ที่ประกาศ
ส่งช้า: หัก 10% ของคะแนนงานชิ้นนั้นต่อสัปดาห์ที่ช้า สูงสุด 50% และรับงานถึงสิ้นสัปดาห์ที่ 15 งานที่ผู้สอนส่งกลับให้แก้นับเวลาจากการส่งครั้งแรก
กำหนดส่ง: งานของบทที่ N ส่งภายใน 23:59 น. ของวันก่อนวันสอนในสัปดาห์ถัดไป ใบงานนับจากวันปฏิบัติการของตอนเรียน ส่วนชุดฝึกและแบบฝึกหัดวัดความเข้าใจนับจากวันบรรยาย ดูวันที่จริงได้ในห้องเรียนออนไลน์
เกรด: A ≥ 80 · B+ ≥ 75 · B ≥ 70 · C+ ≥ 65 · C ≥ 60 · D+ ≥ 55 · D ≥ 50 · F < 50
นักศึกษาดูคะแนนรายหมวด คะแนนสะสม และผลลัพธ์การเรียนรู้ราย CLO ของตนเองได้ที่หน้า “คะแนนของฉัน” ในห้องเรียนออนไลน์ของรายวิชา คะแนนใบงาน ชุดฝึก และการเข้าเรียนแสดงทันทีที่ผู้สอนตรวจ ส่วนสอบและโครงงานแสดงเมื่อผู้สอนประกาศ
หัวข้อเสริม
หัวข้อเหล่านี้อยู่นอกขอบเขตหลักของวิชา ใช้เมื่อมีเวลาเหลือหรือเลือกเป็นหัวข้อค้นคว้าด้วยตนเอง เพื่อต่อยอดก่อนขึ้นวิชาแนวคิดเชิงวัตถุ (10306213)
- ตัวชี้ (pointer) และความสัมพันธ์กับอาร์เรย์
- การจองหน่วยความจำแบบพลวัต (
malloc/free) - การอ่านและเขียนไฟล์ (file I/O)