# วิทยาการคอมพิวเตอร์

|  |  |
| --- | --- |
|  |  |
|  |  |

 วิทยาการคอมพิวเตอร์ศึกษาเกี่ยวกับโครงสร้างพื้นฐานทางทฤษฎีของข้อมูล การคำนวณข้อมูล และ เทคนิคการประยุกต์ใช้ข้อมูลในทางปฏิบัติ

**วิทยาการคอมพิวเตอร์** หรือ **วิทยาศาสตร์คอมพิวเตอร์** (อังกฤษ: computer science) เป็นศาสตร์เกี่ยวกับการศึกษาค้นคว้าทฤษฎีการคำนวณสำหรับคอมพิวเตอร์ และทฤษฎีการประมวลผลสารสนเทศข้อมูล ทั้งด้านซอฟต์แวร์ ฮาร์ดแวร์ และเครือข่าย วิทยาการคอมพิวเตอร์มีความเกี่ยวโยงกับทฤษฎีการคำนวณ อัลกอริทึม ปัญหาด้านการคำนวณ การออกแบบฮาร์ดแวร์ ซอฟต์แวร์ และแอปพลิเคชัน วิทยาการคอมพิวเตอร์ศึกษาเกี่ยวกับกระบวนการประมวลผลข้อมูล ทั้งในสิ่งมีชีวิตตามกระบวนการธรรมชาติ และระบบคอมพิวเตอร์ที่มนุษย์สร้างขึ้น เช่น การสื่อสาร การควบคุม การรับรู้ การเรียนรู้ และสติปัญญา โดยเฉพาะในคอมพิวเตอร์

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

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

วิทยาการคอมพิวเตอร์ ในฐานะศาสตร์การศึกษานั้น นับเป็นหนึ่งใน 5 สาขาวิชาคอมพิวเตอร์ ประกอบด้วย **วิทยาการคอมพิวเตอร์** วิศวกรรมคอมพิวเตอร์ วิศวกรรมซอฟต์แวร์ เทคโนโลยีสารสนเทศ และระบบสารสนเทศ

## ประวัติของชื่อ

คำว่า **วิทยาการคอมพิวเตอร์** มีความหมายเทียบเท่ากับคำในภาษาอังกฤษ คือ **computer science** (หรือในสหราชอาณาจักร นิยมใช้คำว่า **Computing science** โดยมีความหมายต่างกันเล็กน้อย)

คำที่ใช้ในภาษาฝรั่งเศสคือ **Informatique** จาก "information" (สารสนเทศ) และ "automatique" (อัตโนมัติ) บัญญัติโดย Philippe Dreyfus ในปี พ.ศ. 2505 (ค.ศ. 1962) ซึ่งคำในภาษาอิตาลี **Informatica** และภาษาสเปน **Informática** ก็มีที่มาจากคำในภาษาฝรั่งเศสคำนี้ ส่วนคำที่ใช้ในภาษาเยอรมันคือ **Informatik** ซึ่งก็ดูคล้ายกัน และมีรากจากคำทั้งสองเหมือนกัน แต่ได้ถูกบัญญัติใช้ในเยอรมันมาตั้งแต่ปี พ.ศ. 2500 (ค.ศ. 1957) และเมื่อไม่นานมานี้ ในภาษาอังกฤษเอง ก็ได้มีการใช้คำว่า **informatics** ซึ่งก็มาจากรากเดียวกัน แต่มักใช้หมายความถึง information science (สารสนเทศศาสตร์) หรือในบางครั้งใช้แทนคำว่า computer science (หรือ computing science) แต่กินความหมายที่กว้างไปกว่าคอมพิวเตอร์หรือเครื่องจักร โดยรวมถึงการคำนวณและสารสนเทศในธรรมชาติด้วย

### ชื่อในภาษาไทย

คำว่า "computer science" แต่เดิมในภาษาไทยเรียกทับศัพท์ว่า "คอมพิวเตอร์ไซแอนส์" โดยเป็นชื่อของหน่วยงานหนึ่งของจุฬาลงกรณ์มหาวิทยาลัย ซึ่งเป็นหน่วยงานแรกในประเทศไทยที่สอนวิชาวิทยาศาสตร์คอมพิวเตอร์ ต่อมาได้ย้ายมาเป็นภาควิชาวิศวกรรมคอมพิวเตอร์ สังกัดคณะวิศวกรรมศาสตร์ และยังคงหลักสูตรวิทยาศาสตร์คอมพิวเตอร์มหาบัณฑิตไว้ ซึ่งเป็นหลักสูตรเดียวในประเทศที่ใช้คำว่า "วิทยาศาสตร์คอมพิวเตอร์" ส่วนหน่วยงานที่เปิดสอนวิชานี้ในระดับปริญญาตรีแห่งแรกในประเทศไทยคือ สาขาศาสตร์คอมพิวเตอร์ (ชื่อเดิม) คณะวิทยาศาสตร์และเทคโนโลยี มหาวิทยาลัยธรรมศาสตร์ ซึ่งสาเหตุที่เดิมเรียกว่า "ศาสตร์คอมพิวเตอร์" เนื่องจากคำว่า "ไซน์" ในความหมายนี้คือ "ศาสตร์" เช่นเดียวกับใน
สังคมศาสตร์ หรือ โซเชียลไซน์ (social science)

## ประวัติศาสตร์

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

ในปี ค.ศ. 1673 นายก็อทฟรายด์ ไลบ์นิซ (Gottfried Leibniz) ได้แสดงเครื่องคำนวณเชิงกลแบบดิจิทัลที่เรียกว่า "Stepped Reckoner" ไลบ์นิซอาจถือได้ว่าเป็นนักวิทยาศาสตร์คอมพิวเตอร์และนักทฤษฎีสารสนเทศคนแรก โดยเฉพาะการที่เขาได้จัดทำเอกสารทางวิชาการเกี่ยวกับระบบเลขฐานสอง

