การเขียนโปรแกรมเชิงวัตถุ

Object-Oriented Programming

1 หลักการพื้นฐานของ OOP: เข้าใจแนวคิดหลัก 4 ประการ ได้แก่ การห่อหุ้ม (Encapsulation), การสืบทอดคุณสมบัติ (Inheritance), ภาวะพหุสัณฐาน (Polymorphism), และ ความเป็นนามธรรม (Abstraction)
2 การออกแบบโปรแกรม: สามารถออกแบบและวางโครงสร้างโปรแกรมโดยใช้หลักการเชิงวัตถุ เพื่อให้โปรแกรมสามารถขยายและแก้ไขได้ง่าย
3 การเขียนโค้ด: สามารถเขียนโปรแกรมด้วยภาษาที่สนับสนุน OOP ได้อย่างถูกต้องและมีประสิทธิภาพ
4 การแก้ไขปัญหา: พัฒนาทักษะการแก้ไขปัญหาที่ซับซ้อนด้วยแนวคิดเชิงวัตถุ
 
1 ปรับปรุงเนื้อหาให้ทันสมัย: เพิ่มเนื้อหาเกี่ยวกับแนวคิดและเทคนิคใหม่ ๆ ในการเขียนโปรแกรมเชิงวัตถุที่ใช้ในปัจจุบัน เช่น Design Patterns หรือการเขียนโปรแกรมเชิงวัตถุในภาษาต่าง ๆ ที่กำลังเป็นที่นิยม
2 เน้นการปฏิบัติจริง: เพิ่มจำนวนแบบฝึกหัดและโครงงานที่ให้นักศึกษาได้ลงมือปฏิบัติจริง เพื่อให้เข้าใจการประยุกต์ใช้แนวคิดเชิงวัตถุในสถานการณ์จริงมากขึ้น
3 ส่งเสริมทักษะการทำงานร่วมกัน: จัดกิจกรรมที่ให้นักศึกษาได้ทำงานเป็นทีม เพื่อฝึกฝนการออกแบบและพัฒนาซอฟต์แวร์ขนาดใหญ่ร่วมกับผู้อื่น
4 เชื่อมโยงกับโลกอุตสาหกรรม: นำกรณีศึกษาจากบริษัทซอฟต์แวร์ชั้นนำมาใช้ในการเรียนการสอน เพื่อให้นักศึกษาเห็นภาพการนำความรู้ไปใช้ในการทำงานจริง และเตรียมความพร้อมสู่การทำงานในอนาคต
 
ศึกษาและฝึกปฏิบัติ องค์ประกอบของการเขียนโปรแกรมตามแนวคิดเชิงวัตถุ เช่น สิ่งที่เป็นนามธรรม โมดูล การนำโค้ดกลับมาใช้ซ้ำ อ็อบเจ็กต์ คลาส การส่งผ่านข้อความระหว่างวัตถุ เมธอด อินเทอร์เฟส การห่อหุ้ม โพลีมอร์ฟิซึม การสืบทอดคุณสมบัติ เป็นต้น ฝึกปฏิบัติการเขียนโปรแกรมด้วยเครื่องมือที่ง่ายต่อการสร้างโปรแกรม และบำรุงรักษาโปรแกรม เพื่อศึกษาการเรียกใช้งานไลบรารีฟังก์ชันและเอพีไอของภาษาคอมพิวเตอร์ที่สนับสนุนการเขียนโปรแกรมเชิงวัตถุ โดยการใช้ส่วนติดต่อประสานโปรแกรมประยุกต์ (API)
 
Study and practice of Object-Oriented Programming teaches a rigorous approach to object-oriented programming and design, with an emphasis on abstraction, modularity, and code reuse as applied to the building and understanding of large-scale systems. We will explore the basic mechanisms and concepts of object-oriented programming: object, class, message, method, interface, encapsulation, polymorphism, and inheritance. Students will gain hands-on experience with tools and techniques that facilitate the creation and maintenance of applications by using library and API of the programming language that supports the object-oriented programming.
 
3 ชั่วโมง
 
