วิทยาศาสตร์คอมพิวเตอร์

จากวิกิพีเดีย สารานุกรมเสรี
ข้ามไปที่การนำทาง ข้ามไปที่การค้นหา

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

วิทยาการคอมพิวเตอร์คือการศึกษาของกระบวนการขั้นตอน , เครื่องคอมพิวเตอร์และการคำนวณตัวเอง[1]ในฐานะที่เป็นวินัยช่วงวิทยาการคอมพิวเตอร์ช่วงของหัวข้อจากการศึกษาทฤษฎีของอัลกอริทึม , การคำนวณและข้อมูลกับปัญหาในทางปฏิบัติของการใช้ระบบคอมพิวเตอร์ในฮาร์ดแวร์และซอฟแวร์ [2] [3]

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

ประวัติ

Charles Babbageซึ่งบางครั้งเรียกว่า "บิดาแห่งการคำนวณ" [7]
Ada Lovelaceเผยแพร่อัลกอริทึมแรกที่มีไว้สำหรับการประมวลผลบนคอมพิวเตอร์ [8]

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

วิลเฮล์ม ชิคการ์ดออกแบบและสร้างเครื่องคิดเลขเครื่องกลเครื่องแรกที่ใช้งานได้ในปี ค.ศ. 1623 [9]ในปี ค.ศ. 1673 กอตต์ฟรีด ไลบ์นิซ ได้สาธิตเครื่องคำนวณเชิงกลแบบดิจิทัล เรียกว่า เครื่องคำนวณแบบก้าว (Stepped Reckoner ) [10]ไลบนิซอาจถือได้ว่าเป็นนักวิทยาศาสตร์คอมพิวเตอร์คนแรกและนักทฤษฎีสารสนเทศ ด้วยเหตุผลอื่น ๆ ในการจัดทำเอกสารระบบเลขฐานสอง ในปี ค.ศ. 1820 Thomas de Colmar ได้เปิดตัวอุตสาหกรรมเครื่องคิดเลขแบบกลไก[หมายเหตุ 1]เมื่อเขาคิดค้นเครื่องวัดเลขคณิตแบบง่ายซึ่งเป็นเครื่องคำนวณเครื่องแรกที่แข็งแรงเพียงพอและเชื่อถือได้เพียงพอสำหรับใช้ในชีวิตประจำวันในสภาพแวดล้อมในสำนักงานCharles Babbageเริ่มต้นการออกแบบครั้งแรกคิดเลขกลอัตโนมัติของเขาแตกต่างเครื่องยนต์ใน 1822 ซึ่งท้ายที่สุดก็ทำให้เขามีความคิดของแรกคิดเลขกลตั้งโปรแกรมของเขาวิเคราะห์ Engine [11]เขาเริ่มพัฒนาเครื่องนี้ในปี พ.ศ. 2377 และ "ในเวลาไม่ถึงสองปี เขาได้ร่างคุณลักษณะเด่นหลายประการของคอมพิวเตอร์สมัยใหม่" [12] "ขั้นตอนสำคัญคือการนำระบบบัตรเจาะที่ได้มาจากเครื่องทอผ้า Jacquard " [12]ทำให้ตั้งโปรแกรมได้ไม่จำกัด[โน้ต 2]ในปี ค.ศ. 1843 ระหว่างการแปลบทความภาษาฝรั่งเศสเกี่ยวกับ Analytical Engine Ada Lovelaceได้เขียนอัลกอริธึมในการคำนวณตัวเลขเบอร์นูลลี ซึ่งถือเป็นอัลกอริธึมที่ตีพิมพ์ครั้งแรกซึ่งได้รับการปรับแต่งเป็นพิเศษสำหรับการใช้งาน บนคอมพิวเตอร์[13]รอบ 2428 เฮอร์มันน์ Hollerithคิดค้นtabulatorซึ่งใช้บัตรเจาะเพื่อประมวลผลข้อมูลทางสถิติ; ในที่สุด บริษัท ของเขากลายเป็นส่วนหนึ่งของไอบีเอ็มตามแบบฉบับของ Babbage แม้จะไม่รู้ถึงงานก่อนหน้าของเขาPercy Ludgateในปี 1909 ก็ได้ตีพิมพ์[14]อันที่ 2 ของการออกแบบเพียงสองแบบสำหรับเครื่องยนต์วิเคราะห์ทางกลในประวัติศาสตร์ ในปี 1937 ซึ่งเป็นหนึ่งในร้อยปีหลังจากความฝันที่เป็นไปไม่ได้ของแบบเบจ, Howard Aikenเชื่อไอบีเอ็มซึ่งได้รับการทำให้ทุกชนิดของอุปกรณ์บัตรเจาะและก็ยังอยู่ในธุรกิจเครื่องคิดเลข[15]ในการพัฒนาเครื่องคิดเลขตั้งโปรแกรมของเขายักษ์ASCC / ฮาร์วาร์มาร์คฉันตาม ใน Analytical Engine ของ Babbage ซึ่งใช้การ์ดและหน่วยประมวลผลกลาง เมื่อเครื่องเสร็จ บางคนยกย่องว่า "ความฝันของ Babbage เป็นจริง" [16]

ในช่วงทศวรรษที่ 1940 ด้วยการพัฒนาเครื่องคอมพิวเตอร์แบบใหม่และมีประสิทธิภาพมากขึ้นเช่นคอมพิวเตอร์ Atanasoff–BerryและENIACคำว่าคอมพิวเตอร์หมายถึงเครื่องจักรมากกว่ารุ่นก่อนของมนุษย์[17]เป็นที่ชัดเจนว่าคอมพิวเตอร์สามารถนำมาใช้เป็นมากกว่าการคำนวณทางคณิตศาสตร์ วิทยาการคอมพิวเตอร์จึงขยายวงกว้างขึ้นเพื่อศึกษาการคำนวณโดยทั่วไป ในปี 1945 IBM ได้ก่อตั้ง Watson Scientific Computing Laboratory ที่มหาวิทยาลัยโคลัมเบียในนิวยอร์กซิตี้. บ้านภราดรภาพที่ได้รับการปรับปรุงใหม่บนฝั่งตะวันตกของแมนฮัตตันเป็นห้องปฏิบัติการแห่งแรกของไอบีเอ็มที่อุทิศให้กับวิทยาศาสตร์บริสุทธิ์ ห้องปฏิบัติการนี้เป็นบรรพบุรุษของแผนกวิจัยของไอบีเอ็ม ซึ่งปัจจุบันมีศูนย์วิจัยอยู่ทั่วโลก[18]ในที่สุด ความสัมพันธ์ที่ใกล้ชิดระหว่าง IBM และมหาวิทยาลัยเป็นเครื่องมือในการเกิดขึ้นของวินัยทางวิทยาศาสตร์ใหม่ โดยโคลัมเบียเสนอหนึ่งในหลักสูตรหน่วยกิตการศึกษาด้านวิทยาศาสตร์คอมพิวเตอร์แห่งแรกในปี 1946 [19]วิทยาการคอมพิวเตอร์เริ่มมีการจัดตั้งขึ้น เป็นวินัยทางวิชาการที่ชัดเจนในทศวรรษ 1950 และต้นทศวรรษ 1960 [20] [21]หลักสูตรปริญญาวิทยาการคอมพิวเตอร์แห่งแรกของโลก คือCambridge Diploma in Computer Scienceเริ่มต้นขึ้นที่มหาวิทยาลัยเคมบริดจ์ ห้องปฏิบัติการคอมพิวเตอร์ในปี พ.ศ. 2496 แผนกวิทยาการคอมพิวเตอร์แห่งแรกในสหรัฐอเมริกาก่อตั้งขึ้นที่มหาวิทยาลัยเพอร์ดูในปี 2505 [22]เนื่องจากมีคอมพิวเตอร์ที่ใช้งานได้จริง การประยุกต์ใช้คอมพิวเตอร์จำนวนมากจึงกลายเป็นพื้นที่การศึกษาที่แตกต่างกันในสิทธิของตนเอง

