CprBlog
010123131

Software Engineering Practice I (อ.โสภณ)

Grade: B
5/5
โคตรยาก
4h/week
Semester 1/2568
อาจารย์โสภณ
เขียนโดย Kan Thanakhorn
Reviewed on 3 พฤษภาคม 2569Updated on 3 พฤษภาคม 2569
Prerequisites:
010123103 Algorithm and Data Structures

ภาพรวมของคลาส

Software Engineering Practice I วิชาที่เรียนเนื้อหา Front-end developer

  • Basic HTML & CSS — การเขียน HTML(hypertext markup language) และ CSS(cascading style sheet) พื้นฐาน
  • Algorithm — มีโจทย์ฟังก์ชันที่ฝึกการแก้ปัญหา
  • Javascript — ภาษาที่เป็นสมองในการเขียนเว็บไซต์
  • React js — Web framwork ที่ทันสมัยที่สุด ณ ตอนนี้
  • Supabase & Firebase — Database บน cloud
  • Git — การใช้ Version control ในการอัพเดตงานที่เราทำ

จะได้เรียนรู้อะไร?

วิชานี้เป็นวิชาที่จะสอนเกี่ยวกับการเป็น Developer เบื้องต้นจนถึงระดับกลาง โดยคาบแรกๆจะมีการจัดกลุ่ม 3 คน หรือมากกว่านั้นตามจำนวนคนในคลาส และมีการสอนการเขียน HTML CSS และ Javascript ขั้นพื้นฐาน แต่ก่อนจะเขียน จะมีการทดสอบเป็นการเขียนโค้ดในกระดาษ เช่น สร้างฟังก์ชันที่เป็นการสร้างบ้าน home() โดยสามารถใช้ภาษาอะไรก็ได้ (พี่ใช้ python)

ตัวอย่างโค้ด

def home():
  roof()
  wall()
  floor()

if __name__ == "__main__":
  home()

และก็จะมีการพัฒนาจากโค้ดเก่าไปเรื่อยๆเช่น ให้เพิ่มฟีเจอร์ที่ทำให้สามารถกรอก argument ในฟังก์ชัน home() แล้วทำให้บ้านขยายขนาดขึ้นได้ เป็นต้น

จะมีการทดสอบแบบนี้เรื่อยๆ เมื่อเขียนในกระดาษเสร็จแล้วก็เอามาเขียนในคอมต่อแล้วอาจารย์ก็จะเดินดูผลลัพธ์ว่าถูกต้องไหม และที่สำคัญคือ ห้ามใช้ AI

หลังจากนั้นก็จะเป็นการสอน html css Javascript และมีโปรเจ็คเข้ามาเช่นกัน พอผ่านไปซักพักก็จะขึ้นเป็น Framework อย่าง react และมีโปรเจ็คใหญ่ที่จะทำ ตั้งแต่ต้นจนจบ term นั้นก็คือเกม XO มีการใช้ html canvas เพื่อมาใช้ในการวาดรูป (คล้ายๆกับการเขียน Processing) และจะมีการเพิ่มฟีเจอร์มาเรื่อยๆ เช่นฟังก์ชันเช็คเงื่อนไขการชนะ(มีสอบเขียนในกระดาษ) หรือการเล่นเกมนี้แบบ Online โดยใช้ PaaS อย่าง supabase, firebase เลือกได้แค่อย่างเดียว โดยตัวโปรเจ็ค Git และตัวอย่างสไลด์ จะทิ้งไว้ใน Resource discription

ฟังก์ชันท้ายสุดที่อาจารย์ให้ทำคือการนำโค้ดปัจจุบันของเราทำเป็น OOP

Class diagram

วิชานี้เหมาะกับใคร?

  • รักในการเขียนโค้ดจริงๆ เพราะไม่งั้นสามารถอ้วกได้
  • คนที่สามารถทำงานที่เข้ามาเยอะมากๆๆ ได้ทุกครั้งที่จบคาบ และส่งภายในคาบหน้า
  • คนที่สามารถทำงานเป็นกลุ่มได้ และต้องการมีความสามารถในการนำเสนอเพิ่มขึ้น
  • คนที่ต้องการจะไปในสายงาน Developer
  • คนที่ต้องการได้ความรู้จริงๆ (ถ้าตัังใจ)

Study Tips & Techniques

  1. พื้นฐานภาษา python ควรแน่น — ถ้าเราฝึกเขียน python ไปในคาบแรกการทดสอบหรือการเรียนรู้ภาษาใหม่ๆจะง่ายมาก
  2. เรียนรู้ให้มากๆ — อาจารย์จะให้หัวข้อเรามาแค่นั้นและแหล่งที่ต้องศึกษา หน้าที่เราคือต้องหาความรู้มาให้ได้มากที่สุด
  3. ลองเขียนโค้ดโดยไม่ใช้ AI — ตอนสอบหรือตอนทดสอบ อาจารย์จะไม่ให้ใช้ AI แต่จะสามารถเปิดไฟล์เก่าๆดูได้
  4. ฝึกการนำเสนอและการทำ presentation — เป็นวิชาที่นำเสนอเยอะมากๆแทบจะทุกคาบ ควรฝึกฝนไว้ถ้ายังไม่เก่ง
  5. เขียนโค้ดให้บ่อยๆ — ทั้ง Django, TDD test หรืออะไรก็ตามถ้าเราทำมันบ่อยๆ เราจะจำ Pattern ของมันได้ทำให้สามารถตอบคำถาม หรือ ทำข้อสอบอาจารย์ได้
  6. กลุ่มต้องมีหัวหน้า — การทำงานเป็นกลุ่มควรมีหัวหน้าหนึ่งคนที่ทำการกระจายงานหรือจดบรรทึกงานที่อาจารย์สั่ง ถ้าไม่มีตุยแน่ๆ
ResourceTypeNotes
HTML & CSSWebsiteอ่านเนื้อหาเบื้องต้นของ html และ css
JavascriptWebsiteเนื้อหาของ Javascript
Python practiceWebsiteเว็บที่พี่ฝึกทำโจทย์ Python
ตัวอย่าง Slide 1Presentationตัวอย่างสไลด์ supabase
ตัวอย่าง Slide 2Presentationตัวอย่างสไลด์ html canvas
ตัวอย่าง Slide 3Presentationตัวอย่างสไลด์ component
XO projectGithubลิ้งโปรเจ็ค XO ของกลุ่มพี่

เกณฑ์คะแนน

  • ไม่มีบอกเกณฑ์คะแนน แต่ถ้าส่งงานตรงเวลา ทำข้อสอบได้ นำเสนอดี ก็มีโอกาสได้เกรดดีแล้ว

คะแนนรวมของผมตอนจบ: B

Summary

ถ้าตั้งใจจะเป็น dev และต้องการเรียนรู้จริง ลงมือทำจริง และรับได้ที่งานล้น ลงอาจารย์ SPN เลยครัช

วิชาที่เกี่ยวข้อง