1 ความซื่อสัตย์สุจริต: ไม่ลอกเลียนแบบผลงานของผู้อื่น ไม่ว่าจะในรายงาน โครงการ หรือการสอบ ต้องให้เกียรติและอ้างอิงแหล่งที่มาของข้อมูลอย่างถูกต้อง
2 ความรับผิดชอบและความมีวินัยในตนเอง: ทำงานที่ได้รับมอบหมายให้สำเร็จตามกำหนดเวลา มีความมุ่งมั่นตั้งใจ และรับผิดชอบต่อผลลัพธ์ของงานที่ทำ
3 การเคารพสิทธิส่วนบุคคล: ตระหนักถึงความสำคัญของข้อมูลส่วนตัวและข้อมูลที่เป็นความลับ ไม่นำข้อมูลไปใช้ในทางที่ผิดกฎหมายหรือผิดจริยธรรม
4 จริยธรรมในการใช้ข้อมูล: เข้าใจถึงผลกระทบทางสังคมที่อาจเกิดขึ้นจากการใช้ข้อมูลขนาดใหญ่ (Big Data) และการทำเหมืองข้อมูล เช่น อคติ (Bias) ที่อาจแฝงอยู่ในข้อมูล และผลกระทบต่อการตัดสินใจ
5 การทำงานร่วมกับผู้อื่น: มีความสามารถในการทำงานเป็นทีม รับฟังความคิดเห็นของผู้อื่น และรู้จักแบ่งปันความรู้เพื่อสร้างสรรค์ผลงานที่ดีที่สุด
 
1 การบรรยายสอดแทรก: อาจารย์จะสอดแทรกเรื่องจริยธรรมในการใช้ข้อมูลและผลกระทบทางสังคมของเทคโนโลยีคลังข้อมูลและเหมืองข้อมูลในระหว่างการบรรยาย
2 กรณีศึกษา: ใช้กรณีศึกษาที่เกี่ยวข้องกับประเด็นด้านจริยธรรม เช่น การใช้ข้อมูลลูกค้าอย่างไม่เหมาะสม หรืออคติในโมเดล AI เพื่อกระตุ้นให้นักศึกษาได้คิดและอภิปราย
3 กำหนดเป็นส่วนหนึ่งของโครงการ: มอบหมายให้นักศึกษาทำโครงการที่ต้องพิจารณาประเด็นด้านจริยธรรม เช่น การนำเสนอแนวทางในการใช้ข้อมูลอย่างปลอดภัยและมีจริยธรรม หรือการวิเคราะห์อคติในชุดข้อมูล
4 การทำงานกลุ่ม: ส่งเสริมให้นักศึกษาได้ทำงานร่วมกันในโครงการกลุ่ม เพื่อเรียนรู้การแบ่งปันความรับผิดชอบ การรับฟังความคิดเห็น และการยอมรับในความแตกต่าง
 
1 การสังเกตพฤติกรรมในชั้นเรียน: สังเกตการมีส่วนร่วมในชั้นเรียน การอภิปรายอย่างสร้างสรรค์ และการทำงานร่วมกับผู้อื่น
2 การพิจารณาจากผลงาน: ตรวจสอบความถูกต้องของการอ้างอิงแหล่งที่มาในรายงานและโครงการ เพื่อประเมินความซื่อสัตย์
3 การนำเสนอโครงการ: ประเมินทัศนคติและแนวคิดที่แสดงออกในการนำเสนอโครงการกลุ่ม โดยเฉพาะอย่างยิ่งประเด็นที่เกี่ยวข้องกับจริยธรรม
4 การให้คะแนนจากเพื่อนร่วมทีม (Peer Assessment): ให้นักศึกษาประเมินผลการทำงานของเพื่อนในกลุ่ม เพื่อประเมินความรับผิดชอบและความร่วมมือในการทำงานเป็นทีม
 
1 แนวคิดพื้นฐาน: เข้าใจความหมายของคลาส (Class), วัตถุ (Object), คุณสมบัติ (Attribute), และพฤติกรรม (Method).
2 เสาหลักของ OOP: สามารถอธิบายและประยุกต์ใช้แนวคิดหลัก 4 ประการ ได้แก่:
  - Encapsulation: การห่อหุ้มข้อมูลและซ่อนรายละเอียดที่ไม่จำเป็น.
  - Inheritance: การสืบทอดคุณสมบัติและพฤติกรรมจากคลาสแม่.
  - Polymorphism: การใช้คำสั่งเดียวแต่สามารถทำงานได้หลายรูปแบบ.
  - Abstraction: การสร้างแบบจำลองที่เน้นเฉพาะส่วนที่สำคัญ.
