Tải bản đầy đủ (.pdf) (19 trang)

BÁO CÁO THỰC TẬP-PHƯƠNG PHÁP DẠY HỌC TIN

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (2.63 MB, 19 trang )

1
PHƯƠNG PHÁP DẠY HỌC TIN
HỌC PHẦN 1 – 5 ĐVHT (75 TIẾT)
PHẦN CƠ BẢN
Tp. Hồ Chí Minh, 10/2006
Lê Đức Long
Email: ;

TIN HỌC TRONG TRƯỜNG PT
 Nội dung môn Tin học
 Chương trình Tin học trường PT
THỰC HÀNH SƯ PHẠM
THẢO LUẬN NHÓM
NỘI DUNG MÔN TIN HỌC
Vấn đề 1: Khái niệm về Tin học
Vấn đề 2: Dữ liệu và thông tin
Vấn đề 3: Biểu diễn thông tin trong MT
Vấn đề 4: Các thành phần của PC
CUNG CẤP KHÁI NIỆM CƠ BẢN
VỀ TIN HỌC
NỘI DUNG MÔN TIN HỌC
GÓP PHẦN PHÁT TRIỂN TƯ DUY
THUẬT TOÁN
Vấn đề 1: Vấn đề - bài toán
Vấn đề 2: Giải quyết bài toán trên máy tính
Vấn đề 3: Thuật toán - biểu diễn thuật toán
2
NỘI DUNG MÔN TIN HỌC
RÈN LUYỆN KỸ NĂNG LẬP TRÌNH
MÁY TÍNH VỚI NNLT BẬC CAO
Vấn đề 1: Mô hình hóa bài toán


Vấn đề 2: Rèn luyện khả năng phân tích bài toán
Vấn đề 3: Kỹ năng lập trình máy tính
NỘI DUNG MÔN TIN HỌC
DẠY HỌC HĐH VÀ MỘT SỐ ỨNG
DỤNG
Vấn đề 1: Hệ điều hành - chức năng của HĐH
Vấn đề 2: Soạn thảo văn bản bằng Word
Vấn đề 3: Mạng máy tính - Internet
Vấn đề 4: Một số ứng dụng khác
NỘI DUNG MÔN TIN HỌC
DẠY HỌC CƠ SỞ DỮ LIỆU - HỆ
DBMS ACCESS
Vấn đề 1: CSDL và hệ CSDL
Vấn đề 2: Cơ sở dữ liệu quan hệ
Vấn đề 3: Hệ quản trị CSDL MS Access
NỘI DUNG MÔN TIN HỌC
Các điểm lưu ý - đề xuất …
3
NỘI DUNG MÔN TIN HỌC
Vấn đề 1: Khái niệm về Tin học
Vấn đề 2: Dữ liệu và thông tin
Vấn đề 3: Biểu diễn dữ liệu trong MT
Vấn đề 4: Các thành phần của PC
CUNG CẤP KHÁI NIỆM CƠ BẢN
VỀ TIN HỌC
Thông tin - Dữ liệu – Tin học
Đầu vào
Máy tính xử lý
Đầu ra
DỮ LIỆU

THÔNG TIN
• Thu nhận phân loại, lưu trữ
• Tính toán, thống kê
•Hỏi đáp, cập nhật, truy tìm
•Dự báo
Tin họclàmột ngành khoa học chuyên xử lý dữ liệuvàxuất ra thông tin
một cách tựđộng, dựa trên công cụ là máy tính điệntử.
1970 - cuối 70: Computer Science
1980 - cuối 80: Informatique
1990 - cuối 90: Information Technology (IT)
2000 – nay: Information and Communication Technology (ICT)
Phân loại máy tính điện tử
 Personal Computer
o (PC)/Microcomputer
 Minicomputer
o
Nhanh hơn PC 3-10 lần
 Mainframe
o
Nhanh hơn PC 10-40 lần

Supercomputer
PC
Mini

Supercomputer
o Nhanh hơn PC 50-1.500 lần
o Phục vụ nghiên cứu là chính
o VD:Earth Simulator (NEC,
5104 CPUs, 35.600 GF)

 Laptop Computer
 Handheld Computer
o Pocket PC,Palm, Mobile
devices
Super
Mainframe
Laptop
Handheld
CPU
Tb Xu

t
Tb Nh

p
RegALUCU
Gồm 4 thành phần chính:
1.Bộ xử lý trung tâm – CPU (Central processing unit)
2.Bộ nhớ (Main Memory)
3.Các thiết bị nhập/ xuất(I/Odevices)
_ Màn hình (monitor)
_ Bàn phím (keyboard)

i
(it)
CÁC THÀNH PHẦN CƠ BẢN
CỦA MÁY TÍNH PC
Bnhớ chính
Tb


Xu

t
Tb

Nh

p
BNHỚ PHỤ
Cấu trúc của máy PC
_

y
i
n
(
pr
i
n
t
er
)
_ Con chuột(mouse)
_ Máy quét (scanner)
_Máyđọcthẻ từ, đọcmãvạch, …
_
4.Thiết bị lưutrữ (Backing Storages)
_ Đĩa từ : đĩa cứng, đĩa mềm (hard disk, floppy disk)
_ Đĩa quang: CD ROM, CD-R, DVDs,…
4

Các dòng CPU i386SX,
486DX4, Pentium IV của
Intel
Màn hình màu SVGA
CÁC THÀNH PHẦN CƠ BẢN
CỦA MÁY TÍNH PC
Intel
Hình dáng của RAM
Bàn phím và
Con chuột chuẩn
Màn hình màu SVGA
Scanner
Barcode Reader
MỘT SỐ THIẾT BỊ NGOẠI VI
Camera
Printer
Modem
NIC
Light pen
Dung lượng
 Đĩa mềm 3 ½ inch: 1.44 MB
 Đĩa cứng: 10 - 80GB …
 Đĩa CDROM: 200 - 700MB
 Đĩa DVD: 2GB – 15GB
MỘT SỐ THIẾT BỊ LƯU TRỮ
Mô hình cấu trúc cơ bản của
máy tính
(ROM RAM)
(Thiết bị ngoại vi)
(Thiết bị nhập/xuất)