นิรุกติศาสตร์

แม้ว่าเสนอครั้งแรกในปี 1956 [23]คำว่า "วิทยาศาสตร์คอมพิวเตอร์" จะปรากฏในบทความ 1959 ในการสื่อสารของพลอากาศเอก , [24] ซึ่งหลุยส์ Fein ระบุว่าสำหรับการสร้างที่บัณฑิตในวิทยาศาสตร์คอมพิวเตอร์คล้ายคลึงกับการสร้างของฮาร์วาร์ คณะวิชาธุรกิจใน พ.ศ. 2464 [25]ให้เหตุผลกับชื่อโดยการโต้แย้งว่า เช่นเดียวกับวิทยาการจัดการวิชานี้ถูกนำไปใช้และมีลักษณะเป็นสหวิทยาการ ในขณะที่มีลักษณะตามแบบฉบับของวินัยทางวิชาการ(24) ความพยายามของเขาและของผู้อื่น เช่นนักวิเคราะห์ตัวเลข George Forsytheได้รับรางวัล: มหาวิทยาลัยยังคงสร้างแผนกดังกล่าว โดยเริ่มจาก Purdue ในปี 1962 [26]แม้จะมีชื่อ วิทยาการคอมพิวเตอร์จำนวนมากไม่ได้เกี่ยวข้องกับการศึกษาคอมพิวเตอร์ด้วยตนเอง ด้วยเหตุนี้จึงมีการเสนอชื่อทางเลือกหลายชื่อ[27]บางแผนกของมหาวิทยาลัยใหญ่ๆ ชอบคำว่าวิทยาการคอมพิวเตอร์เพื่อเน้นให้เห็นถึงความแตกต่างนั้นอย่างแม่นยำPeter Naurนักวิทยาศาสตร์ชาวเดนมาร์กเสนอคำว่าdatalogy , [28]เพื่อสะท้อนถึงความจริงที่ว่าวินัยทางวิทยาศาสตร์หมุนรอบข้อมูลและการรักษาข้อมูล ในขณะที่ไม่จำเป็นต้องเกี่ยวข้องกับคอมพิวเตอร์ สถาบันวิทยาศาสตร์แห่งแรกที่ใช้คำนี้ คือ Department of Datalogy ที่มหาวิทยาลัยโคเปนเฮเกน ซึ่งก่อตั้งขึ้นในปี 1969 โดย Peter Naur เป็นศาสตราจารย์คนแรกในด้าน Datalogy คำนี้ใช้เป็นหลักในประเทศแถบสแกนดิเนเวีย อีกคำหนึ่งที่ Naur เสนอคือdata science ; ปัจจุบันนี้ใช้สำหรับการวิเคราะห์ข้อมูลแบบสหสาขาวิชาชีพรวมทั้งสถิติและฐานข้อมูล

ในวันแรกของการคำนวณจำนวนของข้อตกลงสำหรับผู้ปฏิบัติงานของเขตของคอมพิวเตอร์ที่ถูกแนะนำในการติดต่อสื่อสารของ ACM - turingineer , turologist , ไหลแผนภูมิมนุษย์ , การประยุกต์ใช้เมตาคณิตศาสตร์และประยุกต์ epistemologist [29]สามเดือนต่อมาในวารสารฉบับเดียวกัน นักคอมพิวเตอร์แนะนำ ปีหน้าโดยนักสะกดจิต[30]คำcomputicsยังได้รับการแนะนำ[31] ในยุโรปแง่ที่ได้มาจากการแปลหดตัวของการแสดงออก "ข้อมูลโดยอัตโนมัติ" (เช่น "informazione Automatica" ในอิตาลี) หรือ "ข้อมูลและคณิตศาสตร์" มักจะใช้เช่นInformatique (ฝรั่งเศส), Informatik (ภาษาเยอรมัน), Informatica (อิตาลี, ดัตช์ ) informática (สเปน, โปรตุเกส) informatika ( ภาษาสลาฟและฮังการี ) หรือPliroforiki ( πληροφορικήซึ่งหมายถึงสารสนเทศ) ในภาษากรีกมีการใช้คำที่คล้ายกันในสหราชอาณาจักร (เช่นในSchool of Informatics, University of Edinburgh ) (32)"อย่างไรก็ตาม ในสหรัฐอเมริกาสารสนเทศเชื่อมโยงกับการคำนวณแบบประยุกต์ หรือการคำนวณในบริบทของโดเมนอื่น" [33]

คำพูดของคติชนวิทยาซึ่งมักมีสาเหตุมาจาก—แต่แทบจะไม่แน่นอนเลย— Edsger Dijkstraกล่าวว่า "วิทยาการคอมพิวเตอร์ไม่ได้เกี่ยวกับคอมพิวเตอร์มากไปกว่าดาราศาสตร์เป็นเรื่องเกี่ยวกับกล้องโทรทรรศน์" [หมายเหตุ 3]การออกแบบและการใช้งานคอมพิวเตอร์และระบบคอมพิวเตอร์โดยทั่วไปถือเป็นสาขาของสาขาวิชาอื่นนอกเหนือจากวิทยาการคอมพิวเตอร์ ตัวอย่างเช่น การศึกษาฮาร์ดแวร์คอมพิวเตอร์มักจะถือเป็นส่วนหนึ่งของวิศวกรรมคอมพิวเตอร์ในขณะที่การศึกษาระบบคอมพิวเตอร์เชิงพาณิชย์และการใช้งานมักเรียกว่าเทคโนโลยีสารสนเทศหรือระบบสารสนเทศ. อย่างไรก็ตาม มีการปฏิสนธิข้ามแนวความคิดระหว่างสาขาวิชาต่างๆ ที่เกี่ยวข้องกับคอมพิวเตอร์เป็นจำนวนมาก การวิจัยด้านวิทยาศาสตร์คอมพิวเตอร์ก็มักจะปริภูมิสาขาวิชาอื่น ๆ เช่นปรัชญาวิทยาศาสตร์พุทธิปัญญา , ภาษาศาสตร์ , คณิตศาสตร์ , ฟิสิกส์ , ชีววิทยา , วิทยาศาสตร์โลก , สถิติและตรรกะ

วิทยาการคอมพิวเตอร์ได้รับการพิจารณาว่ามีความสัมพันธ์ใกล้ชิดกับคณิตศาสตร์มากกว่าสาขาวิชาวิทยาศาสตร์หลายสาขา โดยผู้สังเกตการณ์บางคนกล่าวว่าคอมพิวเตอร์เป็นศาสตร์ทางคณิตศาสตร์[20]วิทยาการคอมพิวเตอร์ในยุคแรกได้รับอิทธิพลอย่างมากจากงานของนักคณิตศาสตร์ เช่นKurt Gödel , Alan Turing , John von Neumann , Rózsa PéterและAlonzo Churchและยังคงมีการแลกเปลี่ยนความคิดที่เป็นประโยชน์ระหว่างสองสาขาในด้านต่างๆ เช่นคณิตศาสตร์ ตรรกะ , ทฤษฎีประเภท , ทฤษฎีโดเมนและพีชคณิต [23]

