คำนำ

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

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

     สื่อการเรียนนี้ประกอบไปด้วยเนื้อหาสี่ส่วนหลักคือ 1) เรื่องพื้นฐาน ทางการเขียนโปรแกรม โครงสร้างข้อมูลและคณิตศาสตร์พื้นฐาน 2) การวิ เคราะห์อัลกอริทึม 3) กลวิธีการออกแบบอัลกอริทึม และ 4) การจัดกลุ่มปัญหาตามความซับซ้อน

     ขอให้ประสบความสำเร็จในการศึกษาวิชาการออกแบบอัลกอริทึมครับ

 

รศ. ดร. สมชาย ประสิทธิ์จูตระกูล
ภาควิชาวิศวกรรมคอมพิวเตอร์
คณะวิศวกรรมศาสตร์
จุฬาลงกรณ์มหาวิทยาลัย

๕ ธันวาคม ๒๕๕๒


รายชื่อหนังสืออ่านประกอบ
  • การออกแบบและวิเคราะห์อัลกอริทึม
    สมชาย ประสิทธิ์จูตระกูล
    ISBN : 974-229-025-3 (พิมพ์ครั้งที่ ๓) ๒๕๔๙
    ISBN : 978-616-551-194-0 (พิมพ์ครั้งที่ ๔) ๒๕๕๓

ผู้จัดทำขอขอบคุณ โครงการมหาวิทยาลัยไซเบอร์ไทย สำนักงานคณะกรรมการการอุดมศึกษา กระทรวงศึกษาธิการ ที่ให้การสนับสนุนการจัดทำเนื้อหาส่วนบทเรียนของสื่อการเรียนนี้