(Thiết bị nhớ phụ)
(
Thiết b

n
g
o

i vi khác
)
(Bus hệ thống)
(ROM
,
RAM)
( ị g ạ )
5
Bộ nhớ được sử dụng để lưu trữ
chương trình, dữ liệu.
Bao gồm
o Bộ nhớ đệm (cache)
o Bộ nhớ chính (main memory)
o B

nhớ n
g
oài
(
auxiliar
y
or external

Computer memory
RAM
FDD, HDD, FLASH DRIVE
ộ g( y
memory)
Bộ nhớ nào càng “gần” CPU thì
tốc độ và giá thành chế tạo càng
cao
RAM
Bộ nhớ đệm (cache)
Đặt giữa CPU và bộ nhớ chính
Tốc độ rất cao
Dung lượng nhỏ
Mục đích
: Tăng tốc độ trao đổi
thông tin giữa CPU và RAM

Được chia thành nhiềumức

Được

chia

thành

nhiều

mức
o Cache L1 (Level 1)
o Cache L2

o Càng gần CPU thì tốc độ càng cao
 Ví dụ: CPU Intel Petium III, 256KB Cache
Kiểm tra bộ nhớ của máy tính
• Peak/128 = M
• M * 128 = Y
• So sánh Total với Y
bằng cách Total – Y
Æ Dung lượng bộ nhớ
còn thiếu (nếu cần)
Lượng bộ nhớ lớn
nhất đã sử dụng
Tổng dung
lượng bộ
nhớ hiện có
Bật chế độ truy xuất bộ nhớ
trực tiếp
-Chọn Control Panel,
Trình System, chọn
tab Hardware, Device
Manager.
Nhấ ké h ột ở
Bật chế độ DMA (Direct Memory Access) tăng tốc toàn hệ thống
-
Nhấ
p

p c
h
u
ột




mục IDE ATA/ATAPI
controllers, và chọn
mục Advance
Settings.
-Thiết lập chế độ
DMA if available
6
Tổng kết bộ nhớ máy tính
El
ect
r
o
ni
c

d
i
s
k
Cache
Main memory (RAM+ROM)
d
ần
Dung lượn
g
Magnetic Disk
Optical Disk

ect o c d s
Magnetic Tape
Tốc độ tăng
d
g
tăng dần
Hãy thử tìm hiểu …
Đưa Mouse pointer
đến vị trí cần thiết
và nhấp 1 lần
-Point Mouse
(Trỏ chuột)
Đưa chỉ điểm
chuột đến vị trí nào
đó
-Click mouse
(Nhấp chuột)
CÁC THAO TÁC CƠ BẢN VỚI
CHUỘT
-Drag Mouse
(Rê chuột)
Đưa Mouse pointer
đến vị trí cần thiết
và nhấp liên tiếp2
lần(nhấp kép)
Nhấn và giữ nút
chuột trái, rê
chuột từ vị trí này
sang vị trí khác
-Double click

(Nhấp kép chuột)
CÁC THÀNH PHẦN CƠ BẢN CỦA MÁY TÍNH PC
Màn hình
(Output)
Chuột (Input)
CPU
Đĩa cứng
(Backing
storage)
Đĩ
amềm
•CPU
•Bộ nhớ chính
•Thiết bị vào/ra
•Thiết bị lưu trữ
Phần cứng
Bàn phím
(Input)
Đĩ
a

mềm

(Backing
storage)
HT Tin học
Phần mềm
Người sử dụng
Các chương trình
PM hệ thống

PM ứng dụng
Quản lý và điều khiển
Ngôn ngữ lập trình
Hệ thống thông tin thủ công (manual information systems)
Hệ thống thông tin được máy tính hoá (computerised information systems)
7
THÔNG TIN VÀ DỮ LIỆU
Đầu vào Máy tính xử lý Đầu ra
DỮ LIỆU
THÔNG TIN
Dữ liệu gốc
Dữ liệu mã hoá
Mã hoá
‘a’
0110 0001 (97)
Mã hoá
Bảng mã ASCII
• Biểu diễn số nguyên
• Biểu diễn số thực
• Biểu diễn văn bản
Thông tin mã hoá
Thông tin kết quả
Dữ liệu cần xử lý
Thông tin đã xử lý
Giải mã
MÁY TÍNH
XỬ LÝ
0100 0001 (65)
‘A’
Giải mã

MÁY TÍNH XỬ LÝ
đổi ‘a’ thành ‘A’
Bảng mã ASCII
Mã hoá thông tin trong máy tính
Dãy bit
(Mã nhị phân)
NGUYÊN LÝ MÃ HOÁ NHỊ PHÂN
Nguyên tắc hoạt động của
máy tính PC
Nguyên lý điều khiển bằng chương trình
Nguyên lý lưu trữ chương trình dưới dạng mã nhị phân
Nguyên lý truy cập theo địa chỉ
NGUYÊN LÝ J. VON NEUMANN
Sơ đồ hoạt động của máy tính khi thực
hiện một lệnh từ thiết bị nhập
NỘI DUNG MÔN TIN HỌC
GÓP PHẦN PHÁT TRIỂN TƯ DUY
THUẬT TOÁN
Vấn đề 1: Vấn đề - bài toán
Vấn đề 2: Giải quyết bài toán trên máy tính
Vấn đề 3: Thuật toán - biểu diễn thuật toán
MÔN TIN HỌC GÓP PHẦN PHÁT
TRIỂN TƯ DUY THUẬT TOÁN
Thể hiện một phương pháp suy nghĩ, làm việc với các khả năng sau:
-Có thể mô tả chính xác quá trình tiến hành một công việc
, một
hoạt động nhằm đạt một mục đích nào đó, nói vắn tắt là biết lập
quy trình tiến hành công việc
-Biết cách phân tích một hoạt động thành những thao tác
, sắp xếp

hú th ộttì ht hặthẽ
để iải ết đíhđã đặt
c

ng
th
eo m
ột

t
r
ì
n
h

t
ự c
hặt
c
hẽ
để
g
iải
quy
ết
mục
đí
c
h


đã

đặt
ra
cho hoạt động đó
-Biết cách thực hiện các thao tác theo trình tự đã nêu
-Có thể khái quát trên cơ sở thực hiện một hoạt động cụ thể thành
ra môt quy trình (một thuật toán) để giải quyết một lớp bài toán
tương tự
Với các phân tích đó, ta thấy tư duy thuật toán không những cần cho các học
sinh đang còn học trong các nhà trường, mà còn là một yếu tố quan trọng
giúp cho họ thành đạt khi ra đời, dù cho họ làm công việc gì, từ sản xuất đến
kinh doanh hay quản lý
8
Vấn đề và bài toán ?
Ví dụ :
1.Chứng minh hằng đẳng thức : (a+b)
2
= a
2
+ 2ab+ b
2
.
2.Chứng minh rằng gia tốc của chuyển động tròn đều là gia tốc
hướng tâm.
3.Chỉ ra các bước dựng một tam giác với chiều dài các cạnh là
a, b, c cho trước.
4
V


is

v

n
1
3
tỉ
đ

ng
c

n đ

utư

o

nh v

c
sả
nxu

t

o
4
.

V

i

s


v

n

1
,
3

tỉ

đ

ng
,
c

n

đ

u





o


nh

v

c

sả
n

xu

t


o

để có tiền lời cao nhất ?
-Việc giải quyết vấn đề – bài toán có thể diễn đạt bằng sơ đồ
chung như sau :
AB
Trong đó :
A là giả thiết hoặc điều kiện ban đầu
B là kết luận hoặc mục tiêu cần đạt
là suy luận, giải pháp cần xác định
Bài toán trong tin học ?

Ví dụ :
Là việc nào đó ta muốn máy tính thực hiện để
từ dữ liệu đưa vào
(Input) tìm được kết quả
đầu ra – thông tin (Output).
•Tìm ước số chung lớn nhất của hai số nguyên dương.
Input : Hai số nguyên dương M và N.
Output : Ước số chung lớn nhất của M và N.
• Bài toán xếp loại học tập của một lớp.
Input : Bảng điểm của học sinh trong lớp.
Output : Bảng xếp loại học lực của học sinh.
Từ Input
làm thế nào
để tìm ra
Output ?
Các bạn cần tìm
ra cách giải
của bài toán.
Bài toán trong tin học ? Giải bài toán trên máy tính ?
9
Máy tính
Tốc độ: cực nhanh
Độ bền: Liên tục hàng
tháng – hàng năm

Chịu ảnh hưởng của
Con người
Chậm hay rất chậm
Liên tục trong vài ngày -
giảm dần theo tgian



Máy tính và GQVĐ– bài toán

Chịu

ảnh

hưởng

của

yếu tố khách quan: ít
Khả năng suy luận gq
vấn đề: Không
Khả năng phản ứng
trước các tình huống
bất ngờ: Không



Tốt
Tốt
Ppháp GQVĐ – bài toán trên
máy tính
Thuật toán ?
Hình dung sơ lược cách máy tính “giải quyết”
một bài toán đơn giản
Hãy tính tổng S của n số nguyên dương đầu
tiên: S = 1+ 2 + 3 + 4 + … + n

{
Lời giải trên máy tính
B1. Hỏi giá trị của n
B2. Đặt S = 0. Nhớ S = 0. Nhớ i = 1
B3. Nếu số cộng i còn nhỏ hơn hoặc bằng n
(số phép cộng chưa bằng n-1) thì sang B.3.1
N
g
ư

c l

i san
g
B4
g ợ ạ g
o 3.1. Cộng kết quả S đã nhớ với i và nhớ kết quả
mới
o 3.2. Tăng số i lên 1 đơn vị
o 3.3. Trở về B3
B4. Kết quả tính chính là số S đã nhớ
B5. Kết thúc
10
Thuật toán ?
Từ thuậttoán(Algorithm) xuất phát từ tên một nhà toán
họcngườiTrungÁlàMuhammad ibn Musa al-
Khwarizmi, thường gọi là al’Khwarizmi. Ông là tác giả một
cuốnsáchvề số học, trong đóôngđãdùngphương pháp
mô tả rất rõ ràng, mạch lạccáchgiảinhững bài toán. Sau
này, phương pháp mô tả cách giảitoáncủaôngđã được

xem là mộtchuẩnmựcvàđượcnhiều nhà toán họckhác
tuân theo. Từ algorithm ra đờidựa theo cách phiên âm tên

c

a ông.
Muḥammad ibn Mūsā al-
Khwārizmī (Arabic: دمحمنبىسوم
يمزراوخلا) was a Persian
mathematician, astronomer,
astrologer and geographer. He
was born around 780, in either
Khwarizm or Baghdad, and died
around 850.
He was the author of al-Kitāb al-mukhtaṣar fī ḥisāb al-jabr wa-l-
muqābala, the first book on the systematic solution of linear and
quadratic equations. Consequently he is considered to be the father of
algebra, a title he shares with Diophantus. The word algebra is derived
from al-jabr, one of the two operations used to solve quadratic
equations, as described in his book. Algoritmi de numero Indorum,
the Latin translation of his other major work on the Indian numerals,
introduced the positional number system and the number zero to the
Western world in the 12th century. The words algorism and algorithm
stem from Algoritmi, the Latinization of his name.His name is also the
origin of the Spanish word guarismo, meaning digit.
Tính chất cơ bản thuật toán
 Xác định: rõ ràng, không mập mờ và các bước
giải khả thi có thể thực thi được
o Mập mờ: thiếu thông tin hoặc có nhiều chọn lựa nhưng
không đủ điều kiện để quyết định

o Thực thi được: xét trong điều kiện hiện tại của bài toán


Hữu hạn: s



c là h

u hạn và có t
í
nh ch

t
dừng Æ dễ bị vi phạm nhất
o Sau một thời gian thi hành hữu hạn thì phải cho kết quả
mong muốn
Đúng: đúng với mọi trường hợp của bài toán
o Tính chất khó đạt nhất
 Tính xác định
Giả sử khi nhậnmộtlớphọcmới, Ban Giám hiệuyêucầugiáoviênchủ nhiệmchọn
lớptrưởng mới theo các bướcsau:
1. Lập danh sách tấtcáchọcsinhtronglớp.
2. Sắpthứ tự danh sách học sinh.
3. Chọnhọcsinhđứng đầu danh sách để làm lớptrưởng.
Khi nhận được thông báo này, giáo viên chắcchắnsẽ rấtbốirối vì không hiểu
là trong danh sách họcsinhcầncónhững thông tin gì
?Danhsáchchỉ cầnhọ




tên, ha
y
c

nthêmn
g
à
y
thán
g
nămsinh?Cóc

nthêmđi

mtrun
g
bình khôn
g
?
Yêu cầu2lại càng gây nhiềuthắcmắc. Cầnphảisắpxếpdanhsáchtheochiều
tăng dầnhoặcgiảmdần ?Sắptheochỉ tiêu gì ? Theo tên, theo ngày tháng năm
sinh hay theo điểm trung bình chung, Giả sử sắptheođiểm trung bình thì nếu
có hai học sinh cùng điểm trung bình thì họcsinhnàosẽ sắptrước, họcsinhnào
sẽ sắpsau?
Hướng dẫn ở trên vi phạmtínhchất "không mậpmờ" củathuậttoán.Nghĩalà,
có quá nhiều thông tin còn thiếu để làm cho các bước1,2đượchiểu đúng và
hiểutheomộtnghĩa duy nhất
Thuật toán chọn lớp trưởng !!!
1. Lậpdanhsáchtấtcáchọcsinhtronglớp theo hai thông tin: Họ và Tên;

Ðiểm trung bình cuốinăm.
2. Sắphạng họcsinhtheođiểm trung bình theo thứ tự giảmdần(từđiểmcao
đến điểmthấp). Hai học sinh có cùng điểm trung bình sẽ có cùng hạng.
3. Nếuchỉ có mộthọcsinhcóhạng nhấtthìchọnhọcsinhđólàmlớptrưởng.
Trường hợp có nhiềuhọcsinhđồng hạng nhấtthìchọnhọcsinhcó
điểmmôn
Toán cao nhấtlàmlớptrưởng.
Nếu
vẫn
còn
nhiều
hơn
một
học
sinh
đồng
hạng
nhất


cùng
điểm
môn
Nếu
vẫn
còn
nhiều
hơn
một
học

sinh
đồng
hạng
nhất


cùng
điểm
môn
Toán cao nhấtthìtiếnhànhbốcthăm.
Ởđâychúngtacần phân biệt mậpmờ và sự chọnlựacóquyết định.Mậpmờ
là thiếu thông tin hoặc có nhiềuchọnlựanhưng không đủ điềukiện để quyết
định.Cònchọnlựacóquyết định là hoàn toàn xác định duy nhấttrongđiều
kiệncụ thể củavấn đề.Chẳng hạntrongvấn đề chọnlớptrưởng ở trên, bước
3thể hiệnmộtsự lựachọn có quyết định
.Tất nhiên, khi chưalậpdanhsách,
chưaxếphạng theo điểm trung bình thì giáo viên không thể biết đượcsẽ chọn
lớptrưởng theo cách nào. Nhưng khi đãsắp xong danh sách thì chỉ có một
phương án chọn duy nhất.
11
Xác định = không mập mờ +
thực thi được
Tính "thựcthiđược" cũng là mộttínhchấtkháhiển nhiên. Rõ
ràng nếu trong "thuật toán" tồntạimộtbước không thể thựcthi
được thì làm sao ta có đượckếtquảđúng như ýmuốn?
Æ
Chú ý đếntínhchất này khi giảiquyết bài toán trên máy tính - vấn đề
cầngiải quyết máy tính phảithựcthiđược ≠ cách giảiquyếtbìnhthường
của con người
Tuy

nhiên
cần
phải
hiểu

"
thực
thi
được"
xét
trong
điều
kiện
Tuy
nhiên
,
cần
phải
hiểu

thực
thi
được
xét
trong
điều
kiện
hiệntạicủa bài toán. Chẳng hạn, khi nói "lấycănbậchaicủamột
số âm" là không thể thựcthiđượcnếumiềnxácđịnh của bài
toán là số thực, nhưng trong miềnsố phức thì thao tác "lấycăn

bậc hai củamộtsố âm" là hoàn toàn thựcthiđược. Tương tự,
nếutachỉđường cho mộtngười đixemáyđếnmộtbưu điện
nhưng con đường ta chỉ
là đường cụt, đường cấmhoặc đường
ngượcchiều thì người đi không thểđi đếnbưu điện được.
 Tính hữu hạn (tính dừng)
Tính "dừng" là tính chất dễ bị vi phạm nhất, thường là do sai sót khi trình bày thuật
toán. Mọi thuật toán đều nhằm thực hiện một công việc nào đó nên sau một thời gian thi
hành hữu hạn thì thuật toán phải cho chúng ta kết quả mong muốn. Khi không thỏa tính
chất này, ta nói rằng "thuật toán" bị lặp vô tận hoặc bị quẩn. Ðể tính tổng các số
nguyên dương lẻ trong khoảng từ 1
đến n ta có thuật toán sau :
B1. Hỏi giá trị của n.
B2. Đặt S = 0, i = 1
B3. Nếu i = n+1 thì sang bước B7, ngược lại sang bước B4
B4. Cộng thêm i vào S
B5. Cộng thêm 2 vào i
B6. Quay lại bước B3.
B7. Tổng cần tìm chính là S. Kết thúc
Ta chú ý đến bước B3. Ở đây ta muốn kết thúc thuật toán khi giá trị của i vượt quá n.
Thay vì viết là "nếu i lớn hơn n" thì ta thay bằng điều kiện "nếu i bằng n+1" vì theo toán
học "i = n+1" thì suy ra "i lớn hơn n". Nhưng điều kiện "i=n+1" không phải lúc nào cũng
đạt được. Vì ban đầu i = 1 là số lẻ, sau mỗi bước, i được tăng thêm 2 nên i luôn là số lẻ.
Nếu n là số chẵn thì n+1 là một số lẻ nên sau một số bước nhất định, i sẽ bằng n+1.
Tuy nhiên, nếu n là một số lẻ thì n+1 là một số chẵn, do i là số lẻ nên dù có qua bao
nhiêu bước đi chăng nữa, i vẫn khác n+1. Trong trường hợp
đó, thuật toán trên sẽ bị
quẩn.
 Tính đúng
Tính "đúng" là mộttínhchất khá hiển nhiên nhưng là tính chất

khó đạttớinhất. Thựcvậy, khi giải quyếtmộtvấn đề-bài toán,
ta luôn luôn mong muốnlờigiảicủamìnhsẽ cho kếtquảđúng
nhưng không phải lúc nào cũng đạt được.
Mọihọc sinh khi làm bài kiểmtrađềumuốn bài làm củamình
có đáp sốđúng nhưng trên thựctế,tronglớphọcchỉ có một


s

họcsinhnh

t định là có khả năng đưaralờigiải đúng!
Các tính chất của thuật toán rất chặt chẽ và cứng nhắc. Nhưng điều đó cũng có
nghĩa là khả năng giải quyết vấn đề theo kiểu thuật toán cũng bị giới hạn. Sau này,
người ta đã "làm mềm" đi hai tính chất quan trọng của thuật toán là tính xác định và
tính đúng để giải quyết những vấn đề phức tạp hơn mà với các tính chất ch
ặt chẽ của
thuật toán thì không thể giải quyết được. Ðó là thuật giải
.
3 tính chất cơ bản của Thuật Toán
Các đặc trưng khác của
thuật toán
Đầu vào và đầu ra (Input/Output) : mọi
thuật toán đều nhận dữ liệu đầu vào, xử
lý nó và cho ra kết quả cuối cùng.
Tính hiệu quả (Effectiveness) : dựa trên
khối lượng t
í
nh toán, không gian và thời
gian khi thuật toán được thi hành. Là yếu

tố quyết định để đánh giá, chọn lựa cách
giải quyết vấn đề – bài toán trên thực tế.
Tính tổng quát (Generalliness): áp dụng
được cho mọi trường hợp của bài toán.
12
Nhập
dữ liệu
Xuất
thông tin
Tính toán
xử lý
KẾT LUẬN
Liệt kê - Sơ đồ
Nngữ lập trình
Chương trình
thao tác 1; thao tác 2; …; thao tác N
Ví dụ về thuật toán
Giải phương trình bậc nhất ax + b =0
1. Yêu cầu cho biết giá trị của a và b
2. Nếu a = 0 thì
2.1. Nếu b = 0 thì phương trình vô định. Kết
thú
th

t

thú
c
thu


t

t
o
á
n.
2.2. Nếu b

0 thì phương trình vô nghiệm. Kết
thúc thuật toán.
3. Nếu a ≠ 0 thì phương trình có một
nghiệm duy nhất là x = - b/a. Kết thúc
thuật toán.
Ví dụ về thuật toán
Thuật toán giảiphương trình bậc hai ax
2
+bx+c=0 (a ≠0)
1. Yêu cầu cho biếtgiátrị của3hệ số a, b, c
2. Nếua=0thì
2.1. Yêu cầu đầu vào không đảmbảo.
2.2. Kết thúc thuật toán.
3. Trường hợpakhác 0thì
3.1. Tính giá trị Δ =b
2
-4ac
3.2. Nếu Δ >0thì

Δ
+


b
3.2.1. Phươn
g
trình có hai n
g
hiệm phân biệtx
1
và x
2
3.2.2. Giá trị của hai nghiệm đượctínhtheocôngthứcsau
3.2.3. Kết thúc thuật toán.
3.3. Nếu Δ =0thì
3.3.1. Phương trình có nghiệmképx
0
3.3.2. Giá trị của nghiệmképlàx
0
=-b/2a
3.3.3. Kết thúc thuật toán
3.4. Nếu Δ <0thì
3.4.1. Phương trình vô nghiệm.
3.4.2. Kết thúc thuật toán.







Δ−−
=

Δ
+

=
a
b
x
a
b
x
2
2
2
1
Ví dụ về thuật toán
Thuật toán tìm hộpcótrọng lượng nặng nhất
Vấn đề :Cónhộpcókhốilượng khác nhau và mộtcáicândĩa.
Hãy chỉ ra cách cân để tìm đượchộpcótrọng lượng nặng nhất.
Vấn đề này là thể hiệncủamột bài toán tổng quát : Cho mộttập
hợpAhữuhạnvàmộtthứ tự toàn phần trên A. Hãy xây dựng
thuật
toán
tìm
phần
tử
lớn
nhất
của
A
thuật

toán
tìm
phần
tử
lớn
nhất
của
A
.
Ý tưởng:
•Nếu có 1 hộp Æ hộp đó là nặng nhất
•Nếu có từ 2 hộp trở lên:
•Chọn 2 hộp bất kỳ đưa lên bàn cân Æ giữ lại hộp nặng
•Thực hiện cứ thế cho đến khi không còn hộp nào
•Hộp cuối cùng còn lại trên bàn cân là hộp nặng nhất
13
1. Nếuchỉ có 1 hộp (n=1) thì
1.1. Hộp đó chính là hộpnặng nhất.
1.2. Kết thúc thuật toán.
2. Ngượclạinếucótừ hai hộptrở lên (n>1)
2.1. Chọn hai hộpbấtkỳ và đặt lên bàn cân.
2
2
Giữ
lại
hộp
nặng
hơn
cất
hộp

nhẹ
hơn
sang
chỗ
khác
Lời giải trên máy tính = thuật
toán
2
.
2
.
Giữ
lại
hộp
nặng
hơn
,
cất
hộp
nhẹ
hơn
sang
chỗ
khác
.
3. Nếu còn hộpchưa đượccânthựchiện các bướcsau,nếu
không còn hộp nào nữa, sang bước5.
3.1. Chọnmộthộpbấtkỳ và để lên dĩa cân còn trống.
3.2. Giữ lạihộpnặng hơn, cấthộpnhẹ hơn sang chỗ khác.
4. Trở lạibước3.

5. Hộp còn lạitrêncânchínhlàhộpnặng nhất. Kết thúc.
 Có nhiều bài toán cho đến nay vẫn chưa tìm ra được một
cách giải theo kiểu thuật toán và cũng không biết có
thuật toán hay không ? (Bài toán tìm số nguyên tố lớn
nhất)
 Có nhiều bài toán đã có thuật toán để giải nhưng không
chấp nhận được vì thời gian giải theo thuật toán đó là
quá lớn (Bài toán tháp Hà Nội)


h


i

đ
iả
ith h

á
h
iả
ii
Thuật giải ?


n
h

ng


i

t
o
á
n
đ
ược g
iả
i

th
eo n
h

ng c
á
c
h
g
iả
i
v
i

phạm thuật toán nhưng vẫn chấp nhận được.
Mở rộng hai tiêu chuẩn của thuật toán : tính xác định và tính đúng để
chấp nhận các cách giải cho kết quả tốt, gần đúng nhưng ít phức tạp và
hiệu quả.

Các cách giải chấp nhận được nhưng không hoàn toàn đáp ứng đầy
đủ các tiêu chuẩn của thuật toán thường được gọi là các thuật giải
.
Một trong những thuật giải thường được đề cập đến trong khoa học trí tuệ
nhân tạo là các cách giải theo kiểu Heuristic (Hơ rís tíc).
Ví dụ 1 : Thuật giải nấu cơm
{Gạo, củi}
Nấu cơm :

Vo
gạ
o
Thuật giải ?
gạ
–Chuẩn bị lửa
–Nấu, canh giờ
–Kết thúc
{Nồi cơm chín}
TÍNH ĐÚNG
Ví dụ 2: Bài toán đổ nước
 Có hai bình đựng nước là B5 có dung tích 5lít , B8 có
dung tích 8lít. Hãy chỉ ra cách đong để có được hai lít
nước. Các thao tác có thể thực hiện được là :
o Hứng đầy nước vào bình B5 hoặc B8.
o Đổ hết nước trong một bình.
o
Đổ
n
ướ
ct

ừ bì
nh

ysang

nh
khá
ccho
đế
n

c

nh
Thuật giải ?
o
Đổ

n
ướ
c

t



nh


y


sang


nh

khá
c

cho

đế
n


c


nh

kia đầy.
 Thuật giải :
 Đổ đầy nước vào bình B5 (B5=5) .
 Đổ hết nước từ bình B5 sang bình B8 (B5=0, B8=5).
 Đổ đầy nước bình B5 (B5=5, B8=5).
 Đổ nước từ bình B5 cho đến khi B8 đầy (B5=2, B8=8).
TÍNH XÁC ĐỊNH VÀ TÍNH ĐÚNG
14
THUẬT GIẢI HEURISTIC
Thuật giải Heuristic là một sự mở rộng khái

niệm thuật toán. Nó thể hiện cách giải bài toán
với các đặc tính sau :
o Thường tìm được lời giải tốt (nhưng
không chắc là lời giải tốt nhất)
o Giải bài toán theo thuật giải Heuristic
thường dễ dàng và nhanh chóng đưa ra
kết quả hơn so với giải thuật tối ưu, vì
vậy chi phí thấp hơn.
o Thuật giải Heuristic thường thể hiện khá
tự nhiên, gần gũi với cách suy nghĩ và
hành động của con người.
Xây dựng thuật giải Heuristic
Có nhiều phương pháp để xây dựng một thuật giải Heuristic, trong đó
người ta thường dựa vào một số nguyên lý cơ sở như sau:
Nguyên lý vét cạn thông minh :
Trong một bài toán tìm kiếm nào đó, khi không gian tìm kiếm lớn, ta thường tìm
cách giới hạn lại không gian tìm kiếm hoặc thực hiện một kiểu dò tìm đặc biệt
dựa vào đặc thù của bài toán để nhanh chóng tìm ra mục tiêu.
Nguyên lý tham lam (Greedy):
Lấy tiêu chuẩn tối ưu (trên phạm vi toàn cục) của bài toán để làm tiêu chuẩn chọn
ủ ( )
l
ựa

n
h

độ
ng c
h

o p
h
ạm v
i
cục
bộ
c

a t

ng
b
ư

c
(h
ay t

ng g
i
a
i

đ
oạn
)
trong qu
á

trình tìm kiếm lời giải.

Nguyên lý thứ tự :
Thực hiện hành động dựa trên một cấu trúc thứ tự hợp lý của không gian khảo
sát nhằm nhanh chóng đạt được một lời giải tốt.
Hàm Heuristic:
Trong việc xây dựng các thuật giải Heuristic, người ta thường dùng các hàm
Heuristic. Ðó là các hàm đánh giá thô, giá trị của hàm phụ thuộc vào trạng thái
hiện tại của bài toán tại mỗi bước giải. Nhờ giá trị này, ta có thể chọn được cách
hành động tương đối hợp lý trong từng bước của thuật giải.
Ví dụ minh họa
Bài toán tìm đường đi ngắn nhất –
Ứng dụng nguyên lý Greedy
 Bài toán : Bài toán người bán hàng.
 Một nhân viên phân phối hàng cho một công ty được
giao nhiệm vụ phải giao hàng cho các đại lý của công
ty, sau đó trở về công ty. Vấn đề của người nhân viên
àà à ấ ả ýà ô ê
l
à
l
à
m sao đi giao h
à
ng cho t

t c

đại l
ý
m
à

kh
ô
ng ti
ê
u
quá số tiền đổ xăng mà công ty cấp cho mỗi ngày
Æ
Yêu cầu bài toán là làm sao tìm được hành trình ngắn nhất
có thể được.
 Tất nhiên ta có thể giải bài toán này bằng cách liệt kê
tất cả con đường có thể đi, tính chiều dài của mỗi con
đường đó rồi tìm con đường có chiều dài ngắn nhất.
Tuy nhiên, cách giải này lại có độ phức tạp n! (tổng số
hành trình có thể có là n!). Do đó, khi số đại lý tăng thì
số con đường phải xét sẽ tăng lên rất nhanh.
Ý tưởng của thuật giải
Một cách giải đơn giản và thường cho kết
quả tương đối tốt là dùng một thuật giải
Heuristic ứng dụng nguyên lý Greedy. Tư
tưởng của thuật giải như sau :
1. Từ điểm khởi đầu, ta liệt kê tất cả quãng
đường từ điểmxuất phát cho đếnnđạilýrồi
đường

từ

điểm

xuất


phát

cho

đến

n

đại



rồi

chọn đi theo con đường ngắn nhất.
2. Khi đã đi đến một đại lý, chọn đi đến đại lý kế
tiếp cũng theo nguyên tắc trên. Nghĩa là liệt kê
tất cả con đường từ đại lý ta đang đứng đến
những đại lý chưa đi đến. Chọn con đường
ngắn nhất. Lặp lại quá trình này cho đến lúc
không còn đại lý nào để đi
15
1
2
3
5
2
3
7
2

Mô phỏng ý tưởng
3
4
1
(H): 15
Thuật giải Heuristic thực hiện
Kết quả chính xác mong đợi
1 Æ 2 Æ 5 Æ 3 Æ 4 Æ 1
THUẬT TOÁN VÀ THUẬT GIẢI
 Thuật toán (Algorithm) là một dãy hữu hạn các thao tác
không mập mờ và khả thi, được sắp xếp theo một trình
tự xác định, sao cho các quá trình thực hiện dãy thao tác
đó phải dừng và cho kết quả như mong muốn
 3 đặc trưng cơ bản của thuật toán:
o Tính xác định: các thao tác không mập mờ và khả thi
o Tính hữu hạn: số hữu hạn các thao tác và phải dừng
ắ ế ả ố
o Tính đúng đ

n: cho k
ế
t qu

như mong mu

n
3 đặc trưng phụ khác:
o Đầu vào - đầu ra
o Tính hiệu quả
o Tính tổng quát

Thuật toán
Thuật giải
MỞ RỘNG TÍNH ĐÚNG,
TÍNH XÁC ĐỊNH

) Cách 1: Dùng ngôn ngữ tự nhiên
)
Cách
2
:
Dùng lưu đồ /Vẽ sơ đồ khối
Biểu diễn thuật toán
)
Cách

