Module 1

Course Orientation & Introduction to Programming

วันนี้เราจะเรียนรู้ 🎓

  1. แนะนำเกี่ยวกับวิชา — E-Learning, แผนการเรียน, การวัดผล
  2. ภาษาคอมพิวเตอร์ — ชนิดและเครื่องมือพัฒนาโปรแกรม
  3. เริ่มเขียน Python — สร้างและสั่งโปรแกรมทำงาน
  4. การทำ Lab ที่ exam.cmu.ac.th
  5. ใช้ AI ช่วยเรียนอย่างไรให้ได้ผล
print('Hello World')
print(f'9x9 = {9*9}')
Hello World
9x9 = 81

Tip

วิชานี้ใช้ภาษา Python 🐍

แนะนำเกี่ยวกับวิชา 📋

Course Orientation

Objectives

แนะนำเกี่ยวกับวิชา

  • ระบบ E-Learning, ช่องทางติดต่อ
  • แผนการเรียน, เอกสารประกอบการสอน

แนะนำเกี่ยวกับภาษาคอมพิวเตอร์

  • ชนิดของภาษาคอมพิวเตอร์
  • เครื่องมือในการพัฒนาโปรแกรม

เริ่มต้นเขียนโปรแกรมด้วย Python

  • การสร้างโปรแกรม
  • การสั่งโปรแกรมทำงาน (run)

การทำ Lab ของวิชานี้

E-learning Enrollment Code

Important

นศ. ที่ยังเข้าวิชานี้ใน exam.cmu.ac.th ไม่ได้ ให้ใช้ Enrollment Code ต่อไปนี้

XXXXXX

มาโหวตกันหน่อย 📱

คุณเคยเขียนโปรแกรมมาก่อนหรือไม่? — สแกน QR เพื่อโหวต ผลขึ้นสด ๆ 👉

👆 สแกนเพื่อโหวต

ภาษาคอมพิวเตอร์ 💬

Programming Language Overview

ภาษาระดับสูง vs ระดับล่าง

เราใช้ภาษาคอมพิวเตอร์ (Programming Languages) อธิบายสิ่งที่ต้องการให้เครื่องคอมพิวเตอร์ทำงาน

ภาษาระดับสูง (High Level)

  • ใกล้เคียงภาษามนุษย์ ทำความเข้าใจได้ไม่ยาก
  • ต้องผ่านการแปลภาษา (compile/interpret) ให้เป็นภาษาเครื่อง (Machine Code) ที่คอมพิวเตอร์เข้าใจเสียก่อน โปรแกรมจึงจะทำงานได้
  • ภาษาที่นิยมทั่วไป ได้แก่ C, C++, C#, Java, Python, JavaScript

Tip

โปรแกรมเดียวกันเขียนได้หลายภาษา — แนวคิดเหมือนกัน ต่างแค่ syntax (ดูตัวอย่างหน้าถัดไป 👉)

“Hello World” เดียวกัน — เขียนได้หลายภาษา

แนวคิดเหมือนกัน ต่างแค่ syntax — สังเกตว่า Python สั้นและอ่านง่ายที่สุด 🐍

print('Hello World')
print(f'9x9 = {9*9}')
#include <stdio.h>

int main() {
  printf("Hello World\n");
  printf("9x9 = %d\n", 9*9);
}
#include <iostream>

int main() {
  std::cout << "Hello World\n";
  std::cout << "9x9 = " << 9*9;
}
using System;

class Program {
  static void Main() {
    Console.WriteLine("Hello World");
    Console.WriteLine($"9x9 = {9*9}");
  }
}
public class Program {
  public static void main(String[] args) {
    System.out.println("Hello World");
    System.out.println("9x9 = " + (9*9));
  }
}
console.log("Hello World");
console.log(`9x9 = ${9*9}`);
package main

import "fmt"

func main() {
  fmt.Println("Hello World")
  fmt.Printf("9x9 = %d\n", 9*9)
}
fn main() {
  println!("Hello World");
  println!("9x9 = {}", 9*9);
}
disp('Hello World')
fprintf('9x9 = %d\n', 9*9)

