ผลต่างระหว่างรุ่นของ "ร่างหัวข้อวิชา 204111"

จาก Theory Wiki
ไปยังการนำทาง ไปยังการค้นหา
แถว 11: แถว 11:
 
== ส่วน Python ==
 
== ส่วน Python ==
  
# แนะนำคอมพิวเตอร์และการโปรแกรม
+
=== แนะนำคอมพิวเตอร์และการโปรแกรม ===
 
#* เนื้อหา:
 
#* เนื้อหา:
 
#** มโนทัศน์การแปลโปรแกรม (ภาษาตีความ และภาษาคอมไพล์)
 
#** มโนทัศน์การแปลโปรแกรม (ภาษาตีความ และภาษาคอมไพล์)
แถว 20: แถว 20:
 
#**ให้ผู้เรียนฝึกวาดรูปโดยใช้เต่าแบบโต้ตอบ (เต่าตัวเดียว)
 
#**ให้ผู้เรียนฝึกวาดรูปโดยใช้เต่าแบบโต้ตอบ (เต่าตัวเดียว)
 
#** ปิดแล็บด้วยการสาธิตว่าเราสร้างคำสั่งใหม่ได้
 
#** ปิดแล็บด้วยการสาธิตว่าเราสร้างคำสั่งใหม่ได้
# แนะนำภาษาไพธอน: คำสั่ง ตัวแปร ค่าคงที่ นิพจน์ ฟังก์ชันที่มีอยู่แล้ว
+
 
 +
=== แนะนำภาษาไพธอน: คำสั่ง ตัวแปร ค่าคงที่ นิพจน์ ฟังก์ชันที่มีอยู่แล้ว ===
 
#* แนว+แล็บ:
 
#* แนว+แล็บ:
 
#** การรับอินพุทและการแปลงชนิดข้อมูล
 
#** การรับอินพุทและการแปลงชนิดข้อมูล
แถว 30: แถว 31:
 
#** สมการการเคลื่อนที่ โปรเจ็คไตล์ ความเร่ง ความเร็ว
 
#** สมการการเคลื่อนที่ โปรเจ็คไตล์ ความเร่ง ความเร็ว
 
#* [[204111:lab2|เอกสารแล็บ]]
 
#* [[204111:lab2|เอกสารแล็บ]]
# การนิยามคำสั่งใหม่ด้วยโปรแกรมย่อยและฟังก์ชัน
+
 
 +
=== การนิยามคำสั่งใหม่ด้วยโปรแกรมย่อยและฟังก์ชัน ===
 
#* แนว: ชี้ให้ผู้เรียนเห็นถึงการคิดปัญหาเชิงมอดูล และการสอนให้คอมพิวเตอร์รู้จักคำสั่งใหม่
 
#* แนว: ชี้ให้ผู้เรียนเห็นถึงการคิดปัญหาเชิงมอดูล และการสอนให้คอมพิวเตอร์รู้จักคำสั่งใหม่
 
#* เนื้อหาที่ต้องครอบคลุม
 
#* เนื้อหาที่ต้องครอบคลุม
แถว 37: แถว 39:
 
#** ขอบเขตของตัวแปรในฟังก์ชัน และตัวแปรแบบโกลบอล
 
#** ขอบเขตของตัวแปรในฟังก์ชัน และตัวแปรแบบโกลบอล
 
#* [[204111:lab3|เอกสารแล็บ]]
 
#* [[204111:lab3|เอกสารแล็บ]]
# คำสั่งเงื่อนไขและคำสั่งวนซ้ำ
+
 
 +
=== คำสั่งเงื่อนไขและคำสั่งวนซ้ำ ===
 
#* แนว:  
 
#* แนว:  
 
#** พิจารณาโจทย์ที่ต้องใช้คำสั่งเงื่อนไขและคำสั่งวนซ้ำ
 
#** พิจารณาโจทย์ที่ต้องใช้คำสั่งเงื่อนไขและคำสั่งวนซ้ำ
แถว 50: แถว 53:
 
#** การใช้ for เพื่อเข้าถึงข้อมูลในลิสต์
 
#** การใช้ for เพื่อเข้าถึงข้อมูลในลิสต์
 
<!-- # ภาษาเชิงวัตถุ: Turtle Graphics -->
 
<!-- # ภาษาเชิงวัตถุ: Turtle Graphics -->
 +
 +
=== ส่วนประมวลเนื้อหา ===
 
