การโปรแกรมคอมพิวเตอร์ชั้นสูง

Advanced Computer Programming

สไลด์ภาพรวมรายวิชา


รูปแบบการนำเสนอเนื้อหารายวิชา

บทเรียนตั้งแต่ สัปดาห์ที่ 2-15 ใช้รูปแบบการสร้างเนื้อหาร่วมกัน เพื่อให้ผู้เรียนอ่าน ทดลอง และทบทวนได้เป็นระบบ ดังนี้

%%{init: {'theme': 'base', 'themeVariables': {
  'background': '#282828',
  'primaryColor': '#3c3836',
  'primaryTextColor': '#fbf1c7',
  'primaryBorderColor': '#fabd2f',
  'lineColor': '#83a598',
  'secondaryColor': '#504945',
  'tertiaryColor': '#665c54',
  'fontFamily': 'Arial'
}}}%%
flowchart LR
  A[Concept
แนวคิด] --> B[Diagram
ผังอธิบาย] B --> C[Table
ตารางเปรียบเทียบ] C --> D[Formula
สมการ/ตัวแปร] D --> E[Code Example
ตัวอย่างโค้ด] E --> F[Workshop
ทดลองปฏิบัติ]

ภาพรวมรายวิชา

รายวิชานี้พัฒนาทักษะการเขียนโปรแกรมจากระดับพื้นฐานไปสู่การสร้างซอฟต์แวร์ที่มีคุณภาพ ดูแลรักษาได้ และพร้อมใช้งานในบริบทจริง เนื้อหาครอบคลุมการป้องกันข้อบกพร่อง การดีบัก การทดสอบ การจัดการหน่วยความจำ การออกแบบชนิดข้อมูล การประมวลผลไฟล์ การเขียนโปรแกรมเชิงวัตถุ การจัดการข้อยกเว้น การทำงานพร้อมกัน UML, API, โครงสร้างการเขียนโปรแกรมขั้นสูง, Version Control และการใช้ Container เพื่อส่งมอบ Mini Project


ผลลัพธ์การเรียนรู้

เมื่อเรียนจบรายวิชา ผู้เรียนสามารถ

  1. วิเคราะห์ข้อบกพร่องของซอฟต์แวร์และเสนอแนวทางป้องกันได้
  2. ใช้เครื่องมือ Debugging, Testing และ Refactoring เพื่อปรับปรุงคุณภาพโค้ดได้
  3. จัดการ Pointer, Dynamic Memory, String, Structure และ File Processing ได้อย่างเหมาะสม
  4. ออกแบบโปรแกรมเชิงวัตถุโดยใช้ Class, Encapsulation, Inheritance และ Polymorphism ได้
  5. จัดการ Exception, Logging และ Concurrent Programming เบื้องต้นได้
  6. ใช้ UML, API, Generic/Template, Collection, Lambda และ Design Pattern เพื่อออกแบบระบบได้
  7. ใช้ Git/GitHub และ Container เพื่อพัฒนาและส่งมอบ Mini Project ได้

แผนการเรียน 15 สัปดาห์

สัปดาห์ หัวข้อบทเรียน กิจกรรมการเรียนการสอน บทเรียน/สไลด์
1 บทนำและการป้องกันข้อบกพร่องของซอฟต์แวร์ วิเคราะห์ Bug, SDLC, Coding Standard, Code Review และ Static Analysis บทเรียน / สไลด์
2 Debugging, Testing และ Source Code Maintenance ฝึกใช้ Debugger, Unit Test, Integration Test, Refactoring และเอกสารประกอบ บทเรียน / สไลด์
3 Pointer และ Dynamic Memory ฝึก Pointer, Pointer Arithmetic, Heap, Memory Leak และ Buffer Overflow บทเรียน / สไลด์
4 String และ User-defined Types จัดการ String, Structure, Union, typedef, enum และออกแบบข้อมูล บทเรียน / สไลด์
5 File Processing อ่านเขียนไฟล์ Text/Binary, File Stream, Error Handling และจัดเก็บข้อมูล บทเรียน / สไลด์
6 Object-Oriented Programming เปรียบเทียบ Procedural/OOP, Class, Object, Constructor และ Destructor บทเรียน / สไลด์
7 Encapsulation และ Inheritance ฝึก Access Modifier, Data Hiding, Inheritance และ Method Override บทเรียน / สไลด์
8 Polymorphism, Abstract และ Interface ฝึก Compile-time/Run-time Polymorphism, Virtual Function, Abstract Class และ Interface บทเรียน / สไลด์
9 Exception Handling จัดการ Exception, try-catch, Custom Exception และ Logging บทเรียน / สไลด์
10 Concurrent Programming ทดลอง Process, Thread, Synchronization, Mutex, Semaphore และ Deadlock บทเรียน / สไลด์
11 UML ออกแบบ Use Case Diagram, Class Diagram, Sequence Diagram สำหรับโครงงาน บทเรียน / สไลด์
12 API เรียน REST API, HTTP Method, JSON และการเชื่อมต่อข้อมูล บทเรียน / สไลด์
13 Advanced Programming Structure ใช้ Generic/Template, Collection, Lambda และ Design Pattern เบื้องต้น บทเรียน / สไลด์
14 Version Control ฝึก Git Repository, Commit, Branch, GitHub และ Pull Request บทเรียน / สไลด์
15 OS-level Virtualization และ Mini Project ใช้ Container, Docker, Volume, Deployment และนำเสนอ Mini Project บทเรียน / สไลด์

โครงงานรายวิชา

ผู้เรียนพัฒนา Mini Project ที่สะท้อนความรู้ทั้งรายวิชา โดยมีองค์ประกอบอย่างน้อยดังนี้

  1. โค้ดที่ผ่านการออกแบบและแบ่งส่วนอย่างเหมาะสม
  2. การจัดการข้อมูล ไฟล์ หรือ API อย่างน้อย 1 รูปแบบ
  3. การใช้แนวคิด OOP หรือโครงสร้างโปรแกรมขั้นสูง
  4. การทดสอบ ดีบัก หรือบันทึกข้อผิดพลาด
  5. การจัดการเวอร์ชันด้วย Git/GitHub
  6. การส่งมอบหรือสาธิตด้วย Container

กลับหน้าแรก