รีวิว หลักสูตรปริญญาโท วิทยาศาสตรมหาบัณฑิต สาขาวิชาวิทยาการคอมพิวเตอร์

ผมเพิ่งเรียนจบหลักสูตรปริญญาโท วิทยาศาสตรมหาบัณฑิต สาขาวิชาวิทยาการคอมพิวเตอร์ แขนงวิชาวิทยาการคอมพิวเตอร์ประยุกต์ เมื่อวันที่ 14 ส.ค. 2558 ที่ผ่านมานี้เองครับ เป็นการจบภายใน 2 ปีการศึกษาคนแรกของรุ่น และจบภายใน 2 ปีการศึกษาคนที่ 2 ของหลักสูตร

หลักสูตรที่ผมเรียนเป็นหลักสูตรที่อนุมัติเมื่อปี พ.ศ. 2553 ครับ ดังนั้น จึงยังเป็นหลักสูตรที่ทันโลกอยู่ ซึ่งการปรับปรุงหลักสูตรของมหาวิทยาลัย ก็มักจะถูกกระทำทุก ๆ 5 ปี เพื่อให้หลักสูตรมีความทันสมัยอยู่เสมอ ดังนั้น ก่อนที่ผมจะจบการศึกษา ทางสภามหาวิทยาลัยก็ได้มีการประกาศหลักสูตรใหม่ของปี พ.ศ. 2557 ออกมาเป็นที่เรียบร้อยแล้ว

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

สำหรับรายวิชาที่ผมเรียนในหลักสูตรวิทยาการคอมพิวเตอร์ มีทั้งหมด 10 วิชาประกอบด้วย

1.  Design & Analysis of Algorithm

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

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

2.  Computer Architecture

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

3.  Principle of Programming

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

ซึ่งจุดมุ่งหมายสูงสุดของวิชานี้คือการปูพื้นฐานที่แน่นหนา เพื่อต่อยอดไปยังวิชา Compiler ซึ่งเป็นวิชาที่ศึกษาวิธีการแปลภาษาคอมพิวเตอร์ที่มนุษย์อ่านเข้าใจได้ ไปเป็นภาษาคอมพิวเตอร์ที่คอมพิวเตอร์อ่านเข้าใจได้นั่นเอง

4.  Semantic Web & Ontology

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

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

โดยส่วนตัวแล้วผมจัดวิชานี้อยู่ในกลุ่มวิชาปัญญาประดิษฐ์ครับ และยังมีอีก 4 วิชาที่ยังอยู่ในกลุ่มนี้เช่นกัน ซึ่งผมจะได้เล่าต่อไป

5.  Machine Learning

ผมได้เรียนเกี่ยวกับ Neural Network รูปแบบต่าง ๆ ทั้งแบบ Supervised Learning และ Unsupervised Learning จากวิชานี้ครับ โดยสิ่งที่ผมเรียนไม่ใช่การออกแบบ Neural Network เพราะมันธรรมดาไป แต่เป็นการเรียนวิธีการคำนวณของ Neural Network ครับ และยังเรียนวิธีการเพิ่มประสิทธิภาพในการคำนวณของ Neural Network ด้วย

นอกจากนี้ ผมยังได้เรียนเกี่ยวกับ  Fuzzy Logic และ Centroid-based clustering แบบ Fuzzy C Means ซึ่งไม่ใช่การเรียนออกแบบหรือใช้งานเช่นเคยครับ แต่เป็นการเรียนวิธีการคำนวณล้วน ๆ โดยเฉพาะไอ้เจ้า Fuzzy C Means นี่ถ้าใช้วิธีคำนวณด้วยมือจะต้องทำหลายรอบมากจนปวดหัวไปหมดเลย

สำหรับวิชานี้นะครับ ก็จัดได้ว่าอยู่ในกลุ่มวิชาปัญญาประดิษฐ์เช่นกัน

6.  Data Mining

วิชานี้ผมคิดว่าเป็นวิชาที่เหมาะกับยุคสมัยนี้มาก เพราะยุคสมัยนี้เป็นยุคที่ข้อมูลเยอะเท่าภูเขาเลากา ดังนั้น มันจะเป็นการดีกว่าถ้าเราสามารถสกัด “ความรู้” จาก “ข้อมูลมหาศาล” ได้

วิชานี้ใช้การคำนวณทั้งด้านพีชคณิต เมตริกซ์กับเวกเตอร์ และสถิติ หลายอย่างมาก!!!

ผมได้เรียนการคำนวณเพื่อเกลี่ยข้อมูลให้ค่ามีความใกล้เคียงกัน ได้เรียนการคำนวณ Entropy, Information Gain, Chi Square เพื่อการเลือกคุณลักษณะเด่นของข้อมูล ได้เรียนการคำนวณ Principle Component Analysis เพื่อการลดมิติของข้อมูลและสกัดคุณลักษณะเด่นของข้อมูล

ได้เรียนการคำนวณ Superivised Learning ของ Naive Bayes, Decision Tree และ Support Vector Machine และได้เรียนการคำนวณ Unsupervised Learning ของ Density-based Clustering

นอกจากนี้ผมยังได้เรียนกลไกการทำงานและวิธีการคำนวณของวิธี Association Rule Learning ด้วยเทคนิค Apriori และ FP-Growth อีกด้วย (วิชานี้มีประโยชน์มากในทางธุรกิจนะเออ)