ความสัมพันธ์ระหว่างวิทยาการคอมพิวเตอร์และวิศวกรรมซอฟต์แวร์เป็นประเด็นที่ถกเถียงกัน ซึ่งทำให้เกิดข้อโต้แย้งมากขึ้นเกี่ยวกับความหมายของคำว่า "วิศวกรรมซอฟต์แวร์" และความหมายของวิทยาการคอมพิวเตอร์[34] David Parnasได้ศึกษาความสัมพันธ์ระหว่างสาขาวิศวกรรมศาสตร์และวิทยาศาสตร์อื่น ๆ โดยอ้างว่าจุดสนใจหลักของวิทยาการคอมพิวเตอร์คือการศึกษาคุณสมบัติของการคำนวณโดยทั่วไป ในขณะที่จุดสนใจหลักของวิศวกรรมซอฟต์แวร์คือการออกแบบการคำนวณเฉพาะ เพื่อให้บรรลุเป้าหมายในทางปฏิบัติ ทำให้ทั้งสองแยกกันแต่เป็นสาขาเสริม[35]

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

ปรัชญา

นักวิทยาศาสตร์คอมพิวเตอร์จำนวนหนึ่งได้โต้แย้งถึงความแตกต่างของกระบวนทัศน์ที่แยกจากกันสามประการในวิทยาการคอมพิวเตอร์Peter Wegnerแย้งว่ากระบวนทัศน์เหล่านั้นคือวิทยาศาสตร์ เทคโนโลยี และคณิตศาสตร์[36] คณะทำงานของPeter Denningแย้งว่าพวกเขาเป็นทฤษฎี นามธรรม (แบบจำลอง) และการออกแบบ[37]อัมโนน เอช. อีเดน อธิบายว่าเป็น "กระบวนทัศน์ที่มีเหตุผล" (ซึ่งถือว่าวิทยาการคอมพิวเตอร์เป็นสาขาหนึ่งของคณิตศาสตร์ ซึ่งแพร่หลายในวิทยาการคอมพิวเตอร์เชิงทฤษฎี และใช้เหตุผลแบบนิรนัยเป็นหลัก) "กระบวนทัศน์ทางเทคโนโลยี" (ซึ่งอาจพบได้ในแนวทางทางวิศวกรรม ที่เด่นที่สุดในวิศวกรรมซอฟต์แวร์) และ "กระบวนทัศน์ทางวิทยาศาสตร์" (ซึ่งเข้าถึงสิ่งประดิษฐ์ที่เกี่ยวข้องกับคอมพิวเตอร์จากมุมมองเชิงประจักษ์ของวิทยาศาสตร์ธรรมชาติระบุได้ในบางสาขาของเทียม ปัญญา ). [38] วิทยาการคอมพิวเตอร์มุ่งเน้นไปที่วิธีการที่เกี่ยวข้องกับการออกแบบ ข้อมูลจำเพาะ การเขียนโปรแกรม การทวนสอบ การนำไปใช้ และการทดสอบระบบคอมพิวเตอร์ที่มนุษย์สร้างขึ้น [39]

ฟิลด์

วิทยาการคอมพิวเตอร์ไม่ได้เกี่ยวกับคอมพิวเตอร์มากไปกว่าดาราศาสตร์เกี่ยวกับกล้องโทรทรรศน์

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

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

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

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

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

ที่มีชื่อเสียงP = NP? ปัญหาหนึ่งของรางวัลสหัสวรรษปัญหา , [43]เป็นปัญหาเปิดในทฤษฎีของการคำนวณ

DFAexample.svg ไวยากรณ์ tree.svg ความซับซ้อน class.svg
ทฤษฎีออโตมาตะ ภาษาทางการ ทฤษฎีการคำนวณ ทฤษฎีความซับซ้อนในการคำนวณ
Interaction Net เป็น Configuration.png Blochsphere.svg XNOR ANSI Labelled.svg Kellerautomat.svg
แบบจำลองการคำนวณ ทฤษฎีการคำนวณควอนตัม ทฤษฎีวงจรลอจิก เซลลูล่าร์ออโตมาตา

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

ทฤษฎีข้อมูลที่เกี่ยวข้องอย่างใกล้ชิดกับความน่าจะเป็นและสถิติเกี่ยวข้องกับการหาปริมาณข้อมูล สิ่งนี้ได้รับการพัฒนาโดยClaude Shannonเพื่อค้นหาขีดจำกัดพื้นฐานในการประมวลผลสัญญาณเช่น การบีบอัดข้อมูล และการจัดเก็บและสื่อสารข้อมูลที่เชื่อถือได้[44] ทฤษฎีการเข้ารหัสคือการศึกษาคุณสมบัติของรหัส (ระบบสำหรับการแปลงข้อมูลจากรูปแบบหนึ่งไปยังอีกรูปแบบหนึ่ง) และความเหมาะสมสำหรับแอปพลิเคชันเฉพาะ รหัสที่ใช้สำหรับการบีบอัดข้อมูล , การเข้ารหัส , การตรวจสอบข้อผิดพลาดและการแก้ไขและเมื่อเร็ว ๆ นี้ยังมีเครือข่ายการเข้ารหัส. มีการศึกษารหัสเพื่อจุดประสงค์ในการออกแบบวิธีการส่งข้อมูลที่มีประสิทธิภาพและเชื่อถือได้ [45]

Hamming.jpg ช่องสมมาตรไบนารี.svg Digitalteilchen.svg H0 h1 fehler.jpg Mandelpart2 red.png
ทฤษฎีการเข้ารหัส ความจุช่อง ทฤษฎีข้อมูลอัลกอริทึม ทฤษฎีการตรวจจับสัญญาณ ความซับซ้อนของ Kolmogorov

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

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

O ( n 2 ) กำลังจัดเรียง quicksort anim.gif ต้นไม้ (วิทยาการคอมพิวเตอร์).svg TSP Deutschland 3.png SimplexRangeSearching.svg จุดยอดหดตัว.jpg
การวิเคราะห์อัลกอริทึม การออกแบบอัลกอริทึม โครงสร้างข้อมูล การเพิ่มประสิทธิภาพแบบผสมผสาน เรขาคณิตเชิงคำนวณ อัลกอริทึมแบบสุ่ม

ทฤษฎีภาษาโปรแกรมและวิธีการที่เป็นทางการ

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

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

IF-THEN-ELSE-END ผังงาน.svg Compiler.svg Python add5 syntax.svg Prop-tableau-1.svg ภาพหน้าจอของ Coq plus comm.jpg
ความหมายที่เป็นทางการ ทฤษฎีประเภท การออกแบบคอมไพเลอร์ ภาษาโปรแกรม การตรวจสอบอย่างเป็นทางการ พิสูจน์ทฤษฎีบทอัตโนมัติ

ระบบคอมพิวเตอร์และกระบวนการคำนวณ

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

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

