1. Trang chủ
  2. » Tất cả

Giáo trình môn khoa học máy tính

227 580 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 227
Dung lượng 1,51 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Trang 2 Mục Tiêu Mơn Học • Môn học này trình bày các nguyên lý tính toán về mặt lý thuyết và thực tiễn: những cơ sở lý thuyết thông tin và tính tốn, lý thuyết ngơn ngữ, phân tích giải th

Trang 1

Lý thuyết: 60 tiết Thực hành: 0 tiết

CÁC VẤN ĐỀ CƠ SỞ CỦA KHOA HỌC MÁY TÍNH

ĐẠI HỌC MỞ TP.HCM

KHOA CÔNG NGHỆ THÔNG TIN

Trang 2

dữ liệu, …

Sau khi học xong môn này, sinh viên đạt được những kiến thức cơ bản về giải thuật, phần cứng, phần mềm, ngôn ngữ lập trình,

kỹ thuật lập trình, mạng máy tính, cơ sở dữ liệu, Internet và nâng cao kỹ năng lập trình thông qua các bài tập

2

Các Vấn Đề Cơ Sở của KHMT ThS GVC Tô Oai Hùng

Trang 3

Tài Liệu

Tài liệu chính:

- Carl Raynolds, Paul Tymann, Principles of Computer Science, Mc Graw-Hill, 2008

Tài liệu tham khảo:

- J Glenn Bookshear, Computer Science –

An overview, 11th edition, Pearson-Addison

Wesley, 2012

3

Các Vấn Đề Cơ Sở của KHMT ThS GVC Tô Oai Hùng

Trang 4

Phương Pháp Đánh Giá

Thi lý thuyết giữa kỳ: 30%

Thi lý thuyết cuối kỳ: 70%

4

Các Vấn Đề Cơ Sở của KHMT ThS GVC Tô Oai Hùng

Trang 5

Ch ương 1:

GIỚI THIỆU VỀ KHOA HỌC MÁY TÍNH

Trang 6

9 Công nghệ cơ sở dữ liệu

10 Internet, World Wide Web

6

Các Vấn Đề Cơ Sở của KHMT ThS GVC Tô Oai Hùng

Trang 7

Khoa Học Máy Tính Là Gì?

Khoa học máy tính là gì? Khoa học máy tính

(computer science) được định nghĩa theo nhiều cách khác nhau Sau đây là vài định nghĩa:

“Khoa học máy tính là tập của các phương thức có liên quan đến tính toán, gồm cả lý thuyết và thực tiễn: lý thuyết về thông tin và tính toán, lý thuyết ngôn ngữ, phân tích giải thuật, sự thực thi của các hệ thống tính toán,

đồ hoạ máy tính, cơ sở dữ liệu, truyền thông, …”

“Sự nghiên cứu về máy tính và xử lý giải

thuật, bao gồm những nguyên lý, thiết kế

7

Các Vấn Đề Cơ Sở của KHMT ThS GVC Tô Oai Hùng

Trang 8

Khoa Học Máy Tính Là Gì?

Phần cứng và phần mềm, ứng dụng và ảnh hưởng của nó đối với xã hội”

và giải quyết vấn đề thực tiễn

8

Các Vấn Đề Cơ Sở của KHMT ThS GVC Tô Oai Hùng

Trang 9

Giải Thuật

Giải thuật là gì? Giải thuật (algorithm) định

nghĩa chi tiết và rõ ràng một chuỗi các hành động nối tiếp nhau để giải quyết một vấn đề

cụ thể hoặc thực thi một tác vụ nào đó

Cho ví dụ, cần xác định ước số chung lớn

nhất (greatest common divisor – GCD) của 2

số nguyên

Theo định nghĩa, thì GCD của 2 số nguyên dương là số nguyên lớn nhất mà nó là ước

số của cả 2 số đó Ví dụ: GCD(42, 30) = 6 Chúng ta có thể sử dụng giải thuật sau để tìm GCD của 2 số nguyên a và b:

- Nếu b = 0 thì GCD(a, b) = a

9

Các Vấn Đề Cơ Sở của KHMT ThS GVC Tô Oai Hùng

Trang 10

Giải Thuật

- Gán r là phần dư của a và b

- Lặp lại các bước trên và dùng b và r

Giải thuật là nền tảng để máy tính xử lý

thông tin Bởi vì chương trình máy tính thể hiện giải thuật và ra lệnh cho máy tính thực hiện các bước cụ thể được chỉ định trong