ในปี ค.ศ. 1820 นายโทมัส เดอ กอลมาร์ (Thomas de Colmar) ได้เปิดตัวอุตสาหกรรมเครื่องคิดเลขเชิงกล เมื่อเขาประดิษฐ์เครื่องวัดเลขคณิตแบบง่าย เครื่องคำนวณเครื่องแรกที่แข็งแกร่งเพียงพอและเชื่อถือได้เพียงพอที่จะใช้งานได้ทุกวันในสภาพแวดล้อมของสำนักงาน

นายชาร์ลส์ แบ็บเบจ (Charles Babbage) เริ่มออกแบบเครื่องคิดเลขเชิงกลอัตโนมัติเครื่องแรกชื่อ "Difference Engine" ของเขาในปี ค.ศ. 1822 ซึ่งในที่สุดเขาก็มีแนวคิดเกี่ยวกับเครื่องคำนวณเชิงกลที่ตั้งโปรแกรมได้เครื่องแรกชื่อ Analytical Engine โดยเขาเริ่มพัฒนาเครื่องนี้ในปี ค.ศ. 1834 และในเวลาไม่ถึงสองปี เขาได้ร่างคุณลักษณะเด่น ๆ ของคอมพิวเตอร์สมัยใหม่ขึ้น ขั้นตอนสำคัญคือการสร้างระบบบัตรเจาะรูที่ได้มาจากเครื่องทอผ้า Jacquard ทำให้สามารถตั้งโปรแกรมได้อย่างไม่สิ้นสุดในการทอผ้า

ชาร์ลส์ แบบเบจ Charles Babbage บิดาแห่งวิทยาการคอมพิวเตอร์"
เอดา เลิฟเลซ (Ada Lovelace) สตรีชาวฝรั่งเศส ผู้เขียนเรื่องอัลกอริทึมสำหรับคอมพิวเตอร์ขึ้นครั้งแรกของโลก ในปี ค.ศ. 1843
ในปี ค.ศ. 1843 ระหว่างการแปลบทความภาษาฝรั่งเศส เรื่องเครื่องมือวิเคราะห์ เอดา เลิฟเลซ (Ada Lovelace) ได้เขียนอัลกอริทึมในการคำนวณจำนวนแบร์นูลลี ซึ่งถือเป็นอัลกอริทึมที่เผยแพร่ครั้งแรกที่ได้รับการออกแบบมาโดยเฉพาะสำหรับการใช้งานบนคอมพิวเตอร์

ประมาณปี ค.ศ. 1885 นายเฮอร์แมน ฮอลเลอริธ (Herman Hollerith) ได้ประดิษฐ์ตัวเลื่อนซึ่งใช้บัตรเจาะรูเพื่อประมวลผลข้อมูลทางสถิติ ในที่สุด บริษัท ของเขาก็กลายเป็นส่วนหนึ่งของ IBM

นายเพอร์ซี ลุจเกต (Percy Ludgate) ในปี ค.ศ. 1909 ได้ตีพิมพ์ แบบสำหรับประดิษฐ์เครื่องยนต์วิเคราะห์เชิงกลเป็นครั้งที่ 2 ในประวัติศาสตร์ ตามรอยของนายชาร์ลส์ แบ็บเบจ (Charles Babbage) แม้ว่าลุจเกตจะไม่รู้ถึงผลงานก่อนหน้านี้ของแบ็บเบจมาก่อนก็ตาม

ในปี ค.ศ. 1937 100 ปีหลังจากความฝันที่เป็นไปไม่ได้ของนายชาลส์ แบบเบจ (Charles Babbage) นายโฮวาร์ด ไอเค็น (Howard Aiken) ได้โน้มน้าวให้ IBM พัฒนาเครื่องคิดเลขที่ตั้งโปรแกรมได้ขนาดยักษ์ของเขา ที่มีชื่อว่า ASCC / Harvard Mark I ตามรอยเครื่องมือวิเคราะห์ของแบ็บเบจ ซึ่งใช้การ์ดและหน่วยประมวลผลกลาง เมื่อเครื่องนี้สร้างเสร็จ ได้มีการยกย่องเครื่องนี้ว่าเป็น "ความฝันที่เป็นจริงของแบ็บเบจ"

ในช่วงทศวรรษที่ 1940 ด้วยการพัฒนาเครื่องคอมพิวเตอร์รุ่นใหม่และมีประสิทธิภาพมากขึ้น เช่น คอมพิวเตอร์ Atanasoff – Berry และ ENIAC คำว่าคอมพิวเตอร์ ได้เปลี่ยนความหมายไป กลายเป็นหมายถึง เครื่องจักรที่ใช้ในการคำนวณ มากกว่าอาชีพนักคำนวณของมนุษย์ ที่เคยแพร่หลายก่อนยุคของคอมพิวเตอร์ เมื่อเห็นได้ชัดว่าคอมพิวเตอร์สามารถใช้เพื่อการคำนวณทางคณิตศาสตร์ได้มากกว่าศักยภาพของมนุษย์ สาขาวิทยาศาสตร์คอมพิวเตอร์จึงได้เกิดการศึกษาอย่างเป็นวงกว้าง เพื่อศึกษาการคำนวณโดยทั่วไป

ในปี พ.ศ. 2488 IBM ได้ก่อตั้งห้องปฏิบัติการคอมพิวเตอร์วิทยาศาสตร์วัตสัน ที่มหาวิทยาลัยโคลัมเบีย ในกรุงนิวยอร์ก เป็นห้องปฏิบัติการแรกของ IBM ที่อุทิศให้กับวิทยาศาสตร์บริสุทธิ์ ห้องปฏิบัติการนี้เป็นผู้บุกเบิกแผนกวิจัยของไอบีเอ็มซึ่งปัจจุบันดำเนินงานด้านการวิจัยทั่วโลก

