คอมพิวเตอร์เป็นส่วนหนึ่ง ของการดำเนินกิจกรรมประจำวันของมนุษย์ไม่ทางตรงก็ทางอ้อม คอมพิวเตอร์ทำงานได้เร็วขึ้น มีขนาดเล็กลง มีโปรแกรมที่ใช้ง่ายขึ้น ช่วยเสริมกิจกรรมของมนุษย์ได้มากขึ้น ทั้งนี้ก็เพราะว่าเบื้องหลังฮาร์ดแวร์ที่เราจับต้องได้ เบื้องหลังซอฟต์แวร์ที่เรานำมาติดตั้งสั่งงานฮาร์ดแวร์นั้น ก็คือ “กึ๋น” ความคิดของผู้สร้างหรือที่เรียก ว่า อัลกอริทึม (algorithm)1 ที่ถูกแปลงมาเป็น ฮาร์ดแวร์และโปรแกรมที่ใช้งานได้จริง อัลกอริทึมจึงเป็นศาสตร์ซึ่งมีบทบาทสำคัญมากในการศึกษาทางวิทยาการและ วิศวกรรมคอมพิวเตอร์ วิชาอัลกอริทึมเบื้องต้น หรือโดยส่วนใหญ่มักตั้งชื่อว่า การออกแบบอัลกอริทึม จึงถูกบรรจุเป็นวิชาพื้นฐานในสาขาวิชาดังกล่าว วิธีการศึกษาอัลกอริทึมที่ได้ผลวิธีหนึ่งคือ การศึกษาจากตัวอย่าง นักเรียนจะพบตัวอย่างปัญหาแทรกตามกลวิธีการออกแบบมาตรฐานทั่วไป ที่คนในวงการทำ ๆ กัน วิธีศึกษาแบบนี้มีทั้งข้อดีข้อเสีย ข้อดีคือ ยิ่งรู้ตัวอย่างมาก ยิ่งรู้แนวทางหลากหลาย พร้อมที่นำไปประยุกต์กับปัญหาใหม่ที่จะพบในอนาคต แต่มีข้อเสียว่า จะยึดติดกับกลวิธีเก่า ๆ ไม่ค่อยยอมคิดอะไรแผลง ๆ ใหม่ๆ ผู้ออกแบบอัลกอริทึมที่ดีต้องรู้จักข้อปัญหาที่สนใจ รู้จักเลือกกลวิธีการออกแบบ รู้จักเลือกใช้โครงสร้างข้อมูลที่เหมาะสม และที่สำคัญต้องรู้จักวิเคราะห์ด้วยว่า ผลที่ได้ออกแบบไว้มีประสิทธิภาพเพียงใด ดังนั้นนักเรียนต้องมีพื้นฐานทางการเขียนโปรแกรม โครงสร้างข้อมูล และคณิตศาสตร์ดีสครีต สื่อการเรียนนี้ประกอบไปด้วยเนื้อหาสี่ส่วนหลักคือ 1) เรื่องพื้นฐาน ทางการเขียนโปรแกรม โครงสร้างข้อมูลและคณิตศาสตร์พื้นฐาน 2) การวิ เคราะห์อัลกอริทึม 3) กลวิธีการออกแบบอัลกอริทึม และ 4) การจัดกลุ่มปัญหาตามความซับซ้อน ขอให้ประสบความสำเร็จในการศึกษาวิชาการออกแบบอัลกอริทึมครับ
รศ. ดร. สมชาย ประสิทธิ์จูตระกูล ๕ ธันวาคม ๒๕๕๒ รายชื่อหนังสืออ่านประกอบ
ผู้จัดทำขอขอบคุณ โครงการมหาวิทยาลัยไซเบอร์ไทย สำนักงานคณะกรรมการการอุดมศึกษา กระทรวงศึกษาธิการ ที่ให้การสนับสนุนการจัดทำเนื้อหาส่วนบทเรียนของสื่อการเรียนนี้ |