CprBlog
010123132

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

Grade: B+
4.5/5
ค่อนข้างยาก
4h/week
Semester 2/2568
อาจารย์โสภณ
เขียนโดย Kan Thanakhorn
Reviewed on 3 พฤษภาคม 2569Updated on 3 พฤษภาคม 2569
Prerequisites:
010123131 Software Development Practice I

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

Software Engineering Practice II เป็นวิชาที่เรียนเนื้อหาครอบคลุมในสาย Developer ไม่ว่าจะทาง Front-end, Back-end, หรือ Devops

  • Basic HTML & CSS — การเขียน HTML(hypertext markup language) และ CSS(cascading style sheet) พื้นฐาน
  • Django — Python Framework สำหรับทำเว็บไซต์
  • Git — การใช้ Version control ในการอัพเดตงานที่เราทำ
  • Cloud Service — ได้เรียนรู้การใช้ Cloud Service(IaaS, PaaS, SaaS)
  • Deployment — เรียนรู้การ Deploy เช่น การบันทึก Record เพื่อเชื่อมกับ host และการจด Domain name
  • Docker — เรียนรู้การใช้ Docker ในการทำ container และใช้ image เพื่อทำการ deploy web app
  • Tdd test — การทำ test เพื่อทดสอบ function หรือหน้าเว็บไซต์เบื้องต้น ไม่ว่าจะเป็น Unit test & Functional test
  • Automation — การใช้เครื่องมือ selenium เพื่อทำการทดสอบเว็บไซต์ในมุมมองของ user
  • SSH — การใช้ secure shell ระหว่างเพื่อนเพื่อทดสอบการคุยผ่านตัวกลางที่เป็นผู้ให้บริการ cloud

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

เป็นวิชาที่จะได้ความรู้ค่อนข้างมาก (ถ้าตั้งใจฟัง) ช่วงแรกๆของอาจารย์จะให้เรียนรู้การเขียน HTML และ CSS ทำให้เรารู้จักที่มาของชื่อมันจริงๆ เช่น hypertext คืออะไร หรือ cascading มันคืออะไรเกี่ยวอะไรกับ css

โดยจะได้จัดกลุ่มตั้งแต่คาบแรกๆเลย กลุ่มละไม่เกิน 3 คน(ปรับเปลี่ยนตามขนาดของคลาส) และหลังจากนั้นก็จะเป็นการ เข้าเรื่อง Django จนจบเทอม โดยระหว่างทางก็จะมีเนื้อหาใหม่ๆมาแทรกโดยนำโปรเจ็ค Django ที่เราทำไป implement ในรูปแบบต่างๆ เช่น deploy, ทำ container Docker, ทำ TDD test, ทำ Automation และอีกต่างๆมากมาย โดยจะมีการบ้านให้ก่อนจบคาบตลอด และส่งภายในคาบถัดไป โดยส่วนมากจะเป็นการนำเสนอ หรือไม่ก็อัดคลิปส่ง หรือ เขียน docs โดยจะมีการสุ่มสอบอาจารย์จะบอกก่อนสอบเสมอ

ข้อสอบเป็นการเขียนสิ่งที่เราเข้าใจตามโจทย์ที่อาจารย์ให้มา เช่น จงเขียน User story ของเว็บแอพลิเคชันเลือกตั้ง หรือไม่ก็สอบการเขียน เว็บจริงๆใน Django โดยต้องเขียน Test ให้เป็นระบบ ห้ามใช้ ai ตอนสอบ แต่สามารถเปิดไฟล์เก่าๆมาดูได้ และมีการอัพเดต Git commit ที่เหมาะสม โดยการที่นำเสนอส่วนมากจะใช้เนื้อหา จาก document ที่อาจารย์ให้เราไปเรียน และออกมาแนวๆสรุปให้อาจารย์ฟังได้ว่าทำอะไรไปบ้าง

โปรเจ็คใหญ่อีกอย่างคือ เว็บไซต์แจ้งปัญหาที่เกิดในมหาลัย หรือ เว็บไซต์สอนภาษา (พี่เลือกแจ้งปัญหาที่เกิดในมหาลัย) โดยเป็น project ที่ต้องทำด้วย django และอัพเดตให้ อาจารย์ทุกสัปดาห์ และจะมีการเพิ่มฟังก์ชันทุกสัปดาห์เช่นกัน (ลิ้งโปรเจ็คพี่ทิ้งไว้ใน Resource discription) โดยโปรเจ็คนี้พี่ไม่ค่อยทำสไลด์แต่จะ visualize โดยการเล่น หน้าเว็บไซต์ให้ดูเลย

ส่วนระหว่างนำเสนอหากมีส่วนไหนที่ไม่เคลียร์ก็จะโดนจี้ถาม ถ้าตอบไม่ได้อาจารย์ก็จะ question mark ไว้ สิ่งที่เราต้องทำคือต้องไปหาคำตอบมาทีหลัง (ตัวอย่างสไลด์อยู่ที่ Recommended Resources)

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

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

Study Tips & Techniques

  1. เรียนรู้ให้มากๆ — อาจารย์จะให้หัวข้อเรามาแค่นั้นและแหล่งที่ต้องศึกษา หน้าที่เราคือต้องหาความรู้มาให้ได้มากที่สุด
  2. ลองเขียนโค้ดโดยไม่ใช้ AI — ตอนสอบหรือตอนทดสอบ อาจารย์จะไม่ให้ใช้ AI แต่จะสามารถเปิดไฟล์เก่าๆดูได้
  3. ฝึกการนำเสนอและการทำ presentation — เป็นวิชาที่นำเสนอเยอะมากๆแทบจะทุกคาบ ควรฝึกฝนไว้ถ้ายังไม่เก่ง
  4. เขียนโค้ดให้บ่อยๆ — ทั้ง Django, TDD test หรืออะไรก็ตามถ้าเราทำมันบ่อยๆ เราจะจำ Pattern ของมันได้ทำให้สามารถตอบคำถาม หรือ ทำข้อสอบอาจารย์ได้
  5. กลุ่มต้องมีหัวหน้า — การทำงานเป็นกลุ่มควรมีหัวหน้าหนึ่งคนที่ทำการกระจายงานหรือจดบรรทึกงานที่อาจารย์สั่ง ถ้าไม่มีตุยแน่ๆ
ResourceTypeNotes
HTML & CSSWebsiteอ่านเนื้อหาเบื้องต้นของ html และ css
Django tutorialWebsiteเนื้อหาของ Django
TDD test bookBookเนื้อหาของการทำ TDD test
PythonAnyWherePaaSทดลอง Deploy โค้ด python
KmutnbIssueGithubโปรเจ็คเว็บไซต์แจ้งปัญหา
ElectionWebGithubโปรเจ็คสอบตอนจบคลาส
Slide 1Presentationตัวอย่างสไลด์ที่นำเสนอในคลาส
Slide 2Presentationตัวอย่างสไลด์ที่นำเสนอในคลาสเรื่อง python cgi
Slide 3Presentationตัวอย่างสไลด์ที่นำเสนอในคลาสเรื่อง โปรเจ็คเว็บไซต์แจ้งปัญหา

เกณฑ์คะแนน

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

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

Summary

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

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