2
:

Dùng

lưu

đồ

/

Vẽ




đồ

khối
) Cách 3: Dùng mã giả
Bằng ngôn ngữ tự nhiên
(liệt kê)
Trong cách biểu diễn thuật toán theo ngôn ngữ tự nhiên,
người ta sử dụng ngôn ngữ thường ngày để liệt kê các
bước của thuật toán (Các ví dụ ở phần trước đều sử
dụng ngôn ngữ tự nhiên). Phương pháp biểu diễn này
không yêu cầu người viết thuật toán cũng như người đọc
th ậtt á hải
ắ átắ
T ậ áhbiể diễ
th
u
ật

t
o
á
n p
hải
n

m c
á
c quy
tắ
c.

T
uy v

y, c
á
c
h

biể
u
diễ
n
này thường dài dòng, không thể hiện rõ cấu trúc của
thuật toán, đôi lúc gây hiểu lầm hoặc khó hiểu cho người
đọc. Gần như không có một quy tắc cố định nào trong
việc thể hiện thuật toán bằng ngôn ngữ tự nhiên.
Tuy vậy, để dễ đọc, ta nên viết các bước con lùi vào bên
phải và đánh số bước theo quy tắc phân cấp như 1, 1.1,
1.1.1,
16
Ví dụ về thuật toán
Giải phương trình bậc nhất ax + b =0
1. Yêu cầu cho biết giá trị của a và b
2. Nếu a = 0 thì
2.1. Nếu b = 0 thì phương trình vô định. Kết
th
ú
c th
u
ật to

