Khoa học máy tính Bởi Wiki Pedia Định nghĩa Khoa học máy tính (tiếng Anh computer science hay computing science) là ngành nghiên cứu các cơ sở lý thuyết về thông tin và tính toán cùng sự thực hiện và[.]
Khoa học máy tính Khoa học máy tính Bởi: Wiki Pedia Định nghĩa Khoa học máy tính (tiếng Anh: computer science hay computing science) ngành nghiên cứu sở lý thuyết thơng tin tính tốn thực ứng dụng chúng hệ thống máy tính Khoa học máy tính có nhiều chi nhánh; số chi nhánh nhấn mạnh vào việc tính tốn kết cụ thể (chẳng hạn đồ họa máy tính), chi nhánh khác lại liên hệ đến tính chất vấn đề giải dùng phương pháp máy tính, (ví dụ Lý thuyết độ phức tạp tính tốn) Cịn lại chi nhánh khác tập trung vào khó khăn việc thực thi phương pháp dùng để tính tốn, lấy ví dụ, ngành Lý thuyết ngơn ngữ lập trình chẳng hạn Đây chi nhánh nghiên cứu phương thức khác tiếp cận việc mô tả cách tính tốn, ngành Lập trình ứng dụng Ngơn ngữ lập trình cụ thể để giải toán Lịch sử Lịch sử khoa học máy tính nhiều năm trước phát minh máy tính đại Các máy móc dành cho việc tính tốn tốn số học cố định tồn từ thời cổ đại, chẳng hạn máy abacus (bàn tính) Wilhelm Schickard xây dựng máy tính học năm 1632.[1] Charles Babbage thiết kế máy tính theo hiệu (difference engine) vào thời Victoria[2], vào khoảng năm 1900, tập đoàn IBM bán máy tính dùng thẻ đục lỗ.[3] Tuy nhiên, tất máy thực nhiệm vụ đơn, tập nhỏ nhiệm vụ Trước năm 1920, cơng việc tính tốn thực chủ yếu nhân viên chuyên nghiệp Những nhà nghiên cứu ngành mà sau gọi khoa học máy tính, chẳng hạn Kurt Gưdel, Alonzo Church Alan Turing, quan tâm đến câu hỏi khả tính tốn: tính tốn người thủ quỹ người đơn giản dùng giấy bút chì để làm danh sách bước tính tốn, xong việc mà khơng cần đến trí thơng minh hay hiểu biết? Một phần động ước muốn phát triển máy tính có khả tự động hóa cơng việc tính tốn thường buồn tẻ dễ sai người tính tốn Vấn đề then chốt xây dựng hệ thống tính tốn phổ dụng có khả (về lý thuyết) thực nhiệm 1/10 Khoa học máy tính vụ tính tốn cần đến, nhờ tổng quát hóa tất máy tính chuyên biệt trước thành khái niệm đơn máy tính phổ dụng Trong năm 1940, máy tính mạnh phát triển, người ta thấy rõ ràng máy tính sử dụng cho nhiều mục đích khác ngồi tính tốn tốn học, lĩnh vực khoa học máy tính mở rộng thành ngành nghiên cứu tính tốn nói chung Từ thập kỷ 1960, khoa học máy tính bắt đầu thiết lập ngành học riêng biệt, với đời khoa Khoa học máy tính chương trình đào tạo đại học chuyên ngành Khoa học máy tính.[4] Từ máy tính sử dụng thực tiễn, nhiều ứng dụng tính toán trở thành lĩnh vực nghiên cứu riêng biệt Những thành tựu đáng kể Quân đội Đức Quốc Xã sử dụng máy Enigma Đệ nhị chiến để truyền tin bí mật Máy phá mã tầm cỡ Công Viên Bletchley, xây dựng để phá mã máy Enigma, đóng góp vai trị quan trọng chiến thắng quân đồng minh chiến tranh giới lần thứ Hai .[5] Tuy trở thành mơn giáo dục thức với quãng thời gian lịch sử ngắn ngủi, khoa học máy tính có số cống hiến quan trọng khoa học xã hội Những cống hiến bao gồm: Ứng dụng ngành khoa học máy tính * Đã định nghĩa cách thức tính tốn (computation) khả tính tốn (computability), đồng thời đưa chứng có vấn đề bất khả tính tốn (computationally unsolvable) đề khó tính tốn (intractable) * Đã đưa khái niệm ngơn ngữ lập trình, dụng cụ dùng để biểu đạt thông tin trật tự hóa cách xác nhiều tầng lớp trừu tượng khác Ứng dụng bên * Làm mồi lửa cho cách mạng kỹ thuật số (Digital Revolution) dẫn đến thời đại thông tin (Information Age) internet * Trong mật mã học (cryptography), phá mã máy Enigma đóng góp quan trọng chiến thắng quân Đồng minh Đại Chiến Thế Giới lần thứ II * Tính toán khoa học (Scientific computing) cho phép việc nghiên cứu não người, đồ thị hóa cấu hình GEN (mapping the human genome) Đề án tổ hợp 2/10 Khoa học máy tính gen (Human Genome Project) mức độ un thâm.[8]Những đề án tính tốn phân tán Folding@home khám phá trình gấp cuộn chất đạm (protein folding) Các lĩnh vực khoa học máy tính Cơ sở tốn học Lơgic tốn (Mathematical logic) Lơgic Bool phương pháp tương ứng dùng để mô hình hóa truy vấn lơgic; Sự sử dụng phương pháp chứng minh hình thức (formal proof) hạn chế chúng Lý thuyết số (Number theory) Lý thuyết chứng minh khảo nghiệm việc lùng tìm chứng minh giới hạn số nguyên Lý thuyết số sử dụng mật mã học đồng thời dùng phương thức kiểm thử trí tuệ nhân tạo Lý thuyết đồ thị (Graph theory) Cơ sở cho cấu trúc liệu thuật tốn tìm kiếm Lý thuyết kiểu (Type Theory) Phân tích quy kiểu liệu, sử dụng kiểu liệu nhằm giảng giải tính chất chương trình phần mềm - đặc biệt tính an tồn chương trình Lý thuyết phạm trù (Category theory) Lý thuyết phân loại cho phép tổng quát phương pháp toán học phương thức tính tốn thành ước thể Hình học tính toán (Computational geometry) Chuyên tâm vào việc nghiên cứu thuật toán nhằm giải đề đề bạt phương diện hình học Giải tích số (Numerical analysis) Nền tảng thuật toán toán học rời rạc, đồng thời dùng để nghiên cứu giới hạn tính tốn dùng số thập phân (1.0E-3), bao gồm sai số xảy phương pháp làm tròn số (round-off errors) 3/10 Khoa học máy tính Lý thuyết tính tốn Lý thuyết Ơtơmat (Automata theory) Các cấu trúc lơgic khác sử dụng để giải toán Lý thuyết khả tính tốn (Computability theory) Những tính tốn mơ hình máy tính Các chứng minh Alan Turing người khác bày tỏ cho biết khả tính tốn khơng thể Lý thuyết độ phức tạp tính tốn (Computational complexity theory) Các giới hạn (cụ thể thời gian dung lượng nhớ đòi hỏi) hạng loại tốn khác Lý thuyết tính tốn lượng tử (Quantum computing) Phương thức biểu chuyển hóa liệu sử dụng đặc tính vật chất chế lượng tử Cấu trúc liệu giải thuật Phân tích thuật tốn (Analysis of algorithms) Độ phức tạp thời gian không gian thuật tốn Thuật tốn (Algorithms) Các q trình lơgic ngun tắc sử dụng cho việc tính tốn tính hiệu q trình Cấu trúc liệu (Data structures) Tổ chức liệu quy tắc thao tác liệu Ngôn ngữ lập trình trình biên dịch Trình biên dịch (Compilers) Những phương thức khác dùng để dịch chương trình máy tính, thường từ ngơn ngữ lập trình bậc cao sang ngơn ngữ lập trình bậc thấp 4/10 Khoa học máy tính Trình thơng dịch (Interpreter) Một chương trình sử dụng để biên dịch thi hành trực tiếp chương trình phần mềm khác dùng máy tính mà khơng phải thơng qua q trình biên dịch Ngơn ngữ lập trình (Programming languages) Các khn mẫu ngơn ngữ hình thức hóa dùng để biểu diễn thuật tốn Những ngơn ngữ cịn đồng thời biểu đặc tính khơng giống ngơn ngữ khác (ví dụ, chúng thích hợp cho việc giải tốn thuộc dạng nào) Hệ thống phân tán, song song, tương tranh Tương tranh (Concurrency) Lý thuyết thực tiễn tính tốn đồng thời; an tồn liệu mơi trường đa nhiệm hay đa luồng Tính tốn phân tán (Distributed computing) Tính tốn sử dụng nhiều thiết bị tính toán mạng để thực nhiệm vụ mục tiêu chung Tính tốn song song (Parallel computing) Tính tốn sử dụng nhiều luồng thực thi đồng thời Kỹ nghệ phần mềm Thiết kế thuật toán (Algorithm design) Lấy ý tưởng từ lý thuyết thuật toán để động kiến tạo giải pháp nhiệm vụ thực tế Lập trình máy tính (Computer programming) Dùng ngơn ngữ lập trình để thực thi thuật tốn Các phương pháp hình thức (Formal methods) Sử dụng toán học để miêu tả lập luận thiết kế phần mềm 5/10 Khoa học máy tính Kỹ nghệ đảo ngược (Reverse engineering) Ứng dụng phương pháp khoa học vào việc phân tích lý giải phần mềm tùy thích vốn có Kỹ nghệ phần mềm (Software development) Những nguyên lý thực hành việc thiết kế, phát triển kiểm thử chương trình, phương pháp thực hành kỹ nghệ đắn Kiến trúc máy tính Kiến trúc máy tính (Computer architecture) Việc thiết kế, tổ chức, tối ưu hóa kiểm định hệ thống máy tính, chủ yếu CPU tiểu hệ nhớ máy tính (và hệ thống bus nối chúng) Tổ chức máy tính (Computer organization) Nghiên cứu kiến trúc máy tính sở mô tả mạch điện, xử lý trung tâm, bọ xử lý tín hiệu số máy tính Hệ điều hành Những hệ thống dùng để quản lý chương trình máy tính cung cấp tảng cho hệ thống khả dụng Truyền thông Xử lý âm máy tính (Computer audio) Những thuật toán cấu trúc liệu dùng để kiến tạo, thao tác, lưu trữ, truyền ghi âm kỹ thuật số (digital audio) Ngành cịn đóng vai trị quan trọng ứng dụng nhận dạng tiếng nói (speech recognition) Mạng máy tính (Computer networking) Các thuật tốn giao thức dành cho việc truyền thông liệu cách đáng tin cậy qua môi trường truyền thông chuyên dụng chia sẻ khác Thường bao gồm việc sửa lỗi(error correction) truyền thông 6/10 Khoa học máy tính Mật mã học (Cryptography) Áp dụng kết lý thuyết độ phức tạp tính tốn, lý thuyết xác suất, lý thuyết số để kiến tạo phá mật mã Cơ sở liệu Khai phá liệu (Data mining) Nghiên cứu phương pháp sàng lọc, rút thông tin cần thiết từ nguồn liệu khác Cơ sở liệu quan hệ (Relational databases) Nghiên cứu thuật tốn tìm kiếm xử lý thông tin tài liệu sở liệu; có quan hệ gần gũi với ngành thu thập thơng tin (information retrieval) Trí tuệ nhân tạo Trí tuệ nhân tạo (Artificial intelligence) Sự nghiên cứu thực thi hệ thống có khả tự thể trí thơng minh tự biểu đạt hành vi thân Sự sống nhân tạo (Artificial life) Sự nghiên cứu sinh thể kỹ thuật số (digital organisms) để hiểu biết thêm hệ thống sinh học (biological systems) q trình tiến hóa Lập luận tự động (Automated reasoning) Nghiên cứu động giải toán, chẳng hạn sử dụng Prolog, động tạo bước dẫn đến kết cho trước truy vấn kiện sở liệu gồm luật (rule database) Thị giác máy tính (Computer vision) Các thuật tốn nhận dạng đối tượng ba chiều từ nhiều hình ảnh hai chiều Học máy (Machine learning) Nghiên cứu việc tự động tạo nhóm luật tiên đề dựa liệu cho trước 7/10 Khoa học máy tính Xử lý ngơn ngữ tự nhiên/Ngơn ngữ học Tính tốn (Natural language processing/ Computational linguistics) Tự động hóa việc tiếp thu kiến tạo ngơn ngữ lồi người Rơbơ học (Robotics) Các thuật tốn điều khiển hành vi rơbơ Tính toán mềm Một thuật ngữ tổng hợp dành cho kỹ thuật sử dụng để giải toán cụ thể, xem Đồ họa máy tính Đồ họa máy tính (Computer graphics) Những thuật tốn sử dụng hai trường hợp, kiến tạo hình ảnh cách nhân tạo mà người thường xem mắt, đồng thời kết hợp thay đổi liệu không gian thị giác thu từ mơi trường sống bên ngồi Xử lý ảnh (Image processing) Dùng tính tốn để lấy thơng tin từ hình ảnh Tương tác người-máy Tương tác người-máy (Human computer interaction) Nghiên cứu phương pháp làm cho máy tính tính tốn chúng trở nên hữu dụng, tiếp cận sử dụng giới người dùng, bao gồm việc nghiên cứu thiết kế giao diện người dùng Tính toán khoa học Tin sinh học (Bioinformatics) Sử dụng khoa học máy tính để bảo trì, phân tích, lưu trữ liệu sinh học (biological data) để hỗ trợ việc giải toán sinh học chẳng hạn trình gấp cuộn chất đạm (protein folding), dự đoán chức cấu trúc chất đạm (function prediction), phát sinh chủng loại (phylogeny) 8/10 Khoa học máy tính Khoa học nhận thức (Cognitive Science) Sử dụng kỹ thuật máy tính để kiến tạo mơ hình trí tuệ người Hóa học tính tốn (Computational chemistry) Mơ hình hóa tổ chức chất hóa học lý thuyết tính tốn, hịng xác định cấu trúc đặc tính chúng Thần kinh học tính tốn (Computational neuroscience) Mơ hình hóa não người tính tốn Vật lý tính tốn (Computational physics) Sử dụng số học để mô hệ thống lớn bất khả phân tích (large non-analytic systems) Phân tích số (Numerical analysis) (Numerical algorithms) Dùng thuật toán để giải đề toán toán học, chẳng hạn thuật tốn tìm ẩn số hàm (Root-finding algorithm), integration, the solution of ordinary differential equations and the approximation/evaluation of special functions Tốn học kí hiệu Manipulation and solution of expressions in symbolic form, also known as Đại số máy tính Đào tạo khoa học máy tính Một số trường đại học đào tạo khoa học máy tính ngành nghiên cứu lý thuyết tính tốn lập luận thuật tốn Các chương trình đào tạo thường bao gồm mơn lý thuyết tính tốn, phân tích thuật tốn, phương pháp hình thức, lý thuyết tương tranh, sở liệu, đồ họa máy tính phân tích hệ thống mơn khác Các chương trình thường dạy lập trình, coi phương tiện để hỗ trợ lĩnh vực khác khoa học máy tính trọng tâm nghiên cứu mức độ cao Các trường cao đẳng đại học khác, trường trung học chương trình dạy nghề có giảng dạy khoa học máy tính, lại nhấn mạnh thực hành lập trình cao cấp thay lý thuyết thuật tốn tính tốn chương trình giáo dục họ Những chương trình thường có xu hướng tập trung vào kỹ quan trọng cho người làm ngành công nghiệp phần mềm Phương diện thực 9/10 Khoa học máy tính hành việc lập trình thường gọi kỹ nghệ phần mềm Tuy nhiên, có nhiều bất đồng xung quanh ý nghĩa thật từ "kỹ nghệ phần mềm" (software engineering) việc với lập trình (programming) có phải hay không 10/10 ... đầu thiết lập ngành học riêng biệt, với đời khoa Khoa học máy tính chương trình đào tạo đại học chuyên ngành Khoa học máy tính. [4] Từ máy tính sử dụng thực tiễn, nhiều ứng dụng tính tốn trở thành... rõ ràng máy tính sử dụng cho nhiều mục đích khác ngồi tính tốn tốn học, lĩnh vực khoa học máy tính mở rộng thành ngành nghiên cứu tính tốn nói chung Từ thập kỷ 1960, khoa học máy tính bắt đầu.. .Khoa học máy tính vụ tính tốn cần đến, nhờ tổng quát hóa tất máy tính chuyên biệt trước thành khái niệm đơn máy tính phổ dụng Trong năm 1940, máy tính mạnh phát triển, người ta thấy rõ ràng máy