Course Orientation & Introduction to Programming
Course Orientation
แนะนำเกี่ยวกับวิชา
แนะนำเกี่ยวกับภาษาคอมพิวเตอร์
เริ่มต้นเขียนโปรแกรมด้วย Python
การทำ Lab ของวิชานี้
Important
นศ. ที่ยังเข้าวิชานี้ใน exam.cmu.ac.th ไม่ได้ ให้ใช้ Enrollment Code ต่อไปนี้
XXXXXX
คุณเคยเขียนโปรแกรมมาก่อนหรือไม่? — สแกน QR เพื่อโหวต ผลขึ้นสด ๆ 👉

👆 สแกนเพื่อโหวต
Programming Language Overview
เราใช้ภาษาคอมพิวเตอร์ (Programming Languages) อธิบายสิ่งที่ต้องการให้เครื่องคอมพิวเตอร์ทำงาน
Tip
โปรแกรมเดียวกันเขียนได้หลายภาษา — แนวคิดเหมือนกัน ต่างแค่ syntax (ดูตัวอย่างหน้าถัดไป 👉)
แนวคิดเหมือนกัน ต่างแค่ syntax — สังเกตว่า Python สั้นและอ่านง่ายที่สุด 🐍
คำนวณ 9 * 9 เดียวกัน เขียนด้วยภาษาระดับล่างบน CPU x86-64
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 = 81Note
สังเกตว่าแค่คูณเลข 2 ตัว ก็ต้องสั่งงาน CPU ทีละขั้น — ยิ่งใกล้ภาษาเครื่อง ยิ่งอ่านยากสำหรับมนุษย์

ภาพ: “Scratch 3.0 screenshot” โดย Blink456 (Scratch by MIT) · CC BY-SA 4.0
Block coding = ต่อ “บล็อก” คำสั่งเข้าด้วยกันเหมือนต่อจิ๊กซอว์ (เช่น Scratch)
✅ จุดเด่น
ไม่ต้องจำหรือพิมพ์ syntax — ลากวางบล็อกได้เลย เหมาะกับผู้เริ่มต้นมาก
❌ ทำไมวิชานี้ไม่ใช้
Tip
เราจึงใช้ text-based coding ด้วย Python (แบบที่เห็นในสไลด์ก่อนหน้า) — พิมพ์เป็นข้อความตาม syntax แต่ทรงพลังและใช้ได้จริง 🐍
Python เป็นภาษาที่ได้รับความนิยมสูงที่สุดในโลก จากหลายดัชนีชี้วัด
ที่มา: TIOBE · PYPL · GitHub Octoverse · Stack Overflow Survey · IEEE Spectrum — อันดับเปลี่ยนแปลงตามเวลา
Computational Thinking
Coding
Mathematics
Note
เจาะลึก Computational Thinking ต่อได้ที่ Module 2 👉
Tools for Software Development
✏️ Text Editor
สร้างไฟล์โค้ด (.py, .c, .java, …) เช่น Notepad, gedit, TextEdit
⚙️ Compiler / Interpreter
แปลโค้ดเป็นภาษาเครื่อง
เช่น gcc, g++, python, java
🐞 Debugger
รันทีละคำสั่ง ดูผลแต่ละขั้น เพื่อหาบั๊ก
รวมเครื่องมือที่จำเป็นทั้งหมดไว้ในโปรแกรมเดียว
ติดตั้งบนเครื่อง
ออนไลน์ (ไม่ต้องติดตั้ง)
Tip
วิชานี้ ทำและส่ง Lab ที่ exam.cmu.ac.th ส่วน Google Colab ใช้สำหรับฝึก/ทดลองเขียนโปรแกรม — ทั้งคู่ใช้บนเว็บ ไม่ต้องติดตั้งอะไร (แต่ติดตั้ง Python ไว้ฝึกเองก็ช่วยได้มาก)
.py vs .ipynb — สคริปต์ vs โน้ตบุ๊กทั้งคู่เขียน Python เหมือนกัน — ต่างกันที่รูปแบบไฟล์และวิธีรัน
📄 .py — Python Script
python hello.py)📓 .ipynb — Notebook (Google Colab)
Note
โค้ด Python ในเซลล์ Colab กับในไฟล์ .py เหมือนกัน — ย้ายไปมาได้ · Colab ยังสั่งรันไฟล์ .py และดาวน์โหลด notebook เป็น .py ได้ด้วย 🐍
การติดตั้ง Python (ทำเองที่บ้าน — Optional)
ดาวน์โหลด Installer ที่ python.org/downloads แล้วทำตามระบบปฏิบัติการของคุณ
.exe)python เพื่อเข้า REPL.pkg) → ติดตั้งตามขั้นตอน (PATH ตั้งให้อัตโนมัติ)python3 เพื่อเข้า REPLpython3 ติดมาอยู่แล้ว — ติดตั้งจาก python.org เพื่อให้ได้เวอร์ชันใหม่)ทดสอบในโหมด REPL (Read-Eval-Print Loop) — พิมพ์ทีละบรรทัด เห็นผลทันที
>>> print('Hello World')
Hello World
>>> (1+10+100)*2
222
ติดตั้ง Python ด้วย Anaconda (วิธีที่ 2)
Note
ทดสอบด้วย Anaconda Prompt (Windows) หรือ Terminal (macOS) แล้วพิมพ์ python เพื่อเข้าโหมด REPL เช่นเดียวกับวิธีที่ 1
สร้างไฟล์ helloworld.py ใน Visual Studio Code
Note
ครั้งแรก: ติดตั้ง Python Extension (โดย Microsoft) ใน VS Code ก่อน — จะได้ปุ่ม ▶ Run, ตัวช่วยเติมโค้ด (IntelliSense) และดีบัก
ข้ออ้างยอดฮิตของโปรแกรมเมอร์เวลาแอบพัก — “โค้ดกำลัง compile อยู่!” ⚔️

