ผลต่างระหว่างรุ่นของ "วิทยาการคอมพิวเตอร์"

จากวิกิพีเดีย สารานุกรมเสรี
เนื้อหาที่ลบ เนื้อหาที่เพิ่ม
Wittawin Panta (คุย | ส่วนร่วม)
ประวัติศาสตร์ช่วงหลัง
Wittawin Panta (คุย | ส่วนร่วม)
ทฤษฏีการโค้ดดิ้ง
ป้ายระบุ: เพิ่มยูอาร์แอล wikipedia.org การแก้ไขแบบเห็นภาพ
บรรทัด 90: บรรทัด 90:
|[[การประมวลผลควอนตัม|ทฤษฎีการประมวลผลควอนตัม]]
|[[การประมวลผลควอนตัม|ทฤษฎีการประมวลผลควอนตัม]]
([[:en:Quantum_computer|Quantum computing theory]])
([[:en:Quantum_computer|Quantum computing theory]])
|}

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

[[ทฤษฎีการเข้ารหัส]] ([[:en:Coding_theory|Coding theory]]) คือการศึกษาคุณสมบัติของรหัส (ระบบสำหรับการแปลงข้อมูลจากรูปแบบหนึ่งไปเป็นอีกรูปแบบหนึ่ง) และความเหมาะสมของรหัสสำหรับการใช้งานเฉพาะ รหัสใช้สำหรับการบีบอัดข้อมูล ([[:en:Data_compression|data compression]]), การเข้ารหัส ([[:en:Cryptography|cryptography]]), การตรวจจับและแก้ไขข้อผิดพลาด ([[:en:Error_detection_and_correction|error detection and correction]]) และ การเข้ารหัสเครือข่าย ([[:en:Linear_network_coding|network coding]]) การศึกษารหัสมีเป้าหมายเพื่อการออกแบบวิธีการส่งข้อมูล ( [[:en:Data_transmission|data transmission]]) ที่มีประสิทธิภาพและเชื่อถือได้<ref>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}}.</ref>
{| cellspacing="15" style="border:1px solid #ccc; text-align:center; margin:auto;"
|
|[[File:Pompey_by_Nasidius.jpg|link=https://en.wikipedia.org/wiki/File:Pompey_by_Nasidius.jpg|120x120px]]
|
|-
|
|[[ทฤษฎีสารสนเทศ]]
([[:en:Information_theory|Information theory]])
|
|-
|[[File:Comparison_of_JPEG_and_PNG.png|link=https://en.wikipedia.org/wiki/File:Comparison_of_JPEG_and_PNG.png|96x96px]]
|[[File:Binary_symmetric_channel.svg|link=https://en.wikipedia.org/wiki/File:Binary_symmetric_channel.svg|103x103px]]
|[[File:H0_h1_fehler.jpg|link=https://en.wikipedia.org/wiki/File:H0_h1_fehler.jpg|120x120px]]
|-
|การบีบอัดข้อมูล
([[:en:Source_coding|Source coding]])
|ความจุช่องสัญญาณ
([[:en:Channel_capacity|Channel capacity]])
|ทฤษฎีการตรวจจับสัญญาณ
([[:en:Signal_detection_theory|Signal detection theory]])
|-
|<code>gcc -Os foo.c</code>
|[[File:Exponential_cdf.svg|link=https://en.wikipedia.org/wiki/File:Exponential_cdf.svg|120x120px]]
|<math>\hat \theta = \underset{\theta}{\operatorname{argmax}}\;P(x|\theta)</math>
|-
|ทฤษฎีสารสนเทศเชิงขั้นตอนวิธี
([[:en:Algorithmic_information_theory|Algorithmic information theory]])
|เรขาคณิตสารสนเทศ
([[:en:Information_geometry|Information geometry]])
|ทฤษฎีการประมาณการณ์
([[:en:Estimation_theory|Estimation theory]])
|}
|}



รุ่นแก้ไขเมื่อ 21:52, 13 สิงหาคม 2563

Expression for Church numerals in lambda calculus Plot of a quicksort algorithm
Example of Computer animation produced using Motion capture Half-adder circuit
วิทยาการคอมพิวเตอร์ศึกษาเกี่ยวกับโครงสร้างพื้นฐานทางทฤษฎีของข้อมูล การคำนวณข้อมูล และ เทคนิคการประยุกต์ใช้ข้อมูลในทางปฏิบัติ

วิทยาการคอมพิวเตอร์ หรือ วิทยาศาสตร์คอมพิวเตอร์ (อังกฤษ: 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" แต่เดิมในภาษาไทยเรียกทับศัพท์ว่า "คอมพิวเตอร์ไซแอนส์" [1] โดยเป็นชื่อของหน่วยงานหนึ่งของจุฬาลงกรณ์มหาวิทยาลัย ซึ่งเป็นหน่วยงานแรกในประเทศไทยที่สอนวิชาวิทยาศาสตร์คอมพิวเตอร์ ต่อมาได้ย้ายมาเป็นภาควิชาวิศวกรรมคอมพิวเตอร์ สังกัดคณะวิศวกรรมศาสตร์ และยังคงหลักสูตรวิทยาศาสตร์คอมพิวเตอร์มหาบัณฑิตไว้ ซึ่งเป็นหลักสูตรเดียวในประเทศที่ใช้คำว่า "วิทยาศาสตร์คอมพิวเตอร์" ส่วนหน่วยงานที่เปิดสอนวิชานี้ในระดับปริญญาตรีแห่งแรกในประเทศไทยคือ สาขาศาสตร์คอมพิวเตอร์ (ชื่อเดิม) คณะวิทยาศาสตร์และเทคโนโลยี มหาวิทยาลัยธรรมศาสตร์ ซึ่งสาเหตุที่เดิมเรียกว่า "ศาสตร์คอมพิวเตอร์" เนื่องจากคำว่า "ไซน์" ในความหมายนี้คือ "ศาสตร์" เช่นเดียวกับใน สังคมศาสตร์ หรือ โซเชียลไซน์ (social science)

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

สาขาหลัก

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

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

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

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

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

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

ทฤษฎีออโตมาตา

(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) ที่มีประสิทธิภาพและเชื่อถือได้[39]

ทฤษฎีสารสนเทศ

(Information theory)

การบีบอัดข้อมูล

(Source coding)

ความจุช่องสัญญาณ

(Channel capacity)

ทฤษฎีการตรวจจับสัญญาณ

(Signal detection theory)

gcc -Os foo.c
ทฤษฎีสารสนเทศเชิงขั้นตอนวิธี

(Algorithmic information theory)

เรขาคณิตสารสนเทศ

(Information geometry)

ทฤษฎีการประมาณการณ์

(Estimation theory)

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

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

ฮาร์ดแวร์

ซอฟต์แวร์

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

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

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

วิทยาการคำนวณ

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

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

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

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

ผู้บุกเบิก

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

อ้างอิง

  1. ประวัติ และความเป็นมาของภาควิชาวิศวกรรมคอมพิวเตอร์ จุฬาลงกรณ์มหาวิทยาลัย
  2. "Wilhelm Schickard – Ein Computerpionier" (PDF) (ภาษาGerman).{{cite web}}: CS1 maint: unrecognized language (ลิงก์)
  3. Keates, Fiona (25 June 2012). "A Brief History of Computing". The Repository. The Royal Society.
  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.
  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.

ดูเพิ่ม

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