á
n.
2.2. Nếu b

0 thì phương trình vô nghiệm. Kết
thúc thuật toán.
3. Nếu a ≠ 0 thì phương trình có một nghiệm
duy nhất là x = - b/a. Kết thúc thuật toán.
Bằng sơ đồ khối/ lưu đồ
 Lưu đồ hay sơ đồ khối là một công cụ trực quan để
diễn đạt các thuật toán.
 Biểu diễn thuật toán bằng lưu đồ sẽ giúp người đọc
theo dõi được sự phân cấp các trường hợp và quá trình
xử lý của thuật toán.
 Phương pháp lưu đồ thường được dùng trong những
thu

t toán có t
í
nh rắc rối
,
khó theo dõi đư

c
q
uá trình

,

q

xử lý .
 Để biểu diễn thuật toán theo sơ đồ khối, ta phải phân
biệt hai loại thao tác. Một thao tác là thao tác chọn lựa
dựa theo một điều kiện nào đó. Chẳng hạn : thao tác
"nếu a = b thì thực hiện thao tác B2, ngược lại thực hiện
B4" là thao tác chọn lựa. Các thao tác còn lại không
thuộc loại chọn lựa được xếp vào loại hành động.
Chẳng hạn, "Chọn một hộ
p bất kỳ và để lên dĩa cân còn
trống." là một thao tác thuộc loại hành động.
Các kí hiệu biểu diễn trong
sơ đồ
Ví dụ minh họa
17
Bằng mã giả
Vay mượn các cú pháp của một ngôn ngữ lập trình nào đó để
thể hiện thuật toán (thường dùng NNLT Pascal để diễn tả).
Dùng mã giả vừa vận dụng được các khái niệm trong ngôn
ngữ lập trình, vừa giúp người cài đặt dễ dàng nắm bắt được
nội dung thuật toán, tuy nhiên là trong mã giả vẫn dùng một
h

