วันศุกร์ที่ 28 กันยายน พ.ศ. 2555

การเขียนบททฤษฎีและงานวิจัยที่เกี่ยวข้อง (เน้นที่ปริญญานิพนธ์ด้านวิทยาการคอมพิวเตอร์)

จริง ๆ ว่าจะเขียนเรื่องนี้มานานแล้ว เพราะในฐานะที่ตัวเองเป็นอาจารย์ด้านวิทยาการคอมพิวเตอร์จะต้องตอบคำถามว่าบทที่สองในรูปเล่มรายงานปริญญานิพนธ์ (ทฤษฎีและงานวิจัยที่เกี่ยวข้อง) ต้องเขียนอะไรบ้าง วันนี้ก็โดนถามอีกก็เลยคิดว่ามาเขียนบล็อกให้แนวทางในการเขียนสักหน่อยก็น่าจะดี นอกจากจะเป็นประโยชน์กับลูกศิษย์ตัวเองแล้ว ก็หวังว่าจะเป็นประโยชน์กับนักศึกษาที่ต้องเขียนปริญญานิพนธ์ และที่สำคัญก็คือตัวเองจะได้ไม่ต้องปากเปียกปากแฉะซ้ำ ๆ หลายรอบ :)

บทที่สองจุดประสงค์จริง ๆ ก็คือให้คุณได้เขียนอธิบายถึงหลักการและทฤษฎีที่คุณจะนำมาใช้เป็นหลักในการทำวิจัย และวิเคราะห์และสรุปการศึกษางานวิจัยที่เกี่ยวข้องกับงานของคุณ ส่วนที่เป็นปัญหาที่เจอมากที่สุดก็คือทฤษฎีจะเขียนอะไร บางคนก็เข้าใจว่าอะไรที่ตัวเองใช้ก็คือทฤษฎี ดังนั้นในสมัยก่อนที่เจอบ่อยก็คือจะเริ่มต้นด้วยว่าฐานข้อมูลคืออะไร อธิบายการออกแบบ การเขียน ER ไปจนถึง primary key, candidate key เป็นต้น ซึ่งพอถามว่าจะเขียนมาทำไม ก็ได้รับคำตอบว่านี่คือทฤษฎีที่ต้องใช้ในการออกแบบฐานข้อมูล พอเจอคำตอบอย่างนี้ผมก็เลยถามกลับว่าถ้าอย่างนั้นทำไมถึงไม่เขียนมาด้วยล่ะว่าการเขียนโปรแกรมคืออะไร การคอมไพล์โปรแกรมทำยังไง หรือการวิเคราะห์หรือออกแบบระบบคืออะไร เพราะก็ต้องใช้ในการพัฒนาโปรแกรมเหมือนกันไม่ใช่หรือ พอเจอคำถามนี้เข้าไปก็เงียบกันไปหมด   รุ่นหลัง ๆ นี้ก็เลยไม่เขียนกันแล้วว่าฐานข้อมูลคืออะไร แต่ไปเขียนว่าแอนดรอยด์คืออะไร จะเขียนโปรแกรมบนแอนดรอย์ต้องทำยังไงแทน เฮ้อ....  แต่ที่เจอแล้วมึนที่สุดก็คือเขียนอธิบายมาว่าเว็บเบราซ์เซอร์คืออะไร เหตุผลที่เขียนมาก็คือเพราะตัวเองทำเว็บแอพพลิเคชัน เว็บเบราซ์เซอร์ก็เลยเป็นทฤษฎีที่ใช้ส่วนหนึ่ง เวรกรรมจริง ๆ

