วิทยาการคอมพิวเตอร์
ลิงก์ข้ามภาษาในบทความนี้ มีไว้ให้ผู้อ่านและผู้ร่วมแก้ไขบทความศึกษาเพิ่มเติมโดยสะดวก เนื่องจากวิกิพีเดียภาษาไทยยังไม่มีบทความดังกล่าว กระนั้น ควรรีบสร้างเป็นบทความโดยเร็วที่สุด |
ส่วนหนึ่งของชุดบทความ |
วิทยาศาสตร์ |
---|
วิทยาการคอมพิวเตอร์ หรือ วิทยาศาสตร์คอมพิวเตอร์ (อังกฤษ: 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] ทำให้สามารถตั้งโปรแกรมได้อย่างไม่สิ้นสุดในการทอผ้า
ในปี ค.ศ. 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) เป็นปัญหาที่เปิดกว้างในทฤษฎีการคำนวณ
ทฤษฎีออโตมาตา | ทฤษฎีการคำนวณได้ | ทฤษฎีความซับซ้อนในการคำนวณ |
GNITIRW-TERCES | ||
วิทยาการเข้ารหัสลับ | ทฤษฎีการประมวลผลควอนตัม |
ทฤษฏีสารสนเทศและทฤษฎีการเข้ารหัส
[แก้]ทฤษฎีสารสนเทศ (Information theory) เกี่ยวข้องกับความน่าจะเป็น การหาปริมาณข้อมูล และสถิติ พัฒนาขึ้นโดย คล็อด แชนนอน (Claude Shannon) เพื่อค้นหาขีดจำกัดพื้นฐานในการประมวลผลสัญญาณ ( signal processing) เช่น การบีบอัดข้อมูล และการจัดเก็บและสื่อสารข้อมูลที่เชื่อถือได้
ทฤษฎีการเขียนโค้ด (Coding theory) คือการศึกษาคุณสมบัติของรหัส (ระบบสำหรับการแปลงข้อมูลจากรูปแบบหนึ่งไปเป็นอีกรูปแบบหนึ่ง) และความเหมาะสมของรหัสสำหรับการใช้งานเฉพาะ รหัสใช้สำหรับการบีบอัดข้อมูล (data compression), การเข้ารหัส (cryptography), การตรวจจับและแก้ไขข้อผิดพลาด (error detection and correction) และ การเข้ารหัสเครือข่าย (network coding) การศึกษารหัสมีเป้าหมายเพื่อการออกแบบวิธีการส่งข้อมูล ( data transmission) ที่มีประสิทธิภาพและเชื่อถือได้[39]
ทฤษฎีสารสนเทศ | ||
การบีบอัดข้อมูล | ความจุช่องสัญญาณ | ทฤษฎีการตรวจจับสัญญาณ |
gcc -Os foo.c
|
||
ทฤษฎีสารสนเทศเชิงขั้นตอนวิธี | เรขาคณิตสารสนเทศ | ทฤษฎีการประมาณการณ์ |
โครงสร้างข้อมูลและอัลกอริทึม
[แก้]โครงสร้างข้อมูล และอัลกอริทึม เป็นการศึกษาวิธีการคำนวณทั่วไป และประสิทธิภาพในการคำนวณของแต่ละวิธีการ
O (n2) | ||||
การวิเคราะห์ขั้นตอนวิธี | อัลกอริทึม | โครงสร้างข้อมูล | การหาค่าที่เหมาะสมที่สุด | เรขาคณิตการคำนวณ |
ทฤษฎีภาษาโปรแกรม
[แก้]ทฤษฎีภาษาโปรแกรม (Programming language theory) เป็นสาขาหนึ่งของวิทยาการคอมพิวเตอร์ที่เกี่ยวข้องกับการออกแบบ การใช้งาน การวิเคราะห์ การระบุลักษณะ และการจัดประเภทของภาษาโปรแกรม (programming languages) เป็นแขนงหนึ่งของวิทยาศาสตร์คอมพิวเตอร์ที่มีความเกี่ยวโยงอย่างลึกซึ้งกับคณิตศาสตร์ วิศวกรรมซอฟต์แวร์ และภาษาศาสตร์ เป็นแขนงศึกษาในวิทยาศาสตร์คอมพิวเตอร์ที่มีผู้วิจัยศึกษาจำนวนมาก
ภาษาแบบแผน | อรรถศาสตร์เชิงรูปนัย | ทฤษฎีรูปแบบ | การออกแบบคอมไพเลอร์ | ภาษาโปรแกรม |
วิธีรูปนัย
[แก้]วิธีรูปนัย (Formal method) เป็นเทคนิคเฉพาะทางคณิตศาสตร์สำหรับการกำหนดคุณลักษณะ (specification), การพัฒนา (development) และการตรวจสอบระบบซอฟต์แวร์ และฮาร์ดแวร์ (verification) การใช้วิธีรูปนัยในการออกแบบซอฟต์แวร์และฮาร์ดแวร์นั้น มาจากความคาดหวังว่า การวิเคราะห์ทางคณิตศาสตร์ที่เหมาะสม จะสามารถสร้างระบบคอมพิวเตอร์ที่มีความประสิทธิภาพสูง ความคาดหวังนี้เป็นรากฐานทางทฤษฎีที่สำคัญสำหรับวิศวกรรมซอฟต์แวร์ โดยเฉพาะอย่างยิ่งในส่วนที่เกี่ยวข้องกับความปลอดภัยทางไซเบอร์ (cybersecurity) วิธีรูปนัยเป็นส่วนเสริมที่มีประโยชน์ในการทดสอบซอฟต์แวร์ เนื่องจากช่วยหลีกเลี่ยงข้อผิดพลาดและยังสร้างกรอบสำหรับการทดสอบ สำหรับการใช้งานในอุตสาหกรรม จำเป็นต้องมีการสนับสนุนด้วยเครื่องมือ (tool support) อย่างไรก็ตามค่าใช้จ่ายที่สูงในการใช้วิธีรูปนัย ทำให้โดยส่วนใหญ่ จะใช้วิธีรูปนัยในการพัฒนาระบบที่มีความสมบูรณ์สูงและมีความสำคัญต่อชีวิตเท่านั้น เน้นความปลอดภัย หรือ การรักษาความปลอดภัย วิธีรูปนัยเป็นการประยุกต์ใช้พื้นฐานวิทยาศาสตร์คอมพิวเตอร์เชิงทฤษฎีที่หลากหลาย โดยเฉพาะอย่างยิ่งแคลคูลัสเชิงตรรกะ (logic calculi), ภาษาแบบแผน (formal languages), ทฤษฎีออโตมาตา (automata theory), อรรถศาสตร์ของโปรแกรม (program semantics), ระบบชนิดข้อมูล (type systems) และประเภทข้อมูลเชิงพีชคณิต (algebraic data types)
การทวนสอบเชิงรูปนัย | อรรถศาสตร์เชิงรูปนัย | การพิสูจน์ทฤษฎีบทด้วยคอมพิวเตอร์ |
ระบบคอมพิวเตอร์
[แก้]สถาปัตยกรรมคอมพิวเตอร์และวิศวกรรมคอมพิวเตอร์
[แก้]สถาปัตยกรรมคอมพิวเตอร์ คือ การออกแบบโครงสร้างการดำเนินงานพื้นฐานของระบบคอมพิวเตอร์ โดยมุ่งเน้นไปที่หน่วยประมวลผลกลาง (CPU) ซึ่งดำเนินการอยู่ภายในคอมพิวเตอร์และเข้าถึงแอดเดรสในหน่วยความจำ[40] สาขาสถาปัตยกรรมคอมพิวเตอร์ เกี่ยวข้องกับสาขาวิชาวิศวกรรมคอมพิวเตอร์ และสาขาวิศวกรรมไฟฟ้า โดยเน้นเชื่อมต่อส่วนประกอบฮาร์ดแวร์ต่าง ๆ เพื่อสร้างคอมพิวเตอร์ที่มีฟังก์ชันการทำงาน ประสิทธิผล และต้นทุนตามเป้าที่วางไว้
พีชคณิตแบบบูล | สถาปัตยกรรมไมโคร | มัลติโพรเซสซิง |
ยูบิควิตัสคอมพิวติง | สถาปัตยกรรมระบบ | ระบบปฏิบัติการ |
การวิเคราะห์ประสิทธิภาพของคอมพิวเตอร์
[แก้]การวิเคราะห์ประสิทธิภาพของคอมพิวเตอร์ คือ การศึกษางานที่ไหลผ่านคอมพิวเตอร์ โดยมีเป้าหมายทั่วไปในการปรับปรุงปริมาณงาน (throughput) การควบคุมเวลาตอบสนอง (response time) การใช้ทรัพยากรอย่างมีประสิทธิภาพ การขจัดปัญหาคอขวด (bottlenecks) และการทำนายประสิทธิภาพภายใต้ปริมาณงานสูงสุดที่คาดการณ์ไว้[41] การวัดเปรียบเทียบสมรรถนะของคอมพิวเตอร์ (Benchmark) ใคือการเปรียบเทียบประสิทธิภาพของระบบคอมพิวเตอร์ที่มีใช้ชิป หรือ มีสถาปัตยกรรมระบบที่แตกต่างกัน[42]
ระบบคอมพิวเตอร์แบบคอนเคอร์แรนต์ พาราเรล และดิสตริบิวต์
[แก้]การประมวลผลพร้อมกัน (concurrency) คือ คุณสมบัติของระบบที่มีการประมวลผลหลายอย่างพร้อมกันและอาจมีการโต้ตอบซึ่งกันและกัน แบบจำลองทางคณิตศาสตร์จำนวนมากได้รับการพัฒนาสำหรับการคำนวณพร้อมกันทั่วไป อาทิ Petri nets, แคลคูลัสกระบวนการ และ แบบจำลอง Parallel Random Access Machine เมื่อคอมพิวเตอร์หลายเครื่องเชื่อมต่อในเครือข่ายในขณะที่ใช้งานพร้อมกันสิ่งนี้เรียกว่า ระบบกระจาย (distributed system) คอมพิวเตอร์ภายในระบบกระจายนั้นมีหน่วยความจำส่วนตัวของตัวเองและสามารถแลกเปลี่ยนข้อมูลเพื่อบรรลุเป้าหมายร่วมกันได้[43]
เครือข่ายคอมพิวเตอร์
[แก้]เครือข่ายคอมพิวเตอร์ (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[44] วิทยาการคอมพิวเตอร์สมัยใหม่ ทำให้การทำงานในสาขาวิทยาศาสตร์และวิศวกรรมศาสตร์นั้นง่ายขึ้น เร็วขึ้น และมีประสิทธิภาพสูง เป็นส่วนสำคัญของการวิจัยทางวิทยาศาสตร์และวิศวกรรมศาสตร์ในศตวรรษที่ 21 นี้
การวิเคราะห์เชิงตัวเลข | ฟิสิกส์เชิงคอมพิวเตอร์ | เคมีเชิงคอมพิวเตอร์ | ชีวสารสนเทศ[45] | ประสาทวิทยาเชิงคอมพิวเตอร์ |
ปัญญาประดิษฐ์
[แก้]ปัญญาประดิษฐ์ (Artificial intelligence) หรือ AI มีจุดประสงค์เพื่อสังเคราะห์กระบวนการที่มีเป้าหมายเฉพาะเจาะจงในระบบคอมพิวเตอร์ อาทิ การแก้ปัญหา การตัดสินใจ การปรับตัวเข้ากับสิ่งแวดล้อม การเรียนรู้ และการสื่อสาร ที่พบในมนุษย์และสัตว์
จากจุดเริ่มต้นในไซเบอร์เนติกส์ และในการประชุมดาร์ทเมาท์ (Dartmouth Conference) ค.ศ. 1956 การวิจัยปัญญาประดิษฐ์จำเป็นต้องมีการข้ามสาขาวิชาโดยอาศัยความเชี่ยวชาญที่หลากหลาย เช่น คณิตศาสตร์ประยุกต์ ตรรกะสัญลักษณ์ สัญศาสตร์ วิศวกรรมไฟฟ้า ปรัชญา จิตประสาท สรีรวิทยา และ สังคมศาสตร์ ปัญญาประดิษฐ์มีความเกี่ยวข้องกับการพัฒนาหุ่นยนต์ แต่การประยุกต์ใช้ AI ในทางปฏิบัติ มักใช้ในด้านการพัฒนาซอฟต์แวร์ ซึ่งต้องใช้ความเข้าใจในการคำนวณชั้นสูง จุดเริ่มต้นของ AI อยู่ในช่วงปลายทศวรรษที่ 1940 จากคำถามของอลัน ทัวริง (Alan Turing) ว่า "คอมพิวเตอร์คิดเองได้ไหม" และเป็นคำถามยังคงไม่มีคำตอบอย่างมีประสิทธิภาพ ถึงแม้ว่าการทดสอบทัวริงจะยังคงมีการใช้งานเพื่อประเมินผลลัพธ์ของคอมพิวเตอร์โดยมีระดับสติปัญญาของมนุษย์เป็นบรรทัดฐาน แต่ในปัจจุบัน ระบบ AI อัตโนมัติ ประสบความสำเร็จในการประเมินผลและคาดการณ์ล่วงหน้าอย่างมาก สามารถแทนที่การตรวจสอบโดยมนุษย์ได้อย่างมีประสิทธิภาพ และมีการประยุกต์ใช้งาน AI กับข้อมูลขนาดใหญ่ที่มนุษย์ไม่สามารถทำได้
การเรียนรู้ของเครื่อง | คอมพิวเตอร์วิทัศน์ | การประมวลผลภาพ |
การรู้จำแบบ | การทำเหมืองข้อมูล | การคำนวณแบบวิวัฒนาการ |
การแทนความรู้ | การประมวลภาษาธรรมชาติ | วิทยาการหุ่นยนต์
(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-11-14. สืบค้นเมื่อ 2007-11-07.
- ↑ "Wilhelm Schickard – Ein Computerpionier" (PDF) (ภาษาเยอรมัน). คลังข้อมูลเก่าเก็บจากแหล่งเดิม (PDF)เมื่อ 2020-09-19. สืบค้นเมื่อ 2020-08-12.
- ↑ Keates, Fiona (25 June 2012). "A Brief History of Computing". The Repository. The Royal Society. คลังข้อมูลเก่าเก็บจากแหล่งเดิมเมื่อ 2012-06-29. สืบค้นเมื่อ 2020-08-12.
- ↑ "Science Museum, Babbage's Analytical Engine, 1834-1871 (Trial model)". สืบค้นเมื่อ 2020-05-11.
{{cite web}}
: CS1 maint: url-status (ลิงก์) - ↑ Anthony Hyman (1982). Charles Babbage, pioneer of the computer.
- ↑ Anthony Hyman (1982). Charles Babbage, pioneer of the computer.
- ↑ "Charles Babbage Institute: Who Was Charles Babbage?". cbi.umn.edu. สืบค้นเมื่อ 28 December 2016.
- ↑ "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.
- ↑ "The John Gabriel Byrne Computer Science Collection" (PDF). คลังข้อมูลเก่าเก็บจากแหล่งเดิมเมื่อ April 16, 2019. สืบค้นเมื่อ August 8, 2019.
- ↑ Brian Randell, p. 187, 1975
- ↑ The Association for Computing Machinery (ACM) was founded in 1947.
- ↑ "IBM Archives: 1945". Ibm.com. สืบค้นเมื่อ 2019-03-19.
- ↑ "IBM100 – The Origins of Computer Science". Ibm.com. 1995-09-15. สืบค้นเมื่อ 2019-03-19.
- ↑ Denning, Peter J. (2000). "Computer Science: The Discipline" (PDF). Encyclopedia of Computer Science. คลังข้อมูลเก่าเก็บจากแหล่งเดิม (PDF)เมื่อ May 25, 2006.
- ↑ "Some EDSAC statistics". University of Cambridge. สืบค้นเมื่อ 19 November 2011.
- ↑ "Computer science pioneer Samuel D. Conte dies at 85". Purdue Computer Science. July 1, 2002. สืบค้นเมื่อ December 12, 2014.
- ↑ Tedre, Matti (2014). The Science of Computing: Shaping a Discipline. Taylor and Francis / CRC Press.
- ↑ Levy, Steven (1984). Hackers: Heroes of the Computer Revolution. Doubleday. ISBN 978-0-385-19195-1.
- ↑ "IBM 704 Electronic Data Processing System—CHM Revolution". Computerhistory.org. สืบค้นเมื่อ 7 July 2013.
- ↑ "IBM 709: a powerful new data processing system" (PDF). Computer History Museum. คลังข้อมูลเก่าเก็บจากแหล่งเดิม (PDF)เมื่อ มีนาคม 4, 2016. สืบค้นเมื่อ ธันวาคม 12, 2014.
- ↑ Tedre, Matti (2014). The Science of Computing: Shaping a Discipline. Taylor and Francis / CRC Press.
- ↑ 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.
- ↑ 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.
- ↑ Lavington, Simon (1998), A History of Manchester Computers (2 ed.), Swindon: The British Computer Society, pp. 34–35
- ↑ Moskowitz, Sanford L. (2016). Advanced Materials Innovation: Managing Global Technology in the 21st century. John Wiley & Sons. pp. 165–167. ISBN 9780470508923.
- ↑ Lojek, Bo (2007). History of Semiconductor Engineering. Springer Science & Business Media. pp. 321–3. ISBN 9783540342588.
- ↑ "1960 - Metal Oxide Semiconductor (MOS) Transistor Demonstrated". The Silicon Engine. Computer History Museum.
- ↑ "Who Invented the Transistor?". Computer History Museum. 4 December 2013. สืบค้นเมื่อ 20 July 2019.
- ↑ 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.
- ↑ Fossum, Jerry G.; Trivedi, Vishal P. (2013). Fundamentals of Ultra-Thin-Body MOSFETs and FinFETs. Cambridge University Press. p. vii. ISBN 9781107434493.
- ↑ 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.
- ↑ "Timeline of Computer History". Computer History Museum. สืบค้นเมื่อ November 24, 2015.
- ↑ "Computer Science as a Profession". Computing Sciences Accreditation Board. May 28, 1997. คลังข้อมูลเก่าเก็บจากแหล่งเดิมเมื่อ June 17, 2008. สืบค้นเมื่อ 23 May 2010.
- ↑ 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.
- ↑ "CSAB Leading Computer Education". CSAB. August 3, 2011. สืบค้นเมื่อ 19 November 2011.
- ↑ "Computer Science as a Profession". Computing Sciences Accreditation Board. May 28, 1997. คลังข้อมูลเก่าเก็บจากแหล่งเดิมเมื่อ June 17, 2008. สืบค้นเมื่อ 23 May 2010.
- ↑ Denning, Peter J. (2000). "Computer Science: The Discipline" (PDF). Encyclopedia of Computer Science. คลังข้อมูลเก่าเก็บจากแหล่งเดิม (PDF)เมื่อ May 25, 2006.
- ↑ Clay Mathematics Institute P = NP เก็บถาวร ตุลาคม 14, 2013 ที่ เวย์แบ็กแมชชีน
- ↑ 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.
- ↑ A. Thisted, Ronald (April 7, 1997). "Computer Architecture" (PDF). The University of Chicago.
- ↑ Wescott, Bob (2013). The Every Computer Performance Book, Chapter 3: Useful laws. CreateSpace. ISBN 978-1-4826-5775-3.
- ↑ Lawrence A. Tomei, 2009. Lexicon of Online and Distance Learning. R&L Education. p. 29. ISBN 978-1-60709-285-8.
- ↑ 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.
- ↑ Muhammad H. Rashid, 2016. SPICE for Power Electronics and Electric Power. CRC Press. p. 6. ISBN 978-1-4398-6047-2.
- ↑ http://www.student.chula.ac.th/~59370600/Page1.html
แหล่งข้อมูลอื่น
[แก้]- วิทยาการคอมพิวเตอร์คืออะไร เก็บถาวร 2007-08-05 ที่ เวย์แบ็กแมชชีน ข้อมูลจากเว็บไซต์ สถาบันเทคโนโลยีนานาชาติสิรินธร มหาวิทยาลัยธรรมศาสตร์