ô

t
hiê
p
h

n ng

ô
n ng


t
ự n
hiê
n.
Ví dụ
: (các từ in đậm là sử dụng từ khóa của NNLT Pascal)
Nhập a, b
If a = 0 then
If b = 0 then xuất kết quả ‘Pt vô định’. Kết thúc
Else xuất kết quả ‘Pt vô nghiệm’. Kết thúc
Else xuất kết quả x =-b/a. Kết thúc
Các bước xây dựng
thuật toán
 Xác định bài toán :
- Input
-Output
 Hình thành ý tưởng chính để giải quyết
bài toán, lưuýxácđịnh điểmdừng của
bài

toán,

lưu

ý


xác

định

điểm

dừng

của

thuật toán.
 Mô phỏng để kiểm tra tính đúng đắn.
 Xây dựng thuật toán bằng 1 trong 2 cách:
-Liệt kê (ngôn ngữ tự nhiên)
-Vẽ sơ đồ
Xác định bài toán:
Input: Số nguyên dương N và dãy N số nguyên
a
1
, a
2
, …, a
N
(a
i
với i : 1→N).
Output: Số lớn nhất (Max) của dãy số.
Ýt ở
Thuật toán tìm số lớn nhất
Ví dụ minh hoạ

Ý

t
ư

