ผลต่างระหว่างรุ่นของ "418546 ภาคต้น 2555"

จาก Theory Wiki
ไปยังการนำทาง ไปยังการค้นหา
แถว 76: แถว 76:
 
** การเพิ่ม แก้ไข หรือ ลบ จุด ทั้งบน ListView และ DotView ต้องสัมพันธ์กัน
 
** การเพิ่ม แก้ไข หรือ ลบ จุด ทั้งบน ListView และ DotView ต้องสัมพันธ์กัน
 
** การแก้ไขและลบ จุด ให้ทำผ่านทาง ListView ก็พอ แต่ถ้าใครสามารถทำผ่านทาง DotView ได้จะมีคะแนนพิเศษให้
 
** การแก้ไขและลบ จุด ให้ทำผ่านทาง ListView ก็พอ แต่ถ้าใครสามารถทำผ่านทาง DotView ได้จะมีคะแนนพิเศษให้
 +
 +
=== การบ้านครั้งที่ 3 ===
 +
* ให้ตั้งชื่อโปรเจคว่า Homework03 แล้วใส่ไว้ในโฟร์เดอร์ exercises ใน repository ของคุณ
 +
* ให้ทำการบ้านครั้งที่ 2 ใหม่โดยใช้ฐานข้อมูลในการเก็บค่าจุด
  
 
== ตัวอย่างในห้องเรียน ==
 
== ตัวอย่างในห้องเรียน ==

รุ่นแก้ไขเมื่อ 07:02, 4 สิงหาคม 2555

ขอต้อนรับเข้าสู่เว็บไซต์วิชา 01418546 การพัฒนาโปรแกรมประยุกต์สำหรับอุปกรณ์เคลื่อนที่ ภาคการศึกษาที่ 1 ปีการศึกษา 2555

ประกาศ

  • นิสิตรหัสต่อไปนี้ มีปัญหาเรื่องการตั้งค่า repository ให้แก้ไขให้เสร็จภายในวันที่ 8 กรกฎาคม 2555 ไม่เช่นนั้นจะถือไว้ขาดส่งงานในครั้งแรก
    • g5514401642 เอาสิ่งที่ไม่เกี่ยวข้องมาใส่ใน repository (กลับไปอ่านคำสั่งอีกครั้งว่าผมให้คุณทำอะไร)

ข้อควรทราบ

สิ่งที่จะสอน

  • การออกแบบและพัฒนาโปรแกรมประยุกต์"ที่ดี"สำหรับอุปกรณ์เคลื่อนที่
  • ในการสอนครั้งนี้จะใช้ระบบปฏิบัติการ Android และใช้การพัฒนาแบบ native (ไม่สอนการพัฒนาโดยใช้ HTML5)

สิ่งที่จะไม่สอน (ควรรู้ก่อนเรียน)

  • โปรแกรมภาษา Java
  • การออกแบบฐานข้อมูลและภาษา SQL
  • หลักการเขียนโปรแกรมแบบ OOP

การให้งานและส่งงาน

  • การให้งานและส่งงานจะใช้ Git (เหมือนกับ Mercurial ที่เคยใช้ในวิชา Computer Programming)
  • วิธีการส่งงานดูได้จาก ที่นี้ แต่ให้เปลี่ยนจาก works418496mobileapp เป็น works418546mobileapp แทน
  • วิชานี้ไม่มีการสอบข้อเขียนใช้การส่งการบ้านและโปรเจค ดังนั้นจึงมีการบ้านและโปรเจคที่ต้องส่งอย่างน้อย 2 สัปดาห์/ครั้ง
  • นิสิตต้องทำ final project หนึ่งชิ้นต่อกลุ่ม และ แต่ละงานต้องไม่ซ้ำกัน

การให้คะแนน

  • การบ้านและโครงงานย่อย 60 %
  • final project 40 %

โปรเจค