ในที่สุดความสัมพันธ์ที่ใกล้ชิดระหว่างไอบีเอ็มและมหาวิทยาลัยก็มีส่วนสำคัญในการเกิดระเบียบทางวิทยาศาสตร์ขึ้นใหม่ โดยมหาวิทยาลัยโคลัมเบีย เปิดสอนหลักสูตรวิชาการครั้งแรกในสาขาวิทยาการคอมพิวเตอร์ เมื่อปี ค.ศ. 1946 วิทยาการคอมพิวเตอร์เริ่มได้รับการยอมรับให้เป็นสาขาวิชาการที่แตกออกมาจากวิทยาศาสตร์และคณิตศาสตร์ทั่วไป ในช่วงทศวรรษที่ 1950 และต้นทศวรรษที่ 1960 หลักสูตรปริญญาวิทยาการคอมพิวเตอร์ หลักสูตรแรกของโลก คือ "Cambridge Diploma in Computer Science" เริ่มต้นที่ห้องปฏิบัติการคอมพิวเตอร์ของมหาวิทยาลัยเคมบริดจ์ ในปี ค.ศ. 1953 แผนกวิทยาการคอมพิวเตอร์แห่งแรกในสหรัฐอเมริกาก่อตั้งขึ้นที่มหาวิทยาลัยเพอร์ดู ในปี ค.ศ. 1962 นับตั้งแต่คอมพิวเตอร์สามารถใช้งานได้อย่างสะดวกแพร่หลาย การใช้งานคอมพิวเตอร์ในแต่ละสาขา กลายเป็นศาสตร์ลึกซึ้งเฉพาะตัว

แม้ว่าในตอนแรก หลายคนเชื่อว่ามันเป็นไปไม่ได้เลยที่คอมพิวเตอร์จะสามารถเป็นสาขาการศึกษาทางวิทยาศาสตร์ได้ แต่ในช่วงปลายทศวรรษที่ 50 การศึกษาเกี่ยวกับคอมพิวเตอร์ ก็ค่อย ๆ เป็นที่ยอมรับในหมู่นักวิชาการจำนวนมาก ปัจจุบันเป็นแบรนด์ IBM ที่รู้จักกันดี และยังคงเป็นส่วนหนึ่งของการปฏิวัติวิทยาการคอมพิวเตอร์ในช่วงเวลานี้ IBM (ย่อมาจาก International Business Machines) เปิดตัว IBM 704 และต่อมาคอมพิวเตอร์ IBM 709 ซึ่งใช้กันอย่างแพร่หลายในยุคแห่งการสำรวจทางเทคโนโลยี ในช่วงปลายทศวรรษที่ 50 สาขาวิชาวิทยาการคอมพิวเตอร์ยังคงอยู่ในขั้นตอนของการพัฒนาอย่างมากและมีการพบปัญหาต่าง ๆ อยู่บ่อยครั้ง

จูเลียส เอ็ดการ์ ลิเลียนเฟลด์ (Julius Edgar Lilienfeld) นักฟิสิกส์ชาวออสเตรีย-ฮังการี ได้เสนอแนวคิดเกี่ยวกับ ทรานซิสเตอร์สนามไฟฟ้า ในปี ค.ศ. 1925 และต่อมา จอห์น บาร์ดีน (John Bardeen) และวอลเตอร์ แบรเทน (Walter Brattain) ได้สร้างทรานซิสเตอร์ที่ใช้งานได้ตัวแรกซึ่งเป็นทรานซิสเตอร์แบบจุดสัมผัส ในปี ค.ศ. 1947 ในขณะที่ทำงานภายใต้ วิลเลียม ช็อกลีย์ (William Shockley) ที่ Bell Labs

ในปี ค.ศ. 1953 มหาวิทยาลัยแมนเชสเตอร์ได้สร้างคอมพิวเตอร์ทรานซิสเตอร์เครื่องแรก เรียกว่า Transistor Computer อย่างไรก็ตามทรานซิสเตอร์ในยุคแรกเป็นอุปกรณ์ที่ค่อนข้างเทอะทะ ซึ่งยากต่อการผลิตเป็นจำนวนมาก ทรานซิสเตอร์สนามเอฟเฟกต์โลหะ - ออกไซด์ - ซิลิคอน (MOSFET หรือ MOS) ถูกประดิษฐ์ขึ้นโดย โมฮัมเม็ด อาตัลลา (Mohamed Atalla) และ เดวอน คัง (Dawon Kahng) ที่ Bell Labs ในปี ค.ศ. 1959 เป็นทรานซิสเตอร์ขนาดกะทัดรัดตัวแรกที่สามารถย่อส่วนและผลิตจำนวนมากเพื่อการใช้งานที่หลากหลาย [33] MOSFET ช่วยให้สามารถสร้างชิปวงจรรวมที่มีความหนาแน่นสูงได้ ซึ่งนำไปสู่สิ่งที่เรียกว่า การปฏิวัติคอมพิวเตอร์ หรือการปฏิวัติไมโครคอมพิวเตอร์ เป็นช่วงเวลาที่ได้เห็นการปรับปรุงอย่างมีนัยสำคัญในการใช้งานและประสิทธิผลของเทคโนโลยีคอมพิวเตอร์ สังคมสมัยใหม่ได้เห็นการเปลี่ยนแปลงอย่างมีนัยสำคัญในด้านประชากรที่ใช้เทคโนโลยีคอมพิวเตอร์ การใช้งานได้เปลี่ยนจากการใช้เฉพาะผู้เชี่ยวชาญเป็นส่วนใหญ่ ไปสู่ฐานผู้ใช้ที่แพร่หลายในวงกว้าง ในขั้นต้นคอมพิวเตอร์มีค่าใช้จ่ายค่อนข้างสูงและจำเป็นต้องได้รับความช่วยเหลือด้วยมนุษย์ในระดับหนึ่ง เพื่อให้ใช้งานได้อย่างมีประสิทธิภาพ เนื่องจากการใช้คอมพิวเตอร์แพร่หลายมากขึ้นและราคาไม่แพง ความช่วยเหลือจากมนุษย์ในการใช้งานคอมพิวเตอร์จึงจำเป็นน้อยลงอย่างมากสำหรับการใช้งานทั่วไป

## สาขาหลัก