ng:
- Đặt giá trị Max = a
1
.
-Lần lượt cho i đi từ 2 đến N, so sánh giá trị a
i
với giá trị
Max, nếu a
i
> Max thì Max nhận giá trị mới là a
i
.
- Max là giá trị lớn nhất cần tìm
Quả này
lớn nhất
Quả này
mới lớn nhất
Tìm ra quả
lớn nhất rồi!
Ồ! Quả này
lớn hơn
Mô phỏng ý tưởng
MAX
18
Cách 1: Dùng ngôn ngữ tự nhiên

Bước 1: Nhập N và dãy a
1
,a
2
…, a
N
;
Bước 2: Max ← a
1
; i ← 2;
Bước
3
:Nếui>Nthìđưaragiátrị Max
Biểu diễn thuật toán
B1
B2
Bước

3
:

Nếu

i

>

N

thì


đưa

ra

giá

trị

Max

rồi kết thúc;
Bước 4: Nếu a
i
> Max thì Max ← a
i
;
Bước 5: i ← i+1 rồi quay lại B3.
Cách 2: Dùng lưu đồ
B3
B4
B5
NỘI DUNG MÔN TIN HỌC
RÈN LUYỆN KỸ NĂNG LẬP TRÌNH
MÁY TÍNH VỚI NNLT BẬC CAO
Vấn đề 1: Mô hình hóa bài toán
Vấn đề 2: Rèn luyện khả năng phân tích bài toán
Vấn đề 3: Kỹ năng lập trình máy tính
MỘT SUY NGHĨ VỀ DẠY HỌC
LẬP TRÌNH

 Vấn đề 1: Trình bày khái niệm
