ผลต่างระหว่างรุ่นของ "01204223 การปฏิบัติการทางวิศวกรรมคอมพิวเตอร์"
ไปยังการนำทาง
ไปยังการค้นหา
Chaiporn (คุย | มีส่วนร่วม) (เพิ่มเนื้อหาสัปดาห์ที่ 4) |
Jittat (คุย | มีส่วนร่วม) |
||
แถว 46: | แถว 46: | ||
** สไลด์: แผงวงจรพ่วง ([http://www.cpe.ku.ac.th/~cpj/204223/slides/h5-peri.ppt เอกสาร ppt]) ([http://www.cpe.ku.ac.th/~cpj/204223/slides/h5-peri.pdf เอกสาร pdf]) | ** สไลด์: แผงวงจรพ่วง ([http://www.cpe.ku.ac.th/~cpj/204223/slides/h5-peri.ppt เอกสาร ppt]) ([http://www.cpe.ku.ac.th/~cpj/204223/slides/h5-peri.pdf เอกสาร pdf]) | ||
** วิกิ: [[แผงวงจรพ่วง (Peripheral Board)]] | ** วิกิ: [[แผงวงจรพ่วง (Peripheral Board)]] | ||
− | * ซอฟต์แวร์: | + | * ซอฟต์แวร์ 1: พัฒนาโปรแกรมด้วย TDD บน Python |
+ | ** ดูคลิปด้านล่าง | ||
+ | ** ทำแลบ Python Kang Fu ใน [https://cloud3.cpe.ku.ac.th/elab2/ Elab2] | ||
+ | ** ในแลบนี้เราจะประมวลผลข้อมูลในลิสต์มากมาย ด้านล่างเป็นรายการเอกสารเพิ่มเติมเกี่ยวกับการใช้งานลิสต์: | ||
+ | *** [http://docs.python.org/tutorial/introduction.html#lists การใช้งานลิสต์ที่ละเอียดขึ้นจาก Python Tutorial] ในเอกสารนี้ให้สังเกตความหมายของการอ้างถึงข้อมูลในลิสต์ โดยใช้ดัชนีที่เป็นบวก (นับจากหน้า) และดัชนีที่เป็นลบ (นับลำดับจากท้าย) เช่นการอ้าง <tt>a[3]</tt> หรือ <tt>a[-1]</tt> และการอ้างส่วนของลิสต์ เช่น <tt>a[1:10]</tt>, <tt>a[2:]</tt> หรือ <tt>a[1:-1]</tt> เป็นต้น | ||
+ | *** เอกสารอ้างอิง [http://docs.python.org/library/stdtypes.html#sequence-types-str-unicode-list-tuple-bytearray-buffer-xrange Sequence Types] และ [http://docs.python.org/library/stdtypes.html#typesseq-mutable Mutable Sequence Types] (ลิสต์เป็นรายการที่เปลี่ยนได้ จึงเรียกว่าเป็น mutable sequence types) | ||
+ | ** เอกสาร [http://docs.python.org/library/doctest.html doctest] | ||
+ | ** ด้านล่างเป็นโค้ดที่ต้องเพิ่มไปตอนท้ายโปรแกรม เพื่อให้ python รัน doctest ในโมดูลของเรา | ||
+ | |||
+ | if __name__ == "__main__": | ||
+ | import doctest | ||
+ | doctest.testmod() | ||
+ | |||
+ | * ซอฟต์แวร์ 2: การจัดการกับความซับซ้อนของซอฟต์แวร์ใน Python --- โมดูล (modules) และคลาส (classes) | ||
+ | ** คลิป OOP บน Python: [http://www.youtube.com/watch?v=o9wAnP20ovQ ตอนที่ 1], [http://www.youtube.com/watch?v=vm0K_l7O-eQ ตอนที่ 2], [http://www.youtube.com/watch?v=3Jd2b5NydTQ ตอนที่ 3], [http://www.youtube.com/watch?v=bc-l0oMY16U ตอนที่ 4] | ||
+ | ** เอกสารประกอบ: [http://theory.cpe.ku.ac.th/~jittat/dm/?q=node/30 โมดูลใน Python],[http://www.cpe.ku.ac.th/~cpj/204223/slides/s4-oop.pdf การโปรแกรมเชิงวัตถุแบบเต่า ๆ], [http://theory.cpe.ku.ac.th/~jittat/dm/?q=node/31 การโปรแกรมเชิงวัตถุใน Python], | ||
+ | |||
+ | ตัวอย่างการเรียกใช้ <tt>__init__</tt> จากคลาสที่เรา inherite มา | ||
+ | |||
+ | class Robot(GamePiece): | ||
+ | def __init__(self,r,c,target): | ||
+ | GamePiece.__init__(self,r,c) | ||
+ | # ..... your other initialization code here | ||
== รายการวิดีโอ == | == รายการวิดีโอ == |
รุ่นแก้ไขเมื่อ 03:00, 1 กรกฎาคม 2556
หน้านี้รวบรวมลิงก์ของเอกสารและวิดีโอประกอบการเรียนวิชาการปฏิบัติการทางวิศวกรรมคอมพิวเตอร์
เนื้อหา
ประกาศ
- ยินดีต้อนรับสู่วิชาการปฏิบัติการทางวิศวกรรมคอมพิวเตอร์
- เจอกันใน facebook
แผนการสอน
เนื้อหา
สัปดาห์ที่ 1
- ซอฟต์แวร์ (เช้า): ระบบยูนิกซ์และคำสั่งพื้นฐาน เอกสารแล็บ (ดูคลิปจากรายการวิดีโอด้านล่าง)
- เพิ่มเติม: การใช้ filename expansion (ดูคลิปตอนที่ 2 ประกอบ)
- ซอฟต์แวร์ (บ่าย): ยูนิกส์สำหรับ geek เอกสารแล็บ
สัปดาห์ที่ 2
- ฮาร์ดแวร์ (เช้า): เครื่องมือวัดและชุดทดลองวงจรดิจิทัล
- สไลด์: (เอกสาร ppt) (เอกสาร pdf)
- วิดิทัศน์: การใช้งานชุดทดลองดิจิทัลเบื้องต้น
- วิดิทัศน์: การเตรียมการใช้งานออสซิลโลสโคป
- วิดิทัศน์: กลไกทริกเกอร์ของออสซิลโลสโคป
- วิดิทัศน์: การใช้งานระบบเคอร์เซอร์
- ฮาร์ดแวร์ (บ่าย): การประกอบวงจรพิมพ์
- สไลด์: การสร้างวงจรต้นแบบ (เอกสาร ppt) (เอกสาร pdf)
- สไลด์: การบัดกรีชิ้นงานอิเล็กทรอนิกส์ (เอกสาร ppt) (เอกสาร pdf)
- วิดิทัศน์: การบัดกรีวงจร (ไฟล์ .mkv, ซับไทย)
- วิกิ: การบัดกรีแผงวงจรไมโครคอนโทรลเลอร์
สัปดาห์ที่ 3
- ฮาร์ดแวร์ (เช้า): ไมโครคอนโทรลเลอร์และการพัฒนาเฟิร์มแวร์
- สไลด์: ไมโครคอนโทรลเลอร์เบื้องต้น (เอกสาร ppt) (เอกสาร pdf)
- วิกิ: การพัฒนาเฟิร์มแวร์สำหรับไมโครคอนโทรลเลอร์
- วิกิ: การแก้ไขสิทธิการเข้าถึงพอร์ท USB ของบอร์ด MCU
- ชุดคำสั่งของสถาปัตยกรรม AVR
- Datasheet สำหรับไมโครคอนโทรลเลอร์เบอร์ ATMega168
- ผังวงจรบอร์ดไมโครคอนโทรลเลอร์
- ซอฟต์แวร์ (บ่าย): Python: งูเหลือมตะลุยจักรวาล เอกสาร pdf
- เราจะใช้ gedit ซึ่งเป็น editor ที่ติดมากับ ubuntu อย่างไรก็ตามเพื่อความสะดวกในการเขียนโปรแกรม Python ควรเปลี่ยน syntax highlight mode เป็น Python, ปรับ tab ให้มีขนาด 4 ช่อง และให้ gedit ใส่ spaces แทน tab ให้ด้วย
- โหลดไฟล์สำหรับทำแลบที่นี่
- สไลด์เนื้อหาไพธอน
สัปดาห์ที่ 4
- ฮาร์ดแวร์: การประกอบวงจรต้นแบบบนบอร์ดไข่ปลา และการเขียนโปรแกรมจัดการอินพุทและเอาท์พุท
- สไลด์: แผงวงจรพ่วง (เอกสาร ppt) (เอกสาร pdf)
- วิกิ: แผงวงจรพ่วง (Peripheral Board)
- ซอฟต์แวร์ 1: พัฒนาโปรแกรมด้วย TDD บน Python
- ดูคลิปด้านล่าง
- ทำแลบ Python Kang Fu ใน Elab2
- ในแลบนี้เราจะประมวลผลข้อมูลในลิสต์มากมาย ด้านล่างเป็นรายการเอกสารเพิ่มเติมเกี่ยวกับการใช้งานลิสต์:
- การใช้งานลิสต์ที่ละเอียดขึ้นจาก Python Tutorial ในเอกสารนี้ให้สังเกตความหมายของการอ้างถึงข้อมูลในลิสต์ โดยใช้ดัชนีที่เป็นบวก (นับจากหน้า) และดัชนีที่เป็นลบ (นับลำดับจากท้าย) เช่นการอ้าง a[3] หรือ a[-1] และการอ้างส่วนของลิสต์ เช่น a[1:10], a[2:] หรือ a[1:-1] เป็นต้น
- เอกสารอ้างอิง Sequence Types และ Mutable Sequence Types (ลิสต์เป็นรายการที่เปลี่ยนได้ จึงเรียกว่าเป็น mutable sequence types)
- เอกสาร doctest
- ด้านล่างเป็นโค้ดที่ต้องเพิ่มไปตอนท้ายโปรแกรม เพื่อให้ python รัน doctest ในโมดูลของเรา
if __name__ == "__main__": import doctest doctest.testmod()
- ซอฟต์แวร์ 2: การจัดการกับความซับซ้อนของซอฟต์แวร์ใน Python --- โมดูล (modules) และคลาส (classes)
- คลิป OOP บน Python: ตอนที่ 1, ตอนที่ 2, ตอนที่ 3, ตอนที่ 4
- เอกสารประกอบ: โมดูลใน Python,การโปรแกรมเชิงวัตถุแบบเต่า ๆ, การโปรแกรมเชิงวัตถุใน Python,
ตัวอย่างการเรียกใช้ __init__ จากคลาสที่เรา inherite มา
class Robot(GamePiece): def __init__(self,r,c,target): GamePiece.__init__(self,r,c) # ..... your other initialization code here
รายการวิดีโอ
ฮาร์ดแวร์
- แนะนำการใช้งานชุดทดลองดิจิทัลและออสซิลโลสโคป
Unix
- แนะนำ path ใน unix
- ตอนที่ 1 เกริ่นนำเกี่ยวกับ shell และแนะนำแนวคิดของโครงสร้างไดเร็กทอรี
- ตอนที่ 2 อธิบายแนวคิดของ working directory และการอ้างถึงไฟล์โดยอิงกับ working directory, ทดลองใช้คำสั่ง ls, cd, pwd และ cp
- ตอนที่ 3 อธิบายวิธีการอ้างถึงไฟล์ในรูปแบบอื่น ๆ เช่นการอ้างแบบ absolute (/) อ้างผ่าน home (~) และการอ้างถึงตำแหน่งนั้นเอง (.) กับการอ้างถึงไดเร็กทอรีก่อนหน้า (..)
- แนะนำ unix ตอน 2: glob และการกระจายคำสั่ง
- แนะนำ unix ตอน 3: การใช้ redirection และ pipe
- คลิปที่ youtube (มีตอนเดียว) แนะนำการใช้งาน rediretion และ pipe พร้อมยกตัวอย่างด้วยคำสั่ง grep และ wc และแนะนำคำสั่ง tee
Python
- การเขียน Python เบื้องต้น
- ยังไม่มี
- การพัฒนาแบบใช้การทดสอบผลักดัน (Test-driven development)
- TDD บน Python ตอนที่ 1, ตอนที่ 2, ตอนที่ 3
- คลิปโดย Masterspark: ตัวอย่างการเขียนฟังก์ชัน 1, ตัวอย่างการเขียนฟังก์ชัน 2, คลิปอื่น ๆ ของ Masterspark