วิทยาการคอมพิวเตอร์ครอบคลุมหัวข้อต่าง ๆ ตั้งแต่การศึกษาทางทฤษฎีของอัลกอริทึม และขีดจำกัดของการคำนวณ ไปจนถึงประเด็นทางปฏิบัติของการนำระบบคอมพิวเตอร์มาใช้ในฮาร์ดแวร์และซอฟต์แวร์ โดยองค์กร CSAB (เดิมเรียกว่า Computing Sciences Accreditation Board ซึ่งประกอบด้วยตัวแทนของ Association for Computing Machinery (ACM) และ IEEE Computer Society (IEEE CS)) ระบุว่ามี 4 สาขา ที่สำคัญในสาขาวิทยาการคอมพิวเตอร์ ประกอบด้วย: ทฤษฎีการคำนวณอัลกอริทึม, โครงสร้างข้อมูลและอัลกอริทึม, ระเบียบวิธีการเขียนโปรแกรมและภาษาโปรแกรม, องค์ประกอบและสถาปัตยกรรมของคอมพิวเตอร์ นอกเหนือจากสี่ด้านนี้แล้ว CSAB ยังระบุสาขาต่าง ๆ เพิ่มเติม เช่น วิศวกรรมซอฟต์แวร์, ปัญญาประดิษฐ์, ระบบเครือข่ายคอมพิวเตอร์และการสื่อสาร, ระบบฐานข้อมูล, การคำนวณแบบขนาน, การคำนวณแบบกระจาย, ปฏิสัมพันธ์ระหว่างมนุษย์กับคอมพิวเตอร์, กราฟิกคอมพิวเตอร์. ระบบปฏิบัติการ และการคำนวณเชิงตัวเลขและสัญลักษณ์ ซึ่งถือเป็นพื้นที่สำคัญของวิทยาการคอมพิวเตอร์

### ทฤษฎีวิทยาการคอมพิวเตอร์

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

#### ทฤษฎีการคำนวณ

จากข้อมูลของ Peter Denning คำถามพื้นฐานที่แฝงอยู่ในวิทยาการคอมพิวเตอร์คือ "อะไรบ้างที่ทำให้เป็นอัตโนมัติได้" ทฤษฎีการคำนวณมุ่งเน้นไปที่การตอบคำถามพื้นฐานเกี่ยวกับสิ่งที่สามารถคำนวณได้และจำนวนทรัพยากรที่ต้องใช้ในการคำนวณเหล่านั้น ในความพยายามที่จะตอบคำถามแรกนั้น ทฤษฎีความสามารถในการคำนวณ (computability theory) จะตรวจสอบว่าปัญหาการคำนวณใดที่สามารถแก้ไขได้บนแบบจำลองการคำนวณ (models of computation) ทางทฤษฎีต่าง ๆ คำถามที่สองได้รับการแก้ไขโดย ทฤษฎีความซับซ้อนในการคำนวณ (computational complexity theory) ซึ่งศึกษาต้นทุนด้านเวลาและพื้นที่ ที่เกี่ยวข้องกับแนวทางที่หลากหลายในการแก้ปัญหาด้านการคำนวณที่หลากหลาย

สมการปัญหา P = NP? ที่มีชื่อเสียง เป็นสมการปัญหาหนึ่งใน "ปัญหารางวัลแห่งสหัสวรรษ (Millennium Prize Problems) เป็นปัญหาที่เปิดกว้างในทฤษฎีการคำนวณ

|  |  |  |
| --- | --- | --- |
|  |  WIKINIUM\_MATH\_PH\_0  |  |
| ทฤษฎีออโตมาตา
(Automata theory) | ทฤษฎีการคำนวณได้
(Computability theory) | ทฤษฎีความซับซ้อนในการคำนวณ
(Computational complexity theory) |
| **GNITIRW-TERCES** |  |
| วิทยาการเข้ารหัสลับ
(Cryptography) | ทฤษฎีการประมวลผลควอนตัม
(Quantum computing theory) |

#### ทฤษฏีสารสนเทศและทฤษฎีการเข้ารหัส

ทฤษฎีสารสนเทศ (Information theory) เกี่ยวข้องกับความน่าจะเป็น การหาปริมาณข้อมูล และสถิติ พัฒนาขึ้นโดย คล็อด แชนนอน (Claude Shannon) เพื่อค้นหาขีดจำกัดพื้นฐานในการประมวลผลสัญญาณ ( signal processing) เช่น การบีบอัดข้อมูล และการจัดเก็บและสื่อสารข้อมูลที่เชื่อถือได้

ทฤษฎีการเขียนโค้ด (Coding theory) คือการศึกษาคุณสมบัติของรหัส (ระบบสำหรับการแปลงข้อมูลจากรูปแบบหนึ่งไปเป็นอีกรูปแบบหนึ่ง) และความเหมาะสมของรหัสสำหรับการใช้งานเฉพาะ รหัสใช้สำหรับการบีบอัดข้อมูล (data compression), การเข้ารหัส (cryptography), การตรวจจับและแก้ไขข้อผิดพลาด (error detection and correction) และ การเข้ารหัสเครือข่าย (network coding) การศึกษารหัสมีเป้าหมายเพื่อการออกแบบวิธีการส่งข้อมูล ( data transmission) ที่มีประสิทธิภาพและเชื่อถือได้

|  |  |  |
| --- | --- | --- |
|  |  |  |
|  | ทฤษฎีสารสนเทศ
(Information theory) |  |
|  |  |  |
| การบีบอัดข้อมูล
(Source coding) | ความจุช่องสัญญาณ
(Channel capacity) | ทฤษฎีการตรวจจับสัญญาณ
(Signal detection theory) |
| `gcc -Os foo.c` |  |  WIKINIUM\_MATH\_PH\_2  |
| ทฤษฎีสารสนเทศเชิงขั้นตอนวิธี
(Algorithmic information theory) | เรขาคณิตสารสนเทศ
(Information geometry) | ทฤษฎีการประมาณการณ์
(Estimation theory) |

### โครงสร้างข้อมูลและอัลกอริทึม

