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

จาก Theory Wiki
ไปยังการนำทาง ไปยังการค้นหา
 
(ไม่แสดง 13 รุ่นระหว่างกลางโดยผู้ใช้ 2 คน)
แถว 5: แถว 5:
 
{{กล่องสี|#ffcccc|
 
{{กล่องสี|#ffcccc|
 
<center>
 
<center>
[http://cloud3.cpe.ku.ac.th/hg/edu/comprog/file ดาวน์โหลดสไลด์ล่าสุด]
+
[http://theory.cpe.ku.ac.th/~jittat/204111 ดาวน์โหลดสไลด์และเอกสารได้ที่นี่]
 
</center>
 
</center>
 
}}
 
}}
  
{{กล่องสี|#ccccff|
+
== ส่วน Python ==
<center>
+
 
'''ส่วน Python'''
+
=== แนะนำคอมพิวเตอร์และการโปรแกรม ===
</center>
+
* เนื้อหา:
}}
+
** มโนทัศน์การแปลโปรแกรม (ภาษาตีความ และภาษาคอมไพล์)
 +
* แนว:
 +
** สาธิตเครื่องมือช่วยพัฒนาโปรแกรม [http://www.wingware.com/ Wing IDE]
 +
** สาธิตการเขียนกราฟ และเต่า
 +
* แล็บ: [[204111:lab1|เอกสารแล็บ]]
 +
**ให้ผู้เรียนฝึกวาดรูปโดยใช้เต่าแบบโต้ตอบ (เต่าตัวเดียว)
 +
** ปิดแล็บด้วยการสาธิตว่าเราสร้างคำสั่งใหม่ได้
 +
 
 +
=== แนะนำภาษาไพธอน: คำสั่ง ตัวแปร ค่าคงที่ นิพจน์ ฟังก์ชันที่มีอยู่แล้ว ===
 +
* แนว+แล็บ:
 +
** การรับอินพุทและการแปลงชนิดข้อมูล
 +
** แสดงการคำนวณทางคณิตศาสตร์/วิทยาศาสตร์ แบบโต้ตอบ การใช้งานมอดูล math
 +
** เปลี่ยนหน่วยอุณหภูมิ
 +
** แก้โจทย์ปัญหาแบบบัญญัติไตรยาง
 +
** เปลี่ยนองศาเป็นเรเดียน โดยสร้างนิยามให้เด็กลอกตาม
 +
** แตกแรงตามแกน x/y
 +
** สมการการเคลื่อนที่ โปรเจ็คไตล์ ความเร่ง ความเร็ว
 +
* [[204111:lab2|เอกสารแล็บ]]
 +
 
 +
=== การนิยามคำสั่งใหม่ด้วยโปรแกรมย่อยและฟังก์ชัน ===
 +
* แนว: ชี้ให้ผู้เรียนเห็นถึงการคิดปัญหาเชิงมอดูล และการสอนให้คอมพิวเตอร์รู้จักคำสั่งใหม่
 +
* เนื้อหาที่ต้องครอบคลุม
 +
** การให้ฟังก์ชันคืนค่า
 +
** การรับพารามิเตอร์เข้ามาในฟังก์ชัน
 +
** ขอบเขตของตัวแปรในฟังก์ชัน และตัวแปรแบบโกลบอล
 +
* [[204111:lab3|เอกสารแล็บ]]
 +
 
 +
=== คำสั่งเงื่อนไขและคำสั่งวนซ้ำ ===
 +
* แนว:
 +
** พิจารณาโจทย์ที่ต้องใช้คำสั่งเงื่อนไขและคำสั่งวนซ้ำ
 +
** คำสั่งวนซ้ำครอบคลุมเพียงแค่ while loop
 +
** ยังไม่ต้องมีลูปสองชั้น# คำสั่งวนซ้ำที่ใช้กับลิสต์
  
# แนะนำคอมพิวเตอร์และการโปรแกรม
+
=== การรวมข้อมูลเป็นกลุ่ม: ลิสต์/อาร์เรย์ และคำสั่ง for ===
#* เนื้อหา:
+
* แนว:  
#** มโนทัศน์การแปลโปรแกรม (ภาษาตีความ และภาษาคอมไพล์)
+
** ชี้ให้เห็นถึงกลุ่มของข้อมูล รวมถึงชี้ให้เห็นว่าสตริงก็เป็นกลุ่มของข้อมูลเช่นกัน
#* แนว:
+
** การสร้างลิสต์
#** สาธิตเครื่องมือช่วยพัฒนาโปรแกรม [http://www.wingware.com/ Wing IDE]
+
** การเข้าถึงสมาชิก
#** สาธิตการเขียนกราฟ และเต่า
+
** การดำเนินการกับลิสต์: การหาขนาด การเพิ่มสมาชิก
#* แล็บ: ให้ผู้เรียนฝึกวาดรูปโดยใช้เต่าแบบโต้ตอบ (เต่าตัวเดียว)
+
** การใช้ for เพื่อเข้าถึงข้อมูลในลิสต์
#* ปิดแล็บด้วยการสาธิตว่าเราสร้างคำสั่งใหม่ได้
 
# แนะนำภาษาไพธอน: คำสั่ง ตัวแปร ค่าคงที่ นิพจน์ ฟังก์ชันที่มีอยู่แล้ว
 
#* แนว+แล็บ:
 
#** การรับอินพุทและการแปลงชนิดข้อมูล
 
#** แสดงการคำนวณทางคณิตศาสตร์/วิทยาศาสตร์ แบบโต้ตอบ การใช้งานมอดูล math
 
#** เปลี่ยนหน่วยอุณหภูมิ
 
#** แก้โจทย์ปัญหาแบบบัญญัติไตรยาง
 
#** เปลี่ยนองศาเป็นเรเดียน โดยสร้างนิยามให้เด็กลอกตาม
 
#** แตกแรงตามแกน x/y
 
#** สมการการเคลื่อนที่ โปรเจ็คไตล์ ความเร่ง ความเร็ว
 
# การนิยามคำสั่งใหม่ด้วยโปรแกรมย่อยและฟังก์ชัน
 
#* แนว: ชี้ให้ผู้เรียนเห็นถึงการคิดปัญหาเชิงมอดูล และการสอนให้คอมพิวเตอร์รู้จักคำสั่งใหม่
 
#* เนื้อหาที่ต้องครอบคลุม
 
#** การให้ฟังก์ชันคืนค่า
 
#** การรับพารามิเตอร์เข้ามาในฟังก์ชัน
 
#** ขอบเขตของตัวแปรในฟังก์ชัน และตัวแปรแบบโกลบอล
 
# คำสั่งเงื่อนไขและคำสั่งวนซ้ำ
 
#* แนว:
 
#** พิจารณาโจทย์ที่ต้องใช้คำสั่งเงื่อนไขและคำสั่งวนซ้ำ
 
#** คำสั่งวนซ้ำครอบคลุมเพียงแค่ while loop
 
#** ยังไม่ต้องมีลูปสองชั้น# คำสั่งวนซ้ำที่ใช้กับลิสต์
 
# การรวมข้อมูลเป็นกลุ่ม: ลิสต์/อาร์เรย์ และคำสั่ง for
 
#* แนว:  
 
#** ชี้ให้เห็นถึงกลุ่มของข้อมูล รวมถึงชี้ให้เห็นว่าสตริงก็เป็นกลุ่มของข้อมูลเช่นกัน
 
#** การสร้างลิสต์
 
#** การเข้าถึงสมาชิก
 
#** การดำเนินการกับลิสต์: การหาขนาด การเพิ่มสมาชิก
 
#** การใช้ for เพื่อเข้าถึงข้อมูลในลิสต์
 
 
<!-- # ภาษาเชิงวัตถุ: Turtle Graphics -->
 
<!-- # ภาษาเชิงวัตถุ: Turtle Graphics -->
# ประมวลเนื้อหา
 
#* ฝึกวิเคราะห์และเขียนโปรแกรมตามโจทย์ที่ให้
 
#* โจทย์มีการผสมผสานหลายเนื้อหาเข้าด้วยกัน
 
  
{{กล่องสี|#ccccff|
+
=== ส่วนประมวลเนื้อหา ===
<center>
+
* [[ร่างวิชา 204111 ส่วนประมวลเนื้อหา Python|ส่วนประมวลเนื้อหา]]
'''ส่วน C#'''
+
* ฝึกวิเคราะห์และเขียนโปรแกรมตามโจทย์ที่ให้
</center>
+
* โจทย์มีการผสมผสานหลายเนื้อหาเข้าด้วยกัน
}}
+
 
 +
=== เอกสารเพิ่มเติม ===
 +
* รายละเอียดเกี่ยวกับ Python ที่ละไว้จากเอกสาร: [[204111:Python_missing_th|ภาษาไทย]] [[204111:Python missing details|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
  
# แนะนำภาษา C# และเครื่องมือพัฒนาโปรแกรม
+
=== คอเล็คชันคลาส (optional) ===
#* เนื้อหา
+
* แนว:
#** ย้ำคอนเซ็ปต์การแปลภาษา
+
** ชี้ให้เห็นถึงข้อจำกัดของโครงสร้างข้อมูลพื้นฐาน เช่นอาร์เรย์หรือ struct
#** อธิบายกลไกการคอมไพล์โปรแกรม
+
* เนื้อหา:
#* แนว:
+
** List และ Dictionary
#** สาธิตการใช้งานเครื่องมือ IDE (SharpDev/VS.NET)
+
* หมายเหตุ: นำไปเสริมในหัวข้ออาร์เรย์ (ถ้าไม่อัดแน่นเกินไป) จะเหมาะสมกว่าหรือไม่
#** สาธิตความสามารถของ C#, Console Apps, Windows Apps
 
#** สอดแทรกแนวคิดเรื่อง OO โดยอาศัย property ของ component
 
#* แล็บ:
 
#** ให้ทดลองทำทั้ง Console และ Windows App
 
#** พัฒนาเกมง่าย ๆ ที่เปลี่ยน property ของ component
 
# ชนิดของตัวแปร การประกาศตัวแปรและค่าคงที่ การควบคุมการไหลของโปรแกรม
 
#* แนว:
 
#** แสดงให้เห็นถึงความแตกต่างกับ Python
 
#** ความสำคัญของ type
 
#** โครงสร้างคำสั่งเงื่อนไขและวนซ้ำที่เปลี่ยนไปจาก Python
 
#** เน้นแค่ if, while
 
# อินพุท เอาท์พุท และไฟล์
 
#* แนว:
 
#** เน้นเฉพาะไฟล์ชนิดเท็กซ์
 
#* เนื้อหา:
 
#** คำสั่ง WriteLine, ReadLine
 
#** ความหมายของไฟล์
 
#** การอ่านและเขียนไฟล์แบบเท็กซ์
 
# เมท็อด
 
#* เนื้อหา:
 
#** เมท็อดไม่คืนค่า คืนค่า และการส่งพารามิเตอร์
 
#** การส่งพารามิเตอร์แบบ by value/reference (???)
 
# อาร์เรย์
 
#* แนว:
 
#** ให้ผู้เรียนอ่านข้อมูลจากไฟล์เพื่อให้ทดสอบโปรแกรมได้ง่าย
 
#** แนะนำไฟล์ .csv และคำสั่ง string.Split
 
#* เนื้อหา:
 
#** อาร์เรย์มิติเดียว
 
#** อาร์เรย์สองมิติ
 
#** ขนาดของอาร์เรย์
 
#** การอ้างถึงสมาชิกในอาร์เรย์
 
# การรวมข้อมูลเป็นกลุ่มโดยใช้ struct และ class และโปรแกรมเชิงวัตถุเบื้องต้น
 
#* เนื้อหา:
 
#** ความแตกต่างระหว่าง value-type กับ reference-type
 
#** Constructor
 
#** protection level: public, private
 
#** ความหมายของ static modifier
 
# คอเล็คชันคลาส
 
#* แนว:
 
#** ชี้ให้เห็นถึงข้อจำกัดของโครงสร้างข้อมูลพื้นฐาน เช่นอาร์เรย์หรือ struct
 
#* เนื้อหา:
 
#** List และ Dictionary
 
#* หมายเหตุ: นำไปเสริมในหัวข้ออาร์เรย์ (ถ้าไม่อัดแน่นเกินไป) จะเหมาะสมกว่าหรือไม่
 

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

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

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

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

เนื้อหา

ส่วน Python

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

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

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

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

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

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

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

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

การรวมข้อมูลเป็นกลุ่ม: ลิสต์/อาร์เรย์ และคำสั่ง for

  • แนว:
    • ชี้ให้เห็นถึงกลุ่มของข้อมูล รวมถึงชี้ให้เห็นว่าสตริงก็เป็นกลุ่มของข้อมูลเช่นกัน
    • การสร้างลิสต์
    • การเข้าถึงสมาชิก
    • การดำเนินการกับลิสต์: การหาขนาด การเพิ่มสมาชิก
    • การใช้ for เพื่อเข้าถึงข้อมูลในลิสต์

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

  • ส่วนประมวลเนื้อหา
  • ฝึกวิเคราะห์และเขียนโปรแกรมตามโจทย์ที่ให้
  • โจทย์มีการผสมผสานหลายเนื้อหาเข้าด้วยกัน

เอกสารเพิ่มเติม

  • รายละเอียดเกี่ยวกับ 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
  • หมายเหตุ: นำไปเสริมในหัวข้ออาร์เรย์ (ถ้าไม่อัดแน่นเกินไป) จะเหมาะสมกว่าหรือไม่