ผลต่างระหว่างรุ่นของ "ร่างหัวข้อวิชา 204111"
ไปยังการนำทาง
ไปยังการค้นหา
Chaiporn (คุย | มีส่วนร่วม) |
Jittat (คุย | มีส่วนร่วม) |
||
(ไม่แสดง 20 รุ่นระหว่างกลางโดยผู้ใช้ 3 คน) | |||
แถว 3: | แถว 3: | ||
ทุก ๆ หัวข้อให้ใช้โจทย์นำเนื้อหาเสมอ | ทุก ๆ หัวข้อให้ใช้โจทย์นำเนื้อหาเสมอ | ||
− | + | {{กล่องสี|#ffcccc| | |
+ | <center> | ||
+ | [http://theory.cpe.ku.ac.th/~jittat/204111 ดาวน์โหลดสไลด์และเอกสารได้ที่นี่] | ||
+ | </center> | ||
+ | }} | ||
− | + | == ส่วน Python == | |
− | + | ||
− | + | === แนะนำคอมพิวเตอร์และการโปรแกรม === | |
− | + | * เนื้อหา: | |
− | + | ** มโนทัศน์การแปลโปรแกรม (ภาษาตีความ และภาษาคอมไพล์) | |
− | + | * แนว: | |
− | + | ** สาธิตเครื่องมือช่วยพัฒนาโปรแกรม [http://www.wingware.com/ Wing IDE] | |
− | + | ** สาธิตการเขียนกราฟ และเต่า | |
− | + | * แล็บ: [[204111:lab1|เอกสารแล็บ]] | |
− | + | **ให้ผู้เรียนฝึกวาดรูปโดยใช้เต่าแบบโต้ตอบ (เต่าตัวเดียว) | |
− | + | ** ปิดแล็บด้วยการสาธิตว่าเราสร้างคำสั่งใหม่ได้ | |
− | + | ||
− | + | === แนะนำภาษาไพธอน: คำสั่ง ตัวแปร ค่าคงที่ นิพจน์ ฟังก์ชันที่มีอยู่แล้ว === | |
− | + | * แนว+แล็บ: | |
− | + | ** การรับอินพุทและการแปลงชนิดข้อมูล | |
− | + | ** แสดงการคำนวณทางคณิตศาสตร์/วิทยาศาสตร์ แบบโต้ตอบ การใช้งานมอดูล math | |
− | + | ** เปลี่ยนหน่วยอุณหภูมิ | |
− | + | ** แก้โจทย์ปัญหาแบบบัญญัติไตรยาง | |
− | + | ** เปลี่ยนองศาเป็นเรเดียน โดยสร้างนิยามให้เด็กลอกตาม | |
− | + | ** แตกแรงตามแกน x/y | |
− | + | ** สมการการเคลื่อนที่ โปรเจ็คไตล์ ความเร่ง ความเร็ว | |
− | + | * [[204111:lab2|เอกสารแล็บ]] | |
− | + | ||
− | + | === การนิยามคำสั่งใหม่ด้วยโปรแกรมย่อยและฟังก์ชัน === | |
− | + | * แนว: ชี้ให้ผู้เรียนเห็นถึงการคิดปัญหาเชิงมอดูล และการสอนให้คอมพิวเตอร์รู้จักคำสั่งใหม่ | |
− | + | * เนื้อหาที่ต้องครอบคลุม | |
− | + | ** การให้ฟังก์ชันคืนค่า | |
− | + | ** การรับพารามิเตอร์เข้ามาในฟังก์ชัน | |
− | + | ** ขอบเขตของตัวแปรในฟังก์ชัน และตัวแปรแบบโกลบอล | |
− | + | * [[204111:lab3|เอกสารแล็บ]] | |
− | + | ||
− | + | === คำสั่งเงื่อนไขและคำสั่งวนซ้ำ === | |
− | + | * แนว: | |
− | + | ** พิจารณาโจทย์ที่ต้องใช้คำสั่งเงื่อนไขและคำสั่งวนซ้ำ | |
− | + | ** คำสั่งวนซ้ำครอบคลุมเพียงแค่ while loop | |
+ | ** ยังไม่ต้องมีลูปสองชั้น# คำสั่งวนซ้ำที่ใช้กับลิสต์ | ||
+ | |||
+ | === การรวมข้อมูลเป็นกลุ่ม: ลิสต์/อาร์เรย์ และคำสั่ง for === | ||
+ | * แนว: | ||
+ | ** ชี้ให้เห็นถึงกลุ่มของข้อมูล รวมถึงชี้ให้เห็นว่าสตริงก็เป็นกลุ่มของข้อมูลเช่นกัน | ||
+ | ** การสร้างลิสต์ | ||
+ | ** การเข้าถึงสมาชิก | ||
+ | ** การดำเนินการกับลิสต์: การหาขนาด การเพิ่มสมาชิก | ||
+ | ** การใช้ for เพื่อเข้าถึงข้อมูลในลิสต์ | ||
<!-- # ภาษาเชิงวัตถุ: Turtle Graphics --> | <!-- # ภาษาเชิงวัตถุ: Turtle Graphics --> | ||
− | |||
− | |||
− | |||
− | + | === ส่วนประมวลเนื้อหา === | |
+ | * [[ร่างวิชา 204111 ส่วนประมวลเนื้อหา Python|ส่วนประมวลเนื้อหา]] | ||
+ | * ฝึกวิเคราะห์และเขียนโปรแกรมตามโจทย์ที่ให้ | ||
+ | * โจทย์มีการผสมผสานหลายเนื้อหาเข้าด้วยกัน | ||
+ | |||
+ | === เอกสารเพิ่มเติม === | ||
+ | * รายละเอียดเกี่ยวกับ 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 | ||
− | + | === คอเล็คชันคลาส (optional) === | |
− | + | * แนว: | |
− | + | ** ชี้ให้เห็นถึงข้อจำกัดของโครงสร้างข้อมูลพื้นฐาน เช่นอาร์เรย์หรือ struct | |
− | + | * เนื้อหา: | |
− | + | ** List และ Dictionary | |
− | + | * หมายเหตุ: นำไปเสริมในหัวข้ออาร์เรย์ (ถ้าไม่อัดแน่นเกินไป) จะเหมาะสมกว่าหรือไม่ | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− |
รุ่นแก้ไขปัจจุบันเมื่อ 04:22, 29 สิงหาคม 2553
แนวทางการจัดหัวข้อวิชา 204111 สำหรับปีการศึกษา 2553
ทุก ๆ หัวข้อให้ใช้โจทย์นำเนื้อหาเสมอ
เนื้อหา
- 1 ส่วน Python
- 2 ส่วน C#
- 2.1 แนะนำภาษา C# และเครื่องมือพัฒนาโปรแกรม
- 2.2 ชนิดของตัวแปร การประกาศตัวแปรและค่าคงที่ อินพุท เอาท์พุท การควบคุมการไหลของโปรแกรม
- 2.3 เมท็อดและขอบเขตตัวแปร
- 2.4 การส่งพารามิเตอร์และการใช้งานไฟล์
- 2.5 อาร์เรย์
- 2.6 อาร์เรย์หลายมิติ
- 2.7 การรวมข้อมูลเป็นกลุ่มโดยใช้ struct และ class และโปรแกรมเชิงวัตถุเบื้องต้น
- 2.8 คอเล็คชันคลาส (optional)
ส่วน Python
แนะนำคอมพิวเตอร์และการโปรแกรม
- เนื้อหา:
- มโนทัศน์การแปลโปรแกรม (ภาษาตีความ และภาษาคอมไพล์)
- แนว:
- สาธิตเครื่องมือช่วยพัฒนาโปรแกรม Wing IDE
- สาธิตการเขียนกราฟ และเต่า
- แล็บ: เอกสารแล็บ
- ให้ผู้เรียนฝึกวาดรูปโดยใช้เต่าแบบโต้ตอบ (เต่าตัวเดียว)
- ปิดแล็บด้วยการสาธิตว่าเราสร้างคำสั่งใหม่ได้
แนะนำภาษาไพธอน: คำสั่ง ตัวแปร ค่าคงที่ นิพจน์ ฟังก์ชันที่มีอยู่แล้ว
- แนว+แล็บ:
- การรับอินพุทและการแปลงชนิดข้อมูล
- แสดงการคำนวณทางคณิตศาสตร์/วิทยาศาสตร์ แบบโต้ตอบ การใช้งานมอดูล math
- เปลี่ยนหน่วยอุณหภูมิ
- แก้โจทย์ปัญหาแบบบัญญัติไตรยาง
- เปลี่ยนองศาเป็นเรเดียน โดยสร้างนิยามให้เด็กลอกตาม
- แตกแรงตามแกน x/y
- สมการการเคลื่อนที่ โปรเจ็คไตล์ ความเร่ง ความเร็ว
- เอกสารแล็บ
การนิยามคำสั่งใหม่ด้วยโปรแกรมย่อยและฟังก์ชัน
- แนว: ชี้ให้ผู้เรียนเห็นถึงการคิดปัญหาเชิงมอดูล และการสอนให้คอมพิวเตอร์รู้จักคำสั่งใหม่
- เนื้อหาที่ต้องครอบคลุม
- การให้ฟังก์ชันคืนค่า
- การรับพารามิเตอร์เข้ามาในฟังก์ชัน
- ขอบเขตของตัวแปรในฟังก์ชัน และตัวแปรแบบโกลบอล
- เอกสารแล็บ
คำสั่งเงื่อนไขและคำสั่งวนซ้ำ
- แนว:
- พิจารณาโจทย์ที่ต้องใช้คำสั่งเงื่อนไขและคำสั่งวนซ้ำ
- คำสั่งวนซ้ำครอบคลุมเพียงแค่ while loop
- ยังไม่ต้องมีลูปสองชั้น# คำสั่งวนซ้ำที่ใช้กับลิสต์
การรวมข้อมูลเป็นกลุ่ม: ลิสต์/อาร์เรย์ และคำสั่ง for
- แนว:
- ชี้ให้เห็นถึงกลุ่มของข้อมูล รวมถึงชี้ให้เห็นว่าสตริงก็เป็นกลุ่มของข้อมูลเช่นกัน
- การสร้างลิสต์
- การเข้าถึงสมาชิก
- การดำเนินการกับลิสต์: การหาขนาด การเพิ่มสมาชิก
- การใช้ for เพื่อเข้าถึงข้อมูลในลิสต์
ส่วนประมวลเนื้อหา
- ส่วนประมวลเนื้อหา
- ฝึกวิเคราะห์และเขียนโปรแกรมตามโจทย์ที่ให้
- โจทย์มีการผสมผสานหลายเนื้อหาเข้าด้วยกัน
เอกสารเพิ่มเติม
ส่วน 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
- หมายเหตุ: นำไปเสริมในหัวข้ออาร์เรย์ (ถ้าไม่อัดแน่นเกินไป) จะเหมาะสมกว่าหรือไม่