โครงสร้างข้อมูล และอัลกอริทึม เป็นการศึกษาวิธีการคำนวณทั่วไป และประสิทธิภาพในการคำนวณของแต่ละวิธีการ

|  |  |  |  |  |
| --- | --- | --- | --- | --- |
|  WIKINIUM\_MATH\_PH\_4  |  |  |  |  |
| การวิเคราะห์ขั้นตอนวิธี
(Analysis of algorithms) | อัลกอริทึม
(Algorithms) | โครงสร้างข้อมูล
(Data structures) | การหาค่าที่เหมาะสมที่สุด
(Combinatorial optimization) | เรขาคณิตการคำนวณ
(Computational geometry) |

#### ทฤษฎีภาษาโปรแกรม

ทฤษฎีภาษาโปรแกรม (Programming language theory) เป็นสาขาหนึ่งของวิทยาการคอมพิวเตอร์ที่เกี่ยวข้องกับการออกแบบ การใช้งาน การวิเคราะห์ การระบุลักษณะ และการจัดประเภทของภาษาโปรแกรม (programming languages) เป็นแขนงหนึ่งของวิทยาศาสตร์คอมพิวเตอร์ที่มีความเกี่ยวโยงอย่างลึกซึ้งกับคณิตศาสตร์ วิศวกรรมซอฟต์แวร์ และภาษาศาสตร์ เป็นแขนงศึกษาในวิทยาศาสตร์คอมพิวเตอร์ที่มีผู้วิจัยศึกษาจำนวนมาก

|  |  |  |  |  |
| --- | --- | --- | --- | --- |
|  |  |  WIKINIUM\_MATH\_PH\_5  |  |  |
| ภาษาแบบแผน
(Formal languages) | อรรถศาสตร์เชิงรูปนัย
(Formal semantics) | ทฤษฎีรูปแบบ
(Type theory) | การออกแบบคอมไพเลอร์
(Compiler design) | ภาษาโปรแกรม
(Programming languages) |

#### วิธีรูปนัย

วิธีรูปนัย (Formal method) เป็นเทคนิคเฉพาะทางคณิตศาสตร์สำหรับการกำหนดคุณลักษณะ (specification), การพัฒนา (development) และการตรวจสอบระบบซอฟต์แวร์ และฮาร์ดแวร์ (verification) การใช้วิธีรูปนัยในการออกแบบซอฟต์แวร์และฮาร์ดแวร์นั้น มาจากความคาดหวังว่า การวิเคราะห์ทางคณิตศาสตร์ที่เหมาะสม จะสามารถสร้างระบบคอมพิวเตอร์ที่มีความประสิทธิภาพสูง ความคาดหวังนี้เป็นรากฐานทางทฤษฎีที่สำคัญสำหรับวิศวกรรมซอฟต์แวร์ โดยเฉพาะอย่างยิ่งในส่วนที่เกี่ยวข้องกับความปลอดภัยทางไซเบอร์ (cybersecurity) วิธีรูปนัยเป็นส่วนเสริมที่มีประโยชน์ในการทดสอบซอฟต์แวร์ เนื่องจากช่วยหลีกเลี่ยงข้อผิดพลาดและยังสร้างกรอบสำหรับการทดสอบ สำหรับการใช้งานในอุตสาหกรรม จำเป็นต้องมีการสนับสนุนด้วยเครื่องมือ (tool support) อย่างไรก็ตามค่าใช้จ่ายที่สูงในการใช้วิธีรูปนัย ทำให้โดยส่วนใหญ่ จะใช้วิธีรูปนัยในการพัฒนาระบบที่มีความสมบูรณ์สูงและมีความสำคัญต่อชีวิตเท่านั้น เน้นความปลอดภัย หรือ การรักษาความปลอดภัย วิธีรูปนัยเป็นการประยุกต์ใช้พื้นฐานวิทยาศาสตร์คอมพิวเตอร์เชิงทฤษฎีที่หลากหลาย โดยเฉพาะอย่างยิ่งแคลคูลัสเชิงตรรกะ (logic calculi), ภาษาแบบแผน (formal languages), ทฤษฎีออโตมาตา (automata theory), อรรถศาสตร์ของโปรแกรม (program semantics), ระบบชนิดข้อมูล (type systems) และประเภทข้อมูลเชิงพีชคณิต (algebraic data types)

|  |  |  |
| --- | --- | --- |
|  |  |  |
| การทวนสอบเชิงรูปนัย
Formal verification | อรรถศาสตร์เชิงรูปนัย
Formal semantics | การพิสูจน์ทฤษฎีบทด้วยคอมพิวเตอร์
Automated theorem proving |

### ระบบคอมพิวเตอร์

#### สถาปัตยกรรมคอมพิวเตอร์และวิศวกรรมคอมพิวเตอร์

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

|  |  |  |
| --- | --- | --- |
|  |  |  |
| พีชคณิตแบบบูล
(Digital logic) | สถาปัตยกรรมไมโคร
(Microarchitecture) | มัลติโพรเซสซิง
(Multiprocessing) |
|  |  |  |
| ยูบิควิตัสคอมพิวติง
(Ubiquitous computing) | สถาปัตยกรรมระบบ
(Systems architecture) | ระบบปฏิบัติการ
(Operating systems) |

#### การวิเคราะห์ประสิทธิภาพของคอมพิวเตอร์

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

#### ระบบคอมพิวเตอร์แบบคอนเคอร์แรนต์ พาราเรล และดิสตริบิวต์

การประมวลผลพร้อมกัน (concurrency) คือ คุณสมบัติของระบบที่มีการประมวลผลหลายอย่างพร้อมกันและอาจมีการโต้ตอบซึ่งกันและกัน แบบจำลองทางคณิตศาสตร์จำนวนมากได้รับการพัฒนาสำหรับการคำนวณพร้อมกันทั่วไป อาทิ Petri nets, แคลคูลัสกระบวนการ และ แบบจำลอง Parallel Random Access Machine เมื่อคอมพิวเตอร์หลายเครื่องเชื่อมต่อในเครือข่ายในขณะที่ใช้งานพร้อมกันสิ่งนี้เรียกว่า ระบบกระจาย (distributed system) คอมพิวเตอร์ภายในระบบกระจายนั้นมีหน่วยความจำส่วนตัวของตัวเองและสามารถแลกเปลี่ยนข้อมูลเพื่อบรรลุเป้าหมายร่วมกันได้