giải thuật

Giải thuật được biểu diễn bằng lưu đồ hay

mã giả để chúng ta có thể dễ dàng đọc Trong ví dụ trên, giải thuật được thể hiện bằng mã giả

Để thực hiện các bước của giải thuật bằng

máy tính, chúng ta cũng cần hiểu về thuật ngữ “phần cứng”

10

Các Vấn Đề Cơ Sở của KHMT ThS GVC Tô Oai Hùng

Trang 11

Phần Cứng

Bản chất của giải thuật là cách mà máy tính

xử lý thông tin, bởi vì thực chất thì chương trình máy tính là một hình thái khác của giải thuật Nó báo cho máy tính biết các bước cụ thể để thực thi tác vụ được chỉ định trong giải thuật Để nguyên cứu về giải thuật, nhà khoa học máy tính cũng phải hiểu về máy tính vì nó là công cụ được sử dụng để thực hiện giải thuật

Thuật ngữ phần cứng (hardware) dùng để

mô tả những thành phần vật lý, hữu hình của máy tính Bàn phím, chuột, bo mạch chủ, card đồ hoạ, bộ vi xử lý là tất cả những ví dụ

11

Các Vấn Đề Cơ Sở của KHMT ThS GVC Tô Oai Hùng

Trang 12

Phần Cứng

về phần cứng máy tính

Cũng cần lưu ý rằng, một giải thuật thì được

cho là tốt đối với một nền phần cứng nào đó

và có thể sẽ là không đối với nền phần cứng khác

12

Các Vấn Đề Cơ Sở của KHMT ThS GVC Tô Oai Hùng

Trang 13

Chương Trình - Ngôn Ngữ Máy

Con người có thể dễ dàng đọc và hiểu được giải thuật Cho ví dụ, giải thuật GCD của hai

số nguyên trước đây được viết bằng ngôn ngữ Anh Nhưng chỉ có ngôn ngữ mà máy tính hiểu được đó là ngôn ngữ máy (machine

language)

Ngôn ngữ máy là một hệ thống các mã lệnh dạng nhị phân mà máy tính được thiết kế để thực thi chúng Mỗi từ trong ngôn ngữ máy thể hiện cho một hành động đơn và có thể được máy tính thực hiện

Một tập các chỉ thị/lệnh mô tả từng bước của

một giải thuật được gọi là chương trình

(program) 13

Các Vấn Đề Cơ Sở của KHMT ThS GVC Tô Oai Hùng

Trang 14

Ngôn Ngữ Cấp Cao

Người lập trình khó có thể làm việc trực tiếp

với ngôn ngữ máy Các từ lệnh của ngôn ngữ máy gồm một dãy các số 0 và 1, chiều dài tiêu biểu là 8, 16, 32, hay 64 bit và đôi khi cũng thay đổi

Vì lý do này, nhiều ngôn ngữ lập trình ra đời

để người lập trình dễ dàng chuyển giải thuật thành chương trình và thực thi trên máy tính Chúng ta xem các ngôn ngữ này như là ngôn

ngữ cấp cao hơn (higher-level language), bởi

vì chúng được thiết kế để người lập trình làm việc ở “mức cao hơn” hơn là ở mức ngôn ngữ máy

14

Các Vấn Đề Cơ Sở của KHMT ThS GVC Tô Oai Hùng

Trang 15

Ngôn Ngữ Cấp Cao

Ngôn ngữ máy được xem là ngôn ngữ cấp

thấp (low-level language) Các ngôn ngữ như

Java, FORTRAN, Basic, ADA, … là các ngôn

ngữ cấp cao (high-level language) Chúng

được những nhà khoa học máy tính dùng để biểu diễn giải thuật

15

Các Vấn Đề Cơ Sở của KHMT ThS GVC Tô Oai Hùng

Trang 16

Phần mềm làm cho các chức năng cơ bản

của máy tính có thể sử dụng được thì được

gọi là phần mềm hệ thống (system software)

Phần mềm hệ thống chịu trách nhiệm điều khiển và quản lý phần cứng của hệ thống

16

Các Vấn Đề Cơ Sở của KHMT ThS GVC Tô Oai Hùng

Trang 17

Phần Mềm

máy tính Nó còn làm cho máy tính dễ sử dụng đối với các nhà phát triển chương trình cũng như là những người sử dụng nói chung

