Bài giảng Tin học đại cương - Nguyễn Duy Hiệp
1. Các khái niệm cơ bản
Máy tính (thường được hiểu là phần cứng)được điều khiển
bởi phần mềm (ví dụ, là các lệnh bạn viết để ra lệnh cho
máy tính thực hiện hành động và tạo quyết định).
Máy tính là thiết bị điện tử có khả năng lập trình được mà
có thể lưu trữ, tìm kiếm và xử lý dữ liệu.
Máy tính là một thiết bị có khả năng thực hiện tính toán và
tạo quyết định với tốc độ nhanh hơn con người hàng
triệu(thậm chí hàng tỉ) lần.

Trang 1

Trang 2

Trang 3

Trang 4

Trang 5

Trang 6

Trang 7

Trang 8

Trang 9

Trang 10
Tải về để xem bản đầy đủ
Bạn đang xem 10 trang mẫu của tài liệu "Bài giảng Tin học đại cương - Nguyễn Duy Hiệp", để tải tài liệu gốc về máy hãy click vào nút Download ở trên
Tóm tắt nội dung tài liệu: Bài giảng Tin học đại cương - Nguyễn Duy Hiệp
ác bảng phù hợp cho cơ sở dữ liệu được chỉ ra
bởi đồ thị.
Hệ quản trị cơ sở dữ liệu
Mô hình cơ sở dữ liệu cho thuê phim
Review
1. Hệ thống thông tin là gì?
2. Phần mềm bảng tính dùng để làm gì?
3. Phần mềm quản trị cơ sở dữ liệu dùng để làm gì?
1.XX Trí tuệ nhân tạo
Project 1: Cách mạng 4.0
1. Trình bày về khái niệm cách mạng công nghệ 4.0
+ Cách mạng 4.0 là gì, khác gì so với 3.0, 2.0
+ Nền tảng của 4.0 dựa trên gì
+ Cách mạng 4.0 làm thay đổi việc sản xuất như thế nào?
+ Một số ví dụ của công nghệ 4.0
+ Những vấn đề mà cách mạng 4.0 cần xử lý
+ Người dân bình thường được hưởng lợi thế nào?
+ Xu hướng nghề nghiệp sẽ thay đổi ra sạo?
Project 2: SmartHome
2. Công nghệ điều khiển, giao tiếp các thiết bị trong
smarthome - nhà thông mình
+ Nhà thông minh là gì?
+ Có các mô hình giao tiếp giữa các thiết bị trong
smarthome nào? Đặc điểm của các mô hình đó ra sao?
+ Việc bảo mật như thế nào?
+ Hiện tại có các hãng nào đang dẫn đầu trong lĩnh vực
này
Project 3: Năng lượng tái tạo
3. Năng lượng tái tạo
+ Năng lượng tái tạo là gì, có những nguồn nào?
+ Hiện tại năng lượng tái tạo đang được sử dụng tại dâu?
+ Có những vấn đề khó khăn gì với năng lượng tái tạo
+ với người dùng cá nhân thì có thể tham gia vào đâu
trong sử dụng năng lượng tái tạo
+ kể tên những công ty lớn áp dụng năng lượng tái tạo
trong sản xuất
Project 4: Trí tuệ nhân tạo
4. Trí tuệ nhân tạo - học máy
+ trí tuệ nhân tạo là gì ?
+ Trí tuệ nhân tạo đang được ứng dụng trong sản xuất
thế nào?
+ Trong cuộc sông hàng này, trí tuệ nhân tạo đang được
ứng dụng tại đâu
+ Những công ty nào đang dùng trí tuệ nhân tạo phục vụ
sản xuất?
+ những vấn đề khó khăn mà trí tuệ nhân tạo đang gặp
phải
5. Tìm hiểu về công nghệ Block chain
Block chain là gì ?
Cơ chế hoạt động của block chain ra sao
Ứng dụng của Block chain trong tiền ảo (bitcoin)?
Ứng dụng của block chain trong các lĩnh vực khác
. Hợp đồng thông minh
. Giám sát nguồn gốc thực phẩm
. ..
6. Tìm hiểu về học sâu – Deep Learning
Học sâu là gì, khác gì so với học máy – Machine Learning
Có các mô hình học sâu phổ biến nào
Ứng dụng của mô hình học sâu
. Nhận dạng, phân loại,
. Ứng dụng trong thực tế? – trợ lý ảo,..
7. Tìm hiểu về nhận dạng (dọng nói hoặc chữ viết)
Có các mô hình nào để nhận dạng chữ viết
Ưu nhược điểm của các mô hình ra sao
Demo một mô hình nhận dạng chữ viết cơ bản dùng mạng
neural (dùng ngôn ngữ bất kỳ)
1.10 Giải quyết vấn đề
và thiết kế thuật toán
•Những vấn đề nào được giải quyết bằng máy tính ?
•Cách giải quyết vấn đề bằng máy tính
Nội dung
1.10.1 Các khái niệm cơ bản
1.10.2 Các phương pháp xây dựng thuật toán
1.10.3 Biểu diễn thuật toán
1.10.4 Một số thuật toán cơ bản
Giải quyết vấn đề và thiết kế thuật toán
Vấn đề ? Một khó khăn cần được giải quyết.
Giải quyết vấn đề: là việc tìm ra một giải pháp cho câu hỏi rắc
rối, phức tạp, khó hiểu
Máy tính không thể dùng để giải quyết các vấn đề liên quan
đến hành động vật lý hoặc biểu thị cảm xúc
Máy tính chỉ làm được những gì mà nó được bảo phải làm.
Máy tính không thông minh, nó không thể tự phân tích vấn đề
và đưa ra giải pháp.
Lập trình viên là người phân tích vấn đề, tạo ra các chỉ dẫn để
giải quyết vấn đề (chương trình), và máy tính sẽ thực hiện các
chỉ dẫn đó.
Giải quyết vấn đề và thiết kế thuật toán
Phương pháp giải quyết vấn đề thông thường: 4 bước
Bước 1: Hiểu vấn đề: cái gì chưa biết, cái gì là dữ liệu, cái
gì là điều kiện
Bước 2: Đưa ra một phương án: tìm mối quan hệ giữa dữ
liệu và những thứ chưa biết, có thể tham khảo từ cách giải
quyết các vấn đề tương tự
Bước 3: Thực hiện phương án
Bước 4: Kiểm tra lại lời giải thu được
Giải quyết vấn đề và thiết kế thuật toán
Phương án được gọi là thuật toán trong tính toán
Một thuật toán là:
Một dãy hữu hạn các thao tác và trình tự thực hiện các
thao tác đó sao cho sau khi thực hiện dãy thao tác này
theo trình tự đã chỉ ra, với đầu vào (input) ta thu được
kết quả đầu ra (output) mong muốn.
Giải quyết vấn đề và thiết kế thuật toán
Giải quyết vấn đề bằng máy tính
Giai đoạn phát triển thuật toán
Phân tích: hiểu vấn đề
Đề xuất thuật toán: đưa ra các bước tuần tự giải bài toán
Kiểm tra thuật toán: theo các bước để kiểm tra lại thuật toán
Giai đoạn triển khai
Code: chuyển thuật toán thành chương trình
Kiểm tra: thực hiện trên máy tính, kiểm tra kết quả và sửa đổi nếu cần
Giai đoạn bảo trì
Sử dụng:Dùng chương trình
Bảo trì: sửa đổi chương trình cho phù hợp yêu cầu mới hoặc để sửa lỗi.
Giải quyết vấn đề và thiết kế thuật toán
Pha giải quyết vấn đề Pha triển khai, cài đặt
Giải quyết vấn đề và thiết kế thuật toán
Xây dựng thuật toán:
Phương pháp thiết kế top-down (phân rã hàm - functional
decomposition): chia vấn đề thành các vấn đề nhỏ
hơn(module), các vấn đề nhỏ lại được chia tiếp cho đến khi
nó đủ nhỏ để có thể xử lý trực tiếp
Phương pháp thiết kế hướng đối tượng: dữ liệu và các
thuật toán xử lý dữ liệu được kết hợp với nhau trong một
lớp (class) hoặc đối tượng (object)
Phương pháp thiết kế top-down
Phương pháp thiết kế top-down
Phương pháp thiết kế top-down
VD. Bài toán tổ chức 1 buổi tiệc lớn.
Bài toán có thể chia nhỏ thành :
Mời mọi người
Chuẩn bị đồ ăn
Mời mọi người: Chưa thể gọi điện để mời vì ta chưa biết cần
mời những ai. Do đó thao tác này được chia tiếp
Lên danh sách khách
Gọi điện cho khách
Lên danh sách:
Ghi tên bạn bè
Chờ 1 ngày để xem còn quên ai
Kiểm tra và bổ sung vào danh sách
Phương pháp thiết kế top-down
Chia nhỏ bài toán
Phương pháp thiết kế top-down
VD, Với bài toán con là viết tên khách mời (write down name):
Bạn có giấy chưa ?
. Chưa có thì lấy giấy
Bạn có bút chưa?
. Chưa có thì lấy bút (mua bút)
Cầm bút và viết tên khách mời lên giấy
Phương pháp thiết kế top-down
Trong máy tính cũng tương tự, ta có thể dùng ngôn ngữ tự
nhiên hoặc giả mã để biểu diễn thuật toán.
Nếu dùng mã giả (pseudocode)
Dùng while, repeat để biểu diễn các thao tác lặp đi lặp lại
Dùng if để biểu diễn khi phải lựa chọn 1 trong 2 các thao
tác để thực hiện.
Dùng write để biểu diễn việc hiển thị ra (màn hình)
Dùng read để biểu diễn việc đọc vào (từ bàn phím)
Phương pháp thiết kế top-down
VD. Bài toán lên và in ra danh sách khách mời theo thứ tự chữ
cái.
Bài toán chia thành 3 module:
Mức 0
Nhập vào thông tin khách
Sắp xếp danh sách theo thứ tự chữ cái
In ra danh sách
Phương pháp thiết kế top-down
Nhập vào thông tin khách Mức 1
Nhập vào từ bàn phím
Kiểm tra đủ thông tin
Thêm vào danh sách
Phương pháp thiết kế top-down
Nhập vào từ bàn phím Mức 2
write “Nhập vào thông tin khách”
write “Nhập tên”
read họtên
write “Nhập địa chỉ”
read địachỉ
write “Nhập số điện thoại”
read sốđiệnthoại
Phương pháp thiết kế top-down
Kiểm tra đủ thông tin Mức 2
if (thiếu họtên)
. write “Nhập họ tên”
. read họtên
if (thiếu địachỉ)
. write “Nhập địa chỉ”
. read địachỉ
if (thiếu Sốđiệnthoại)
. write “Nhập số điện thoại”
. read Sốđiệnthoại
Phương pháp thiết kế hướng đối tượng
Phương pháp thiết kế hướng đối tượng: Xây dựng lời giải của
bài toán theo các thực thể nội tại được gọi là các đối tượng.
Mỗi đối tượng bao gồm cả dữ liệu và các thao tác để xử lý dữ
liệu đó
Các đối tượng tương tự nhau được mô tả bằng 1 lớp – class.
VD. Mặc dù 2 sinh viên khác nhau nhưng có các đặc điểm và
hành vi chung: đều là người và cùng tham gia khóa học tại
trường.
Phương pháp thiết kế hướng đối tượng
Quan hệ giữa các lớp có thể là
Chứa đựng – containment: lớp này nằm trong lớp khác.
VD đối tượng lốp xe nằm trong đối tượng ô tô
Kế thừa – Inheritance: lớp này có thể kế thừa dữ liệu và
cách ứng xử của lớp khác. VD lớp sinh viên kế thừa từ lớp
người.
Phương pháp thiết kế hướng đối tượng
Quan hệ giữa các lớp có thể là
Quan hệ cộng tác – collaboration: Một lớp có thể gọi 1
lớp khác để cung cấp thông tin. VD Lớp sinh viên có thể gọi
dịch vụ của lớp thư viện – library để mượn sách.
Giải quyết vấn đề và thiết kế thuật toán
Biểu diễn thuật toán:
Dùng ngôn ngữ tự nhiên
Dùng giả ngôn ngữ
Dùng sơ đồ khối
Dùng ngôn ngữ lập trình
VD. Bài toán tìm giá trị lớn nhất của một dãy N số nguyên
Đầu vào: N và giá trị của N số nguyên a1, a2,, aN
Đầu ra: số nguyên lớn nhất của dãy
Giải quyết vấn đề và thiết kế thuật toán
max 3 5 7 9 2 8
max = 3 3
max<5 5
max<7 7
max<9 9
max>2 9
max>8 9
Kết quả 9
Giải quyết vấn đề và thiết kế thuật toán
Thuật toán: Tìm giá trị lớn nhất trong dãy số nguyên
B1: Max a1, i 2.
B2: Nếu i > N, Chuyển qua bước 6
B3: Nếu ai > Max, gán Max bằng ai .
B4: Tăng i lên 1 đơn vị.
B5: Quay lên B2.
B6: In ra Max (là giá trị lớn nhất cần tìm)
Giải quyết vấn đề và thiết kế thuật toán
Bắt đầu
· Nhập N
· Nhập a1,..,aN
· Maxßa1
· iß2
Đúng
Hiển thị giá
i>N Kết thúc
trị Max
Sai
Đúng
ai>Max Maxßai
Sai
i=i+1
Giải quyết vấn đề và thiết kế thuật toán
Một số khối trong sơ đồ khối dùng biểu diễn thuật toán
Bắt đầu hoặc kết thúc
Thao tác xử lý
Lệnh vào, ra dữ liệu(read hoặc write)
Kiểm tra điều kiện
Nối tiếp đoạn lệnh
Luồng thực hiện
Biểu diễn thuật toán
Cấu trúc tuần tự
Xác định bởi thứ tự các bước trong mã giả hoặc
Hướng mũi tên trong sơ đồ khối
x ß5
Bước 1: gán x = 5
Bước 2: gán y là dư của phép chia
y = x % 2
module x cho 2
Bước 3: In ra y
In ra y
Biểu diễn thuật toán
Cấu trúc rẽ nhánh
Đúng
a<b Max=b
Sai
Bước 1: So sánh giá trị a và b, Max=a
nếu a<b thì Max=b
Ngược lại Max=a
Bước 2: in ra giá trị của Max
In ra Max
Biểu diễn thuật toán
i=1
Cấu trúc lặp
Sai
In thông báo hoàn
i<10
thành công việc
Đúng
In ra i
i=i+1
Bước 1: Gán i=1
Bước 2: kiểm tra i<10
Nếu đúng thì sang Bước 3
Nếu sai thì sang Bước 5
Bước 3: In ra i
Bước 4: tăng i thêm 1, quay lại Bước 2
Bước 5: in thông báo hoàn thành
Biểu diễn thuật toán
Cấu trúc lặp (tiếp)
Bước 1: Gán i=1
Bước 2: In ra i
Bước 3: tăng i thêm 1
Bước 4: kiểm tra i<10
Nếu đúng thì quay lại bước 2 i=1
Nếu sai thì sang bước 5
Bước 5: in thông báo hoàn thành
In ra i
i=i+1
In thông báo hoàn
Đúng i<10
Sai thành công việc
Một số thuật toán thông dụng
Thuật toán sắp xếp dãy số theo thứ tự tăng dần
Đầu vào: Dãy A gồm N số a1, a2,, aN
Đầu ra: Dãy A dược sắp lại theo thứ tự không giảm
VD.
Dãy ban đầu: 1, 6, 3, 9, 5, 6, 7
Dãy kết quả: 1, 3, 5, 6, 6, 7, 9
Một số thuật toán thông dụng
Ý tưởng: Dựa trên ý tưởng trong tuyển quặng: "Quặng nặng thì
chìm xuống dưới còn tạp chất nhẹ thì nổi lên trên"
Thực hiện so sánh lần lượt các phần tử nằm kề nhau, nếu
chúng không đúng thứ tự thì ta đổi chỗ chúng cho nhau.
Các phần tử có giá trị khóa lớn sẽ bị đẩy về cuối và khóa nhỏ sẽ
bị đẩy lên trên (trong trường hợp sắp xếp tăng dần)
Sắp xếp nổi bọt
Dãy ban đầu 3 5 2 7 1
lần lặp 1 3 5 2 7 1
3 5 2 7 1 3 2 5 7 1
3 2 5 7 1
3 2 5 7 1 3 2 5 1 7
kết thúc lần lặp 1 3 2 5 1 7
Sắp xếp nổi bọt
Lần lặp 2 3 2 5 1 7
3 2 5 1 7 2 3 5 1 7
2 3 5 1 7
2 3 5 1 7 2 3 1 5 7
kết thúc lần lặp 2 2 3 1 5 7
Sắp xếp nổi bọt
Lần lặp 3 2 3 1 5 7
2 3 1 5 7
2 3 1 5 7 2 1 3 5 7
kết thúc lần lặp 3 2 1 3 5 7
Sắp xếp nổi bọt
Lần lặp 4 2 1 3 5 7
2 1 3 5 7 1 2 3 5 7
kết thúc lần lặp 4 1 2 3 5 7
Dãy đã được sắp xếp !
Sắp xếp nổi bọt
B1: Nhập số N và dãy số a1,a2,,aN
B2: i ß N
B3: Nếu i < 2 thì chuyển tới bước 9.
B4: j ß 2
B5: Kiểm tra j ≤ i
Nếu đúng chuyển sang bước 6
Nếu sai chuyển sang bước 8
B6: so sánh aj-1 và aj
Nếu aj-1>aj thì hoán đổi vị trí 2 phần tử
B7: Tăng j và quay lại bước 5
B8: giảm i và quay lại bước 3
B9: Kết thúc
Sắp xếp nổi bọt
Bắt đầu
· Nhập N
· Nhập a1,..,aN
i ß N
Sai
i > 1 Kết thúc
Đúng
j=2
j=j+1
Sai
j≤ i aj-1 > aj Đổi chỗ aj và aj-1
Đúng Đúng
Sai
i=i-1
Một số thuật toán thông dụng
Thuật toán kiểm tra số nguyên tố
Đầu vào: số nguyên dương n
Đầu ra: trả lời n có phải số nguyên tố hay không
VD. 19, 57 là số nguyên tố
Ý tưởng:
Số nguyên tố là số chỉ chia hết cho 1 và chính nó.
Để kiểm tra số nguyên tố ta sẽ thử chia số đó với các số từ 2
đến 푛. Nếu chia hết cho bất kỳ 1 số nào thì không phải số
nguyên tố.
Một số thuật toán thông dụng
Bước 1: Nhập n
Bước 2: i=2
Bước 3: so sánh 푖 ≤ 푛.
Nếu sai thì chuyển sang Bước 6
Nếu đúng thì chuyển sang Bước 4
Bước 4: Kiểm tra n có chia hết cho i
Nếu đúng thì chuyển sang Bước 5
Nếu sai thì tăng i lên 1 và quay lại Bước 3
Bước 5: In thông báo n không phải số nguyên tố và kết thúc
Bước 6: In thông báo n là số nguyên tố và kết thúc
Một số thuật toán thông dụng
Bắt đầu
Nhập N
i=2
Sai
N là số
i ≤ căn bậc hai của n
nguyên tố
Đúng
N không phải là
N chia hết cho i
Đúng số nguyên tố
Sai
i=i+1
Kết thúc
Review
1. Nêu các bước giải quyết vấn đề
2. Giải quyết vấn đề bằng máy tính có đặc điểm gì
3. Các bước để giải quyết vấn đề bằng máy tính
4. Thuật toán là gì
5. Trình bày phương pháp thiết kế top-down
1.11. Ngôn ngữ lập trình
1.11. Ngôn ngữ lập trình
Máy tính là thiết bị điện tử có khả năng lập trình được mà có
thể lưu trữ, tìm kiếm và xử lý dữ liệu.
Dữ liệu và các câu lệnh xử lý dữ liệu về mặt logic là như nhau
và có thể được lưu trữ tại cùng một vị trí.
Thay đổi cách máy tính xử lý dữ liệu bằng cách thay đổi các câu
lệnh.
Dữ liệu và câu lệnh trong máy được biểu diễn bằng mã máy
(mã nhị phân).
1.11. Ngôn ngữ lập trình
Ngôn ngữ lập trình : 3 nhóm
Ngôn ngữ máy:
. lệnh(chỉ thị) được viết bằng mã nhị phân,
. phụ thuộc vào từng loại máy cụ thể.
Hợp ngữ (assembly)
. Dùng từ tiếng anh viết tắt để biểu diễn một số lệnh
. Phải qua bộ dịch assembler
1.11. Ngôn ngữ lập trình
1.11. Ngôn ngữ lập trình
Ngôn ngữ lập trình
Ngôn ngữ lập trình bậc cao:
. ít phụ thuộc vào kiến trúc phần cứng máy tính,
. gần với tiếng Anh tự nhiên,
. có tính độc lập cao
. Phải có bộ dịch sang ngôn ngữ máy
1.11. Ngôn ngữ lập trình
#include
int main()
{
for(int i=0; i<10; i++)
printf("Hello world !\n");
return 0;
}
1.11. Ngôn ngữ lập trình
Hai hình thức dịch :
Biên dịch (compiler): dịch toàn bộ chương trình từ ngôn
ngữ bậc cao, hoặc hợp ngữ sang ngôn ngữ máy
1.11. Ngôn ngữ lập trình
1.11. Ngôn ngữ lập trình
Thông dịch (interpreter): là chương trình dịch mà dịch và thực
hiện câu lệnh một cách tuần tự
Chương trình Java được dịch sang Bytecode (là một dạng của
ngôn ngữ máy chuẩn). Máy ảo java (JVM) thực thi chương trình
viết bằng Bytecode
Bất kỳ máy tính nào có JVM đều có thể chạy chương trình java
đã biên dịch
1.11. Ngôn ngữ lập trình
File đính kèm:
bai_giang_tin_hoc_dai_cuong_nguyen_duy_hiep.pdf