ภาษาระดับล่าง (Low Level)

  • รูปแบบภาษาต่างจากภาษามนุษย์ค่อนข้างมาก ได้แก่ภาษา Assembly และ ภาษาเครื่อง (Machine Code)
  • เป็นภาษาที่ทำงานได้กับ Processor ของคอมพิวเตอร์แบบเจาะจง
    • ผูกกับชนิดของ CPU และ Hardware อื่น ๆ ที่ประกอบกันเป็นเครื่องคอมพิวเตอร์

คำนวณ 9 * 9 เดียวกัน เขียนด้วยภาษาระดับล่างบน CPU x86-64

Assembly — x86-64 (Intel syntax)

mov  eax, 9     ; eax = 9
imul eax, 9     ; eax = eax * 9
                ; → 81

Machine Code (ฐานสิบหก)

B8 09 00 00 00
6B C0 09

ถอดรหัสทีละไบต์ (แต่ละไบต์ = ตัวเลขฐานสิบหก 1 ค่า)

  • B8 = คำสั่ง “โหลดค่าคงที่ลงรีจิสเตอร์ eax” · 09 00 00 00 = เลข 9 เก็บแบบ 32 บิต (ไบต์ต่ำมาก่อน — little-endian)
  • 6B = คำสั่ง imul (คูณจำนวนเต็มด้วยค่าคงที่) · C0 = ระบุให้ใช้ eax · 09 = ตัวคูณ 9 → ได้ eax = 81

Note

สังเกตว่าแค่คูณเลข 2 ตัว ก็ต้องสั่งงาน CPU ทีละขั้น — ยิ่งใกล้ภาษาเครื่อง ยิ่งอ่านยากสำหรับมนุษย์

Block coding คืออะไร — แล้วทำไมเราใช้ text-based

ภาพ: “Scratch 3.0 screenshot” โดย Blink456 (Scratch by MIT) · CC BY-SA 4.0

Block coding = ต่อ “บล็อก” คำสั่งเข้าด้วยกันเหมือนต่อจิ๊กซอว์ (เช่น Scratch)

✅ จุดเด่น

ไม่ต้องจำหรือพิมพ์ syntax — ลากวางบล็อกได้เลย เหมาะกับผู้เริ่มต้นมาก

❌ ทำไมวิชานี้ไม่ใช้

  • ยืดหยุ่นน้อย — โปรแกรมใหญ่/ซับซ้อนขึ้นจะอืดและเทอะทะ
  • ไม่ใช่แบบที่ใช้จริงในงานวิศวกรรมและอุตสาหกรรม

Tip

เราจึงใช้ text-based coding ด้วย Python (แบบที่เห็นในสไลด์ก่อนหน้า) — พิมพ์เป็นข้อความตาม syntax แต่ทรงพลังและใช้ได้จริง 🐍

ทำไมต้อง Python? 🐍

Python เป็นภาษาที่ได้รับความนิยมสูงที่สุดในโลก จากหลายดัชนีชี้วัด

  • PYPL Index — Python ~47% นำ Java (อันดับ 2) กว่า 4 เท่า (ก.ค. 2026)
  • GitHub Octoverse 2024 — Python แซง JavaScript ขึ้นเป็นภาษาที่ถูกใช้มากที่สุดบน GitHub (ครั้งแรกในรอบ 10 ปี)
  • TIOBE Index — Python ครองอันดับ 1 ต่อเนื่องหลายปี
  • Stack Overflow Survey — Python ติดกลุ่มภาษาที่นักพัฒนาอยากใช้มากที่สุด

ที่มา: TIOBE · PYPL · GitHub Octoverse · Stack Overflow Survey · IEEE Spectrum — อันดับเปลี่ยนแปลงตามเวลา

ทักษะที่สำคัญสำหรับการเขียนโปรแกรม

Computational Thinking

  • แบ่งปัญหาซับซ้อนเป็นส่วนย่อยที่จัดการง่ายขึ้น
  • สร้างขั้นตอนแก้ปัญหาอย่างเป็นลำดับ

Coding

  • รู้จัก syntax และโครงสร้างภาษา
  • ใช้ลูป เงื่อนไข ฟังก์ชัน คุมการทำงาน
  • ระบุและแก้บั๊ก (debug) ได้

Mathematics

  • เข้าใจการดำเนินการทางคณิตศาสตร์พื้นฐาน
  • ใช้ตัวแปรและนิพจน์แก้ปัญหา
  • ใช้แนวคิดคณิตศาสตร์พัฒนาอัลกอริทึม

Note