3 การออกแบบโปรแกรม: สามารถนำหลักการเหล่านี้ไปใช้ในการออกแบบและพัฒนาโปรแกรมให้มีประสิทธิภาพและจัดการได้ง่ายขึ้น.
 
1 การบรรยาย: อธิบายหลักการและแนวคิดพื้นฐานของ OOP พร้อมยกตัวอย่างประกอบ.
2 การฝึกปฏิบัติในห้องปฏิบัติการ: ให้นักศึกษาได้เขียนโค้ดจริงเพื่อสร้างคลาสและวัตถุ รวมถึงการนำแนวคิด OOP ไปใช้ในการแก้ปัญหา.
3 การทำแบบฝึกหัดและโจทย์ปัญหา: มอบหมายงานที่ท้าทายให้นักศึกษาได้ฝึกฝนทักษะการเขียนโปรแกรม.
4 การอภิปรายและทำกิจกรรมกลุ่ม: ให้นักศึกษาได้แลกเปลี่ยนความคิดเห็นและเรียนรู้จากเพื่อน.
5 การทำโปรเจกต์ขนาดเล็ก: ให้นักศึกษาได้พัฒนาโปรแกรมที่ใช้หลักการ OOP อย่างครบถ้วน.
 
1 การสอบ: วัดความเข้าใจในทฤษฎีและแนวคิดพื้นฐานของ OOP.
2 การทำแบบฝึกหัดในห้องปฏิบัติการ: ประเมินจากการส่งงานตามกำหนดและความถูกต้องของโค้ด.
3 การทำโปรเจกต์: ประเมินจากความสามารถในการออกแบบโค้ด การเขียนโค้ดที่ถูกต้องตามหลักการ OOP และการนำเสนอผลงาน.
4 การมีส่วนร่วมในชั้นเรียน: วัดจากการเข้าร่วมกิจกรรม การตอบคำถาม และการแสดงความคิดเห็น.
 
1 ทักษะการคิดวิเคราะห์: สามารถแยกแยะปัญหาที่ซับซ้อนออกเป็นส่วนย่อยๆ เพื่อทำความเข้าใจโครงสร้างของปัญหาในบริบทของข้อมูลได้
2 ทักษะการคิดเชิงสังเคราะห์: สามารถรวบรวมและเชื่อมโยงแนวคิดหรือข้อมูลที่แตกต่างกัน เพื่อสร้างเป็นแนวทางแก้ไขปัญหาที่สมเหตุสมผลและมีประสิทธิภาพ
3 ทักษะการคิดเชิงสร้างสรรค์และนวัตกรรม: สามารถคิดค้นวิธีการใหม่ๆ ในการใช้ข้อมูลเพื่อแก้ปัญหาหรือค้นพบข้อมูลเชิงลึกที่ไม่เคยมีมาก่อน
4 ทักษะการแก้ปัญหา: สามารถระบุปัญหา เลือกใช้เครื่องมือและเทคนิคที่เหมาะสม วางแผน และดำเนินการเพื่อแก้ไขปัญหาที่เกี่ยวข้องกับข้อมูลได้อย่างเป็นระบบ
5 ทักษะการคิดเชิงระบบ: เข้าใจความสัมพันธ์และผลกระทบระหว่างส่วนประกอบต่างๆ ในระบบคลังข้อมูลและเหมืองข้อมูล เพื่อให้สามารถออกแบบและจัดการระบบได้อย่างมีประสิทธิภาพ
 