Cho ví dụ, phần mềm hệ thống gồm hệ điều hành , quản lý màn hình, chương trình chống virus, chương trình xử lý ngôn ngữ (trình

biên dịch – compiler hay trình thông dịch –

interpreter) và các chương trình điều khiển thiết bị

Những chương trình như xử lý văn bản,

Trang 18

Phần Mềm

dùng để thực hiện các tác vụ cụ thể Phần mềm ứng dụng có thể là một chương trình đơn hay một tập các chương trình làm việc với nhau để thực hiện các yêu cầu của người sử dụng máy tính

Hệ điều hành (operating system) là phần

mềm hệ thống đặc biệt quan trọng và phức tạp Quan trọng bởi vì hệ điều hành tác động đến toàn bộ hệ thống máy tính

Hệ điều hành làm cho người sử dụng dễ

dàng truy cập các thiết bị ngoại vi; lưu trữ thông tin như dữ liệu, văn bản, chương trình; tạo giao diện người dùng để dễ thực

18

Các Vấn Đề Cơ Sở của KHMT ThS GVC Tô Oai Hùng

Trang 19

19

Các Vấn Đề Cơ Sở của KHMT ThS GVC Tô Oai Hùng

Trang 20

Mạng Máy Tính

Cả khi vào thập niên 1980, hầu hết các máy

tính không kết nối mạng Trong khoảng từ năm 1970 đến 1980 các nhà khoa học máy tính đã khám phá ra những ưu điểm của mạng máy tính và đưa ra một số kết nối vật

lý khác nhau giữa các máy tính, như là các giao thức mạng (networking protocol)

Vào thời điểm này, mỗi nhà cung cấp máy tính đưa ra một chuẩn giao thức khác nhau với hy vọng là sẽ bán được cho khách hàng IBM đưa ra giao thức System Networking

Architecture (SNA), Hewlett Packard đưa ra

Distributed Systems (DS) và Xerox đưa ra

20

Các Vấn Đề Cơ Sở của KHMT ThS GVC Tô Oai Hùng

Trang 21

Mạng Máy Tính

Xerox Networking Systems (XNS) Các giao

thức này không tương thích nhau Tuy nhiên, chúng là cầu nối đến giữa các hệ thống với nhau

Ngày nay, vấn đề mạng thì khác Hầu hết trên thế giới chấp nhận các chuẩn IEEE 801 và các giao thức TCP/IP cho Internet

Vấn đề bây giờ cần quan tâm là:

- Mở rộng số lượng địa chỉ Internet

- Tăng tốc độ kết nối vật lý như dùng cáp quang

- Tăng tốc độ kết nối không dây, cho phép truyền tải dữ liệu lớn hơn như phim ảnh

- Năng lượng tiêu thụ và giá thành thấp

21

Các Vấn Đề Cơ Sở của KHMT ThS GVC Tô Oai Hùng

Trang 22

Công Nghệ Cơ Sở Dữ Liệu

Hỗ trợ cho hầu hết các ứng dụng ngày nay là

công nghệ CSDL (database technology) Mô

hình CSDL vượt trội là CSDL quan hệ, nó ra đời vào thập niên 1980 Các nhà khoa học máy tính đã phát triển các giải thuật lưu trữ

và truy cập thông tin nhanh chóng từ kho dữ liệu khổng lồ Cho ví dụ, Google có thể tìm kiếm ngay tức khắc hơn 400.000 bức ảnh từ hơn 1.5 tỷ bức ảnh trong CSDL của nó

Có nhiều điều cần biết về việc tạo một CSDL tốt, truy xuất CSDL từ chương trình, phát triển và quản lý CSDL Những người lập trình ứng dụng và quản trị CSDL cần hiểu

22

Các Vấn Đề Cơ Sở của KHMT ThS GVC Tô Oai Hùng

Trang 23

Công Nghệ Cơ Sở Dữ Liệu

CSDL ở mức này để sử dụng chúng một cách hiệu quả

Một số hệ điều hành mới sử dụng công nghệ

CSDL trong các hệ thống tập tin của nó để lưu trữ tất cả thông tin Điều này làm cho hệ điều hành cải thiện về tốc độ, không gian lưu trữ và bảo mật dữ liệu

23

Các Vấn Đề Cơ Sở của KHMT ThS GVC Tô Oai Hùng

Trang 24

Internet – World Wide Web