เจาะลึก Computational Thinking ต่อได้ที่ Module 2 👉

เครื่องมือพัฒนาโปรแกรม 🛠️

Tools for Software Development

เครื่องมือพื้นฐาน 3 อย่าง

✏️ Text Editor

สร้างไฟล์โค้ด (.py, .c, .java, …) เช่น Notepad, gedit, TextEdit

⚙️ Compiler / Interpreter

แปลโค้ดเป็นภาษาเครื่อง

เช่น gcc, g++, python, java

🐞 Debugger

รันทีละคำสั่ง ดูผลแต่ละขั้น เพื่อหาบั๊ก

Integrated Development Environment (IDE)

รวมเครื่องมือที่จำเป็นทั้งหมดไว้ในโปรแกรมเดียว

  • รวม Editor + Compiler/Interpreter + Debugger + GUI ไว้ด้วยกัน — สะดวก และใช้ได้หลายภาษา
  • มีทั้งแบบเสียค่าใช้จ่าย (Commercial) และฟรี (Freeware, Open Source)
  • เช่น Visual Studio Code, PyCharm, Jupyter Notebook, Spyder

IDE ยอดนิยม

ติดตั้งบนเครื่อง

ออนไลน์ (ไม่ต้องติดตั้ง)

  • Replit — เขียน + รัน Python บนเว็บ
  • Google Colab — Jupyter Notebook บนคลาวด์ ฟรี

Tip

วิชานี้ ทำและส่ง Lab ที่ exam.cmu.ac.th ส่วน Google Colab ใช้สำหรับฝึก/ทดลองเขียนโปรแกรม — ทั้งคู่ใช้บนเว็บ ไม่ต้องติดตั้งอะไร (แต่ติดตั้ง Python ไว้ฝึกเองก็ช่วยได้มาก)

.py vs .ipynb — สคริปต์ vs โน้ตบุ๊ก

ทั้งคู่เขียน Python เหมือนกัน — ต่างกันที่รูปแบบไฟล์และวิธีรัน

📄 .py — Python Script

  • ไฟล์ข้อความล้วน มีแต่โค้ด
  • รันทั้งไฟล์รวดเดียว (python hello.py)
  • เหมาะกับโปรแกรมจริง ที่นำไปใช้/ส่งงาน
  • ใช้กับ Editor/IDE เช่น VS Code

📓 .ipynb — Notebook (Google Colab)

  • แบ่งเป็น “เซลล์ (cell)” สั่งรันทีละเซลล์ได้
  • แสดงผลลัพธ์/กราฟใต้เซลล์ทันที
  • ผสมโค้ด + ข้อความ (Markdown) + ผลลัพธ์ ไว้ในไฟล์เดียว
  • เหมาะกับทดลอง เรียนรู้ และวิเคราะห์ข้อมูล

Note

โค้ด Python ในเซลล์ Colab กับในไฟล์ .py เหมือนกัน — ย้ายไปมาได้ · Colab ยังสั่งรันไฟล์ .py และดาวน์โหลด notebook เป็น .py ได้ด้วย 🐍

เริ่มต้นกับ Python 🐍

การติดตั้ง Python (ทำเองที่บ้าน — Optional)

Python Setup #1: ติดตั้งจาก python.org

ดาวน์โหลด Installer ที่ python.org/downloads แล้วทำตามระบบปฏิบัติการของคุณ

  1. รัน Python Installer (.exe)
  2. ✅ ติ๊ก Add Python to PATH (สำคัญมาก!)
  3. คลิก Install Now
  4. เปิด Command Prompt → พิมพ์ python เพื่อเข้า REPL
  1. รัน Python Installer (.pkg) → ติดตั้งตามขั้นตอน (PATH ตั้งให้อัตโนมัติ)
  2. เปิด Terminal → พิมพ์ python3 เพื่อเข้า REPL
  3. (macOS มักมี python3 ติดมาอยู่แล้ว — ติดตั้งจาก python.org เพื่อให้ได้เวอร์ชันใหม่)

ทดสอบในโหมด REPL (Read-Eval-Print Loop) — พิมพ์ทีละบรรทัด เห็นผลทันที

>>> print('Hello World')
Hello World
>>> (1+10+100)*2
222

Python Setup #2: ติดตั้งด้วย Anaconda

