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

คำว่า **วิทยาการคอมพิวเตอร์** มีความหมายเทียบเท่ากับคำในภาษาอังกฤษ คือ **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) เป็นปัญหาที่เปิดกว้างในทฤษฎีการคำนวณ

|  |  |  |
| --- | --- | --- |
|  | {\displaystyle M=\{X:X\not \in X\}} |  |
| ทฤษฎีออโตมาตา
(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` |  | {\displaystyle {\hat {\theta }}={\underset {\theta }{\operatorname {argmax} }}\;P(x|\theta )} |
| ทฤษฎีสารสนเทศเชิงขั้นตอนวิธี
(Algorithmic information theory) | เรขาคณิตสารสนเทศ
(Information geometry) | ทฤษฎีการประมาณการณ์
(Estimation theory) |

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

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

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

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

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

|  |  |  |  |  |
| --- | --- | --- | --- | --- |
|  |  | {\displaystyle \Gamma \vdash x:{\text{Int}}} |  |  |
| ภาษาแบบแผน
(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 (computer science) และ Distributed computingการประมวลผลพร้อมกัน (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) เพื่อยกย่องผู้ทำคุณประโยชน์ให้กับวงการการศึกษาด้านวิทยาการคอมพิวเตอร์

อ้างอิง
-------

1. ↑  "ประวัติ และความเป็นมาของภาควิชาวิศวกรรมคอมพิวเตอร์ จุฬาลงกรณ์มหาวิทยาลัย". คลังข้อมูลเก่าเก็บจากแหล่งเดิมเมื่อ 2007-11-14. สืบค้นเมื่อ 2007-11-07.
2. ↑  "Wilhelm Schickard – Ein Computerpionier" (PDF) (ภาษาเยอรมัน). คลังข้อมูลเก่าเก็บจากแหล่งเดิม (PDF)เมื่อ 2020-09-19. สืบค้นเมื่อ 2020-08-12.
3. ↑  Keates, Fiona (25 June 2012). "A Brief History of Computing". *The Repository*. The Royal Society. คลังข้อมูลเก่าเก็บจากแหล่งเดิมเมื่อ 2012-06-29. สืบค้นเมื่อ 2020-08-12.
4. ↑  "Science Museum, Babbage's Analytical Engine, 1834-1871 (Trial model)". สืบค้นเมื่อ 2020-05-11.`{{cite web}}`: CS1 maint: url-status (ลิงก์)
5. ↑  Anthony Hyman (1982). *Charles Babbage, pioneer of the computer*.
6. ↑  Anthony Hyman (1982). *Charles Babbage, pioneer of the computer*.
7. ↑  "Charles Babbage Institute: Who Was Charles Babbage?". *cbi.umn.edu*. สืบค้นเมื่อ 28 December 2016.
8. ↑  "A Selection and Adaptation From Ada's Notes found in Ada, The Enchantress of Numbers," by Betty Alexandra Toole Ed.D. Strawberry Press, Mill Valley, CA". คลังข้อมูลเก่าเก็บจากแหล่งเดิมเมื่อ February 10, 2006. สืบค้นเมื่อ 4 May 2006.
9. ↑  "The John Gabriel Byrne Computer Science Collection" (PDF). คลังข้อมูลเก่าเก็บจากแหล่งเดิมเมื่อ April 16, 2019. สืบค้นเมื่อ August 8, 2019.
10. ↑  Brian Randell, p. 187, 1975
11. ↑  The Association for Computing Machinery (ACM) was founded in 1947.
12. ↑  "IBM Archives: 1945". Ibm.com. สืบค้นเมื่อ 2019-03-19.
13. ↑  "IBM100 – The Origins of Computer Science". Ibm.com. 1995-09-15. สืบค้นเมื่อ 2019-03-19.
14. ↑  Denning, Peter J. (2000). "Computer Science: The Discipline" (PDF). *Encyclopedia of Computer Science*. คลังข้อมูลเก่าเก็บจากแหล่งเดิม (PDF)เมื่อ May 25, 2006.
15. ↑  "Some EDSAC statistics". University of Cambridge. สืบค้นเมื่อ 19 November 2011.
16. ↑  "Computer science pioneer Samuel D. Conte dies at 85". Purdue Computer Science. July 1, 2002. สืบค้นเมื่อ December 12, 2014.
17. ↑  Tedre, Matti (2014). *The Science of Computing: Shaping a Discipline*. Taylor and Francis / CRC Press.
18. ↑  Levy, Steven (1984). *Hackers: Heroes of the Computer Revolution*. Doubleday. ISBN 978-0-385-19195-1.
19. ↑  "IBM 704 Electronic Data Processing System—CHM Revolution". Computerhistory.org. สืบค้นเมื่อ 7 July 2013.
20. ↑  "IBM 709: a powerful new data processing system" (PDF). Computer History Museum. คลังข้อมูลเก่าเก็บจากแหล่งเดิม (PDF)เมื่อ มีนาคม 4, 2016. สืบค้นเมื่อ ธันวาคม 12, 2014.
21. ↑  Tedre, Matti (2014). *The Science of Computing: Shaping a Discipline*. Taylor and Francis / CRC Press.
22. ↑  Puers, Robert; Baldi, Livio; Voorde, Marcel Van de; Nooten, Sebastiaan E. van (2017). *Nanoelectronics: Materials, Devices, Applications, 2 Volumes*. John Wiley & Sons. p. 14. ISBN 9783527340538.
23. ↑  Lee, Thomas H. (2003). *The Design of CMOS Radio-Frequency Integrated Circuits* (PDF). Cambridge University Press. ISBN 9781139643771. คลังข้อมูลเก่าเก็บจากแหล่งเดิม (PDF)เมื่อ 2019-12-09. สืบค้นเมื่อ 2020-08-13.
24. ↑  Lavington, Simon (1998), *A History of Manchester Computers* (2 ed.), Swindon: The British Computer Society, pp. 34–35
25. ↑  Moskowitz, Sanford L. (2016). *Advanced Materials Innovation: Managing Global Technology in the 21st century*. John Wiley & Sons. pp. 165–167. ISBN 9780470508923.
26. ↑  Lojek, Bo (2007). *History of Semiconductor Engineering*. Springer Science & Business Media. pp. 321–3. ISBN 9783540342588.
27. ↑  "1960 - Metal Oxide Semiconductor (MOS) Transistor Demonstrated". *The Silicon Engine*. Computer History Museum.
28. ↑  "Who Invented the Transistor?". *Computer History Museum*. 4 December 2013. สืบค้นเมื่อ 20 July 2019.
29. ↑  Hittinger, William C. (1973). "Metal-Oxide-Semiconductor Technology". *Scientific American*. **229** (2): 48–59. Bibcode:1973SciAm.229b..48H. doi:10.1038/scientificamerican0873-48. ISSN 0036-8733. JSTOR 24923169.
30. ↑  Fossum, Jerry G.; Trivedi, Vishal P. (2013). *Fundamentals of Ultra-Thin-Body MOSFETs and FinFETs*. Cambridge University Press. p. vii. ISBN 9781107434493.
31. ↑  Malmstadt, Howard V.; Enke, Christie G.; Crouch, Stanley R. (1994). *Making the Right Connections: Microcomputers and Electronic Instrumentation*. American Chemical Society. p. 389. ISBN 9780841228610. The relative simplicity and low power requirements of MOSFETs have fostered today's microcomputer revolution.
32. ↑  "Timeline of Computer History". Computer History Museum. สืบค้นเมื่อ November 24, 2015.
33. ↑  "Computer Science as a Profession". Computing Sciences Accreditation Board. May 28, 1997. คลังข้อมูลเก่าเก็บจากแหล่งเดิมเมื่อ June 17, 2008. สืบค้นเมื่อ 23 May 2010.
34. ↑  Committee on the Fundamentals of Computer Science: Challenges and Opportunities, National Research Council (2004). *Computer Science: Reflections on the Field, Reflections from the Field*. National Academies Press. ISBN 978-0-309-09301-9.
35. ↑  "CSAB Leading Computer Education". CSAB. August 3, 2011. สืบค้นเมื่อ 19 November 2011.
36. ↑  "Computer Science as a Profession". Computing Sciences Accreditation Board. May 28, 1997. คลังข้อมูลเก่าเก็บจากแหล่งเดิมเมื่อ June 17, 2008. สืบค้นเมื่อ 23 May 2010.
37. ↑  Denning, Peter J. (2000). "Computer Science: The Discipline" (PDF). *Encyclopedia of Computer Science*. คลังข้อมูลเก่าเก็บจากแหล่งเดิม (PDF)เมื่อ May 25, 2006.
38. ↑  Clay Mathematics Institute P = NP เก็บถาวร ตุลาคม 14, 2013 ที่ เวย์แบ็กแมชชีน
39. ↑  Van-Nam Huynh; Vladik Kreinovich; Songsak Sriboonchitta; 2012. Uncertainty Analysis in Econometrics with Applications. Springer Science & Business Media. p. 63. ISBN 978-3-642-35443-4.
40. ↑  A. Thisted, Ronald (April 7, 1997). "Computer Architecture" (PDF). The University of Chicago.
41. ↑  Wescott, Bob (2013). *The Every Computer Performance Book, Chapter 3: Useful laws*. CreateSpace. ISBN 978-1-4826-5775-3.
42. ↑  Lawrence A. Tomei, 2009. Lexicon of Online and Distance Learning. R&L Education. p. 29. ISBN 978-1-60709-285-8.
43. ↑  Simon Elias Bibri; 2018. Smart Sustainable Cities of the Future: The Untapped Potential of Big Data Analytics and Context-Aware Computing for Advancing Sustainability. Springer. p. 74. ISBN 978-3-319-73981-6.
44. ↑  Muhammad H. Rashid, 2016. SPICE for Power Electronics and Electric Power. CRC Press. p. 6. ISBN 978-1-4398-6047-2.
45. ↑

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


วิกิตำรามีตำราในหัวข้อ ***ชั้นหนังสือ วิทยาการคอมพิวเตอร์***

วิกิมีเดียคอมมอนส์มีสื่อที่เกี่ยวข้องกับ **วิทยาการคอมพิวเตอร์**

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