การเรนเดอร์สมองของมนุษย์ของ Nicolas P. Rougier.png ดวงตามนุษย์ เรนเดอร์จาก Eye.png เครือข่ายประสาทสี.svg Markov Decision Process.svg
ทฤษฎีการเรียนรู้ด้วยคอมพิวเตอร์ วิสัยทัศน์คอมพิวเตอร์ โครงข่ายประสาทเทียม การวางแผนและการจัดตารางเวลา
English.png อัศวินทัวร์.svg Ackley.gif AutonomicSystemModel.png
การประมวลผลภาษาธรรมชาติ ทฤษฎีเกมคอมพิวเตอร์ การคำนวณเชิงวิวัฒนาการ การคำนวณอัตโนมัติ
Neuron.svg KnnClassification.svg ROS C logo.jpg การจัดตำแหน่งกฎ.gif
การเป็นตัวแทนและการให้เหตุผล การจดจำรูปแบบ วิทยาการหุ่นยนต์ ฝูงปัญญา

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

สถาปัตยกรรมคอมพิวเตอร์หรือองค์กรคอมพิวเตอร์ดิจิทัลคือการออกแบบแนวความคิดและโครงสร้างการทำงานพื้นฐานของระบบคอมพิวเตอร์ โดยเน้นไปที่วิธีการที่หน่วยประมวลผลกลางดำเนินการภายในเป็นส่วนใหญ่และเข้าถึงที่อยู่ในหน่วยความจำ[47]วิศวกรคอมพิวเตอร์ศึกษาตรรกะการคำนวณและการออกแบบของฮาร์ดแวร์คอมพิวเตอร์จากแต่ละหน่วยประมวลผลชิ้นส่วนไมโครคอนโทรลเลอร์ , คอมพิวเตอร์ส่วนบุคคลไปยังซูเปอร์คอมพิวเตอร์และระบบฝังตัวคำว่า "สถาปัตยกรรม" ในวรรณคดีคอมพิวเตอร์สามารถสืบย้อนไปถึงผลงานของ Lyle R. Johnson และFrederick P. Brooks, Jr.สมาชิกของแผนก Machine Organisation ในศูนย์วิจัยหลักของ IBM ในปี 1959

ABasicComputer.gif Intel Core2 arch.svg SIMD.svg Z80 arch.svg
หน่วยประมวลผล ไมโครสถาปัตยกรรม มัลติโปรเซสเซอร์ การออกแบบโปรเซสเซอร์
Roomba original.jpg ผังงาน.png Kernel Layout.svg Uarm metal wiki2.jpg
คอมพิวเตอร์แพร่หลาย สถาปัตยกรรมระบบ ระบบปฏิบัติการ อินพุต/เอาต์พุต
การคำนวณทางกายภาพ.svg ตัวกรอง FIR General.svg Dep-1.svg Linker.svg
ระบบสมองกลฝังตัว การคำนวณตามเวลาจริง ความน่าเชื่อถือ ล่าม

การคำนวณพร้อมกัน ขนาน และกระจาย

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

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

สาขาวิทยาการคอมพิวเตอร์นี้มีจุดมุ่งหมายเพื่อจัดการเครือข่ายระหว่างคอมพิวเตอร์ทั่วโลก

ความปลอดภัยของคอมพิวเตอร์และการเข้ารหัส

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

ฐานข้อมูลและการขุดข้อมูล

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

คอมพิวเตอร์กราฟิกและการแสดงภาพ

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

Simx2=แปล OK.svg FWDvsINV Kinematics HighResTransp.png 5-cell.gif ฮัดบนแมว.jpg อัลกอริธึมการติดตามแสงที่มองเห็นได้.jpg Csg tree.png
คอมพิวเตอร์กราฟิก 2 มิติ คอมพิวเตอร์แอนิเมชั่น กำลังแสดงผล ความเป็นจริงผสม ความเป็นจริงเสมือน การสร้างแบบจำลองที่มั่นคง

การประมวลผลภาพและเสียง

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

DIT-FFT-butterfly.png รูปแบบไบเออร์บน sensor.svg การเปรียบเทียบคุณภาพ Opus ตาบอดสีที่เข้ากันได้.svg การเปรียบเทียบคุณภาพ jpg กับ saveforweb.jpg MeningiomaMRISegmentation.png Ætoms - Translation.svg
อัลกอริทึม FFT การประมวลผลภาพ การรู้จำเสียง การบีบอัดข้อมูล การคำนวณภาพทางการแพทย์ การสังเคราะห์เสียง

วิทยาการคอมพิวเตอร์ประยุกต์

วิทยาศาสตร์คอมพิวเตอร์ การเงิน และวิศวกรรมศาสตร์

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

Lorenz Attractor yb.svg Quark wiki.jpg Naphthalene-3D-balls.png 1u04-argonaute.png GalvesLocherbach - ความละเอียดต่ำ.gif Plutchik-wheel.svg เอ็กซ์เรย์ของมือ โดย BoneXpert software.jpg . ตรวจพบอายุกระดูกโดยอัตโนมัติ Elmer-pump-heatequation.png Bachlut1.png
การวิเคราะห์เชิงตัวเลข ฟิสิกส์เชิงคำนวณ เคมีคำนวณ ชีวสารสนเทศศาสตร์ ประสาทสารสนเทศ Psychoinformatics สารสนเทศทางการแพทย์ วิศวกรรมคอมพิวเตอร์ วิทยาการคอมพิวเตอร์

การคำนวณทางสังคมและปฏิสัมพันธ์ระหว่างมนุษย์กับคอมพิวเตอร์

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

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

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

การค้นพบ

นักปรัชญาแห่งการคำนวณBill Rapaportกล่าวถึงสามGreat Insights of Computer Science : [52]

ข้อมูลทั้งหมดเกี่ยวกับปัญหาที่คำนวณได้ใดๆ สามารถแสดงได้โดยใช้เพียง 0 และ 1 (หรือคู่ bistable อื่นใดที่สามารถพลิกกลับระหว่างสถานะที่แยกความแตกต่างได้ง่ายสองสถานะ เช่น "เปิด/ปิด", "เป็นแม่เหล็ก/ไม่มีแม่เหล็ก", "สูง -แรงดันไฟฟ้า/แรงดันต่ำ" เป็นต้น)
  • ข้อมูลเชิงลึกของAlan Turing : มีเพียงห้าการกระทำที่คอมพิวเตอร์ต้องทำเพื่อที่จะทำ "อะไรก็ได้"
ทุกอัลกอริธึมสามารถแสดงในภาษาสำหรับคอมพิวเตอร์ที่ประกอบด้วยคำสั่งพื้นฐานเพียงห้าคำสั่งเท่านั้น: [53]
  • เลื่อนไปทางซ้ายหนึ่งตำแหน่ง
  • เลื่อนไปทางขวาหนึ่งตำแหน่ง
  • อ่านสัญลักษณ์ที่ตำแหน่งปัจจุบัน
  • พิมพ์ 0 ที่ตำแหน่งปัจจุบัน;
  • พิมพ์ 1 ณ ตำแหน่งปัจจุบัน
  • ความเข้าใจของ Corrado BöhmและGiuseppe Jacopini : มีเพียงสามวิธีในการรวมการกระทำเหล่านี้ (เป็นการกระทำที่ซับซ้อนมากขึ้น) ที่จำเป็นเพื่อให้คอมพิวเตอร์ทำ "อะไรก็ได้" [54]
จำเป็นต้องมีกฎเพียงสามข้อในการรวมชุดคำสั่งพื้นฐานเป็นชุดที่ซับซ้อนมากขึ้น:
  • ลำดับ : ทำสิ่งนี้ก่อน แล้วจึงทำอย่างนั้น
  • การเลือก : หากเป็นเช่นนั้น ให้ทำอย่างนั้น มิฉะนั้น ให้ทำอย่างนั้น
  • การทำซ้ำ : ในขณะที่เป็นเช่นนั้น ให้ทำสิ่งนี้