ติดตั้ง Python ด้วย Anaconda (วิธีที่ 2)

  1. ดาวน์โหลด Anaconda
  2. รัน Anaconda Installer
  3. ถ้ายังไม่เคยติดตั้ง Python มาก่อน เลือก Register Anaconda as my default Python
  4. คลิก Install

Note

ทดสอบด้วย Anaconda Prompt (Windows) หรือ Terminal (macOS) แล้วพิมพ์ python เพื่อเข้าโหมด REPL เช่นเดียวกับวิธีที่ 1

การเขียนโปรแกรมใน VSCode

สร้างไฟล์ helloworld.py ใน Visual Studio Code

print('Hello World')
print(f'9x9={9*9}')

Note

ครั้งแรก: ติดตั้ง Python Extension (โดย Microsoft) ใน VS Code ก่อน — จะได้ปุ่ม ▶ Run, ตัวช่วยเติมโค้ด (IntelliSense) และดีบัก

สั่งรัน — กดปุ่ม มุมขวาบนใน VS Code หรือพิมพ์ในเทอร์มินัล:

$ python helloworld.py      # macOS: python3 helloworld.py
Hello World
9x9=81

Tip

นี่คือวิธี “สร้างโปรแกรม → สั่งให้ทำงาน (run)” แบบมาตรฐานที่ใช้ได้กับทุกภาษา

พักสมอง 😄

ข้ออ้างยอดฮิตของโปรแกรมเมอร์เวลาแอบพัก — “โค้ดกำลัง compile อยู่!” ⚔️

ที่มา: xkcd #303 — “Compiling” (CC BY-NC 2.5)

เขียนโค้ด Python เบื้องต้น ⌨️

พื้นฐานพอให้เขียนโปรแกรมแรกได้ — print · input · แปลงชนิดข้อมูล · split

แสดงผลด้วย print()

print() = แสดงข้อความออกทางจอ · ข้อความ (string) ต้องอยู่ในเครื่องหมาย '...' หรือ "..."

Tip

กด Run ดูผล 🎉 — ลอง 2 อย่าง: (1) เปลี่ยนข้อความในเครื่องหมายคำพูด · (2) ลองลบเครื่องหมาย '...' ออก แล้ว Run ดูว่าเกิดอะไรขึ้น

Important

ลบเครื่องหมายคำพูดแล้วจะ error ❗ เพราะ Python ไม่รู้ว่าเป็นข้อความข้อความต้องอยู่ในเครื่องหมายคำพูดเสมอ

รับข้อมูลจากผู้ใช้ด้วย input()

input() = โปรแกรมหยุดรอให้ผู้ใช้พิมพ์ แล้วส่งค่าที่พิมพ์กลับมาเก็บในตัวแปร

name = input()            # รับข้อความจากผู้ใช้ มาเก็บในตัวแปร name
print('สวัสดี', name)     # แสดงคำทักทายพร้อมชื่อ

Note

ผู้ใช้พิมพ์ Somchai แล้วกด Enter → โปรแกรมแสดง สวัสดี Somchai

Important

⚠️ ค่าจาก input() เป็น ข้อความ (str) เสมอ แม้จะพิมพ์ตัวเลข

แปลงชนิดข้อมูลด้วย int() แล้วคำนวณ

จะเอาค่าจาก input() ไปคำนวณ ต้องแปลงเป็นจำนวนเต็มด้วย int() ก่อน

n = input()            # n เป็นข้อความ เช่น '5'
result = int(n) * 2    # แปลง '5' → 5 แล้วคูณ 2
print(result)          # แสดงผล 10

Note

พิมพ์ 5 → ผล 10 · พิมพ์ 100 → ผล 200

Important

ถ้าลืม int() แล้วเขียน n * 2 จะได้ผลแปลก ๆ ('55') เพราะ n เป็นข้อความ

รับหลายค่าในบรรทัดเดียวด้วย split()

input().split() = ตัดข้อความตามช่องว่างออกเป็นหลายชิ้น · เก็บลงหลายตัวแปรพร้อมกันได้

a, b = input().split()   # พิมพ์ "3 4" → a='3', b='4'
a = int(a)               # แปลงแต่ละค่าเป็นจำนวนเต็ม
b = int(b)
print(a * b)             # 3 × 4 = 12

Note

ผู้ใช้พิมพ์ 3 4 (คั่นด้วยช่องว่าง 1 เคาะ) → ผลลัพธ์ 12

