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.

Bài giảng Tin học đại cương - Nguyễn Duy Hiệp trang 1

Trang 1

Bài giảng Tin học đại cương - Nguyễn Duy Hiệp trang 2

Trang 2

Bài giảng Tin học đại cương - Nguyễn Duy Hiệp trang 3

Trang 3

Bài giảng Tin học đại cương - Nguyễn Duy Hiệp trang 4

Trang 4

Bài giảng Tin học đại cương - Nguyễn Duy Hiệp trang 5

Trang 5

Bài giảng Tin học đại cương - Nguyễn Duy Hiệp trang 6

Trang 6

Bài giảng Tin học đại cương - Nguyễn Duy Hiệp trang 7

Trang 7

Bài giảng Tin học đại cương - Nguyễn Duy Hiệp trang 8

Trang 8

Bài giảng Tin học đại cương - Nguyễn Duy Hiệp trang 9

Trang 9

Bài giảng Tin học đại cương - Nguyễn Duy Hiệp trang 10

Trang 10

Tải về để xem bản đầy đủ

pdf 296 trang xuanhieu 6000
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

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:

  • pdfbai_giang_tin_hoc_dai_cuong_nguyen_duy_hiep.pdf