Chúng ta có thể dễ dàng nhận thấy rằng máy tính đã thay đổi đột ngột đời sống của con người

Những công nghệ như Internet, World Wide

Web đã đặt khối lượng thông tin khổng lồ trên đầu ngón tay của chúng ta Ví dụ, những phần mềm như Messenger, thư điện tử, điện thoại di động đã cách mạng hoá cách thức

mà con người trao đổi thông tin

24

Các Vấn Đề Cơ Sở của KHMT ThS GVC Tô Oai Hùng

Trang 25

Ch ương 2:

GIẢI THUẬT

Trang 26

Nội Dung

1 Định nghĩa giải thuật

2 Ví dụ về giải thuật

3 Đặc tả giải thuật

4 Phân tích giải thuật

5 Giải thuật là công nghệ

6 Mô hình hình thức tính toán

2

Các Vấn Đề Cơ Sở của KHMT ThS GVC Tô Oai Hùng

Trang 27

Định Nghĩa Giải Thuật

Định nghĩa giải thuật: Giải thuật là cách thức

để giải quyết một tập các vấn đề

Thuật ngữ “giải thuật” cũng áp dụng cho bất

kỳ cách thức nào để giải quyết một vấn đề

cụ thể Cho ví dụ, các bước để thay phanh

xe cũng được gọi là giải thuật

Ví dụ: Tìm ước số chung lớn nhất

Trong toán học, một giải thuật nổi tiếng và hữu dụng là giải thuật Euclid để tìm ước số chung lớn nhất (GCD) của hai số nguyên Ông đã đưa ra giải thuật này vào khoảng 300 năm trước công nguyên

Không có giải thuật Euclid, chúng ta tìm

3

Các Vấn Đề Cơ Sở của KHMT ThS GVC Tô Oai Hùng

Trang 28

Ví Dụ Về Giải Thuật

GCD(372, 84) như thế nào? Phải phân tích hai số nguyên thành các thừa số nguyên tố

và tìm thừa số chung lớn nhất

Nếu các số nguyên này lớn, việc phân tích

thành các thừa số trở nên khó khăn và tốn nhiều thời gian Euclid đã tìm ra giải thuật một cách có hệ thống và nhanh chóng giảm kích thước của vấn đề, bằng cách thay giá trị ban đầu của hai số nguyên với giá trị nhỏ hơn cho đến khi một trong hai số bằng 0 Lúc này, GCD của hai số chính là giá trị của

Trang 30

Ví Dụ Về Giải Thuật

Như vậy, giải thuật là một chuỗi các phép

toán thao tác trên tập giá trị nhập và sinh ra kết quả trong khoảng thời gian hữu hạn Trong ví dụ trên, tập giá trị nhập là 2 số nguyên Kết quả là ước số chung lớn nhất của hai số đó

Có nhiều cách để giải quyết một lớp các vấn

đề Câu hỏi đặt ra là giải thuật nào tốt nhất? Thông thường, các nhà khoa học máy tính

sử dụng các kỹ thuật để phân tích, đánh giá

và so sánh hiệu quả giữa các giải thuật

6

Các Vấn Đề Cơ Sở của KHMT ThS GVC Tô Oai Hùng

Trang 31

Đặc Tả Giải Thuật

Đặc tả giải thuật (representing algorithm):

Trong ngành khoa học máy tính, giải thuật thường được đặc tả bằng mã giả

(pseudocode) Mã giả đủ để cho một ngôn ngữ lập trình có thể thể hiện các tác vụ mà máy tính phải thực hiện trong giải thuật

Mã giả cũng độc lập với bất kỳ ngôn ngữ lập trình nào Nó thể hiện chi tiết cú pháp và làm cho người lập trình dễ dàng đặc tả các thao tác cốt lõi của một giải thuật

Không có một mẫu chuẩn nào cho mã giả Các nhà khoa học máy tính sử dụng mã giả của riêng mình để đặc tả một giải thuật Ví dụ sau là một kiểu mã giả đặc tả giải thuật GCD:

7

Các Vấn Đề Cơ Sở của KHMT ThS GVC Tô Oai Hùng

Trang 32

Để minh hoạ thế nào là hiệu quả khác nhau

giữa các giải thuật, chúng ta sẽ thảo luận

về sự đa dạng của các giải thuật mà các nhà khoa học máy tính đã đưa ra để giải quyết các vấn đề phổ biến trong tính toán

Các Vấn Đề Cơ Sở của KHMT ThS GVC Tô Oai Hùng