o Cần trình bày các khái niệm sao cho thật dễ hiểu, dễ tiếp
thu và dễ ứng dụng nhất đối với hs
 Vấn đề 2: Xây dựng ví dụ minh họa
o Cần xây dựng hệ thống các ví dụ
o Cho phép minh họa tốt nhất có thể có các k/niệm
o Giúp hs tiếp thu được các kỹ năng, kinh nghiệm lập trình
của chính gv
của

chính

gv
 Vấn đề 3: Biên soạn bài tập
• Cần biên soạn hệ thống các bài tập giúp hs tự rèn luyện tốt
các kỹ năng được mong đợi của môn học
 Vấn đề 4: Trình bày yêu cầu của bài tập lập trình
o Cần trình bày yêu cầu của bài tập lập trình thật rõ ràng dễ
hiểu đối với hs. Hạn chế tối đa việc hs không thực hiện
được bài tập là do không hiểu hay hiểu sai đề
 Vấn đề 5: Trình bày cách giải/bài giải của bài tập lập trình
o Cần trình bày bài giải/ cách giải thật rõ ràng, súc tích để hs
dễ tiếp thu nhất có thể có
 Tác giả: Nguyễn Tiến Huy, ĐHKHTN Tp.HCM
 AML bao gồm hệ thống các sơ đồ được sử dụng như