#### เครือข่ายคอมพิวเตอร์

เครือข่ายคอมพิวเตอร์ (computer network) มีเป้าหมายในการจัดการเครือข่ายคอมพิวเตอร์ทีเขื่อมต่อกันอยู่ทั่วทั้งโลก

#### ความปลอดภัยทางไซเบอร์และวิทยาการรหัสลับ

ความปลอดภัยทางไซเบอร์ (Cybersecurity) เป็นสาขาหนึ่งของเทคโนโลยีคอมพิวเตอร์ที่มีวัตถุประสงค์เพื่อปกป้องข้อมูลจากการเข้าถึงโดยไม่ได้รับอนุญาต

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

#### ฐานข้อมูล

ฐานข้อมูล (database) มีหน้าที่ในการจัดการ กักเก็บ และกู้คืนข้อมูลจำนวนมาก ด้วยความสะดวกรวดเร็ว ฐานข้อมูลดิจิทัลมีการจัดการโดยใช้ระบบการจัดการฐานข้อมูล เพื่อการกักเก็บ สร้าง รักษา และค้นหาข้อมูล ด้วยโมเดลฐานข้อมูล (database models) และภาษาสอบถาม (query languages)

### การประยุกต์ใช้คอมพิวเตอร์

#### คอมพิวเตอร์กราฟิกส์

คอมพิวเตอร์กราฟิก คือ การศึกษาเนื้อหาภาพดิจิทัลแลการสังเคราะห์และการจัดการข้อมูลภาพดิจิทัล สาขานี้เชื่อมต่อกับสาขาอื่น ๆ ในวิทยาการคอมพิวเตอร์ ตั้งแต่คอมพิวเตอร์วิทัศน์ (computer vision) การประมวลผลภาพ (image processing) และเรขาคณิตเชิงคำนวณ (computational geometry) และถูกนำไปใช้อย่างมากในสาขาเทคนิคพิเศษ และการผลิตวิดีโอเกม

#### ปฏิสัมพันธ์ระหว่างมนุษย์และคอมพิวเตอร์ (HCI)

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

#### การคำนวณและการจำลองทางวิทยาศาสตร์

*ดูบทความหลัก (ภาษาอังกฤษ) ที่: Computational science*

**วิทยาศาสตร์เชิงคอมพิวเตอร์** (Scientific computing หรือ Computational science) เป็นสาขาวิชาที่เกี่ยวข้องกับการสร้างแบบจำลองทางคณิตศาสตร์ (mathematical models) และเทคนิคการวิเคราะห์เชิงปริมาณ (quantitative analysis) โดยประยุกต์ใช้คอมพิวเตอร์เพื่อการวิเคราะห์และแก้ปัญหาทางวิทยาศาสตร์ โดยมักใช้จำลองกระบวนการและปรากฏการณ์ต่าง ๆ เช่น พลวัตของไหล วงจรไฟฟ้า การเคลื่อนที่ทางกลศาสตร์ การวิเคราะห์ปรากฏการณ์ทางดาราศาสตร์ ตลอดจนถึงการวิเคราะห์และทำนายด้านสังคมศาตร์ เช่น ประชากร แนวโน้มสงคราม และการเจริญเติบโตของเศรษฐกิจ

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

|  |  |  |  |  |
| --- | --- | --- | --- | --- |
|  |  |  |  |  |
| การวิเคราะห์เชิงตัวเลข
(Numerical analysis) | ฟิสิกส์เชิงคอมพิวเตอร์
(Computational physics) | เคมีเชิงคอมพิวเตอร์
(Computational chemistry) | ชีวสารสนเทศ
(Bioinformatics) | ประสาทวิทยาเชิงคอมพิวเตอร์
(Computational neuroscience) |

#### ปัญญาประดิษฐ์

ปัญญาประดิษฐ์ (Artificial intelligence) หรือ AI มีจุดประสงค์เพื่อสังเคราะห์กระบวนการที่มีเป้าหมายเฉพาะเจาะจงในระบบคอมพิวเตอร์ อาทิ การแก้ปัญหา การตัดสินใจ การปรับตัวเข้ากับสิ่งแวดล้อม การเรียนรู้ และการสื่อสาร ที่พบในมนุษย์และสัตว์

จากจุดเริ่มต้นในไซเบอร์เนติกส์ และในการประชุมดาร์ทเมาท์ (Dartmouth Conference) ค.ศ. 1956 การวิจัยปัญญาประดิษฐ์จำเป็นต้องมีการข้ามสาขาวิชาโดยอาศัยความเชี่ยวชาญที่หลากหลาย เช่น คณิตศาสตร์ประยุกต์ ตรรกะสัญลักษณ์ สัญศาสตร์ วิศวกรรมไฟฟ้า ปรัชญา จิตประสาท สรีรวิทยา และ สังคมศาสตร์ ปัญญาประดิษฐ์มีความเกี่ยวข้องกับการพัฒนาหุ่นยนต์ แต่การประยุกต์ใช้ AI ในทางปฏิบัติ มักใช้ในด้านการพัฒนาซอฟต์แวร์ ซึ่งต้องใช้ความเข้าใจในการคำนวณชั้นสูง จุดเริ่มต้นของ AI อยู่ในช่วงปลายทศวรรษที่ 1940 จากคำถามของอลัน ทัวริง (Alan Turing) ว่า "คอมพิวเตอร์คิดเองได้ไหม" และเป็นคำถามยังคงไม่มีคำตอบอย่างมีประสิทธิภาพ ถึงแม้ว่าการทดสอบทัวริงจะยังคงมีการใช้งานเพื่อประเมินผลลัพธ์ของคอมพิวเตอร์โดยมีระดับสติปัญญาของมนุษย์เป็นบรรทัดฐาน แต่ในปัจจุบัน ระบบ AI อัตโนมัติ ประสบความสำเร็จในการประเมินผลและคาดการณ์ล่วงหน้าอย่างมาก สามารถแทนที่การตรวจสอบโดยมนุษย์ได้อย่างมีประสิทธิภาพ และมีการประยุกต์ใช้งาน AI กับข้อมูลขนาดใหญ่ที่มนุษย์ไม่สามารถทำได้