8

Trang 33

Đặc Tả Giải Thuật

Tìm kiếm tuần tự (sequential search): Giả sử

chúng ta có danh sách của các sinh viên trong một lớp học, yêu cầu là hãy tìm tên của sinh viên Debbie Drawe Giải thuật tìm kiếm tuần tự chỉ đơn giản là so sánh mỗi tên trong danh sách với tên cần tìm Quá trình tìm kiếm kết thúc khi tên được tìm thấy hoặc khi giải thuật đã tìm hết tất cả các tên trong danh sách

Sau đây là mã giả của giải thuật tìm kiếm tuần tự:

9

Các Vấn Đề Cơ Sở của KHMT ThS GVC Tô Oai Hùng

Trang 34

Đặc Tả Giải Thuật

Sequential_Search(listNames, name) length ← length of listNames

matchFound ← false

index ← 1

while matchFound = false

AND index <= length {

if listNames[index] = name then matchFound ← true

Trang 35

Phân Tích Giải Thuật

Phân tích giải thuật (analyzing algorithm):

Nếu chúng ta biết chiều dài của mỗi câu lệnh

và có bao nhiêu tên trong danh sách, chúng

ta có thể tính được thời gian để thực thi giải thuật

Tuy nhiên, thường thì chúng ta không biết giải thuật giải quyết vấn đề trong bao lâu và thời gian cần giải quyết vấn đề sẽ thay đổi theo độ lớn của vấn đề

Giải thuật tìm kiếm tuần tự sẽ cần thời gian

lâu hơn nếu số lần so sánh nhiều hơn Những lệnh khác của giải thuật chỉ thực thi 1 lần, nhưng những lệnh trong vòng lặp sẽ

11

Các Vấn Đề Cơ Sở của KHMT ThS GVC Tô Oai Hùng

Trang 36

Phân Tích Giải Thuật

thực thi nhiều lần miễn là điều kiện lặp còn đúng

Nếu tên cần tìm cần tìm nằm giữa danh sách

thì giải thuật sẽ chỉ tìm một nửa danh sách Nhưng nếu tên cần tìm ở cuối hoặc không có trong danh sách thì giải thuật sẽ phải tìm tất

cả các tên trong danh sách

Thời gian thực thi của giải thuật tìm kiếm

tuần tự sẽ tăng tỷ lệ theo kích thước của danh sách

Chúng ta nói rằng “bậc tăng” của giải thuật tìm kiếm tuần tự là n, ký hiệu là T(n) Chúng

ta cũng nói rằng một giải thuật mà bậc tăng của nó giới hạn trong một yếu tố không đổi

12

Các Vấn Đề Cơ Sở của KHMT ThS GVC Tô Oai Hùng

Trang 37

Phân Tích Giải Thuật

nào đó có theta của n, ký hiệu Θ(n)

Lưu ý: T(n) là hàm theta của g(n): T(n) =

Trang 38

Phân Tích Giải Thuật

Trang 39

Phân Tích Giải Thuật

Để phân tích thời gian thực thi của giải thuật

sắp xếp bằng phương pháp chèn trực tiếp, đầu tiên chúng ta lưu ý là thời gian thực thi

tỷ lệ với số phần tử cần sắp xếp n Ngoài ra, mỗi phần tử đang xét phải được so sánh một hay nhiều lần với các phần tử đã được sắp Trong trường hợp tốt nhất, danh sách cần sắp xếp đã có thứ tự rồi, khi này mỗi phần tử chỉ so sánh một lần, vì thế trường hợp tốt nhất của giải thuật là Θ(n)

Trong trường hợp xấu nhất, danh sách cần sắp xếp có thứ tự ngược, khi này mỗi phần

tử đang xét sẽ so sánh với tất cả phần tử đã

15

Các v ấn Đề CSKH Của Máy Tính Th.S GVC Tô Oai Hùng

Trang 40

Phân Tích Giải Thuật

được sắp Phần tử thứ 2 so sánh với phần

tử đầu, phần tử thứ 3 so sánh với phần tử thứ 2 và phần tử đầu, … Ví dụ danh sách có

Trong trường hợp trung bình, mỗi phần tử đang xét sẽ so sánh với một nửa phần tử đã 16

Các v ấn Đề CSKH Của Máy Tính Th.S GVC Tô Oai Hùng

Ngày đăng: 14/12/2021, 19:42

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w