โปรดทราบว่ากฎสามข้อของความเข้าใจอย่างลึกซึ้งของ Boehm และ Jacopini สามารถทำให้ง่ายขึ้นได้อีกด้วยการใช้goto (ซึ่งหมายความว่าเป็นพื้นฐานมากกว่าการเขียนโปรแกรมแบบมีโครงสร้าง )

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

ภาษาการเขียนโปรแกรมสามารถใช้เพื่อทำงานต่างๆ ให้สำเร็จได้ด้วยวิธีต่างๆ กระบวนทัศน์การเขียนโปรแกรมทั่วไป ได้แก่ :

  • การเขียนโปรแกรมเชิงฟังก์ชันรูปแบบของการสร้างโครงสร้างและองค์ประกอบของโปรแกรมคอมพิวเตอร์ที่ถือว่าการคำนวณเป็นการประเมินฟังก์ชันทางคณิตศาสตร์และหลีกเลี่ยงสถานะและข้อมูลที่ไม่แน่นอน เป็นกระบวนทัศน์การเขียนโปรแกรมที่เปิดเผย ซึ่งหมายความว่าการเขียนโปรแกรมทำด้วยนิพจน์หรือการประกาศแทนคำสั่ง [55]
  • Imperative programmingกระบวนทัศน์การเขียนโปรแกรมที่ใช้คำสั่งที่เปลี่ยนสถานะของโปรแกรม [56]ในลักษณะเดียวกับที่อารมณ์ความจำเป็นในภาษาธรรมชาติแสดงคำสั่ง โปรแกรมที่จำเป็นประกอบด้วยคำสั่งสำหรับคอมพิวเตอร์ที่จะดำเนินการ การเขียนโปรแกรมที่จำเป็นมุ่งเน้นไปที่การอธิบายวิธีการทำงานของโปรแกรม
  • การเขียนโปรแกรมเชิงวัตถุกระบวนทัศน์การเขียนโปรแกรมตามแนวคิดของ "วัตถุ" ซึ่งอาจมีข้อมูล ในรูปแบบของฟิลด์ มักเรียกว่าแอตทริบิวต์ และโค้ดในรูปแบบของโพรซีเดอร์ที่มักเรียกกันว่าเมธอด คุณสมบัติของออบเจ็กต์คือโพรซีเดอร์ของออบเจ็กต์สามารถเข้าถึงและมักจะแก้ไขฟิลด์ข้อมูลของออบเจกต์ที่เกี่ยวข้อง ดังนั้นโปรแกรมคอมพิวเตอร์เชิงวัตถุจึงถูกสร้างขึ้นจากวัตถุที่มีปฏิสัมพันธ์ซึ่งกันและกัน [57]
  • การเขียนโปรแกรมเชิงบริการ กระบวนทัศน์การเขียนโปรแกรมที่ใช้ "บริการ" เป็นหน่วยของงานคอมพิวเตอร์เพื่อออกแบบและใช้งานแอปพลิเคชันทางธุรกิจแบบบูรณาการและโปรแกรมซอฟต์แวร์ที่สำคัญต่อภารกิจ

หลายภาษาให้การสนับสนุนกระบวนทัศน์ที่หลากหลาย ทำให้ความแตกต่างเป็นเรื่องของสไตล์มากกว่าความสามารถทางเทคนิค [58]

สถาบันการศึกษา

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

การศึกษา

วิทยาศาสตร์คอมพิวเตอร์ที่รู้จักกันในคำพ้องความหมายใกล้ของคอมพิวเตอร์ , คอมพิวเตอร์ศึกษาได้รับการสอนในโรงเรียนสหราชอาณาจักรตั้งแต่วันที่ของการประมวลผลชุด , เครื่องหมายบัตรที่มีความสำคัญและเทปกระดาษแต่มักจะไปที่นักเรียนเลือกน้อย[62]ในปี 1981 บีบีซีผลิตไมโครคอมพิวเตอร์และห้องเรียนเครือข่ายและคอมพิวเตอร์ศึกษากลายเป็นเรื่องธรรมดาสำหรับ GCE ระดับ Oนักเรียน (11-16 ปี) และวิทยาศาสตร์คอมพิวเตอร์ในระดับนักเรียน ความสำคัญของมันได้รับการยอมรับและกลายเป็นส่วนบังคับของหลักสูตรแห่งชาติสำหรับ Key Stage 3 & 4 ในเดือนกันยายน 2014 มันกลายเป็นสิทธิ์สำหรับนักเรียนทุกคนที่อายุเกิน 4 [63]

ในสหรัฐอเมริกาโดยมีเขตการศึกษา 14,000 แห่งตัดสินใจเลือกหลักสูตร บทบัญญัติจึงแตกหัก [64]ตามรายงานประจำปี 2010 โดยAssociation for Computing Machinery (ACM) และComputer Science Teachers Association (CSTA) มีเพียง 14 รัฐจาก 50 รัฐเท่านั้นที่ได้ใช้มาตรฐานการศึกษาที่สำคัญสำหรับวิทยาการคอมพิวเตอร์ระดับมัธยมศึกษาตอนปลาย [65]

อิสราเอล นิวซีแลนด์ และเกาหลีใต้ได้รวมวิทยาการคอมพิวเตอร์ไว้ในหลักสูตรการศึกษาระดับมัธยมศึกษาแห่งชาติ[66] [67]และอีกหลายประเทศกำลังติดตาม [68]

ดูเพิ่มเติม

หมายเหตุ

  1. ^ ในปี ค.ศ. 1851
  2. ^ "การนำการ์ดเจาะเข้าไปในเอ็นจิ้นใหม่นั้นมีความสำคัญไม่เพียง แต่เป็นรูปแบบการควบคุมที่สะดวกกว่าดรัมเท่านั้นหรือเนื่องจากโปรแกรมสามารถมีขอบเขตได้ไม่ จำกัด และสามารถจัดเก็บและทำซ้ำได้โดยไม่มีอันตรายจากข้อผิดพลาดในการตั้งค่า เครื่องด้วยมือ มันเป็นสิ่งสำคัญเช่นกันเพราะมันทำหน้าที่ทำให้ความรู้สึกของ Babbage ตกผลึกว่าเขาได้คิดค้นสิ่งใหม่ ๆ จริงๆ เป็นมากกว่าเครื่องคำนวณที่ซับซ้อน" Bruce Collier , 1970
  3. ^ ดูรายการ "วิทยาการคอมพิวเตอร์ " ใน Wikiquote สำหรับประวัติของใบเสนอราคานี้
  4. ^ คำว่า "อะไรก็ได้" เขียนด้วยเครื่องหมายคำพูด เพราะมีบางสิ่งที่คอมพิวเตอร์ทำไม่ได้ ตัวอย่างหนึ่งคือ: เพื่อตอบคำถามว่าในที่สุดโปรแกรมคอมพิวเตอร์ที่กำหนดจะสิ้นสุดหรือทำงานตลอดไป (ปัญหาการหยุดชะงัก )