โปรเจคครั้งที่ 1

  • ตัวอย่าง
  • ให้สร้างโปรแกรมที่ทำงานได้เหมือนกับโปรแกรมตัวอย่าง โดยที่โปรแกรมมีความสามารถในการทำงานดังนี้
    • วาดรูป polygon ได้อย่างน้อย 2 ถึง 12 เหลี่ยม
    • แสดงชื่อรูป polygon ที่วาด (ดูวิธีการตั้งชื่อได้จาก Wikipedia)
    • เปลี่ยนลักษณะของเส้นที่ใช้วาดได้ 2 แบบ คือ เส้นปะ และ เส้นทึบ
    • เปลี่ยนขนาดของเส้นที่ใช้วาดได้ ตั้งแต่ 1 ถึง 20 pixel
    • สามารถหมุนรูป polygon โดยใช้ gesture
    • สามารถย้ายรูป polygon โดยใช้ gesture
    • โปรแกรมต้องสามารถเก็บฐานะของการวาดได้ นั้นคือเมื่อผู้ใช้ปิดโปรแกรมไปแล้ว เปิดมาอีกครั้งต้องเห็นรูปแบบการวาดครั้งล่าสุดอยู่
  • การส่งงาน
    • ให้ตั้งชื่อโปรเจคว่า HelloPoly แล้วเก็บไว้ที่ไฟร์เดอร์ projects
    • ให้สร้างไฟล์ README (ไม่ต้องใส่ .txt) โดยใช้ encoding แบบ UTF-8 ใส่ไว้ในโปรเจคโดยในไฟล์นี้ ให้เขียนว่าได้ทำฟังก์ชั่นใดตามตัวอย่างที่ให้ไปและทำโดยใช้วิธีไหน
    • ตัวอย่างในการเขียน README
วาดรูป และ แสดงชื่อ polygon ได้ 15 เหลี่ยม โดยใช้ slider bar ที่หน้าจอ
เปลี่ยนลักษณะของเส้นได้ 2 แบบ โดยใช้ Preference Screen
เปลี่ยนขนาดของเส้นได้ 1 ถึง 20 pixel โดยใช้ปุ่มกดที่หน้าจอ
ไม่สามารถหมุนรูปได้
สามารถย้ายรูปได้โดยการกดค้างแล้วลาก
โปรแกรมสามารถเก็บฐานะการวาดรูปได้บางส่วน ยกเว้นตำแหน่งของรูปเมื่อมีการย้ายรูป

หรือถ้าใครทำได้เหมือนในตัวอย่างทุกประการ อาจเขียนว่า

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

การบ้าน