1 การวิเคราะห์กรณีศึกษา (Case Study Analysis): มอบหมายให้นักศึกษาวิเคราะห์กรณีศึกษาที่ซับซ้อนในโลกธุรกิจ โดยให้นักศึกษาเสนอแนวทางในการใช้คลังข้อมูลและเหมืองข้อมูลเพื่อแก้ปัญหา
2 โครงการกลุ่ม (Group Project): กำหนดให้มีโครงการที่ท้าทาย ซึ่งนักศึกษาต้องออกแบบและสร้างระบบคลังข้อมูล หรือทำการวิเคราะห์ข้อมูลตั้งแต่ต้นจนจบ เพื่อให้ได้ฝึกฝนการคิดเชิงสังเคราะห์และการแก้ปัญหาร่วมกัน
3 การอภิปรายในชั้นเรียน: กระตุ้นให้นักศึกษามีส่วนร่วมในการอภิปรายเกี่ยวกับแนวคิดที่หลากหลายและวิธีการแก้ไขปัญหาที่แตกต่างกัน เพื่อฝึกฝนการคิดวิเคราะห์และเปิดรับมุมมองใหม่ๆ
4 การมอบหมายงานปลายเปิด (Open-Ended Assignments): ให้โจทย์ที่ไม่มีคำตอบที่ตายตัว เพื่อให้นักศึกษาได้คิดค้นวิธีการใหม่ๆ และใช้ความคิดสร้างสรรค์ในการนำเสนอผลลัพธ์
 
1 การประเมินจากโครงการ (Project-Based Assessment): ประเมินจากคุณภาพของรายงานโครงการและผลลัพธ์ที่ได้ โดยพิจารณาจากความลึกของการวิเคราะห์ การใช้เครื่องมือที่เหมาะสม และความสมเหตุสมผลของแนวทางแก้ไขปัญหา
2 การสอบที่เน้นการแก้ปัญหา (Problem-Solving Exams): แทนที่จะเน้นการท่องจำ ควรออกแบบข้อสอบที่มีสถานการณ์จำลอง (Scenario-Based Questions) เพื่อทดสอบความสามารถในการประยุกต์ใช้ความรู้และทักษะเพื่อแก้ไขปัญหาจริง
3 การนำเสนอผลงาน (Presentation): ประเมินจากการนำเสนอแนวคิด การวิเคราะห์ และผลลัพธ์ของโครงการ โดยเฉพาะอย่างยิ่งการตอบคำถามและการให้เหตุผลในการตัดสินใจต่างๆ
4 การประเมินการมีส่วนร่วม (Participation Assessment): ประเมินจากคุณภาพของการมีส่วนร่วมในการอภิปรายในชั้นเรียน รวมถึงความสามารถในการแสดงความคิดเห็นอย่างมีเหตุผลและสร้างสรรค์
 
1 ทักษะการทำงานเป็นทีม: สามารถทำงานร่วมกับผู้อื่นได้ในสถานการณ์ที่แตกต่างกัน มีส่วนร่วมอย่างแข็งขันในการอภิปรายกลุ่ม และสามารถแลกเปลี่ยนความคิดเห็นได้อย่างสร้างสรรค์
2 ความรับผิดชอบต่อหน้าที่: มีวินัยในตนเอง สามารถบริหารจัดการเวลาและทำงานที่ได้รับมอบหมายให้สำเร็จตามเป้าหมายและกำหนดเวลาที่กำหนดไว้
3 การสื่อสารอย่างมีประสิทธิภาพ: สามารถนำเสนอแนวคิด ผลการวิเคราะห์ และข้อสรุปต่างๆ ได้อย่างชัดเจน ทั้งในรูปแบบการพูดและการเขียน
4 ความเข้าใจในบทบาทของตนเอง: ตระหนักถึงหน้าที่และความรับผิดชอบของตนเองในการทำงานกลุ่ม รวมถึงการให้ความช่วยเหลือและสนับสนุนเพื่อนร่วมทีม
5 การปรับตัวและเปิดใจยอมรับความแตกต่าง: สามารถทำงานร่วมกับผู้อื่นที่มีพื้นฐานความรู้ ทัศนคติ หรือความถนัดที่แตกต่างกันได้
 
1 โครงการกลุ่ม (Group Project): กำหนดให้มีโครงการที่ซับซ้อนและต้องใช้ความร่วมมือจากหลายฝ่าย เพื่อให้นักศึกษาได้ฝึกฝนการทำงานเป็นทีม การแบ่งงาน และการสื่อสาร
2 การอภิปรายกลุ่ม: จัดกิจกรรมอภิปรายในชั้นเรียนเป็นกลุ่มย่อย เพื่อให้นักศึกษาได้ฝึกการแสดงความคิดเห็น การรับฟังผู้อื่น และการหาข้อสรุปร่วมกัน
3 การนำเสนอผลงานกลุ่ม: ให้นักศึกษาทำงานร่วมกันเพื่อเตรียมการนำเสนอผลงาน โดยทุกคนต้องมีส่วนร่วมและแสดงบทบาทที่ชัดเจน เพื่อฝึกฝนทักษะการสื่อสารและการทำงานร่วมกัน
4 การมอบหมายงานที่มีกำหนดเวลาชัดเจน: กำหนดส่งงานแต่ละชิ้นด้วยกำหนดเวลาที่แน่นอน เพื่อฝึกความรับผิดชอบและการบริหารจัดการเวลาของตนเอง
 
