Screenshot 2015-01-13 07.45.22

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

แต่ขณะเดียวกันเราเห็นการเปลี่ยนแปลงของเทคโนโลยีด้านไอทีอย่างมากในช่วง 4-5 ปีที่ผ่านมา ไอทีกำลังเปลี่ยนยุคจากยุคของอินเตอร์เน็ตมาสู่ยุคของ Cloud, Internet of Things และ Big Data คำถามที่เกิดขึ้นว่าแล้วพื้นฐานทางด้านไอทีเหมือนเดิมไหม เช่นวิชาด้านการพัฒนาซอฟต์แวร์ วิชาด้าน Data Comunication/Network วิชาด้าน Database หรือด้านอื่นๆยังเหมือนเดิมหรือไม่ ถ้ายังเหมือนเดิมจริงแล้วทำไมเรามักจะเจอเสียงสะท้อนจากภาคอุตสาหกรรมเสมอว่า เด็กที่จบออกมาพื้นฐานไม่ดีและไม่ตรงกับความต้องการของอุตสาหกรรม นอกจากนี้ผมก็ยังเห็นในมหาวิทยาลันต่างประเทศเอาเทคโนโลยีใหม่ๆมาสอนเสมอ

ComputerScienceCloud-1024x418

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

1) ด้านการพัฒนาซอฟต์แวร์ ผมคิดว่าบัณฑิตที่จบทางด้านไอทีทุกคนควรจะต้องเขียนโปรแกรมภาษาใดภาษาหนึ่งเป็น มหาวิทยาลัยอาจจะเลือกที่จะสอนภาษาใดภาษาหนึ่งก็พอแล้ว ซึ่งจะต้องภาษาด้าน OOP ที่อาจจะเป็น Python, Java หรือ C# การสอนเราต้องเน้นหลักวิธีคิดในการพัฒนาโปรแกรม ไม่ใช่สอนให้นักศึกษาจำคำสั่ง Syntax ในการเขียนโปรแกรม และ อย่าต้องให้นักศึกษาต้องมาเรียนการเขียนโปรแกรมหลายภาษา แต่สิ่งสำคัญที่นักศึกษาจะต้องทำได้คือมีตรรกะในการเขียนโปรแกรม บัณฑิตที่จบออกมาต้องเขียนโปรแกรมได้มากกว่าแค่โปรแกรม HelloWorld และต้องพร้อมที่จะเรียนรู้การพัฒนาโปรแกรมภาษาอื่นบน Platform อื่นๆ รวมถึง Mobile Application

2) การพัฒนาซอฟต์แวร์ Enterprise Application ในวันนี้โลกของการพัฒนาซอฟต์แวร์มีความซับซ้อนกว่าเดิม พื้นฐานที่นักศึกษาควรจะมีขั้นพื้นฐานก็คือการพัฒนา Web Application ซึ่งไม่ใช่แค่การเขียนเว็บเพจโดยใช้ HTML หรือ Scripting Languange แต่นักศึกษาควรจะต้องเรียนการเขียนโปรแกรมเชื่อต่อกับฐานข้อมูล การพัฒนาและเรียกใช้ Web Services รู้จักการเขียนโปรแกรมเพื่อจะใช้ APIs ต่างๆอาทิเช่น Facebook หรือ Google APIs รวมถึงการพัฒนาซอฟต์แวร์บน Cloud โดยใช้ Platform as a Service (PaaS)

3) Cloud Computing นักศึกษาที่ต้องเรียนวิชาทางด้าน System Administration ควรที่จะต้องเข้าใจเรื่องของ Infrastructure as a Service เรียนรู้เรื่องของ Virtualization การ config ระบบ Cloud ต่างๆ ถ้าเป็นไปได้ควรให้นักศึกษาได้เรียนรู้การออกแบบ Large IT Architecture ผ่านระบบ Cloud ที่อาจใช้ IaaS ของบาง Vendor เช่น Amazon Web Services

4) Software Development Methodology กระบวนการพัฒนาซอฟต์แวร์เป็นเรื่องสำคัญ ซึ่งอาจเป็นเรื่องยากที่จะสอนนักศึกษาที่ยังไม่มีประสบการณ์การพัฒนาซอฟต์แวร์มามากนักให้เข้าใจ แต่เราจำเป็นจะต้องสอนให้พวกเขาเข้าใจพื้นฐานการพัฒนาซอฟต์แวร์แบบใหม่ไม่ใช่แค่พูดถึง Waterfall Model แต่ควรรวมถึงหลักการของ Agile Software Development และควรจะปูพื้นฐานเรื่อง Software Testing

4) Database เรื่องของ Big Data กำลังเข้ามา บัณฑิตที่จบออกไปในวันนี้ควรจะมีความรู้เรื่องฐานข้อมูลมากกว่า RDBMS หรือการใช้คำสั่ง SQL แต่พวกเขาควรจะต้องเข้าใจเทคโนโลยีใหม่ๆอย่าง NoSQL หรือ Hadoop ด้วย เพื่อที่จะสามารถออกแบบ Information Infrastructure ในอนาคตได้

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

ธนชาติ นุ่มนนท์

IMC Institute

4 thoughts on “การเรียนการสอนด้านคอมพิวเตอร์ของสถาบันอุดมศึกษาต้องเปลี่ยนแปลง

  1. ในฐานะคนที่มีมุมมองเหมือนๆกัน และเคยในยุค fortan, pascal ต้องขอขอบคุณบทความดีนี้ ยอมรับเลยถ้าในระหว่างเรียนถ้าไม่พยายามเรียนรู้การเขียน code นอกตำรา จบออกมาคงไม่สามารถเข้าไปพัฒนา applicationให้กับหน่วยงานใดๆได้ ความเห็นนี้ ขอสนับสนุนและเป็นกำลังใจ และหวังว่าจะได้เห็นการเปลี่ยนแปลงระบบการศึกษาด้านวิทยาศาสตร์ computer และ วิศวกรรม computer ในอนาคตอันใกล้

  2. เห็นด้วยอย่งยิ่ง อีกมุมหนึ่ง การมีความรู้เข้าใจ process และบริบทของ ธุรกิจ นักศึกษางงมาก ไม่รู้จักแม้แต่ process ง่ายๆ เช่น ในบริษัท จะขอซื้ออะไร ส่วนมากต้องทำ Purchase Requisition

ใส่ความเห็น

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  เปลี่ยนแปลง )

Facebook photo

You are commenting using your Facebook account. Log Out /  เปลี่ยนแปลง )

Connecting to %s