# [[ร่างวิชา 204111 ส่วนประมวลเนื้อหา Python|ส่วนประมวลเนื้อหา]]
 
# [[ร่างวิชา 204111 ส่วนประมวลเนื้อหา Python|ส่วนประมวลเนื้อหา]]
 
#* ฝึกวิเคราะห์และเขียนโปรแกรมตามโจทย์ที่ให้
 
#* ฝึกวิเคราะห์และเขียนโปรแกรมตามโจทย์ที่ให้
แถว 58: แถว 63:
 
== ส่วน C# ==
 
== ส่วน C# ==
  
# แนะนำภาษา C# และเครื่องมือพัฒนาโปรแกรม
+
=== แนะนำภาษา C# และเครื่องมือพัฒนาโปรแกรม ===
 
#* เนื้อหา
 
#* เนื้อหา
 
#** ย้ำคอนเซ็ปต์การแปลภาษา
 
#** ย้ำคอนเซ็ปต์การแปลภาษา
แถว 69: แถว 74:
 
#** ให้ทดลองทำทั้ง Console และ Windows App
 
#** ให้ทดลองทำทั้ง Console และ Windows App
 
#** พัฒนาเกมง่าย ๆ ที่เปลี่ยน property ของ component
 
#** พัฒนาเกมง่าย ๆ ที่เปลี่ยน property ของ component
# ชนิดของตัวแปร การประกาศตัวแปรและค่าคงที่ อินพุท เอาท์พุท การควบคุมการไหลของโปรแกรม
+
 
 +
=== ชนิดของตัวแปร การประกาศตัวแปรและค่าคงที่ อินพุท เอาท์พุท การควบคุมการไหลของโปรแกรม ===
 
#* แนว:
 
#* แนว:
 
#** แสดงให้เห็นถึงความแตกต่างกับ Python
 
#** แสดงให้เห็นถึงความแตกต่างกับ Python
 
#** ความสำคัญของ type
 
#** ความสำคัญของ type
 
#** โครงสร้างคำสั่งเงื่อนไขและวนซ้ำที่เปลี่ยนไปจาก Python
 
#** โครงสร้างคำสั่งเงื่อนไขและวนซ้ำที่เปลี่ยนไปจาก Python
#** เน้นแค่ if, while
+
#** เน้นแค่ if, while, do-while
# เมท็อดและขอบเขตตัวแปร
+
 
 +
=== เมท็อดและขอบเขตตัวแปร ===
 
#* เนื้อหา:
 
#* เนื้อหา:
 
#** เมท็อดไม่คืนค่า คืนค่า  
 
#** เมท็อดไม่คืนค่า คืนค่า  
 
#** ตัวแปรของคลาส ตัวแปรท้องถิ่น ตัวแปรท้องถิ่นของบล็อค
 
#** ตัวแปรของคลาส ตัวแปรท้องถิ่น ตัวแปรท้องถิ่นของบล็อค
# การส่งพารามิเตอร์และการใช้งานไฟล์
+
 
 +
=== การส่งพารามิเตอร์และการใช้งานไฟล์ ===
 
#* เนื้อหา:
 
#* เนื้อหา:
 
#* แนว:
 
#* แนว:
แถว 87: แถว 95:
 
#** การส่งพารามิเตอร์แบบ by value/reference (???)
 
#** การส่งพารามิเตอร์แบบ by value/reference (???)
 
#** การอ่านและเขียนไฟล์แบบเท็กซ์
 
#** การอ่านและเขียนไฟล์แบบเท็กซ์
# อาร์เรย์
+
 
 +
=== อาร์เรย์ ===
 
#* แนว (เพิ่มเติม):
 
#* แนว (เพิ่มเติม):
 
#** ให้ผู้เรียนอ่านข้อมูลจากไฟล์เพื่อให้ทดสอบโปรแกรมได้ง่าย
 
#** ให้ผู้เรียนอ่านข้อมูลจากไฟล์เพื่อให้ทดสอบโปรแกรมได้ง่าย
แถว 96: แถว 105:
 
#** การอ้างถึงสมาชิกในอาร์เรย์
 
#** การอ้างถึงสมาชิกในอาร์เรย์
 
#** คำสั่ง for และ foreach
 
#** คำสั่ง for และ foreach
# อาร์เรย์หลายมิติ
+
#** การส่ง array ไปยังเมธอด
 +
 
 +