อ้างอิง

  1. ^ "วิทยาการคอมพิวเตอร์คืออะไร - วิทยาการคอมพิวเตอร์ The University of York" . www.cs.york.ac.uk ครับ สืบค้นเมื่อ11 มิถุนายน 2020 .
  2. ^ "WordNet ค้นหา-3.1" Wordnetweb.princeton.edu . ดึงข้อมูลเดือนพฤษภาคม 14, 2012
  3. ^ "นิยามของวิทยาการคอมพิวเตอร์ | Dictionary.com" . www.dictionary.com ครับ สืบค้นเมื่อ11 มิถุนายน 2020 .
  4. ^ ฮาเรล, เดวิด. (2014). อัลกอริธึวิญญาณของคอมพิวเตอร์ สปริงเกอร์ เบอร์ลิน. ISBN 978-3-642-44135-6. OCLC  876384882
  5. ^ "วิทยาการคอมพิวเตอร์: วินัย" (PDF) . ที่ 25 พฤษภาคม 2006 ที่จัดเก็บ(PDF)จากเดิมในวันที่ 25 พฤษภาคม 2006 สืบค้นเมื่อ4 มกราคม 2021 .
  6. ^ สำนักพิมพ์เอ็มไอที "อะไรที่ทำให้เป็นระบบอัตโนมัติได้? การศึกษาวิจัยด้านวิทยาการคอมพิวเตอร์และวิศวกรรม | The MIT Press" . mitpress.mit.edu .
  7. ^ "สถาบันชาร์ลส์แบบเบจ: ใครคือชาร์ลส์แบบเบจ?" . cbi.umn.edu . สืบค้นเมื่อ28 ธันวาคม 2559 .
  8. ^ "เอด้า เลิฟเลซ | Babbage Engine | พิพิธภัณฑ์ประวัติศาสตร์คอมพิวเตอร์" . www .คอมพิวเตอร์ประวัติศาสตร์. org สืบค้นเมื่อ28 ธันวาคม 2559 .
  9. ^ "วิลเฮล์ Schickard - Ein Computerpionier" (PDF) (เยอรมัน)
  10. ^ คีทส์, ฟิโอน่า (25 มิถุนายน 2555). "ประวัติโดยย่อของคอมพิวเตอร์" . ที่เก็บ . ราชสมาคม.
  11. ^ "พิพิธภัณฑ์วิทยาศาสตร์ Babbage's Analytical Engine, 1834-1871 (Trial model)" . สืบค้นเมื่อ11 พฤษภาคม 2020 .
  12. อรรถเป็น แอนโธนี ไฮแมน (1982) Charles Babbage ผู้บุกเบิกของคอมพิวเตอร์
  13. ^ "การเลือกและการปรับตัวจากบันทึกของเอด้าที่พบในเอดา แม่มดแห่งตัวเลข" โดย Betty Alexandra Toole Ed.D. Strawberry Press, Mill Valley, CA" . เก็บถาวรจากต้นฉบับเมื่อวันที่ 10 กุมภาพันธ์2549. สืบค้นเมื่อ4 พฤษภาคม 2549 .
  14. ^ "จอห์นกาเบรียลคอลเลกชันวิทยาศาสตร์คอมพิวเตอร์เบิร์น" (PDF) เก็บจากต้นฉบับเมื่อ 16 เมษายน 2019 . สืบค้นเมื่อ8 สิงหาคม 2019 .
  15. ^ "ในแง่นี้ Aiken ต้องการ IBM ซึ่งมีเทคโนโลยีรวมถึงการใช้บัตรเจาะรู การสะสมข้อมูลตัวเลข และการถ่ายโอนข้อมูลตัวเลขจากการลงทะเบียนหนึ่งไปยังอีกเครื่องหนึ่ง", Bernard Cohen , p.44 (2000)
  16. ^ ไบรอัน แรนเดลล์ , พี. 187, 1975
  17. The Association for Computing Machinery (ACM) ก่อตั้งขึ้นในปี 1947.
  18. ^ "คลังเก็บไอบีเอ็ม: 1945" . ไอบีเอ็ม.คอม สืบค้นเมื่อ19 มีนาคม 2019 .
  19. ^ "IBM100 – ต้นกำเนิดวิทยาการคอมพิวเตอร์" . ไอบีเอ็ม.คอม 15 กันยายน 2538 . สืบค้นเมื่อ19 มีนาคม 2019 .
  20. ^ a b c Denning, ปีเตอร์ เจ. (2000). "วิทยาการคอมพิวเตอร์ : วินัย" (PDF) . สารานุกรมวิทยาการคอมพิวเตอร์ . เก็บถาวรจากต้นฉบับ(PDF)เมื่อวันที่ 25 พฤษภาคม 2549
  21. ^ "สถิติ EDSAC บางส่วน" . มหาวิทยาลัยเคมบริดจ์. สืบค้นเมื่อ19 พฤศจิกายน 2554 .
  22. ^ "ผู้บุกเบิกวิทยาการคอมพิวเตอร์ ซามูเอล ดี. คอนเต เสียชีวิตในวัย 85" . เพอร์ดู วิทยาการคอมพิวเตอร์. 1 กรกฎาคม 2545 . สืบค้นเมื่อ12 ธันวาคม 2014 .
  23. ^ Tedre, Matti (2014) วิทยาศาสตร์ของ Computing: ก่อร่างสร้างความมีระเบียบวินัย เทย์เลอร์และฟรานซิส / CRC Press.
  24. อรรถเป็น หลุยส์ ไฟน์ (1959). "บทบาทของมหาวิทยาลัยในด้านคอมพิวเตอร์ การประมวลผลข้อมูล และสาขาที่เกี่ยวข้อง". การติดต่อสื่อสารของพลอากาศเอก 2 (9): 7–14. ดอย : 10.1145/368424.368427 . S2CID 6740821 .  
  25. ^ "ประวัติศาสตร์ปากเปล่าของมหาวิทยาลัยสแตนฟอร์ด" . มหาวิทยาลัยสแตนฟอร์ด. สืบค้นเมื่อ30 พฤษภาคม 2556 .
  26. ^ โดนัลด์ คนุธ (1972) "จอร์จ ฟอร์ไซธ์ กับการพัฒนาวิทยาการคอมพิวเตอร์" . การสื่อสาร อสม . เก็บถาวร 20 ตุลาคม 2013 ที่ Wayback Machine
  27. ^ มัตตี เทเดร (2006). "การพัฒนาวิทยาการคอมพิวเตอร์: การทางสังคมวัฒนธรรมมุมมอง" (PDF) NS. 260 . สืบค้นเมื่อ12 ธันวาคม 2014 .
  28. ^ ปีเตอร์ นาร์ (1966) "ศาสตร์แห่งข้อมูล". การติดต่อสื่อสารของพลอากาศเอก 9 (7): 485. ดอย : 10.1145/365719.366510 . S2CID 47558402 .  
  29. ^ ไวส์, อีเอ; Corley, Henry PT "จดหมายถึงบรรณาธิการ" การติดต่อสื่อสารของพลอากาศเอก 1 (4): 6. ดอย : 10.1145/368796.368802 . S2CID 5379449 . 
  30. ^ การสื่อสารของ ACM 2(1):p.4
  31. ^ คอมพิวเตอร์ IEEE 28(12): p.136
  32. ^ พี Mounier-Kuhn, L'Informatique en ฝรั่งเศสเดอลา seconde guerre Mondiale au แผน Calcul L'émergence d'une science , ปารีส, PUPS, 2010, ch. 3 และ 4
  33. ^ Groth, เดนนิสพี (กุมภาพันธ์ 2010) "ทำไมต้องปริญญาสารสนเทศ?" . การติดต่อสื่อสารของพลอากาศเอก Cacm.acm.org.
  34. ^ Tedre, M. (2011). "คอมพิวเตอร์เป็นวิทยาศาสตร์: การสำรวจความคิดเห็นที่แข่งขันกัน". จิตใจและเครื่องจักร . 21 (3): 361–387. ดอย : 10.1007/s11023-011-9240-4 . S2CID 14263916 . 
  35. ^ Parnas, DL (1998). "โปรแกรมวิศวกรรมซอฟต์แวร์ไม่ใช่โปรแกรมวิทยาศาสตร์คอมพิวเตอร์" พงศาวดารของวิศวกรรมซอฟต์แวร์ . 6 : 19–37. ดอย : 10.1023/A:1018949113292 . S2CID 35786237 . , NS. 19: "แทนที่จะถือว่าวิศวกรรมซอฟต์แวร์เป็นสาขาย่อยของวิทยาการคอมพิวเตอร์ ฉันถือว่ามันเป็นองค์ประกอบของชุด วิศวกรรมโยธา วิศวกรรมเครื่องกล วิศวกรรมเคมี วิศวกรรมไฟฟ้า […]"
  36. ^ Wegner, P. (13-15 ตุลาคม 1976) กระบวนทัศน์การวิจัยทางวิทยาการคอมพิวเตอร์—การดำเนินการของการประชุมนานาชาติด้านวิศวกรรมซอฟต์แวร์ครั้งที่ 2 ซานฟรานซิสโก แคลิฟอร์เนีย สหรัฐอเมริกา: IEEE Computer Society Press, Los Alamitos, CA
  37. ^ เดนนิ่ง พีเจ; Comer, เดลาแวร์; กรีส, ดี.; Mulder, เอ็มซี; ทักเกอร์, A.; เทิร์นเนอร์ เอเจ; ยัง, ประชาสัมพันธ์ (มกราคม 1989). "คอมพิวเตอร์เป็นวินัย". การติดต่อสื่อสารของพลอากาศเอก 32 : 9–23. ดอย : 10.1145/63238.63239 . S2CID 723103 . 
  38. ^ อีเดน AH (2007). "สามกระบวนทัศน์ของวิทยาการคอมพิวเตอร์" (PDF) . จิตใจและเครื่องจักร . 17 (2): 135–167. CiteSeerX 10.1.1.304.7763 . ดอย : 10.1007/s11023-007-9060-8 . S2CID 3023076 . เก็บถาวรจากต้นฉบับ(PDF)เมื่อ 15 กุมภาพันธ์ 2016   
  39. ^ เทิร์นเนอร์ เรย์มอนด์; แองจิอุส, นิโคลา (2019). "ปรัชญาวิทยาการคอมพิวเตอร์" . ใน Zalta, Edward N. (ed.) Stanford สารานุกรมปรัชญา
  40. ^ a b "วิทยาการคอมพิวเตอร์เป็นอาชีพ" . คณะกรรมการรับรองวิทยฐานะวิทยาการคอมพิวเตอร์. 28 พ.ค. 2540 เก็บถาวรจากต้นฉบับเมื่อ 17 มิถุนายน 2551 . สืบค้นเมื่อ23 พฤษภาคม 2010 .
  41. คณะกรรมการพื้นฐานของวิทยาการคอมพิวเตอร์: ความท้าทายและโอกาส, สภาวิจัยแห่งชาติ (2004). วิทยาการคอมพิวเตอร์: ภาพสะท้อนในสนามสะท้อนจากสนาม สำนักพิมพ์วิชาการแห่งชาติ. ISBN 978-0-309-09301-9.
  42. ^ "CSAB ผู้นำด้านการศึกษาคอมพิวเตอร์" . ซีเอสเอบี 3 สิงหาคม 2554 . สืบค้นเมื่อ19 พฤศจิกายน 2554 .
  43. ^ Clay Mathematics Institute P = NPเก็บถาวร 14 ตุลาคม 2013 ที่ Wayback Machine
  44. ^ พี. คอลลินส์ เกรแฮม (14 ตุลาคม 2545) "Claude E. Shannon: ผู้ก่อตั้งทฤษฎีสารสนเทศ" . นักวิทยาศาสตร์อเมริกัน. สืบค้นเมื่อ12 ธันวาคม 2014 .
  45. วาน-นัม ฮวีน; วลาดิก ไครโนวิช; ทรงศักดิ์ ศรีบุญจิตต์; 2555. การวิเคราะห์ความไม่แน่นอนทางเศรษฐมิติกับการประยุกต์ใช้. สื่อวิทยาศาสตร์และธุรกิจของสปริงเกอร์ NS. 63.ไอ978-3-642-35443-4 . 
  46. ^ Phillip A. Laplante, 2010. Encyclopedia of Software Engineering Three-Volume Set (พิมพ์). ซีอาร์ซี เพรส. NS. 309.ไอ978-1-351-24926-3 . 
  47. ^ เอ Thisted, โรนัลด์ (7 เมษายน 1997) "สถาปัตยกรรมคอมพิวเตอร์" (PDF) . มหาวิทยาลัยชิคาโก.
  48. ^ Jiakun Wang, 2017. ระบบสมองกลฝังตัวแบบเรียลไทม์ ไวลีย์. NS. 12. ISBN 978-1-119-42070-5 . 
  49. ^ Gordana Dodig-Crnkovic; Raffaela Giovagnoli; 2013. ลักษณะการคำนวณ: มุมมองครบรอบร้อยปีของทัวริง. สื่อวิทยาศาสตร์และธุรกิจของสปริงเกอร์ NS. 247.ไอ978-3-642-37225-4 . 
  50. ^ ไซมอนอีเลียส Bibri; ค.ศ. 2018 เมืองอัจฉริยะที่ยั่งยืนแห่งอนาคต: ศักยภาพที่ยังไม่ได้ใช้ของการวิเคราะห์บิ๊กดาต้าและการประมวลผลแบบ Context-Aware เพื่อการพัฒนาอย่างยั่งยืน สปริงเกอร์. NS. 74.ไอ978-3-319-73981-6 . 
  51. ^ Muhammad H. Rashid, 2016. SPICE สำหรับ Power Electronics และ Electric Power ซีอาร์ซี เพรส. NS. 6. ISBN 978-1-4398-6047-2 . 
  52. ^ Rapaport, William J. (20 กันยายน 2556). “การคำนวณคืออะไร” . มหาวิทยาลัยแห่งรัฐนิวยอร์กที่บัฟฟาโล
  53. ^ B. Jack Copeland, 2012. สมองอิเล็กทรอนิกส์ของ Alan Turing: การต่อสู้เพื่อสร้าง ACE คอมพิวเตอร์ที่เร็วที่สุดในโลก OUP อ็อกซ์ฟอร์ด NS. 107.ไอ978-0-19-960915-4 . 
  54. Charles W. Herbert, 2010. An Introduction to Programming using Alice 2.2. Cengage การเรียนรู้ NS. 122.ไอ0-538-47866-7 . 
  55. ^ Md. Rezaul Karim; ศรีดาร์อัลลา; 2017 Scala และ Spark สำหรับ Big Data Analytics: สำรวจแนวคิดของการเขียนโปรแกรมเชิงฟังก์ชัน การสตรีมข้อมูล และการเรียนรู้ของเครื่อง Packt Publishing Ltd. น. 87. ISBN 978-1-78355-050-0 . 
  56. ^ Lex Sheehan, 2017. Learning Functional Programming in Go: เปลี่ยนวิธีที่คุณเข้าถึงแอปพลิเคชันของคุณโดยใช้การเขียนโปรแกรมเชิงฟังก์ชันใน Go Packt Publishing Ltd. น. 16. ISBN 978-1-78728-604-7 . 
  57. ^ Evelio Padilla, 2015. ระบบอัตโนมัติของสถานีย่อย: การออกแบบและการใช้งาน ไวลีย์. NS. 245.ไอ978-1-118-98730-8 . 
  58. ^ "ภาษาการเขียนโปรแกรมหลายกระบวนทัศน์" . developer.mozilla.orgครับ มูลนิธิ Mozilla เก็บจากต้นฉบับเมื่อ 21 สิงหาคม 2013
  59. เมเยอร์, ​​เบอร์ทรานด์ (เมษายน 2552). "มุมมอง: การประเมินผลงานวิจัยด้านวิทยาการคอมพิวเตอร์". การติดต่อสื่อสารของพลอากาศเอก 25 (4): 31–34. ดอย : 10.1145/1498765.1498780 . S2CID 8625066 . 
  60. แพตเตอร์สัน, เดวิด (สิงหาคม 2542). "การประเมินนักวิทยาศาสตร์คอมพิวเตอร์และวิศวกรเพื่อส่งเสริมและดำรงตำแหน่ง" . สมาคมวิจัยคอมพิวเตอร์.
  61. ^ Fortnow แลนซ์ (สิงหาคม 2009) "มุมมอง: ถึงเวลาที่วิทยาการคอมพิวเตอร์จะเติบโต" . การติดต่อสื่อสารของพลอากาศเอก 52 (8): 33–35. ดอย : 10.1145/1536616.1536631 .
  62. เบิร์นส์, จูดิธ (3 เมษายน 2559). "วิทยาการคอมพิวเตอร์ สไตล์ A-level 1970s" . สืบค้นเมื่อ9 กุมภาพันธ์ 2019 .
  63. โจนส์, ไมเคิล (ตุลาคม 2458) "การพัฒนาหลักสูตรวิทยาการคอมพิวเตอร์ในอังกฤษ: การสำรวจแนวทางในสหรัฐอเมริกา" (PDF) . Winston Churchill อนุสรณ์ไว้ใจ สืบค้นเมื่อ9 กุมภาพันธ์ 2019 .
  64. ^ "วิทยาการคอมพิวเตอร์: ไม่ใช่แค่วิชาเลือกอีกต่อไป" . สัปดาห์การศึกษา . 25 กุมภาพันธ์ 2557
  65. วิลสัน คาเมรอน; ซูดอล, ลีห์ แอนน์; สตีเฟนสัน, คริส; สเตลิค, มาร์ค (2010). "วิ่งบนที่ว่างเปล่า: ความล้มเหลวในการสอน K-12 วิทยาการคอมพิวเตอร์ในยุคดิจิตอล" (PDF) อสม.
  66. ^ "เป็นอัลกอริทึมสำหรับ" นักเศรษฐศาสตร์ . 26 เมษายน 2557
  67. ^ "การเปรียบเทียบคอมพิวเตอร์ที่โรงเรียนนานาชาติ" (PDF) . สืบค้นเมื่อ20 กรกฎาคม 2558 .
  68. ^ "การเพิ่มการเข้ารหัสในหลักสูตร" . เดอะนิวยอร์กไทม์ส . 23 มีนาคม 2557