|  |  |  |
| --- | --- | --- |
|  |  |  |
| การเรียนรู้ของเครื่อง
(Machine learning) | คอมพิวเตอร์วิทัศน์
(Computer vision) | การประมวลผลภาพ
(Image processing) |
|  |  |  |
| การรู้จำแบบ
(Pattern recognition) | การทำเหมืองข้อมูล
(Data mining) | การคำนวณแบบวิวัฒนาการ
(Evolutionary computation) |
|  |  |  |
| การแทนความรู้
(Knowledge representation and reasoning) | การประมวลภาษาธรรมชาติ
(Natural language processing) | วิทยาการหุ่นยนต์
(Robotics) |

### วิศวกรรมซอฟต์แวร์

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

## กระบวนทัศน์การเขียนโปรแกรม

**กระบวนทัศน์การเขียนโปรแกรม** (อังกฤษ: กระบวนทัศน์การเขียนโปรแกรม) เป็นวิธีการพื้นฐานของการเขียนโปรแกรมคอมพิวเตอร์ กระบวนทัศน์การเขียนโปรแกรมมี 4 กระบวนทัศน์หลัก ได้แก่

* การเขียนโปรแกรมเชิงวัตถุ (object-oriented programming)
* การเขียนโปรแกรมเชิงคำสั่ง (imperative programming)
* การเขียนโปรแกรมเชิงฟังก์ชัน (functional programming)
* การเขียนโปรแกรมเชิงตรรกะ (logic programming)

นอกจากกระบวนทัศน์หลักทั้ง 4 แล้ว ยังมีอีกกระบวนทัศน์หนึ่งซึ่งขยายความสามารถของโมดูลโปรแกรม โดยใช้วิธีการตัดแทรกโค้ด กระบวนทัศน์นี้คือ การโปรแกรมเชิงหน่วยย่อย (aspect-oriented programming)

## สาขาที่เกี่ยวข้อง

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

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

## ผู้บุกเบิก

* + ชาร์ลส แบบเบจ ผู้ออกแบบและสร้างเครื่องลบเลข
	+ จอห์น แบกคัส ผู้คิดค้น ภาษาฟอร์แทรน
	+ อลอนโซ เชิร์ช ผู้พัฒนาพื้นฐานของวิทยาการคอมพิวเตอร์เชิงทฤษฎี
	+ เจมส์ ดับเบิลยู คูลีย์ (James W. Cooley) และจอหน์ ดับเบิลยู ทูคีย์ (John W. Tukey คิดค้น) ขั้นตอนวิธีการแปลงฟูเรียร์แบบเร็ว ซึ่งมีบทบาทอย่างสูงในการวิจัยด้านวิทยาศาสตร์
	+ โอเล-โจฮาน ดาห์ล (Ole-Johan Dahl) และเคียสเทน ไนก์อาร์ด (Kristen Nygaard) คิดค้นภาษา SIMILA ซึ่งเป็นโปรแกรมเชิง (กึ่ง) วัตถุ
	+ เอดส์เกอร์ ไดจ์สตรา (Edsger Dijkstra) พัฒนาขั้นตอนวิธีพื้นฐาน, rigor, การโปรแกรมโดยใช้ semaphore, บทความ "คำสั่ง โกทู (Goto) นั้นพิจารณาดูแล้วไม่ปลอดภัย" ซึ่งพูดถึงอันตรายจากการใช้คำสั่งโกทู (Goto), และกลวิธีในการสอน
	+ ซี.เอ.อาร์. ฮอร์ (C.A.R Hoare) พัฒนาภาษาทางการซีเอสพี (CSP) (Communicating Sequential Processes) และ ขั้นตอนวิธี Quicksort
	+ พลเรือเอกเกรซ มัวเรย์ ฮอปเปอร์ (Admiral Grace Murray Hopper) บุกเบิกพื้นฐานของโปรแกรมภาษาระดับสูง ที่เธอเรียกว่า "การโปรแกรมอัตโนมัติ", พัฒนาตัวแปลภาษา (A-O compiler), และมีอิทธิพลอย่างสูงกับภาษาโคบอล (COBOL)
	+ เคนเนท ไอเวอร์สัน (Kenneth Iverson) คิดค้นภาษา APL และมีส่วนร่วมพัฒนาการคำนวณแบบปฏิสัมพันธ์
	+ โดนัลด์ คนูธ (Donald Knuth) เขียนชุดหนังสือ The Art of Computer Programming และระบบสร้างเอกสาร TeX
	+ เอดา ไบรอน หรือ เอดา เลิฟเลซ ริเริ่มการศึกษาด้านวิทยาศาสตร์เชิงคำนวณ โดยเฉพาะบทความ "Sketch of the Analytical Engine" ที่เป็นการวิเคราะห์งานของ แบบเบจ, ชื่อของเธอยังเป็นชื่อของภาษาโปรแกรมคอมพิวเตอร์สมัยใหม่ Ada อีกด้วย
	+ จอห์น ฟอน นอยมันน์ (John von Neuman) ออกแบบสถาปัตยกรรมฟอนนอยมันน์ ที่เป็นพื้นฐานของเครื่องคอมพิวเตอร์ในปัจจุบัน
	+ คลอด อี. แชนนอน (Claude E. Shannon) ริเริ่มทฤษฎีสารสนเทศ (information theory)
	+ แอลัน ทัวริง (Alan Turing) บุกเบิกพื้นฐานด้านวิทยาการคอมพิวเตอร์ สำหรับการวางรูปแบบของเครื่องจักรทัวริง (Turing machine) และออกแบบไพลอท เอซีอี (Pilot ACE)
	+ มัวริส วิลค์ส (Maurice Wilkes) สร้างคอมพิวเตอร์แบบเก็บโปรแกรมได้ (stored program computer) ได้สำเร็จ และมีส่วนในโครงสร้างพื้นฐานของภาษาโปรแกรมระดับสูง
	+ คอนราด ซูส (Konrad Zuse) สร้างเครื่องคอมพิวเตอร์ไบนารีที่เขาได้ออกแบบทฤษฎีสำหรับภาษาโปรแกรมชั้นสูง ชื่อว่า Plankalkül