=== อาร์เรย์หลายมิติ ===
 
#* เนื้อหา:
 
#* เนื้อหา:
 
#** อาร์เรย์สองมิติ
 
#** อาร์เรย์สองมิติ
 
#** nested loop
 
#** nested loop
# การรวมข้อมูลเป็นกลุ่มโดยใช้ struct และ class และโปรแกรมเชิงวัตถุเบื้องต้น
+
 
 +
=== การรวมข้อมูลเป็นกลุ่มโดยใช้ struct และ class และโปรแกรมเชิงวัตถุเบื้องต้น ===
 
#* เนื้อหา:
 
#* เนื้อหา:
 
#** ความแตกต่างระหว่าง value-type กับ reference-type
 
#** ความแตกต่างระหว่าง value-type กับ reference-type
แถว 106: แถว 118:
 
#** protection level: public, private
 
#** protection level: public, private
 
#** ความหมายของ static modifier
 
#** ความหมายของ static modifier
# คอเล็คชันคลาส
+
 
 +
=== คอเล็คชันคลาส (optional) ===
 
#* แนว:
 
#* แนว:
 
#** ชี้ให้เห็นถึงข้อจำกัดของโครงสร้างข้อมูลพื้นฐาน เช่นอาร์เรย์หรือ struct
 
#** ชี้ให้เห็นถึงข้อจำกัดของโครงสร้างข้อมูลพื้นฐาน เช่นอาร์เรย์หรือ struct

รุ่นแก้ไขเมื่อ 04:20, 29 สิงหาคม 2553

แนวทางการจัดหัวข้อวิชา 204111 สำหรับปีการศึกษา 2553

ทุก ๆ หัวข้อให้ใช้โจทย์นำเนื้อหาเสมอ

ดาวน์โหลดสไลด์และเอกสารได้ที่นี่

ส่วน Python

แนะนำคอมพิวเตอร์และการโปรแกรม

    • เนื้อหา:
      • มโนทัศน์การแปลโปรแกรม (ภาษาตีความ และภาษาคอมไพล์)
    • แนว:
      • สาธิตเครื่องมือช่วยพัฒนาโปรแกรม Wing IDE
      • สาธิตการเขียนกราฟ และเต่า
    • แล็บ: เอกสารแล็บ
      • ให้ผู้เรียนฝึกวาดรูปโดยใช้เต่าแบบโต้ตอบ (เต่าตัวเดียว)
      • ปิดแล็บด้วยการสาธิตว่าเราสร้างคำสั่งใหม่ได้

แนะนำภาษาไพธอน: คำสั่ง ตัวแปร ค่าคงที่ นิพจน์ ฟังก์ชันที่มีอยู่แล้ว

    • แนว+แล็บ:
      • การรับอินพุทและการแปลงชนิดข้อมูล
      • แสดงการคำนวณทางคณิตศาสตร์/วิทยาศาสตร์ แบบโต้ตอบ การใช้งานมอดูล math
      • เปลี่ยนหน่วยอุณหภูมิ
      • แก้โจทย์ปัญหาแบบบัญญัติไตรยาง
      • เปลี่ยนองศาเป็นเรเดียน โดยสร้างนิยามให้เด็กลอกตาม
      • แตกแรงตามแกน x/y
      • สมการการเคลื่อนที่ โปรเจ็คไตล์ ความเร่ง ความเร็ว
    • เอกสารแล็บ

การนิยามคำสั่งใหม่ด้วยโปรแกรมย่อยและฟังก์ชัน

    • แนว: ชี้ให้ผู้เรียนเห็นถึงการคิดปัญหาเชิงมอดูล และการสอนให้คอมพิวเตอร์รู้จักคำสั่งใหม่
    • เนื้อหาที่ต้องครอบคลุม
      • การให้ฟังก์ชันคืนค่า
      • การรับพารามิเตอร์เข้ามาในฟังก์ชัน
      • ขอบเขตของตัวแปรในฟังก์ชัน และตัวแปรแบบโกลบอล
    • เอกสารแล็บ