1 การประเมินจากผลงานกลุ่ม: พิจารณาคุณภาพของผลงานที่ทำร่วมกันเป็นทีม เช่น รายงานและผลลัพธ์ของโครงการ เพื่อสะท้อนถึงการทำงานร่วมกันอย่างมีประสิทธิภาพ
2 การประเมินโดยเพื่อนร่วมทีม (Peer Assessment): ให้นักศึกษาประเมินผลการทำงานของเพื่อนร่วมทีม เพื่อให้เกิดการประเมินที่มาจากมุมมองที่หลากหลายและสะท้อนถึงความรับผิดชอบของแต่ละคนในกลุ่ม
3 การประเมินการนำเสนอ: พิจารณาจากความชัดเจนในการนำเสนอ ความสามารถในการตอบคำถาม และการทำงานร่วมกันของสมาชิกในกลุ่มขณะนำเสนอ
4 การสังเกตพฤติกรรม: สังเกตพฤติกรรมระหว่างการทำกิจกรรมกลุ่ม การอภิปราย และการทำงานในห้องเรียน เพื่อประเมินการมีส่วนร่วมและความรับผิดชอบของนักศึกษาแต่ละคน
 
1 ทักษะการวิเคราะห์เชิงตัวเลข: สามารถวิเคราะห์และแก้ปัญหาเชิงโครงสร้างของโปรแกรมด้วยแนวคิดเชิงวัตถุ.
2 ทักษะการสื่อสาร: สามารถสื่อสารแนวคิดและหลักการของ OOP ให้ผู้อื่นเข้าใจได้.
3 ทักษะการใช้เทคโนโลยีสารสนเทศ: สามารถใช้เครื่องมือและโปรแกรมต่างๆ ที่เกี่ยวข้องกับการเขียนโปรแกรมเชิงวัตถุได้อย่างมีประสิทธิภาพ.
 
1 การบรรยายแบบมีส่วนร่วม: ส่งเสริมให้นักศึกษาตั้งคำถามและแลกเปลี่ยนความคิดเห็นระหว่างการบรรยาย.
2 การทำแบบฝึกหัดที่เน้นการวิเคราะห์: ให้โจทย์ที่ต้องใช้การวิเคราะห์และออกแบบแนวคิด OOP ก่อนการเขียนโค้ด.
3 การนำเสนอโปรเจกต์: ให้นักศึกษาได้นำเสนอผลงานโปรเจกต์เพื่อฝึกทักษะการสื่อสารและอธิบายแนวคิดของตนเอง.
4 การใช้เครื่องมือและ IDE: แนะนำและฝึกให้นักศึกษาใช้ Integrated Development Environment (IDE) และเครื่องมือช่วยในการพัฒนาซอฟต์แวร์.
 
1 การประเมินจากโปรเจกต์: เป็นการวัดผลที่ครอบคลุมทุกทักษะ โดยดูจากการออกแบบ การเขียนโค้ด และการนำเสนอผลงาน.
2 การสอบปฏิบัติ: ให้นักศึกษาเขียนโปรแกรมเพื่อแก้ปัญหาที่กำหนดให้ภายในเวลาที่จำกัด.
3 การนำเสนอผลงาน: ประเมินทักษะการสื่อสารจากการนำเสนอโปรเจกต์และตอบคำถาม.
4 การประเมินจากแบบฝึกหัด: วัดผลจากการส่งแบบฝึกหัดที่ต้องใช้ทั้งการวิเคราะห์และการเขียนโค้ด.
 