ผมมานั่งวิเคราะห์ปัญหาดูว่าทำไมเราถึงเขียนอะไรกันอย่างนี้ ก็เลยคิดว่าปัญหาอาจมาจากคำว่าอย่าเขียนอะไรโดยคิดว่าคนอ่านรู้อยู่แล้ว แต่จริง ๆ มันมีสิ่งที่ซ่อนอยู่ในนั้นนะครับคือเราต้องคิดว่าคนอ่านอย่างน้อยก็น่าจะอยู่ในฟิลด์ของเรา (คอมพิวเตอร์) ดังนั้นเขาควรจะต้องมีความรู้พื้นฐานเรื่องพวกฐานข้อมูล หรือการพัฒนาโปรแกรมอยู่แล้ว หรือถ้าเขาเป็นนักคอมพิวเตอร์แต่ไม่รู้วิธีการเขียนโปรแกรมแอนดรอยด์ เขาก็ควรไปหาอ่านจากหนังสือทางด้านนี้โดยตรง งานวิจัยของเราคงไม่ได้มีจุดประสงค์จะมาสอนใครให้เขียนโปรแกรมแอนดรอยด์เป็นใช่ไหมครับ ดังนั้นอันแรกครับพวกความรู้พื้นฐานที่เกี่ยวข้องกับการพัฒนาโปรแกรมไม่ว่าแพล็ตฟอร์มไหนนี่ตัดทิ้งไปได้เลยครับ เวลาเขียนบทที่สองให้คิดไว้ครับว่าคนอ่านเขาคงไม่ได้เข้ามาอ่านงานของเราเพื่ออ่านทฤษฎีพื้นฐานที่หาอ่านได้ทั่ว ๆ ไป หรือมีการเรียนการสอนกันอยู่แล้วนะครับ

แล้วจะเขียนอะไรดีล่ะในส่วนทฤษฎีนี้ คำตอบที่ผมมักจะให้นักศึกษาใช้เป็นแนวทางคือ มีทฤษฎีหรือความรู้อะไรที่คนที่อ่านงานของคุณในบทที่สาม (การดำเนินการวิจัย/การวิเคราะห์และออกแบบระบบ) จำเป็นต้องรู้บ้างไหม ถ้ามีก็ให้เขียนไว้เพื่อที่เขาจะได้กลับมาอ่านเป็นแนวทางได้ แต่ก็เอาเฉพาะที่จำเป็น ส่วนที่เป็นรายละเอียดมาก ๆ ก็ให้เป็นเอกสารอ้างอิงไป ตัวอย่างเช่นสมมติว่าคุณต้องทำโปรแกรมที่เกี่ยวข้องกับ GPS และต้องเก็บข้อมูลเกี่ยวกับ GPS ลงฐานข้อมูล ก็ไม่แปลกอะไรที่คุณจะมีทฤษฎีเบื้องต้นเกี่ยวกับข้อมูลที่ GPS ต้องใช้  จะเห็นนะครับว่าอย่างเรื่อง GPS นี่ไม่ใช่เรื่องที่เป็นพื้นฐานใช้กันทั่วไป และการที่คุณให้ข้อมูลตรงนี้ไว้ มันก็จะช่วยให้คนอ่านในบทที่สามของคุณเข้าใจว่าทำไมคุณต้องมีฟิลด์ที่ใช้เก็บข้อมูลนี้ในตารางในฐานข้อมูลของคุณ หรืออีกสักตัวอย่างหนึ่ง ถ้างานเราต้องใช้การติดต่อกับ Social Network อย่าง Twitter หรือ Facebook ก็ถือว่าโอเคนะถ้าจะมีส่วนที่แสดงให้เห็นว่าการติดต่อกับ Social Network เหล่านี้ทำได้โดยผ่าน API และมันมีข้อมูลหรือบริการอะไรที่เราใช้ได้บ้าง เพราะตรงนี้มันก็อาจอธิบายถึงการออกแบบในบทที่สามของเราเมื่อต้องทำงานกับส่วนนี้ ส่วนถ้างานของเราเน้นที่การพัฒนาโปรแกรม ไม่ได้ใช้อะไรจริง ๆ นอกจากทักษะด้านออกแบบและการพัฒนาโปรแกรม ผมว่าจะไม่มีทฤษฎีที่เกี่ยวข้องเลยก็ไม่แปลกนะ เพราะบทนี้ยังมีอีกส่วนหนึ่งก็คืองานวิจัยที่เกี่ยวข้อง ซึ่งจะให้คุณได้แสดงทักษะความสามารถในการคิดวิเคราะห์

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

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

สุดท้ายก็ขอนำบล็อกที่เคยเขียนเกี่ยวกับการเขียนงานวิจัยมาใส่ลิงก์ไว้ให้ตรงนี้ เพื่อความสะดวกในการค้นหาครับ

การเขียนคำภาษาต่างประเทศในบทความวิชาการ

การเขียนบทคัดย่อ

ไม่มีความคิดเห็น:

แสดงความคิดเห็น