một công cụ hỗ trợ giảng dạy về lập trình
 AML hỗ trợ giáo viên:
o Soạn thảo, trình bày các bài tập lập trình một cách rõ ràng, súc
tích và trực quan
DẠY HỌC LẬP TRÌNH VỚI AML

o Soạn thảo, trình bày bài giải một cách ngắn gọn, đơn giản và độc
lập với NNLT
 AML hỗ trợ học sinh:
o Tiếp nhận và hiểu rõ các yêu cầu của bài tập lập trình của gv
o Tiếp thu dễ dàng các bài giải của gv
o Bước đầu rèn luyện tư duy lập trình theo thiết kế và lập trình theo
yêu cầu với các bài tập lập trình Æ đây chính là các tư duy nền
tảng cho việc phát triển các phần mềm ứng dụng sau này
19
 Hệ thống các sơ đồ
o Nhóm 1:
 Sơ đồ phục vụ cho việc mô tả yêu cầu: DFD
(Data Flow Diagram)
Nhó
2
DẠY HỌC LẬP TRÌNH VỚI AML
XEM TÀI LiỆU GT AML
o
Nhó
m
2
:
 Sơ đồ mô tả kiến trúc tổ chức các thành phần
của chương trình/phần mềm: MAD (Module
Architecture Diagram)
 Sơ đồ mô tả hoạt động phối hợp giữa các
thành phần của chương trình/ phần mềm: FCD
(Function Collaboration Diagram)
KỸ THUẬT LẬP TRÌNH CƠ BẢN
ĐẶC TẢ YÊU CẦU Æ PHÂN TÍCH Æ THIẾT KẾ Æ CÀI ĐẶT

BÀI TOÁN
CHƯƠNG TRÌNH
THẾ GIỚI THỰC vs VIỆC THỰC HIỆN TRÊN MÁY TÍNH
THẾ GIỚI THỰC
TIN HỌC HÓA
VIỆC THỰC HIỆN TRÊN
MÁY TÍNH

×