คำสั่งเงื่อนไขและคำสั่งวนซ้ำ

    • แนว:
      • พิจารณาโจทย์ที่ต้องใช้คำสั่งเงื่อนไขและคำสั่งวนซ้ำ
      • คำสั่งวนซ้ำครอบคลุมเพียงแค่ while loop
      • ยังไม่ต้องมีลูปสองชั้น# คำสั่งวนซ้ำที่ใช้กับลิสต์
  1. การรวมข้อมูลเป็นกลุ่ม: ลิสต์/อาร์เรย์ และคำสั่ง for
    • แนว:
      • ชี้ให้เห็นถึงกลุ่มของข้อมูล รวมถึงชี้ให้เห็นว่าสตริงก็เป็นกลุ่มของข้อมูลเช่นกัน
      • การสร้างลิสต์
      • การเข้าถึงสมาชิก
      • การดำเนินการกับลิสต์: การหาขนาด การเพิ่มสมาชิก
      • การใช้ for เพื่อเข้าถึงข้อมูลในลิสต์

ส่วนประมวลเนื้อหา

  1. ส่วนประมวลเนื้อหา
    • ฝึกวิเคราะห์และเขียนโปรแกรมตามโจทย์ที่ให้
    • โจทย์มีการผสมผสานหลายเนื้อหาเข้าด้วยกัน
  • รายละเอียดเกี่ยวกับ Python ที่ละไว้จากเอกสาร: ภาษาไทย English

ส่วน C#

แนะนำภาษา C# และเครื่องมือพัฒนาโปรแกรม

    • เนื้อหา
      • ย้ำคอนเซ็ปต์การแปลภาษา
      • อธิบายกลไกการคอมไพล์โปรแกรม
    • แนว:
      • สาธิตการใช้งานเครื่องมือ IDE (SharpDev/VS.NET)
      • สาธิตความสามารถของ C#, Console Apps, Windows Apps
      • สอดแทรกแนวคิดเรื่อง OO โดยอาศัย property ของ component
    • แล็บ:
      • ให้ทดลองทำทั้ง Console และ Windows App
      • พัฒนาเกมง่าย ๆ ที่เปลี่ยน property ของ component

ชนิดของตัวแปร การประกาศตัวแปรและค่าคงที่ อินพุท เอาท์พุท การควบคุมการไหลของโปรแกรม

    • แนว:
      • แสดงให้เห็นถึงความแตกต่างกับ Python
      • ความสำคัญของ type
      • โครงสร้างคำสั่งเงื่อนไขและวนซ้ำที่เปลี่ยนไปจาก Python
      • เน้นแค่ if, while, do-while

เมท็อดและขอบเขตตัวแปร

    • เนื้อหา:
      • เมท็อดไม่คืนค่า คืนค่า
      • ตัวแปรของคลาส ตัวแปรท้องถิ่น ตัวแปรท้องถิ่นของบล็อค

การส่งพารามิเตอร์และการใช้งานไฟล์

    • เนื้อหา:
    • แนว:
      • พูดถึง side effect ด้วย
      • การอ่าน/เขียนไฟล์ เน้นเฉพาะไฟล์ชนิดเท็กซ์
    • เนื้อหา:
      • การส่งพารามิเตอร์แบบ by value/reference (???)
      • การอ่านและเขียนไฟล์แบบเท็กซ์

อาร์เรย์

    • แนว (เพิ่มเติม):
      • ให้ผู้เรียนอ่านข้อมูลจากไฟล์เพื่อให้ทดสอบโปรแกรมได้ง่าย
      • แนะนำไฟล์ .csv และคำสั่ง string.Split
    • เนื้อหา:
      • อาร์เรย์มิติเดียว
      • ขนาดของอาร์เรย์
      • การอ้างถึงสมาชิกในอาร์เรย์
      • คำสั่ง for และ foreach
      • การส่ง array ไปยังเมธอด

อาร์เรย์หลายมิติ

    • เนื้อหา:
      • อาร์เรย์สองมิติ
      • nested loop

การรวมข้อมูลเป็นกลุ่มโดยใช้ struct และ class และโปรแกรมเชิงวัตถุเบื้องต้น

    • เนื้อหา:
      • ความแตกต่างระหว่าง value-type กับ reference-type
      • Constructor
      • protection level: public, private
      • ความหมายของ static modifier

คอเล็คชันคลาส (optional)

    • แนว:
      • ชี้ให้เห็นถึงข้อจำกัดของโครงสร้างข้อมูลพื้นฐาน เช่นอาร์เรย์หรือ struct
    • เนื้อหา:
      • List และ Dictionary
    • หมายเหตุ: นำไปเสริมในหัวข้ออาร์เรย์ (ถ้าไม่อัดแน่นเกินไป) จะเหมาะสมกว่าหรือไม่