1 ทักษะการใช้เครื่องมือและซอฟต์แวร์: สามารถใช้โปรแกรมหรือภาษาโปรแกรมที่เกี่ยวข้องกับการจัดการและวิเคราะห์ข้อมูลได้อย่างเชี่ยวชาญ เช่น การใช้เครื่องมือ ETL ในการดึงข้อมูล การใช้เครื่องมือ BI ในการสร้างแดชบอร์ด และการใช้ภาษาโปรแกรม (Python, R) เพื่อสร้างโมเดลเหมืองข้อมูล
2 ทักษะการออกแบบและพัฒนา: สามารถออกแบบโครงสร้างคลังข้อมูล (Dimensional Modeling) และพัฒนากระบวนการ ETL ได้อย่างเป็นระบบ
3 ทักษะการปฏิบัติงานในโครงการ: สามารถนำความรู้และทฤษฎีมาประยุกต์ใช้ในการทำโครงการจริงได้ ตั้งแต่การตั้งโจทย์ การรวบรวมข้อมูล การวิเคราะห์ และการนำเสนอผลลัพธ์
4 ทักษะการทำงานในสภาพแวดล้อมจริง: สามารถจัดการกับปัญหาที่อาจเกิดขึ้นระหว่างการทำงานกับข้อมูลขนาดใหญ่ เช่น ข้อมูลที่ไม่มีคุณภาพ หรือปัญหาด้านประสิทธิภาพของระบบ
 
1 การฝึกปฏิบัติในห้องแล็บ: จัดให้นักศึกษาได้ใช้เครื่องมือและซอฟต์แวร์จริงเพื่อทำแบบฝึกหัดที่หลากหลาย เช่น การสร้าง Star Schema, การเขียนสคริปต์เพื่อทำความสะอาดข้อมูล หรือการสร้างโมเดลจำแนกประเภท (Classification Model)
2 โครงการกลุ่ม (Project-Based Learning): กำหนดให้มีโครงการที่นักศึกษาต้องทำตั้งแต่ต้นจนจบ ซึ่งอาจเป็นการสร้างคลังข้อมูลขนาดเล็ก หรือการแก้ปัญหาธุรกิจโดยใช้เทคนิคเหมืองข้อมูล เพื่อให้นักศึกษาได้ฝึกฝนทักษะการปฏิบัติงานในทุกขั้นตอน
3 การจำลองสถานการณ์ (Simulation): จัดกิจกรรมที่จำลองสถานการณ์จริงที่อาจเกิดขึ้นในโลกการทำงาน เพื่อให้นักศึกษาได้ฝึกการแก้ไขปัญหาเฉพาะหน้าและตัดสินใจภายใต้สถานการณ์ที่ซับซ้อน
4 การนำเสนอผลงาน: ให้นักศึกษาได้นำเสนอผลงานที่ได้จากการปฏิบัติ เพื่อฝึกทักษะการสื่อสารและอธิบายขั้นตอนการทำงานที่ชัดเจน
 
1 การประเมินจากงานในห้องแล็บ: ตรวจสอบผลงานที่ได้จากการทำแบบฝึกหัดในห้องแล็บ เพื่อประเมินความสามารถในการใช้เครื่องมือและซอฟต์แวร์
2 การประเมินจากผลงานโครงการ: พิจารณาจากคุณภาพของผลงานโครงการ ไม่ว่าจะเป็นฐานข้อมูลที่สร้างขึ้น, โค้ดที่เขียน, หรือรายงานผลการวิเคราะห์ เพื่อประเมินความสามารถในการประยุกต์ใช้ความรู้
3 การสอบปฏิบัติ (Practical Exam): อาจมีการสอบที่ให้นักศึกษาแก้โจทย์ปัญหาเชิงปฏิบัติโดยใช้คอมพิวเตอร์และซอฟต์แวร์ที่เกี่ยวข้อง
4 การประเมินการนำเสนอผลงาน: ให้คะแนนจากการนำเสนอโครงการ โดยพิจารณาจากความชัดเจนในการอธิบายขั้นตอนการทำงานและทักษะการใช้เครื่องมือประกอบการนำเสนอ
 