การบ้านครั้งที่ 1

  • ให้ตั้งชื่อโปรเจคว่า Homework01 แล้วใส่ไว้ในโฟร์เดอร์ exercises ใน repository ของคุณ
  • สีที่ใช้ในการ random ต้องมีไม่ต่ำกว่า 5 สี
  • ห้ามสร้างโปรเจคจากโปรเจคตัวอย่างเด็ดขาด ให้สร้างโปรเจคใหม่เสมอ แต่สามารถคัดลอกโค้ดบางส่วนของตัวอย่างมาใช้ได้ แต่ผมแนะนำว่าควรพิมพ์เองจะดีกว่า เพราะจะทำให้คุณคุ้นเคยกับการเขียน Android ได้ดีขึ้น
  • ทุกครั้งที่ส่งงานให้ตรวจสอบดูด้วยว่าโปรเจคของคุณขึ้นไปอยู่ใน repository เรียบร้อยหรือยัง เพราะผมจะ clone repository ของคุณมาตรวจ ถ้าครบกำหนดส่งแล้วผมไม่สามารถเห็น project ของคุณบน repository ผมจะถือว่าคุณขาดส่งงานในครั้งนั้น
  • การ clone งานมาตรวจผมจะใช้คำสั่ง git clone git@bitbucket.org:your_user_name/works418546mobileapp.git โดยที่ your_user_name คือ username ที่ผมให้คุณส่ง E-Homework ใน Maxlearn
  • ให้ตรวจสอบความถูกต้องเรื่องสิทธิ์ในการเข้าถึงว่าคุณให้สิทธิ์ในการอ่านกับผม (ssutee) หรือเปล่า และ ชื่อ repository ถูกต้องหรือเปล่า
  • ห้ามส่งงานทางอีเมลโดยเด็ดขาด ใครส่งมานอกจากผมจะไม่ตรวจ ผมจะหักคะแนนเพิ่มอีกด้วย
  • การ compile งานเพื่อตรวจผมจะทำผ่านทาง command line โดยใช้คำสั่ง ant ดังนั้นก่อนส่งโปรเจคให้คุณสั่งคำสั่งบน command line ว่า android update project -p . (android เป็น tool ที่มาพร้อมกับ Android SDK คุณต้องกำหนด PATH ไปที่โฟร์เดอร์ tools ของ Android SDK ก่อนถึงจะเรียกใช้คำสั่งนี้ได้) ถ้าทำได้ถูกต้องไฟล์ชื่อ build.xml จะปรากฎขึ้น
  • เพื่อความแน่ใจให้ทดลองสั่งคำสั่ง ant debug เพื่อตรวจสอบว่าสามารถสร้าง binary ไฟล์ของโปรเจคได้หรือไม่ (โปรแกรม ant บน Windows ผมไม่แน่ใจว่ามันอยู่ที่โฟรเดอร์ไหน แต่เข้าใจว่ามันจะมาพร้อมกับ Java SDK ส่วนบน OS X สามารถเรียกใช้ผ่านทาง command line ได้อยู่แล้ว)
  • เมื่อทุกอย่างเรียบร้อยแล้วจึง commit และ push ขึ้นไปยัง repository เพื่อรอการตรวจต่อไป

การบ้านครั้งที่ 2

  • ให้ตั้งชื่อโปรเจคว่า Homework02 แล้วใส่ไว้ในโฟร์เดอร์ exercises ใน repository ของคุณ
  • ให้สร้าง DotView เหมือนตัวอย่างที่แสดงให้ดูในห้องเรียน แต่ให้ จุด สามารถเปลี่ยนแปลงสีและขนาดแบบสุ่มได้ เหมือนในการบ้านครั้งที่ 1 ที่ทำกับ ListView
    • เมื่อสัมผัสหน้าจอให้สร้างจุดใหม่ที่มีสีและขนาดคงที่ขึ้นมาหนึ่งจุดตรงจุดที่สัมผัส
    • การเพิ่ม แก้ไข หรือ ลบ จุด ทั้งบน ListView และ DotView ต้องสัมพันธ์กัน
    • การแก้ไขและลบ จุด ให้ทำผ่านทาง ListView ก็พอ แต่ถ้าใครสามารถทำผ่านทาง DotView ได้จะมีคะแนนพิเศษให้

การบ้านครั้งที่ 3

  • ให้ตั้งชื่อโปรเจคว่า Homework03 แล้วใส่ไว้ในโฟร์เดอร์ exercises ใน repository ของคุณ
  • ให้ทำการบ้านครั้งที่ 2 ใหม่โดยใช้ฐานข้อมูลในการเก็บค่าจุด

ตัวอย่างในห้องเรียน

ดูได้ที่นี้

การเรียนการสอน

วัน หัวข้อ เอกสาร
17 มิถุนายน 2555 Introduction to Android PDF (แก้ไข)
24 มิถุนายน 2555 Intents and IntentFilters ใช้ slide ของครั้งแรก
1 กรกฎาคม 2555 ListView ใช้ slide ของครั้งแรก
8 กรกฎาคม 2555 UI PDF
15 กรกฎาคม 2555 Building your own widgets PDF
22 กรกฎาคม 2555 Life cycle
State instance data
Persistent data

PDF PDF

28 กรกฎาคม 2555 Database and CursorAdapter