## ดูเพิ่ม

### พื้นฐานคณิตศาสตร์

* คณิตตรรกศาสตร์
* วิยุตคณิต หรือ คณิตศาสตร์ไม่ต่อเนื่อง (Discrete mathematics)
* ทฤษฎีกราฟ
* ทฤษฎีสารสนเทศ
* ตรรกศาสตร์สัญลักษณ์
* ทฤษฎีความน่าจะเป็น และสถิติศาสตร์

### วิทยาการคอมพิวเตอร์เชิงทฤษฎี

* ทฤษฎีสารสนเทศเชิงขั้นตอนวิธี (Algorithmic information theory)
* ทฤษฎีการคำนวณได้
* วิทยาการเข้ารหัสลับ (Cryptography)
* อรรถศาสตร์รูปนัย (Formal semantics)
* ทฤษฎีการคำนวณ
	+ การวิเคราะห์ขั้นตอนวิธี และความซับซ้อนของปัญหา
	+ ตรรกศาสตร์และความหมายของโปรแกรม
	+ คณิตตรรกศาสตร์ (Mathematical logic) และภาษารูปนัย (Formal languages)
* ทฤษฎีแบบชนิด (Type theory)

### ฮาร์ดแวร์

* หน่วยประมวลผลกลาง
* หน่วยความจำ
* วงจรรวม
	+ วงจรรวมขนาดใหญ่ (VLSI)
* อินพุต/เอาต์พุต และการสื่อสารข้อมูล
* การ์ดแสดงผล
* การ์ดเสียง
* อุปกรณ์คอมพิวเตอร์

### ซอฟต์แวร์

* โปรแกรมคอมพิวเตอร์ และการเขียนโปรแกรม
* วิศวกรรมซอฟต์แวร์
* ภาษาโปรแกรม
* ระบบปฏิบัติการ
* ตัวแปลภาษา (คอมไพเลอร์)

### ระบบข้อมูลและสารสนเทศ

* โครงสร้างข้อมูล (Data structures)
* การบีบอัดข้อมูล (Data compression)
* ฐานข้อมูล (Database)
* การวิเคราะห์และออกแบบระบบ (System Analysis and Design)
* ตัวแปลภาษา (Compiler)
* คลังข้อมูล (Data Warehouse)

### ระเบียบวิธีคำนวณด้วยคอมพิวเตอร์

* ปัญญาประดิษฐ์ (Artificial intelligence)
* วิชาเรขภาพคอมพิวเตอร์ (คอมพิวเตอร์กราฟิกส์) (Computer graphics)
* การประมวลผลภาพ (Image processing) และคอมพิวเตอร์วิทัศน์ (Computer vision)
* การรู้จำแบบ (Pattern recognition)
	+ การรู้จำคำพูด (Speech recognition)
	+ การรู้จำภาพ (Image recognition)
* การประมวลผลเอกสารและข้อความ (Document processing, Text processing)
* การประมวลผลสัญญาณดิจิทัล (Digital signal processing)
* การค้นคืนสารสนเทศ (Information retrieval)
* การทำเหมืองข้อมูล (Data Mining)
	+ การทำเหมืองข้อความ (Text Mining)

### ระบบเครือข่ายคอมพิวเตอร์และสารสนเทศ

* ฮาร์ดแวร์สำหรับเครือข่าย (Network hardware)
	+ ข่ายงานบริเวณเฉพาะที่ (Local Area Networks)
	+ เครือข่ายครอบคลุมบริเวณเมืองใหญ่ (Metropolitan Area Networks)
	+ ข่ายงานบริเวณกว้าง (Wide Area Networks)
	+ เครือข่ายไร้สาย (Wireless Networks)
	+ เครือข่ายเชื่อมโยง (Internetworks)
* ซอฟต์แวร์สำหรับเครือข่าย (Network software)
	+ ลำดับชั้นโปรโตโคล (Protocol Hierarchies)
	+ การออกแบบส่วนพัฒนาชั้นความคิด (Design issue for layers)
	+ การเชื่อมต่อและการให้บริการ (Interface and services)
	+ การให้บริการแบบเน้นการเชื่อมต่อและแบบไร้การเชื่อมต่อ (Connection-Oriented and Connectionless services)
* แบบโครงสร้างเครือข่าย (Reference Model)
	+ โครงสร้างแบบ โอเอสไอ (OSI Model)
	+ โครงสร้างแบบ ทีซีพี/ไอพี (TCP/IP Model)
	+ โลกไซเบอร์ (Cyberworlds)

## รางวัลทางด้านคอมพิวเตอร์

* รางวัลทัวริง (Turing Award) รางวัลที่ได้รับการยกย่องสูงสุดในวงการวิทยาการคอมพิวเตอร์
* รางวัลด้านการศึกษาเทย์เลอร์ แอล บูธ (Taylor L. Booth Education Award) เพื่อยกย่องผู้ทำคุณประโยชน์ให้กับวงการการศึกษาด้านวิทยาการคอมพิวเตอร์

## อ้างอิง

## แหล่งข้อมูลอื่น

* วิทยาการคอมพิวเตอร์คืออะไร เก็บถาวร 2007-08-05 ที่ เวย์แบ็กแมชชีน ข้อมูลจากเว็บไซต์ สถาบันเทคโนโลยีนานาชาติสิรินธร มหาวิทยาลัยธรรมศาสตร์