✅ ครบเครื่องมือสำหรับ Lab แรกแล้ว

รู้ 4 อย่างนี้ ก็ประกอบเป็นโปรแกรมได้หลากหลาย 👇

เครื่องมือ ทำอะไร
print(...) แสดงผลออกทางจอ
input() รับข้อความจากผู้ใช้ — ได้ str เสมอ
int(...) แปลงข้อความ → จำนวนเต็ม ก่อนคำนวณ
.split() ตัดข้อความเป็นหลายค่าตามช่องว่าง

Tip

สูตรที่พบบ่อย: รับข้อมูล (input) → แปลงชนิด (int) → คำนวณ → แสดงผล (print) — เอาไปประกอบเองเพื่อตอบโจทย์ Lab แรกได้เลย 🚀

ใช้ AI ช่วยเรียนอย่างไร 🤖

ใช้ AI ช่วยทำ Lab อย่างไรให้ “สอบได้ A”

AI ควรเป็น “Tutor” ไม่ใช่ “คนทำการบ้านแทน”

❌ วิธีที่เสี่ยงทำให้สอบตก

  • “เขียนโปรแกรมข้อนี้ให้หน่อย”
  • “ตอบมาเลย ไม่ต้องอธิบาย”

ผลที่เกิดขึ้น:

  • ได้คะแนน Lab แต่ไม่เข้าใจโค้ด
  • เจอโจทย์สอบที่เปลี่ยนนิดเดียว → ทำไม่ได้

✅ ใช้ AI แบบ “ติวเตอร์”

  • ให้ AI อธิบาย / ใบ้ทีละขั้น แทนการเฉลย
  • ให้ ตรวจโค้ดของเรา แล้วชี้ว่าผิดตรงไหน
  • เข้าใจด้วยตัวเองก่อน ค่อยให้ AI ยืนยัน

ผลที่เกิดขึ้น:

  • เข้าใจ logic, debug เองได้
  • ปรับโค้ดกับโจทย์ใหม่ได้ → โอกาสสอบผ่านสูงกว่า

AI ควรเป็น “Tutor” ไม่ใช่ “คนทำการบ้านแทน”

คุยกับ AI แบบ Tutor — ตัวอย่างจริง

บทสนทนาที่ดี 💬

Note

🧑 “โจทย์ให้รับ 2 จำนวนมาบวกกัน หนูติดตรงไหน ช่วยใบ้ทีละขั้น อย่าเพิ่งเฉลย

🤖 “ค่าที่ได้จาก input() เป็นชนิดไหน? แล้วต้องทำอะไรก่อนถึงจะบวกกันได้?”

🧑 “อ๋อ… มันเป็น str ต้อง int() ก่อน!”

Prompt พร้อมใช้ 📋

Tip

  • “สอนแบบติวเตอร์ ถามนำทีละขั้น อย่าเพิ่งเฉลย”
  • “ดูโค้ดนี้แล้วบอกว่าผิดตรงไหน แต่อย่าแก้ให้ ให้ผมแก้เอง”
  • “อธิบายว่าโค้ดบรรทัดนี้ทำงานยังไง”
  • “ออกโจทย์คล้าย ๆ กันให้ผมฝึกเพิ่ม”

Important

📝 ในสอบ Midterm/Final ต้องอ่าน/เขียนโค้ดเองในระบบ (ไม่มี AI ช่วย) — เข้าใจจริงเท่านั้นที่ช่วยได้ · ใช้ AI เป็นติวเตอร์ตอนฝึก แล้วไปสอบผ่านด้วยตัวเอง 💪

Summary 🎯

สรุป Module 1 🎉

ภาษาคอมพิวเตอร์

  • ระดับสูง ใกล้ภาษามนุษย์ (Python, Java, C…) ต้องแปลเป็นภาษาเครื่อง
  • ระดับล่าง (Assembly, Machine Code) ผูกกับ CPU

เครื่องมือ

  • Text Editor + Compiler/Interpreter + Debugger
  • IDE รวมทุกอย่างไว้ด้วยกัน (VSCode, Colab…)

การเรียน

Tip

ใช้ AI เป็น Tutor ช่วยให้เข้าใจ ไม่ใช่ลอกคำตอบ 🤖

Note

ต่อ Module 2: Computational Thinking 👉