กิจกรรมที่ ผลการเรียนรู้ * วิธีการประเมินผลนักศึกษา สัปดาห์ที่ประเมิน สัดส่วนของการประเมินผล
1 ทดสอบย่อย 1 ทดสอบย่อย 2 สอบกลางภาคเรียน สอบปลายภาคเรียน แบบทดสอบ Google Form, ข้อสอบทฤษฎี, ข้อสอบปฏิบัติ 4 8 9 17 10% 10% 25% 25%
2 การทำงานกลุ่มและผลงาน วิเคราะห์กรณีศึกษาค้นคว้า การนำเสนอ รายงาน ตลอดภาคการศึกษ 20%
3 เข้าชั้นเรียน การเข้าชั้นเรียน การมีส่วนร่วม อภิปราย เสนอความคิดเห็นผ่านระบบออนไลน์ ตลอดภาคการศึกษา 10%
1 Cay S. Horstmann. Core Java Volume I--Fundamentals. ฉบับที่ 11 หรือล่าสุด, Pearson, 2018. (เป็นตำราที่ครอบคลุมหลักการพื้นฐานของการเขียนโปรแกรมเชิงวัตถุด้วยภาษา Java ซึ่งเป็นพื้นฐานที่ดีเยี่ยม)
2 Robert C. Martin. Clean Code: A Handbook of Agile Software Craftsmanship. Prentice Hall, 2008. (เป็นหนังสือที่เน้นเรื่องการเขียนโค้ดให้สะอาด อ่านง่าย และสามารถดูแลรักษาได้ ซึ่งเป็นสิ่งสำคัญสำหรับนักพัฒนาซอฟต์แวร์ทุกคน)
3 เอกสารประกอบการสอนของรายวิชา: จัดทำโดยอาจารย์ผู้สอน ซึ่งจะมีการสรุปเนื้อหาหลักในแต่ละบทเรียน พร้อมตัวอย่างประกอบ และแบบฝึกหัด
 
A เอกสาร และข้อมูลแนะนำ
Eric Gamma, Richard Helm, Ralph Johnson, และ John Vlissides. Design Patterns: Elements of Reusable Object-Oriented Software. Addison-Wesley, 1994. (เป็นตำราคลาสสิกที่อธิบาย Design Patterns หรือรูปแบบการออกแบบที่แก้ปัญหาทั่วไปในการเขียนโปรแกรมเชิงวัตถุ)
2 Martin Fowler. Refactoring: Improving the Design of Existing Code. Addison-Wesley, 1999. (เน้นเรื่องเทคนิคการปรับปรุงโครงสร้างโค้ดที่มีอยู่ให้ดีขึ้นโดยไม่กระทบกับพฤติกรรมการทำงานเดิม)