สุดท้าย วิชานี้ยังได้สอนให้ผมรู้ว่า ทุกสิ่งที่หาคำตอบมาได้มันต้องมีการประเมินผล ดังนั้น ผมจึงได้เรียนการคำนวณเพื่อประเมินผลคำตอบด้วยตัวชี้วัดแบบต่าง ๆ ซึ่งก็มีทั้ง Precision, Recall, True Positive Rate และ False Positive Rate

สำหรับวิชานี้นะครับ ก็จัดได้ว่าอยู่ในกลุ่มวิชาปัญญาประดิษฐ์เช่นกัน

7.  Bioinformatics

วิชานี้เป็นวิชาที่ใหม่มากครับ และหากใครทำวิจัยในแวดวงของวิชานี้ จะได้รับคะแนนในการวิจัยสูงมาก เนื่องจากเป็นงานวิจัยที่มีผลกระทบในวงกว้าง!!!

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

ผมได้เรียนอัลกอริทึมในการจับคู่ดีเอนเอแบบต่าง ๆ จากวิชานี้ โดยอัลกอริทึมที่เรียนจะมีพื้นฐานจากอัลกอริทึม Longest Common Subsequence ได้เรียนวิธีการอนุมานดีเอนเอ โดยใช้วิธีการคำนวณ Hidden Markov Model ได้เรียนการค้นหาคำตอบแบบ Optimization ด้วย Genetic Algorithm ได้เรียนการจัดกลุ่มของจีโนไทป์และฟีโนไทป์ และได้เรียนการคำนวณเพื่อทำ Hierarchical-based Clustering ครับ

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

8.  Image Processing

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

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

9.  Computer Security

ความมั่นคงทางคอมพิวเตอร์เป็นเรื่องที่กว้างมากครับ กินอาณาบริเวณครอบคลุมทั้งฮาร์ดแวร์ มิดเดิ้ลแวร์ ซอฟต์แวร์ ข้อมูล ฐานข้อมูล ผู้ใช้งาน และ เครือข่าย เป็นเรื่องของความละเอียดอ่อน ช่องโหว่ ภัยคุกคาม

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

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

10.  Research Method

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

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

ทั้ง 10 วิชาที่ผมรีวิวไปแล้วทั้งหมด จะเห็นว่ามีถึง 5 วิชา คือ Semantic Web & Ontology, Machine Learning, Data Mining, Bioinformatics และ Image Processing ที่จัดอยู่ในกลุ่มปัญญาประดิษฐ์ ซึ่งมันสะท้อนให้เห็นว่า โดยข้อเท็จจริงแล้วหลักสูตรวิทยาการคอมพิวเตอร์ กำลังจะนำพาเราไปสู่เส้นทางที่ถูกจับตามองด้วยความวิตกกังวล มันคือเส้นทางของการทำให้เครื่องจักรมีความคิด มีจิตใจ มีวิจารณญาณ และมีจินตนาการ

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

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

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

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

นับเบ็ดเสร็จแล้ว เพื่อจะให้จบหลักสูตรนี้ได้ ก็ต้องลงเรียน 10 วิชา และทำงานวิจัย 1 ชิ้นนั่นเองครับ!!!

ป.ล. จริง ๆ มันมีอีกนิดหน่อย คือ ต้องสอบผ่านภาษาอังกฤษ และ สอบประมวลความรู้ผ่านด้วย แต่ผมไม่นับครับ มันเป็นเรื่องปลีกย่อย

Related Posts

3 thoughts on “รีวิว หลักสูตรปริญญาโท วิทยาศาสตรมหาบัณฑิต สาขาวิชาวิทยาการคอมพิวเตอร์

  1. เป็นความจริงที่น่าเศร้า สำหรับความรู้เชิงวิศวกรรมคอมพิวเตอร์ ในระดับบัณฑิตศึกษา ที่จบออกมามีทางเลือกน้อย ไม่เป็นอาจารย์ในมหาวิทยาลัยก็นักวิจัยของ Nectec บริษัทใหญ่ ๆ ในไทยหาแทบไม่มีที่จะบอกว่าเรามี Lab รองรับการทำ AI หรือ Data Mining สำหรับ Big Data นะ ผมไม่รู้ว่าคุณมีความเห็นอย่างไรกับประเด็นนี้บ้าง

  2. เห็นว่าวิศวกรคอมพิวเตอร์ สามารถร่วมมือกับวิศวกรไฟฟ้า และ วิศวกรเครื่องกล เพื่อพัฒนาหุ่นยนต์แบบต่าง ๆ ได้ครับ และตลาดในด้านนั้น จะเป็นที่ต้องการอย่างมากในอนาคตครับ

  3. วิทยากร คอมนี่เทียบกับวิศวะคอมได้ใช่รึเปล่าครับ เพราะงานที่ผมทำอยู่ รับทั้ง วิท และ วิศ ตำแหน่งงานเดียวกันทำงานเหมือนกัน

ใส่ความเห็น

อีเมลของคุณจะไม่แสดงให้คนอื่นเห็น ช่องข้อมูลจำเป็นถูกทำเครื่องหมาย *