ที่มา: xkcd #303 — “Compiling” (CC BY-NC 2.5)
พื้นฐานพอให้เขียนโปรแกรมแรกได้ — print · input · แปลงชนิดข้อมูล · split
print()print() = แสดงข้อความออกทางจอ · ข้อความ (string) ต้องอยู่ในเครื่องหมาย '...' หรือ "..."
Tip
กด Run ดูผล 🎉 — ลอง 2 อย่าง: (1) เปลี่ยนข้อความในเครื่องหมายคำพูด · (2) ลองลบเครื่องหมาย '...' ออก แล้ว Run ดูว่าเกิดอะไรขึ้น
Important
ลบเครื่องหมายคำพูดแล้วจะ error ❗ เพราะ Python ไม่รู้ว่าเป็นข้อความ — ข้อความต้องอยู่ในเครื่องหมายคำพูดเสมอ
input()input() = โปรแกรมหยุดรอให้ผู้ใช้พิมพ์ แล้วส่งค่าที่พิมพ์กลับมาเก็บในตัวแปร
Note
ผู้ใช้พิมพ์ Somchai แล้วกด Enter → โปรแกรมแสดง สวัสดี Somchai
Important
⚠️ ค่าจาก input() เป็น ข้อความ (str) เสมอ แม้จะพิมพ์ตัวเลข
int() แล้วคำนวณจะเอาค่าจาก input() ไปคำนวณ ต้องแปลงเป็นจำนวนเต็มด้วย int() ก่อน
Note
พิมพ์ 5 → ผล 10 · พิมพ์ 100 → ผล 200
Important
ถ้าลืม int() แล้วเขียน n * 2 จะได้ผลแปลก ๆ ('55') เพราะ n เป็นข้อความ
split()input().split() = ตัดข้อความตามช่องว่างออกเป็นหลายชิ้น · เก็บลงหลายตัวแปรพร้อมกันได้
Note
ผู้ใช้พิมพ์ 3 4 (คั่นด้วยช่องว่าง 1 เคาะ) → ผลลัพธ์ 12
รู้ 4 อย่างนี้ ก็ประกอบเป็นโปรแกรมได้หลากหลาย 👇
| เครื่องมือ | ทำอะไร |
|---|---|
print(...) |
แสดงผลออกทางจอ |
input() |
รับข้อความจากผู้ใช้ — ได้ str เสมอ |
int(...) |
แปลงข้อความ → จำนวนเต็ม ก่อนคำนวณ |
.split() |
ตัดข้อความเป็นหลายค่าตามช่องว่าง |
Tip
สูตรที่พบบ่อย: รับข้อมูล (input) → แปลงชนิด (int) → คำนวณ → แสดงผล (print) — เอาไปประกอบเองเพื่อตอบโจทย์ Lab แรกได้เลย 🚀
ใช้ AI ช่วยทำ Lab อย่างไรให้ “สอบได้ A”
❌ วิธีที่เสี่ยงทำให้สอบตก
ผลที่เกิดขึ้น:
✅ ใช้ AI แบบ “ติวเตอร์”
ผลที่เกิดขึ้น:
AI ควรเป็น “Tutor” ไม่ใช่ “คนทำการบ้านแทน”
บทสนทนาที่ดี 💬
Note
🧑 “โจทย์ให้รับ 2 จำนวนมาบวกกัน หนูติดตรงไหน ช่วยใบ้ทีละขั้น อย่าเพิ่งเฉลย”
🤖 “ค่าที่ได้จาก input() เป็นชนิดไหน? แล้วต้องทำอะไรก่อนถึงจะบวกกันได้?”
🧑 “อ๋อ… มันเป็น str ต้อง int() ก่อน!” ✅
Prompt พร้อมใช้ 📋
Tip
Important
📝 ในสอบ Midterm/Final ต้องอ่าน/เขียนโค้ดเองในระบบ (ไม่มี AI ช่วย) — เข้าใจจริงเท่านั้นที่ช่วยได้ · ใช้ AI เป็นติวเตอร์ตอนฝึก แล้วไปสอบผ่านด้วยตัวเอง 💪
ภาษาคอมพิวเตอร์
เครื่องมือ
Note
ต่อ Module 2: Computational Thinking 👉
🏠 259201 — Module 1 | ภาควิชาวิศวกรรมคอมพิวเตอร์ คณะวิศวกรรมศาสตร์ มหาวิทยาลัยเชียงใหม่