B แหล่งข้อมูลออนไลน์:
1 Coursera, edX: คอร์สออนไลน์ที่เกี่ยวข้องกับการเขียนโปรแกรมเชิงวัตถุจากมหาวิทยาลัยชั้นนำ เช่น "Object-Oriented Programming in Java" หรือ "Software Design and Architecture"
2 Blog และบทความทางเทคนิค: แหล่งข้อมูลจากนักพัฒนาและผู้เชี่ยวชาญ เช่น Stack Overflow, Medium, หรือเว็บไซต์ของภาษาโปรแกรมต่าง ๆ (เช่น Oracle สำหรับ Java, Microsoft สำหรับ C#)
3 GitHub: แพลตฟอร์มสำหรับการทำงานร่วมกันและเก็บโค้ด ที่นักศึกษาจะได้เรียนรู้การทำงานร่วมกับผู้อื่นและใช้ Version Control

C ซอฟต์แวร์และเครื่องมือ:
1 ภาษาโปรแกรม: Java, Python, หรือ C++ (ขึ้นอยู่กับหลักสูตร)
2 IDE (Integrated Development Environment): เช่น IntelliJ IDEA, Visual Studio Code, หรือ Eclipse ที่ช่วยในการเขียนโค้ดและดีบักได้อย่างมีประสิทธิภาพ
3 UML (Unified Modeling Language): เครื่องมือสำหรับการออกแบบเชิงวัตถุ เช่น Visual Paradigm, Lucidchart หรือ StarUML
1 แบบประเมินออนไลน์ท้ายภาคเรียน: นักศึกษาจะได้ทำแบบสอบถามออนไลน์เพื่อแสดงความคิดเห็นต่อเนื้อหาการสอน, สื่อการสอน, วิธีการประเมินผล, และการจัดการเรียนการสอนโดยรวม
2 การพูดคุยในชั้นเรียน: เปิดโอกาสให้นักศึกษาได้ให้ข้อเสนอแนะและสะท้อนความคิดเห็นต่อบทเรียนหรือกิจกรรมต่าง ๆ ในระหว่างการเรียนการสอนแบบไม่เป็นทางการ
3 การประชุมตัวแทนนักศึกษา: จัดการประชุมร่วมกับตัวแทนนักศึกษาเพื่อรวบรวมข้อมูลเชิงลึกเกี่ยวกับปัญหาที่พบและข้อเสนอแนะสำหรับการปรับปรุง
 
1 การประเมินตนเอง: ผู้สอนจะทบทวนและประเมินการสอนของตนเองอยู่เสมอ โดยพิจารณาจากผลสัมฤทธิ์ของนักศึกษาและข้อเสนอแนะที่ได้รับ
2 การประเมินโดยเพื่อนร่วมงาน: ให้เพื่อนอาจารย์ในสาขาวิชาเดียวกันเข้าร่วมสังเกตการณ์การสอนอย่างน้อยหนึ่งครั้งต่อภาคเรียน เพื่อให้ข้อเสนอแนะเชิงสร้างสรรค์
3 ผลการประเมินจากนักศึกษา: นำผลการประเมินจากแบบสอบถามท้ายภาคเรียนมาวิเคราะห์เพื่อหาจุดแข็งและจุดที่ต้องปรับปรุงในการสอน
 
1 ปรับปรุงเนื้อหาและสื่อการสอน: อัปเดตเนื้อหาให้ทันสมัยและสอดคล้องกับเทคโนโลยีในปัจจุบัน รวมถึงปรับปรุงสไลด์และเอกสารประกอบการสอนให้เข้าใจง่ายขึ้น
2 ปรับเปลี่ยนวิธีการสอน: เน้นการเรียนรู้แบบปฏิบัติจริงและแก้ไขปัญหา (Problem-Based Learning) ให้มากขึ้น เพื่อให้นักศึกษาได้ฝึกฝนการเขียนโค้ดและแก้ปัญหาที่ซับซ้อนด้วยตนเอง
3 เพิ่มเครื่องมือช่วยสอน: นำเครื่องมือหรือแพลตฟอร์มออนไลน์ เช่น GitHub, Stack Overflow, หรือ IDE (Integrated Development Environment) ที่ทันสมัยมาใช้ประกอบการสอน เพื่อให้นักศึกษาคุ้นเคยกับการทำงานในสภาพแวดล้อมจริง
 
1 การทวนสอบข้อสอบและคะแนน: ตรวจสอบความถูกต้องของข้อสอบ, เกณฑ์การให้คะแนน, และผลการประเมิน เพื่อให้แน่ใจว่าได้มาตรฐาน
2 การสุ่มตรวจผลงาน: สุ่มตรวจการบ้านหรือโครงงานของนักศึกษา เพื่อตรวจสอบว่าการให้คะแนนเป็นไปตามหลักเกณฑ์ที่กำหนดและเป็นธรรม
3 การประเมินจากผู้ทรงคุณวุฒิภายนอก: เชิญผู้เชี่ยวชาญจากภายนอกมาช่วยประเมินผลงานบางส่วนของนักศึกษา เช่น โครงงานสำคัญ เพื่อให้การประเมินมีความเป็นกลางและได้มาตรฐาน
 
1 รวบรวมข้อมูล: รวบรวมข้อมูลจากทุกแหล่งที่กล่าวมาข้างต้น ทั้งจากนักศึกษา, ผู้สอน, และเพื่อนร่วมงาน
2 วิเคราะห์และระบุจุดที่ต้องปรับปรุง: จัดประชุมผู้สอนเพื่อวิเคราะห์ข้อมูลที่ได้และระบุจุดแข็ง, จุดอ่อน, และโอกาสในการปรับปรุงรายวิชา
3 วางแผนการปรับปรุง: กำหนดแผนปฏิบัติการที่ชัดเจนสำหรับภาคการศึกษาถัดไป เช่น การเพิ่มหัวข้อใหม่, การเปลี่ยนวิธีการสอน, หรือการปรับปรุงสื่อการเรียนรู้
4 นำไปปฏิบัติและติดตามผล: นำแผนการปรับปรุงไปใช้และติดตามผลอย่างใกล้ชิด เพื่อให้แน่ใจว่าการเปลี่ยนแปลงนั้นส่งผลดีต่อคุณภาพการเรียนการสอนอย่างแท้จริง