อ่านเพิ่มเติม

ภาพรวม

  • ทักเกอร์, อัลเลน บี. (2004). คู่มือวิทยาการคอมพิวเตอร์ (ฉบับที่ 2) แชปแมนและฮอลล์/CRC ISBN 978-1-58488-360-9.
    • "ภายในกว่า 70 บท ทุกตอนใหม่หรือแก้ไขอย่างมีนัยสำคัญ เราสามารถหาข้อมูลและอ้างอิงเกี่ยวกับวิทยาการคอมพิวเตอร์ชนิดใดก็ได้เท่าที่จะจินตนาการได้ […] โดยรวมแล้ว ไม่มีอะไรแน่นอนเกี่ยวกับวิทยาการคอมพิวเตอร์ที่ไม่สามารถพบได้ใน สารานุกรม 2.5 กิโลกรัม พร้อมบทความสำรวจ 110 บทความ […]” (คริสตอฟ ไมเนล, Zentrablatt MATH )
  • ฟาน ลีเวน, ม.ค. (1994). คู่มือวิทยาการคอมพิวเตอร์เชิงทฤษฎี . สำนักพิมพ์เอ็มไอที ISBN 978-0-262-72020-5.
    • "[…] ชุดนี้มีเอกลักษณ์มากที่สุดและอาจเป็นประโยชน์มากที่สุดสำหรับชุมชน [วิทยาการคอมพิวเตอร์เชิงทฤษฎี] เพื่อสนับสนุนทั้งการสอนและการวิจัย […] หนังสือสามารถใช้โดยทุกคนที่ต้องการเพียงเพื่อให้ได้มาซึ่งความเข้าใจ ของพื้นที่เหล่านี้ หรือโดยบุคคลที่ปรารถนาจะค้นคว้าในหัวข้อใดหัวข้อหนึ่ง หรือโดยอาจารย์ที่ต้องการค้นหาข้อมูลในเวลาที่เหมาะสมในเรื่องที่พวกเขากำลังสอนนอกขอบเขตความเชี่ยวชาญหลักของตน" (ร็อคกี้ รอสส์ข่าว SIGACT )
  • รัลสตัน, แอนโธนี่ ; ไรลีย์, เอ็ดวิน ดี. ; เฮมเมนดิงเกอร์, เดวิด (2000). สารานุกรมวิทยาการคอมพิวเตอร์ (ฉบับที่ 4). พจนานุกรมของโกรฟ ISBN 978-1-56159-248-7.
    • “ตั้งแต่ปี 1976 งานนี้เป็นงานอ้างอิงขั้นสุดท้ายเกี่ยวกับคอมพิวเตอร์ คอมพิวเตอร์ และวิทยาการคอมพิวเตอร์ […] จัดเรียงตามตัวอักษรและจำแนกเป็นสาขาวิชากว้างๆ รายการครอบคลุมฮาร์ดแวร์ ระบบคอมพิวเตอร์ ข้อมูลและสารสนเทศ ซอฟต์แวร์ คณิตศาสตร์ของการคำนวณ ทฤษฎีการคำนวณ วิธีการ การประยุกต์ใช้งาน และสภาพแวดล้อมในการคำนวณ บรรณาธิการได้ทำงานที่น่ายกย่องในการผสมผสานมุมมองทางประวัติศาสตร์และข้อมูลอ้างอิงเชิงปฏิบัติ สารานุกรมยังคงมีความจำเป็นสำหรับคอลเลกชันอ้างอิงห้องสมุดสาธารณะและวิชาการส่วนใหญ่" (โจ แอคคาร์ดิน มหาวิทยาลัยอิลลินอยส์ตะวันออกเฉียงเหนือ ชิคาโก)
  • เอ็ดวิน ดี. ไรลีย์ (2003) เหตุการณ์สำคัญในวิทยาการคอมพิวเตอร์และเทคโนโลยีสารสนเทศ . กลุ่มสำนักพิมพ์กรีนวูด ISBN 978-1-57356-521-9.

วรรณกรรมที่เลือก

บทความ

หลักสูตรและการจัดหมวดหมู่

ลิงค์ภายนอก

บรรณานุกรมและเครื่องมือค้นหาทางวิชาการ

องค์กรวิชาชีพ

อื่นๆ