Việc dùng một ngôn ngữ lập trình cụ thể để thiết kế các phần mềm hoàn chỉnh chính là hướng giáo dục STEM tốt nhất của môn Tin học... Có thể tóm tắt hướng đi, phát triển tương lai của 3 n
Trang 1Bùi Việt Hà
Viết kịch bản và thiết kế nhân vật Đạo diễn toàn bộ chương trình Thiết kế hệ thống thông tin lõi
Sơ đồ thiết kế hệ thống
Trang 2Lời nói đầu
Các bạn đang có trên tay cuốn sách rất đặc biệt về lập trình Scratch Cuốn sách
có tên THIẾT KẾ PHẦN MỀM VÀ TRÒ CHƠI GIÁO DỤC bằng ngôn ngữ lập
trình Scratch Cuốn sách này là một phát triển cao hơn nữa của cuốn sách TỰ
HỌC LẬP TRÌNH SCRATCH đã phát hành trước đây
ÑÒÓÔⱠÕÖרÙ
ÚÛἎÜɫÝﺌ
Þĩßàá
âãäﮌåæ
ç⍚èéêë╽ìíìîïðñ⋱òó ô
õö÷øùúᕥû♐üýᚎ
þ ÿᴠĀādžĂᒕ㥹Ć
Ħħ⠎Ĩĩ☢ĪīĬĭĮįᐡİὀıIJijĴĵĶķĸ
ĹĺĻļĽľĿŀŁ
łŃń⇐ŅņŇȡňʼnⱼŊ
ŋŌō❑Ŏ
ŏŐő≯≯Œdžœ⪜ŔŕŖ℉ŗ
ŘȒřŚś
Ŝⴚ⤦ŝŞşŠ š ŢţŤ
Trang 3Học sinh, cha mẹ học sinh, và bất kỳ ai muốn học hỏi tìm hiểu sâu hơn về ngôn
ngữ lập trình Scratch theo hướng mong muốn thiết kế các chương trình, phần
mềm, trò chơi hoàn chỉnh phục vụ công việc của mình
ÑÒÓÔⱠÕÖרÙ
ÚÛἎÜɫÝﺌ
Þĩßàá
âãäﮌåæ
ç⍚èéêë╽ìíìîïðñ⋱òó ô
õö÷øùúᕥû♐üýᚎ
þ ÿᴠĀādžĂᒕ㥹Ć
Ħħ⠎Ĩĩ☢ĪīĬĭĮįᐡİὀıIJijĴĵĶķĸ
ĹĺĻļĽľĿŀŁ
łŃń⇐ŅņŇȡňʼnⱼŊ
ŋŌō❑Ŏ
ŏŐő≯≯Œdžœ⪜ŔŕŖ℉ŗ
ŘȒřŚś
Ŝⴚ⤦ŝŞşŠ š ŢţŤ
ťŦŧŨũŪūŬц֟ŭ٦ůŰ╽űŲ
ųŴŵŶ☞ŷŸŹ źঁŻ
ὗżŽ⚪žſ
ƀƁᕂƂƃƄƅäƆƇƈ
ƉƊঁƋƌ
ƍƎƏẢƐ
Trang 4ứng dụng lập trình Scratch để thiết kế, xây dựng các chương trình hoàn chỉnh
Việc dùng một ngôn ngữ lập trình cụ thể để thiết kế các phần mềm hoàn chỉnh
chính là hướng giáo dục STEM tốt nhất của môn Tin học
ÑÒÓÔⱠÕÖרÙ
ÚÛἎÜɫÝﺌ
Þĩßàá
âãäﮌåæ
ç⍚èéêë╽ìíìîïðñ⋱òó ô
õö÷øùúᕥû♐üýᚎ
þ ÿᴠĀādžĂᒕ㥹Ć
Ħħ⠎Ĩĩ☢ĪīĬĭĮįᐡİὀıIJijĴĵĶķĸ
ĹĺĻļĽľĿŀŁ
łŃń⇐ŅņŇȡňʼnⱼŊŋŌō❑Ŏŏ
ŴŵŶ☞ŷŸŹ źঁŻὗż
Ž⚪žſƀƁᕂƂƃƄƅ
äƆƇƈƉ
ƊঁƋƌƍ
Trang 5Scratch, hay các ngôn ngữ lập trình trực quan là công cụ giáo dục STEM tốt nhấtcủa môn Tin học và các môn học khác có liên quan.
Môn Tin học trong tương lai sẽ như thế nào?
Môn Tin học của Việt Nam được xây dựng để đưa vào các trường THPT của Việt Nam vào đầu những năm 1990, nhưng phải đến đợt thay SGK sau 2000 môn Tin học mới chính thức được đưa vào cấp THPT Sau đó các chương trình tự chọn củaTin học và SGK dành cho THCS, Tiểu học dần được thiết lập Vào khoảng 2008, môn Tin học trong nhà trường Việt Nam đã hình thành đầy đủ với toàn bộ chươngtrình và SGK phủ kín từ lớp 3 đến 12 Tuy nhiên chương trình cho cấp Tiểu học
và THCS là tự chọn, điều đó có nghĩa là không phải tất cả HS đều được học môn học này liên tục từ lớp 3 đến lớp 12
Có thể điểm qua toàn bộ các module kiến thức chính của môn Tin học trongtrường phổ thông của Việt Nam cho đến hiện nay (2017) là:
Cấu trúc máy tính Máy tính, hệ điều hành Máy tính, hệ điều hành.Tập chuột, tập gõ bàn Mạng Internet Mạng máy tính Mạng
Trang 6Từ lâu các các chuyên gia giáo dục trên thế giới (ví dụ trong cuốn shutdown or
restart [11]), đã phân tích sự tụt hậu của chương trình môn Tin học ở qui mô toàn
thế giới Có thể tóm tắt như sau:
0Rời rạc, không liên thông, không liền mạch
1Không đủ cơ sở vật chất hỗ trợ giảng dạy hoặc rất lạc hậu so với công nghệ hiệntại
2Không khoa học hoặc rất khó xác định tính khoa học chặt chẽ và mạch chính của kiến thức
3GV dạy không hứng thú, không có động lực để học thêm, đào sâu thêm kiếnthức
0HS học nhàm chán vì kiến thức công nghệ bị lạc hậu với thực tế
1Riêng ở Việt Nam, môn Tin học trong suốt thời gian qua là môn phụ, khôngđược thi ở bất cứ cấp học nào, vì vậy HS và GV càng không có động lực để học, dạy môn học này
Do vậy môn Tin học đứng trước thách thức rất lớn là cần thay đổi Nhưng thay đổi như thế nào? Theo hướng nào? Thay đổi để làm sao khắc phục được các khuyết điểm trên? Tất cả những vấn đề đó đều rất rất khó giải quyết Không phải các chuyên gia, các nhà giáo không biết những điều trên, họ biết hết nhưng lực bất tòng tâm Vấn đề lớn nhất của môn Tin học là công nghê liên quan đến CNTT,
ICT phát triển quá nhanh, trong khi kiến thức khoa học lõi của ngành này lại
không thể hoặc chưa thể đưa xuống dạy cho học sinh từ nhỏ tuổi.
Một trong những tài liệu đầu tiên đề cập tới vấn đề này là cuốn sách Shutdown or
restart mà tôi nhắc đến ở trên Cuốn này được viết năm 2012 và là tiền đề để
nước Anh là quốc gia đầu tiên thực hiện cuộc cách mạng thay đổi hoàn toàn môn Tin học trong nhà trường Trong cuốn sách đó, lần đầu tiên các chuyên gia đã phân loại chính xác 3 hướng nội dung chính của kiến thức Tin học trong trường học Việc phân loại này sẽ giúp các nhà quản lý và chuyên gia GD hiểu rõ hơn và định hướng được tương lai của môn học này Phân loại nội dung trong cuốn sách
đó như sau:
Toàn bộ kiến thức cần học của Tin học sẽ được chia làm 3 nhóm chính:
5888 CS (computer science): Khoa học máy tính.
5889 IT (infomation technology): CNTT và ứng dụng.
5890 DL (digital literacy): Học vấn số hóa phổ
thông Tóm tắt như sau:
CS - Khoa học máy tính: Xử lý số, tư duy giải quyết vấn đề, thiết lập
chương trình, thuật toán, tư duy máy tính
Trang 7ĐT sau 2018 rất may mắn đã kịp đưa các thay đổi này vào chương trình môn Tin học Môn Tin học sẽ là môn học có thay đổi lớn nhất trong Chương trình Giáo dụcPhổ thông mới này.
Như vậy, tương lai kiến thức môn Tin học trong trường phổ thông sẽ được phântách thành 3 hướng kiến thức (phân môn) chính:
23Khoa học máy tính (CS - Computer Science).
24CNTT và ứng dụng (IT - Information Technology).
25Kỹ năng số hóa phổ thông (DL - Digital Literacy).
Khoa học máy tính
CS
DL thông truyền thông
Trong đó, chắc tất cả đều hiểu: phân môn Khoa học máy tính (CS) sẽ là quan
trọng nhất, đóng vai trò trung tâm, cốt lõi của môn Tin học
Trong 3 hướng này, IT và DL là những nội dung mà giáo viên Tin học hiện nayvẫn đang giảng dạy, do đó sẽ không có gì bỡ ngỡ Riêng hướng CS là hoàn toànmới và hoàn toàn khác biệt so với hiện nay
Có thể tóm tắt hướng đi, phát triển tương lai của 3 nhóm, phân môn của môn Tin học trong bảng sau:
DL - Học vấn số hóa phổ IT - Ứng dụng CNTT và CS - Khoa học máy tính
Các kỹ năng cơ bản, tối
thiểu cần có trong thời đại
năng lực tối thiểu đơn
giản nhất cần có của mọi
công dân trong thế giới số
hiện nay Có thể ví như
học đếm trong môn Toán
và học đánh vần trong
môn Tiếng Việt
Sử dụng công nghệ xử lý số, phần mềm để ứng dụng và tạo ra các sản phẩm số phục
vụ yêu cầu Ví dụ đồ họa, phim, ảnh, ứng dụng trong các công việc đời sống
Mảng kiến thức này sẽ đượcphân thành 2 nhóm:
5888 Nhóm ứng dụngCNTT, phần mềm vào cácchuyên ngành, môn họckhác với Tin học
5889 Nhóm các ứng dụng CNTT, truyền thông bên trong ICT
Lý thuyết và thực hành về xử
lý số, tư duy giải quyết vấn
đề, thiết lập chương trình, thuật toán, tư duy máy tính
Lõi của môn học này là khái
niệm tư duy máy tính hay tư
duy thuật toán Đây là kiến
thức cơ bản nằm bên dưới các khái niệm quen thuộc như phần mềm, phần cứng máy tính Đi cùng mô hình tư duy này là 1 tập hợp các kiến thức lõi, cơ bản về lý thuyết cũng như thực hành, kỹ năng, năng
Trang 8DL - Học vấn số hóa phổ IT - Ứng dụng CNTT và CS - Khoa học máy tính
Trong tương lai, những
kiến thức này sẽ chỉ được
có nhóm 2 và sẽ định hướngcho nghề Tin học ứng dụng
lực phân tích, mô phỏng
và giải quyết vấn đề
Đây là định hướng chính, cơ bản nhất và quan trọng nhất của môn Tin học trong tương lai Chính hướng này sẽ quyết định để môn Tin học trở thành một môn học lõi, cótính khoa học chặt chẽ, có tính kế thừa và phát triển liêntục cho các bậc học tiếp theo
Có thể mô tả bảng trên theo sơ đồ sau:
Tin học
DL - Học vấn số hóa phổ thông.
Kỹ năng tối thiểucho mỗi công dântrong thời đại số
IT1- Ứng dụng trong các lĩnh vực ngoài
ICT.
IT2- Ứng dụng bên trong ICT
CS - Khoa học máy tính.
Kiến thức lõi của Tin học:
xử lý số, cấu trúc dữ liệu,lập trình, tư duy máytính, giải quyết vấn đề
CS và IT là 2 mảng kiến thức bắt buộc cầ n dạy cho HS ngay từ cấ p Tiểu học, ngay
từ lớp 1 Hai nhóm kiến thức này là độc lập với nhau, gần như bổ sung cho nhau và
có nhiều cách tiếp cận, định hướng khác nhau hoàn toàn Giáo viên Tin học cần hiểu
Trang 9Tin học cần vạch rõ những sự khác biệt này giữa 2 hướng trên trong quá trìnhthiết kế của mình.
a) So sánh định hướng nội dung giữa CS và IT
CS - Khoa học máy tính
1- Là 1 tập hợp ý tưởng, quan niệm
thống nhất, chặt chẽ, logic của 1 môn
học Ví dụ các quan niệm như Chương
trình; Thuật toán; Cấu trúc dữ liệu;
Kiến trúc hệ thống
IT - CNTT và ứng dụng
1- Là một tập hợp các ứng độc lập,rời rạc của CNTT trong các lĩnh vựckhác nhau của đời sống
2- Là 1 tập hợp các kỹ thuật, kỹ năng
logic chặt chẽ, có phát triển từ thấp
đến cao Ví dụ kỹ thuật lập trình, thuật
toán, kiểm thử, sửa lỗi chương trình
3- Có 1 hệ thống tư duy độc lập, riêng
biệt của môn học Ví dụ tư duy máy
tính, tư duy thuật toán, tư duy giải
quyết vấn đề, …
4- Có tính chất bền vững với thời gian
Chú ý rằng tính chất này không thể
đúng với IT vì CNTT phát triển rất
nhanh nên không có 1 hệ thống nào
bền vững với thời gian
5- Hệ thống lý thuyết độc lập với công
nghệ Ví dụ hệ thống các ngôn ngữ lập
trình, thuật toán, … đều độc lập với
kỹ thuật và công nghệ cụ thể
2- Là 1 tập hợp các kỹ thuật, kỹ năng, năng lực có logic, phát triển từ thấp đến cao, tuy nhiên các kỹ năng này sẽ tập trung phục vụ ứng dụng chứ khôngphục vụ cho việc giải quyết vấn đề.3- Mỗi ứng dụng có những hệ thống tưduy riêng, rời rạc, không thống nhất
và không định hướng giải quyết vấn đề
23 - Hoàn toàn phụ thuộc vào công nghệ, dễ thay đổi với thời gian
24 - Không có hệ thống lý thuyết độc lập, tất cả đều phụ thuộcvào công nghệ
b) So sánh mục đích, đối tượng và yêu cầu năng lực CS và IT
Định hướng Tập trung, quan tâm đến sự
cốt lõi phát triển của hệ thống
hướng tới nhu cầu người
sử dụng
Hệ thống máy tính được hoạtđộng, làm việc như thế nào.Máy tính là trung tâm củamôn học
Tập trung, quan tâm đến tư duy thuật toán, đến cách màvấn đề có thể phân rã thành các bài toán, vấn đề nhỏ hơn để giải quyết
Sản phẩm Quan tâm đến việc sử dụng
các phần mềm, hệ thống
đã có để đáp ứng nhu cầuhiện tại
Quan tâm đến việc thiết kế các hệ thống, phần mềm mới
Trang 10Tư duy hệ Hệ thống ứng dụng CNTT
thống phải hỗ trợ hoạt động của
con người hay tự động hóa hoạt động của con người
Các ứng dụng thực tế cần được xây dựng thông qua các
tư duy của "máy tính" Thông qua tư duy này chúng ta sẽ hiểu được thế giới tự nhiên như bản chất nó có, nhưng theo cách tư duy riêng của chúng ta, thông qua máy tính
Định hướng Định hướng ứng dụng, nghề Định hướng chuyên nghiệp,
Tư duy máy tính: năng lực tư duy quan trọng nhất của
Khoa học máy tính.
Xuất xứ của khái niệm Tư duy máy tính (computational thinking).
Người đầu tiên nhắc đến cụm từ này là Seymour Papert (29/2/1928 – 31/7/2016 ),
giáo sư toán đại học MIT đồng thời là tác giả của phần mềm và ngôn ngữ lập trìnhLOGO, trong khi muốn đưa việc giảng dạy thuật toán bằng phần mềm này cho học sinh nhỏ tuổi
“… the thought processes involved in formulating problems and their solutions
so that the solutions are represented in a form that can be effectively carried out by an information-processing agent”.
tạm dịch:
"… là các quá trình tư duy bao gồm cả mô tả và lời giải bài toán sao cho lời giải có thể được thực hiện một cách hiệu quả bởi các tác tử xử lý thông tin".
Tác giả GS Jeannette Wing (hiện là phó chủ tịch Microsoft) là người đầu
tiên đưa ra định nghĩa của khái niệm này (tư duy máy tính), như sau:
“The solution can be carried out by a human or machine, or more generally,
by combinations of humans and machines.”
tạm dịch:
"Lời giải phải (và có thể) được thực hiện bởi con người hoặc máy tính, hoặc tổng quát hơn, bởi sự kết hợp (đồng thời) con người và máy tính".
Như vậy tư duy máy tính chính là kỹ năng rất cơ bản để chúng ta có thể hiểu,
biết một cách có lý, logic về thế giới xung quanh dựa trên sức mạnh của máy tính.Phân môn "Khoa học máy tính" là môn học dạy các nguyên tắc lý thuyết và thực hành cho mô hình tính toán máy tính và các ứng dụng của mô hình này Lõi của
môn học này là khái niệm tư duy máy tính hay tư duy thuật toán Đây là mô hình
tư duy lõi, cơ bản nằm bên dưới các khái niệm quen thuộc như phần mềm, phần
Trang 11kiến thức lõi, cơ bản về lý thuyết cũng như thực hành, kỹ năng, năng lực phântích, mô phỏng và giải quyết vấn đề.
Khoa học máy tính đi sâu vào tìm hiểu cách làm việc và vận hành của máy tính vàcác hệ thống máy tính, tìm hiểu các máy tính và chương trình được thiết kế và lậptrình như thế nào Học sinh sẽ được tiếp cận với các hệ thống tính toán theo mọi
khía cạnh, có thể cần hoặc không cần có máy tính "Tư duy máy tính" sẽ có ảnh
hưởng đến cả các lĩnh vực khoa học khác như sinh học, hóa học, ngôn ngữ, tâm lýhọc, kinh tế và thống kê Cũng chính tư duy đó sẽ giúp học sinh có thể giải các bài toán, giải quyết vấn đề, thiết kế hệ thống, sản phẩm và hiểu được sức mạnh cũng như giới hạn, hạn chế của con người và máy móc Chính tư duy đó sẽ là yêu cầu kỹ năng, năng lực mà mỗi học sinh cần hiểu và nắm bắt được dù chỉ một phầncủa nó Nếu có các kỹ năng, tư duy, suy luận như "máy tính" thì các học sinh này
sẽ hiểu tốt hơn và có nhiều cơ hội hơn trong việc tiếp thu các công nghệ "dựa trênmáy tính" (computer-based technology) và sẽ được chuẩn bị tốt hơn khi trở thành công dân tương lai trong xã hội hiện đại
Khoa học máy tính là môn học thực hành, trong đó rất khuyến khích sự dũng cảm
và sáng tạo Học sinh được học các nguyên tắc, lý thuyết hàn lâm của môn học vàkhuyến khích ứng dụng sáng tạo để hiểu và mô phỏng được thế giới thực xung quanh các em Sự kết hợp hài hòa giữa lý thuyết, thực hành và sáng tạo sẽ làm cho môn học này trở nên vô cùng hấp dẫn, giúp các học sinh có thể tạo ra được các sản phẩm vừa có ích ("Nó chạy rồi!") vừa trí tuệ ("Nó quá đẹp!")
Tư duy máy tính ở đây cần được hiểu là nói về khả năng con người có thể làm,
chứ không phải máy tính có thể làm Ví dụ khi nhắc đến tư duy máy tính người
ta thường nhắc đến các khả năng suy nghĩ và làm việc logic, có tính (tối ưu) thuật toán, có thể lặp lại và có thể trừu tượng hóa
Trong mô hình phân môn Khoa học máy tính của Tin học, tư duy máy tính cầnđược trang bị cho học sinh ngay từ cấp Tiểu học
Các năng lực, kỹ năng cơ bản của tư duy máy tính bao gồm Trừu tượng hóa và
Lập trình.
Tin học và vai trò của các ngôn ngữ lập trinh trực quan
Chúng ta cùng xem lại các mốc sự kiện công nghệ quan trọng với môn Tin học
và ngành CNTT, ICT nói chung
1945 Ra đời máy tính điện tử, ra đời ngành CNTT, khoa học máy tính
1970x Xuất hiện các máy tính mainframe, nhỏ hơn nhiều so với những chiếc máy tính thế hệ đầu tiên Ngành Khoa học máy tính, CNTT chính thức được hình thành và giảng dạy trong các trường đại học
1980 Máy tính cá nhân (PC) ra đời, đưa các ứng dụng của CNTT đến từng gia đình Lần đầu tiên môn Tin học (chỉ bao gồm học các ứng dụng) được đưa xuốngnhà trường cho học sinh các lớp cuối cấp
1990-2000 Bùng nổ Internet các ứng dụng mạng trên qui mô toàn cầu Môn Tin học được đưa xuống cấp 1, nhưng chỉ dừng lại ở việc học các ứng dụng cụ thể, rời rạc
2005-7 Xuất hiện điện thoại thông minh, sau đó là các ứng ụng IoT, len lỏi vào khắp các ngành công nghiệp và dịch vụ Xuất hiện các khoa học mới như tự độnghóa, khoa học dữ liệu, trí tuệ nhân tạo có ứng dụng cụ thể hàng ngày CMCN 4.0 xuất hiện
Trang 122010-2016 Xuất hiện các ngôn ngữ lập trình trực quan, lập trình kéo thả, ví dụ Scratch Cơ hội để đưa phân môn Khoa học máy tính xuống dạy cho học sinh
từ cấp Tiểu học
Như vậy Ngôn ngữ lập trình trực quan, ví dụ như Scratch, đóng vai trò vô cùng quan trọng trong sự phát triển của môn Tin học Có thể so sánh đây là 1 cuộc cáchmạng lớn về giáo dục, lần đầu tiên, học sinh có thể học lập trình, tư duy máy tính,thuật toán, khoa học máy tính ngay từ lớp 1
Scratch và giáo dục STEM
Gần đây, cùng với từ khóa CMCN 4.0, STEM cũng trở thành 1 cụm từ rất hot.Nhà nhà nói STEM, người người nói STEM
Vậy STEM là gì? nó có phải là một môn học? hay một phương pháp giảng dạymới? hay là một công nghệ giáo dục mới của thế giới?
Câu trả lời là không phải như vậy STEM không phải là môn học, cũng không
phải là một phương pháp giảng dạy, cũng không phải là một công nghệ gì mới.STEM là 4 chữ cái đầu của các từ Kỹ nghệ (Engineering), Toán học
(Mathematics), Khoa học (Science) và Công nghệ (Technology)
Bản thân STEM được các nhà khoa học và giáo dục đưa ra chỉ để muốn nhấnmạnh đến tầm quan trọng đặc biệt của 4 chuyên ngành trên trong sự pháttriển khoa học kỹ thuật và ứng dụng hiện nay
Trên thực tế những phát minh công nghệ, khoa học, ứng dụng mới rất nhiều là một tích hợp công nghệ từ những chuyên ngành trên Do vậy các nhà khoa học
mới đưa ra 4 chữ cái trên, như một slogan để khuyến khích việc học tập,
nghiên cứu xung quanh các môn học này và các tích hợp giữa chúng
Tuy nhiên có 1 chuyên ngành nữa mà ai cũng biết đóng vai trò then chốt nhất, tíchhợp giữa các hướng trên, đó chính là Tin học, hay nói chính xác hơn là khoa học máy tính trong tin học
Khoa học máy tính là môn học mang đặc tính STEM rõ nhất, môn học này
có nhiều điểm chung nhất với đồng thời các thành phần khác của STEM như
Kỹ nghệ (Engineering), Toán học (Mathematics), Khoa học (Science) và Công
nghệ (Technology) Sau đây là một vài lý giải cho mệnh đề trên
5888 Hướng kiến thức này dựa trên một hệ thống cơ sở lý luận toán học chặt chẽ, logic và khoa học.
5889 Trọng tâm của Khoa học máy tính là "tư duy máy tính", có cơ sở lý
luận hàn lâm nền tảng kết hợp thực nghiệm và đánh giá, đo đạc số liệu một
cách khoa học.
5890 Lõi của Khoa học máy tính là phần kiến thức lập trình, một kỹ năng đòi hỏi
quá trình thiết kế, xây dựng, kiểm thử và đánh giá dựa trên các tiêu chuẩn kỹ
thuật.
Trang 13Hơn nữa Khoa học máy tính còn có ứng dụng rất sâu trong tất cả các lĩnh vựcSTEM khác như chúng ta vẫn biết rõ điều đó Có thể nói tư duy máy tính, cácnguyên tắc cơ bản của tính toán, các cơ sở lý thuyết giải quyết vấn đề dựa trênmáy tính là chìa khóa dẫn đến thành công của các nhánh khoa học khác như kỹnghệ, kinh doanh và thương mại trong thế kỷ 21.
Do vậy mô hình hay cái gọi là STEM cần được thể hiện lại chính xác hơn
như hình sau
STEM bắt buộc phải gắn liền với Tin học, với Khoa học máy tính, chúng tuy 2 nhưng
là 1 thực thể thống nhất, không thể tách rời Khoa học máy tính là nền tảng lý thuyết
và công nghệ kết nối các chuyên ngành khác nhau trong mô hình STEM
Scratch là môi trường lập trình hỗ trợ giáo dục STEM
Với cách hiểu trên thì với môn Tin học, tinh thần giáo dục STEM chính là khuyến khích làm ra các sản phẩm cụ thể từ chính các kiến thức môn học của mình
Ngôn ngữ lập trình Scratch rất trực quan, dễ dàng tạo ra các sản phẩm, chương trình, phần mềm hay đơn giản là một trò chơi Đây chính là điểm mạnh nhất của Scratch mà các ngôn ngữ lập trình bậc cao khác không thể làm được, vì qui trìnhlàm ra một sản phẩm hoàn chỉnh bằng các ngôn ngữ lập trình bậc cao khác là khá phức tạp
Cuốn sách này được viết nhằm mục đích chính tăng cường giáo dục STEM của môn Tin học
Giới thiệu nhanh các chủ đề cuốn sách
Sau đây là giới thiệu nhanh nội dung cuốn sách
Sách sẽ có 8 chương Mỗi chương là một chủ đề độc lập, định hướng vào công nghệ, kỹ thuật làm phần mềm hoặc định hướng nội dung phần mềm Các chủ đềđều có thể đọc độc lập 3 chủ đề đầu tiên là định hướng công cụ, 5 chủ đề sau làđịnh hướng nội dung thiết kế phần mềm
Sau mỗi chủ đề là một số bài tập nhỏ Chúng tôi sẽ liên tục bổ sung thêm các
Trang 14Chủ đề 1 Một số nguyên tắc và qui trình thiết kế phần mềm
Để có thể lập trình dễ dàng, không mắc lỗi, cần xây dựng và vẽ được Sơ đồ thiết
kế - hoạt động của chương trình Sơ đồ này càng được vẽ cẩn thận, chính xác
bao nhiêu thì việc cài đặt, lập trình sẽ càng dễ dàng bấy nhiêu.
Chủ đề 2 Clone và một số kỹ thuật xử lý Clone
Chủ đề 3 Các công cụ và kỹ thuật thiết kế phần mềm
Mục tiêu:
5888 Một số kỹ thuật chính khi thiết kế phần mềm thực sự so sánh với việc chỉ viết chương trình theo yêu cầu của người khác
5889 Một vài kỹ thuật và đặc thù chính của một phần mềm hay trò chơi
Chủ đề này trình bày một số kỹ thuật và công cụ hay dùng trong khi viết các chương trình phần mềm cụ thể Các công cụ này rất cần thiết cho mọi người muốn tự học thiết kế phần mềm Ví dụ các công cụ đã trình bày trong chủ đề này:23 Kỹ thuật đếm điểm số, do thời gian
24 Kỹ thuật hiển thị số lần chơi
25 Kỹ thuật hiển thị số hoặc chữ lớn
26 Một số cách thiết kế và thuật toán sinh ngẫu nhiên
Chủ đề 4 Thiết kế một số phần mềm quen thuộc
Mục tiêu:
5888 Thiết kế một số phần mềm giáo dục quen thuộc, từ dễ đến khó để rèn luyện các kỹ năng cơ bản thiết kế phần mềm
Trang 15cuốn sách trước của tôi, nhưng trong cuốn sách này, các phần mềm này sẽ được
mô tả hoàn toàn chi tiết đến mức lập trình
Các phần mềm được mô tả trong chủ đề này là:
23 Bút vẽ tự do và nâng cao
24 Flappy Bird
25 Kỹ thuật bắn súng
26 Tham quan bảo tàng
27 Trò chơi đoán từ Hangman
5890 Phần mềm tập chuột, bàn phím cho học sinh
Chủ đề này bắt đầu bằng việc mô tả các kỹ thuật điều khiển bàn phím, chuột và
kỹ năng nhận biết điều khiển chuột
Các thao tác chuột sau được mô tả chi tiết trong chủ đề:
23 Di chuyển chuột
24 Nháy chuột
25 Kéo thả chuột
26 Nháy đúp chuột
Phần mềm Mouse Skills dùng để luyện các thao tác với chuột được thiết kế
chi tiết trong phần này
Ngoài ra một phần mềm học gõ bàn phím bằng 10 ngón cũng được thiết kế, mô
tả trong chủ đề này
Chủ đề 6 Phần mềm hỗ trợ học khoa học máy tính
Mục tiêu:
5888 Một số thuật toán chính biến đổi số trong các hệ đếm khác nhau
5889 Thiết kế phần mềm, trò chơi liên quan đến biến đổi số trong các hệ đếm khác nhau
5890 Một số phần mềm khác hỗ trợ giảng dạy khoa học máy tính trong trường phổ thông
Chủ đề này tập trung mô tả một số chương trình ứng dụng có liên quan đến phânmôn khoa học máy tính của môn Tin học Các chủ đề cụ thể bao gồm:
23 Các thuật toán và bài toán mô tả việc chuyển đổi giữa các hệ đếm thập phân, nhị phân và hexa
Trang 1623 Các trò chơi có liên quan đến sắp xếp số.
Chủ đề 7 Phần mềm hỗ trợ học toán
Mục tiêu:
5888 Thiết kế một số phần mềm hỗ trợ học và dạy môn Toán
5889 Một số thuật toán sinh dãy số ngẫu nhiên, sinh các bài toán đầu vào cho các phần mềm học Toán
Chủ đề này tập trung mô tả các phần mềm ứng dụng học và giải toán Các dạngtoán trắc nghiệm và điền số trực tiếp được mô tả trong chủ đề này
Một lớp các bài toán điền số vào dãy được thiết kế dữ liệu cẩn thận và mô tả chi tiết trong chủ đề này
Chủ đề 8 Phần mềm hỗ trợ học khoa học
Mục tiêu:
0Thiết lập các dạng bài toán mô tả các hiện tượng thực tế, có tính chính xác vàkhoa học
1Thiết kế một số phần mềm đơn giản cho môn Khoa học tự nhiên
Chủ đề này chỉ bao gồm những ví dụ nhỏ ban đầu của hướng phần mềm dành cho nhóm các môn học khoa học Đặc điểm của các ứng dụng này là tính chính xác khoa học của các mô phỏng
Chủ đề bao gồm 1 số chương trình, ứng dụng mô phỏng lịch tháng và đồng hồ
số, mô phỏng viên đạn bắn ra khỏi nòng súng, mô phỏng chuyển động của bánh
xe, chuyển động của quả bóng trong trò chơi bi-a
Chủ đề này sẽ có có rất nhiều phát triển trong tương lai
Trang 18MỤC LỤC
Lời nói đầu 2
Đối tượng, mục đích 2
Môn Tin học trong tương lai sẽ như thế nào? 2
Tư duy máy tính: năng lực tư duy quan trọng nhất của Khoa học máy tính 7
Tin học và vai trò của các ngôn ngữ lập trinh trực quan 8
Scratch và giáo dục STEM 9
Scratch là môi trường lập trình hỗ trợ giáo dục STEM tốt nhất 10
Giới thiệu nhanh các chủ đề cuốn sách 10
Chủ đề 1 Một số nguyên tắc và qui trình thiết kế phần mềm 11
Chủ đề 2 Clone và một số kỹ thuật xử lý Clone 11
Chủ đề 3 Các công cụ và kỹ thuật thiết kế phần mềm 11
Chủ đề 4 Thiết kế một số phần mềm quen thuộc 11
Chủ đề 5 Phần mềm tập chuột, bàn phím 12
Chủ đề 6 Phần mềm hỗ trợ học khoa học máy tính 12
Chủ đề 7 Phần mềm hỗ trợ học toán 13
Chủ đề 8 Phần mềm hỗ trợ học khoa học 13
Chủ đề 1 Một số nguyên tắc và qui trình thiết kế phần mềm 19
Nội dung chính 19
1 Ai là người thiết kế phần mềm? 19
2 Các bước thiết kế phần mềm 20 3 Sơ đồ thiết kế phần mềm 21 4 Ví dụ 1: Tìm hiểu các con vật 22 5 Ví dụ 2: Math Board 27 Câu hỏi - Bài tập - Mở rộng 34 Chủ đề 2 Clone và một số kỹ thuật xử lý Clone 36 Nội dung chính 36 1 Khái niệm phân thân - clone trong Scratch 36 2 Rừng hoa 39 3 Hai chú mèo sinh đôi 40 4 Thuộc tính của nhân vật 41 5 Biến nhớ riêng là thuộc tính của nhân vật 45 6 Clone kế thừa thuộc tính nhân vật 46 7 Giao tiếp người dùng - clone, clone - clone 50
Câu hỏi - Bài tập - Mở rộng 52
Chủ đề 3 Các công cụ, kỹ thuật thiết kế phần mềm 54
Trang 192 Kỹ thuật đếm ngược 56
3 Mô phỏng lượt chơi cho các nhân vật 57
4 Kỹ thuật tính điểm số cho người chơi 59
5 Thể hiện số và đếm số 60
6 Thể hiện chữ, tên người, nhân vật 65
7 Kỹ thuật sinh ngẫu nhiên trong các trò chơi và phần mềm 66
8 Thuật toán sinh ngẫu nhiên 1 bộ đáp án, trong đó có 1 đáp án đúng 70
9 Ví dụ: trò chơi điều khiển bóng 72
Câu hỏi - Bài tập - Mở rộng 77
Chủ đề 4 Thiết kế một số phần mềm quen thuộc 79
Nội dung chính 79
1 Chương trình Bút vẽ màu hoàn chỉnh 79
2 Trò chơi, phần mềm, kỹ thuật bắn súng 83
3 Flappy Bird 92
4 Trình diễn trong bảo tàng 101
5 Bút vẽ nâng cao và bài toán vẽ hình mẫu 109
6 Trò chơi hangman 116
7 Trò chơi mưa từ 127 8 Trò chơi luyện trí nhớ 133 9 Trò chơi Ô chữ 146 Câu hỏi - Bài tập - Mở rộng 166
Chủ đề 5 Phần mềm tập chuột, bàn phím 168
Nội dung chính 168
1 Điều khiển nhân vật bằng bàn phím 168
2 Điều khiển nhân vật bằng chuột 168
3 Mô phỏng di chuyển chuột 171
4 Mô phỏng tập nháy chuột 173
5 Mô phỏng tập kéo thả chuột 175
6 Mô phỏng tập nháy đúp chuột 178
7 Phần mềm tập gõ bàn phím 181
8 Ví dụ: phần mềm Mouse Skills 189
Câu hỏi - Bài tập - Mở rộng 196
Chủ đề 6 Phần mềm hỗ trợ học Khoa học máy tính 198
Nội dung chính 198
1 Thuật toán biến đổi số thập phân, nhị phân và hexa 198
2 Phần mềm hiển thị và biến đổi giữa số thập phân, nhị phân và hexa 203
3 Mô phỏng sắp xếp (loại 1) 204
Trang 205 Biểu diễn nhị phân 219
6 Mô phỏng sắp xếp (loại 3) Trò chơi xếp số trong hình vuông 224
3 Trò chơi bắn súng giải toán 269
Câu hỏi - Bài tập - Mở rộng 278
Trang 22Chủ đề 1.
Một số nguyên tắc và qui trình thiết kế phần mềm
Mục tiêu:
0Giới thiệu một số nguyên tắc thiết kế phần mềm, trò chơi trên Scratch
1Mô tả các bước thiết kế 1 chương trình phần mềm hoàn chỉnh
0 Người viết kịch bản và thiết kế nhân vật
Như chúng ta đều biết, cái đầu tiên cần có của mọi bộ phim, vở diễn hay bất cứ
sụ kiện trình diễn nào đó chính là kịch bản Kịch bản ở đây được hiểu là cốt truyện, nội dung chính của truyện, lời thoại, hoạt động của các nhân vật chính Kịch bản còn có thông tin như mục đích, yêu cầu, đối tượng muốn hướng đến củacâu chuyện
Với phần mềm cũng vậy, cái cần đầu tiên và số 1 là kịch bản của phần mềm Haycái mà chúng ta vẫn thường gọi là yêu cầu cụ thể của bài toán
Điều này cũng đúng với Scratch
Người viết kịch bản và thiết kế nhân vật của phần mềm Scratch chính là người đầu tiên và quan trọng nhất phác thảo ra yêu cầu, nội dung, kịch bản và hoạt động cụ thể của các nhân vật trong phần mềm
Trên thực tế người viết kịch bản và thiết kế nhân vật cho 1 chương trình
Scratch thực hiện những công việc sau:
5888 Thiết kế yêu cầu cụ thể và chi tiết của phần mềm bao gồm các hoạt độngchính, các chức năng chính, nêu được mục đích và đối tượng sử dụng củachương trình
5889 Thiết kế các nhân vật chính, các nút lệnh chính của chương trình
5890 Mô tả các chức năng, hoạt động chi tiết của từng nhân vật, từng nút lệnh trong chương trình
0 Đạo diễn chính toàn bộ hoạt động của phần mềm
Đạo diễn là người tổng chỉ huy việc thiết kế toàn bộ chương trình từ khi có kịchbản cho đến khi kết thúc, hoàn thiện chương trình
Đối với chương trình, phần mềm Scratch, công việc của đạo diễn là:
0Xác định công nghệ chính sẽ được sử dụng trong chương trình Chú ý rằng 1 bài toán, 1 kịch bản có thể có nhiều cách làm khác nhau, dựa vào các công nghệ,
kỹ thuật khác nhau Ví dụ trong kịch bản sẽ có 3 nhân vật A, B, C Đạo diễn sẽ là
Trang 230Thiết kế toàn bộ giao diện đồ họa của chương trình bao gồm nhân vật, nền sân khấu và các nút lệnh.
1Tìm kiếm âm thanh sẽ được sử dụng trong chương trình
2Quản trị toàn bộ chương trình, kiểm tra, kiểm thử, sửa lỗi trong suốt quá trìnhthiết kế chi tiết và lập trình
3Quyết định thời điểm chương trình hoàn thành và nghiệm thu
0 Người thiết kế hệ thống thông tin: tổng quát và chi tiết
Sau khi đã có kịch bản và thiết kế nhân vật, xác định xong công nghệ lõi thực hiện thì bước tiếp theo là thiết kế hệ thống thông tin tổng quát và chi tiết Các công việc chính của người thiết kế hệ thống thông tin bao gồm:
0 Thiết kế các biến nhớ và dữ liệu tổng thể
2.1 Chuẩn bị công nghệ xử lý và giải quyết bài toán
Đây là bước thiết kế đầu tiên sau khi đã có kịch bản, yêu cầu chi tiết của chương trình Chúng ta đều biết rằng một bài toán Tin học sẽ có cách giải, nhiều cách tiếpcận với các công nghệ khác nhau Người thiết kế phần mềm phải quyết định điều này
Thông thường ở bước này, cần đưa ra các quyết định sau cho 1 chương trình, phần mềm trên Scratch
23 Với từng nhân vật, nhóm nhân vật, có dùng Clone hay không? Nếu dùngClone thì sẽ triển khai như thế nào?
24 Thiết kế bộ dữ liệu chính của chương trình Thường bước này là việc thiết
kế các mảng dữ liệu chính sẽ dùng trong chương trình
25 Chuẩn bị và thiết kế các thuật toán chính sẽ dùng trong phần mềm
2.2 Thiết kế nhân vật, nền sân khấu
Đây là bước vẽ, thiết kế chi tiết hình ảnh nhân vật, trang phục nhân vật, vẽ cáchình sân khấu, vẽ các nút lệnh chính của chương trình
2.3 Thiết lập các biến nhớ hệ thống và dữ liệu quan trọng
Đây là bước rất quan trọng: thiết kế các biến nhớ hệ thống và các bộ dữ liệu quan trọng của chương trình Tại bước này nếu thiết kế không tốt sẽ ảnh hưởng đến toàn bộ quá trình viết chương trình về sau Người thiết kế chương trình tốt là
Trang 24người cần có quan sát tổng thể, có tầm nhìn xa để nhìn thấy cần thiết kế các biến dữ liệu một cách hợp lý nhất.
Nguyên tắc chung của việc thiết kế dữ liệu hệ thống là vừa đủ, tiết kiệm.
2.5 Coding - Lập trình chi tiết
Cuối cùng, tất nhiên, là công việc lập trình cụ thể Trong quá trình lập trình có thểquay lại bất cứ bước nào ở phía trên
Một trong những công việc rất quan trọng trong quá trình lập trình là kiểm
thử, tìm lỗi và sửa lỗi
23Sơ đồ thiết kế phần mềm
Sơ đồ thiết kế phần mềm là một trong những tài liệu quan trọng nhất của quá trìnhthiết kế phần mềm trong Scratch Không có 1 định nghĩa chính xác của Sơ đồthiết kế này nhưng có thể xác định các yếu tố sau cần có trong Sơ đồ này
5888 Trong Sơ đồ này phải hiển thị tất cả các nhân vật (và sân khấu nếu có tham gia vào chương trình)
5889 Mô tả chi tiết quan hệ giữa các nhân vật và nền sân khấu thông qua thông điệp và biến nhớ hệ thống
5890 Mô tả các hoạt động chính của nhân vật, nền sân khấu liên quan đến các
sự kiện thông điệp
5891 Các thông tin quan trọng khác nếu có
Nhìn vào sơ đồ này, người lập trình sẽ hiểu rõ cần phải tiến hành các bước lậptrình cụ thể như thế nào
Dưới đây là hình ảnh 2 Sơ đồ thiết kế tương ứng với 2 ví dụ thiết kế phần mềmcủa bài học này
Trang 254 Ví dụ 1: Tìm hiểu các con vật
Chúng ta bắt đầu từ một bài toán, chương trình đơn giản: Tìm hiểu các con vật.
Kịch bản của chương trình bắt nguồn từ 1 bộ dữ liệu gốc trong bảng sau:
Hình ảnh Tên con vật Mô tả
mèo Loài vật nuôi trong nhà rất phổ biến trong mọi gia
đình
khủng long Loài vật khổng lồ nhất trên trái đất, đã tuyệt chủng
từ cách đây hàng triệu năm
chó Loài vật nuôi có tác dụng giữ nhà rất phổ biến.voi Con vật 4 chân lớn nhất hiện nay Voi sống nhiều
ở châu Phi và châu Á
ngựa Loài vật thường dùng để kéo xe, chở đồ, rất phổ
biến
sư tử Loài vật được mệnh danh là chúa rừng xanh.khỉ Loài vật gần với người nhất về bề ngoài, hay leo
trèo trên cây
cáo Loài vật giống chó nhưng sống trong rừng, chuyên
23 tưởng chính của bài toán là cần sinh ngẫu nhiên các câu hỏi trắc nghiệm
từ bộ dữ liệu trên, đối tượng là các bạn học sinh nhỏ tuổi Câu hỏi kiểm tra có thể
là một trong các dạng sau:
23 Quan sát hình ảnh đoán tên con vật
24 Đọc mô tả đoán tên con vật
25 Ghép nối hình ảnh và tên con vật
Kịch bản cụ thể của phần mềm được thiết kế trong ví dụ này được thiết kế
theo mô hình câu hỏi trắc nghiệm thứ nhất ở trên
Mô tả kịch bản, yêu cầu chương trình.
23 Cần 1 nhân vật đóng vai Giáo viên sẽ liên tục đưa ra các câu hỏi "Đây
là con gì?" Chính giữa màn hình sẽ xuất hiện hình ảnh con vật cần xác định tên
24 Bên dưới sẽ hiện 4 đáp án trong đó có 1 đáp án đúng
Trang 2625 Nếu làm sai, Giáo viên thông báo "Sai rồi" (có thể có âm thanh kèm theo)
và sau 2 giây sẽ tiếp tục hỏi câu hỏi mới
Tất cả nội dung các câu hỏi đều phải là ngẫu nhiên để người chơi không thể học thuộc lòng các đáp án
Hình ảnh mô tả của phần mềm có thể hình dung như sau
Giáo viên, người hướng dẫn chương trình
Hình ảnh con vật chính củacâu hỏi trắc nghiệm
Các phương án cần chọn
Nút lựa chọn đáp án
(1) Chuẩn bị công nghệ xử lý bài toán
Điểm mấu chốt công nghệ của chương trình là ở chỗ cần thiết kế 1 nhân vật (có tên Animal) với các trang phục là hình ảnh các con vật khác nhau Như vậy đáng lẽ cầnthiết kế mỗi con vật là 1 nhân vật thì chúng ta sẽ chỉ cần 1 nhân vật là đủ
Hệ thống trang phục của nhân vật này tương thích với 2
Trang 27(2) Thiết kế nhân vật, nền sân khấu
Danh sách nhân vật được thiết kế trong chương trình
Nhân vật này là trung tâm và tham gia như một nguồn dữ liệu hình ảnh chính Mỗi hình ảnh con vật sẽ là 1 trang phục của nhân vật này
Nhân vật Giáo viên chính, đóngvai trò MC của chương trình
Các nút lệnh, mỗi nút lệnh là 1nhân vật
Chú ý tên của trang phục (costume name) cần phải trùng với tên con vật
trong dãy (list) Animals.
chung Danh sách các biến nhớ hệ thống của chương
trình
Biến Aname, Lưu 4 thông tin đáp án của câu Giá trị được lấy từ bảng
đơn Bname, hỏi trắc nghiệm Animals
Cname, Dname
PA_correct Lưu chỉ số của đáp án đúng
trong số 4 đáp án được xếp cóthứ tự A, B, C, D của các biếnnhớ trên
Giá trị nhận được từ 1 đến4
choice Biến nhớ ghi lại đáp án do người
dùng lựa chọn khi làm bài Nhận giá trị từ 1 đến 4 Vậyngười dùng làm bài đúng
khi và chỉ khi choice =
PA_correct.
List Animals,
Animal_list
PA_list
Bộ dữ liệu gốc của chương trình
Animals: dãy tên các con vật
Dãy tên này trùng với dãy tên các trang phục của nhân vật chính Animal của chương trình
Animal_list: dãy thông tin
mô tả các con vật Dãy này
tương ứng với Animals
Dãy 4 phẩn tử chỉ ra 4 chỉ số được lấy ngẫu nhiên từ mảng Animals dùng làm dữ liệu cho câu hỏi trắc nghiệm
Độ dài của 2 dãy này bằng nhau và bằng số trang phục
của nhân vật Animal của
chương trình
Hoàn toàn có thể mở rộng
dữ liệu bằng cách bổ sungvào 2 bảng này và bổsung trang phục tương
Trang 28(4) Sơ đồ thiết kế hệ thống
Sơ đồ thiết kế và hoạt động của chương trình thể hiện trong mô hình sau
Chọn ngẫu nhiên 4 phương án, gánvào các biến nhớ Aname, Bname,
phương án đúng, hiển thị trang phụctheo phương án đúng
Hiển thị câuhỏi: Đây là Khi người dùng click chuột, nạpcon gì?
Có thể mô tả bằng lời Sơ đồ thiết kế hoạt động của chương trình như sau:
0Thông điệp Next có ý nghĩa bắt đầu 1 phiên làm việc mới của chương trình Công việc cụ thể sau lệnh Next là:
0 Sinh ngẫu nhiên bộ dữ liệu câu hỏi trắc nghiệm bao gồm các biễn nhớPA_list, PA_correct, Aname, Bname, Cname, Dname
1 MC ra câu hỏi: đây là con gì
2 Nhân vật Animal chuyển trang phục sang số thứ tự con vật tương ứng.1Sau khi hiển thị bài toán, chương trình chờ người chơi nháy chọn đáp án bằng cách nháy lên 1 trong các nút A, B, C, D Khi người dùng nháy, hệ thống cập nhật
biến choice và ra thông điệp Done.
2Thông điệp Done có ý nghĩa đã chọn xong đáp án Giáo viên nhận thông điệp
này sẽ xử lý đáp án, thông báo đúng, sau
3Sau đó Giáo viên gửi thông điệp Next để bắt đầu lại câu hỏi mới.
(5) Coding chương trình
0 Việc lập trình bắt đầu từ sân khấu, thực hiện 1 lệnh duy nhất là gửi thông điệp
Next.
Trang 290 Xứ lý thông điệp Next.
Các công việc quan trọng là thiết lập bộ dữ liệu đầu vào cho câu hỏi trắc nghiệm
Cụ thể như sau
0Thiết lập mảng 4 dữ liệu PA_list Bảng này sẽ lấy ngẫu nhiên 4 giá trị từ dãy các
số tự nhiên 1, 2, 3, … (độ dài = length(Animals) Thuật toán sử dụng là sinh ngẫunhiên 1 tập con của 1 dãy số cho trước Trong chương trình sau, dãy Temp_list được tạo ra để lưu trữ dãy các số 1, 2, 3, … (độ dài = length(Animals), từ đó sẽ lấy ra 4 phần tử ngẫu nhiên đưa vào PA_list
Chương trình sinh bảng PA_list như sau.
Init: xóa các bản ghi của 2 dãy PA_list, Temp_list.Thiết lập và điền số 1, 2, 3, … vào Temp_list
Lần lượt lấy ra 1 phần tử ngẫu nhiên của Temp_list, đưa vào PA_list, sau đó xóa
đi khỏi dãy Temp_list
- Thiết lập dữ liệu cho các biến PA_correct, Aname, Bname, Cname, Dname.Chương trình sinh bộ đáp án bao gồm PA_correct, Aname, Bname, Cname,Dname
PA_correct lấy ngẫu nhiên
từ 1 đến 4
Các biến Aname, Bname, Cname, Dname lần lượt lấy tên của các con vật có chỉ
Trang 300 Xử lý thông điệp Done.
Cuối cùng là xử lý thông điệp Done Giáo viên là người xử lý thông điệp này.0Nếu đúng, GV thông báo đúng rồi, sau đó hiển thị thông tin mô tả của con vậttương ứng
1Nếu sai, GV thông báo sai rồi
Đợi 1 thời gian ngắn, GV sẽ gửi thông điệp Next để bắt đầu một câu hỏi mới.
5 Ví dụ 2: Math Board
0 tưởng của chương trình này là xây dựng một mô hình mô phỏng các bài học môn Toán đơn giản dành cho học sinh nhỏ tuổi Trong ví dụ cụ thể, các bài toánchỉ là phép tính cộng, trừ đơn giản trong phạm vi 3-4 chữ số
Kịch bản tưởng tượng của chương trình như hình sau
Chương trình
Math Board
Math Board.sb2
Yêu cầu các bước thực hiện của chương trình như sau:
Chương trình sẽ tự động sinh các phép toán cộng, trừ số đơn giản Phép tính
Trang 31Người dùng nhập trực tiếp từ bàn phím đáp án Khi người dùng nhập xong, đáp
án do người dùng nhập sẽ hiện trên phép tính ở màn hình Khi nó nút Check xuất
hiện Nháy nút này để kiểm tra đúng hay sai
Nếu sai, chương trình sẽ hiện thông báo Sai rồi và hiện đáp án đúng bên dưới
Đồng thời xuất hiện nút Next Nháy lên nút này để bắt đầu 1 phép tính mới.
Nếu đúng, chương trình sẽ xuất hiện thông báo Đúng rồi Đồng thời xuất hiện
nút Next Nháy lên nút này để bắt đầu 1 phép tính mới.
(1) Chuẩn bị công nghệ xử lý bài toán
Đặc điểm công nghệ chính của chương trình này là yêu cầu hiển thị số, phép toán bằng hình ảnh lớn để HS dễ quan sát Phần mếm sẽ cần sử dụng hai nhân
vật: Number để hiển thị số và Operation để hiện thị phép toán.
(2) Thiết kế nhân vật, nền sân khấu
Bảng các nhân vật của chương trình như sau, chú ý 2 nhân vật đầu tiên
Tên nhân Nhân vật Mô tả ý nghĩa
vật, nút
lệnh
Number Nhân vật này có nhiệm vụ hiển thị số trên màn hình
theo hình ảnh lớn để học sinh dễ quan sát Đây làcông nghệ chính, quan trọng nhất của chương trìnhnày Nhân vật sẽ có 10 trang phục, có tên lần lượt
là 0, 1, 2, …, 9 Để hiển thị hình ảnh trên màn hình
sẽ dùng lệnh Stamp.
Operation Nhân vật này sẽ có 3 trang phục tương ứng với dấu
cộng (+), dấu trừ (-) và dấu bằng (=).Để hiển thị
Next Nút thực hiện thông điệp Next, chuyển sang bài
toán tiếp theo
Đúng - Nút thể hiện thông báo Đúng / Sai trên màn hình
Sai
0 Thiết kế biến nhớ hệ thống và các dữ liệu chung
Danh sách các biến nhớ hệ thống của chương trình
Biến nhớ Ý nghĩa
N1, N2 Giá trị 2 số tự nhiên là đầu
vào của phép tính cần thựchiện của phần mềm
Ghi chú thêm
Các số đầu vào củabài toán sẽ được sinhngẫu nhiên
Trang 32Giá trị này được tính
Hiển thị đáp
án đúng bêndưới
Sinh ngẫ u nhiên op,
sinh ngẫu nhiên N 1 , N 2,
InputDone
Ẩn nút
WaitCheck
Hiển thị nútCheck
Trang 33Stt Sự kiện - Người thực Công việc cần thực hiện
Thông điệp hiện
1 Next Sân khấu, nút - Sinh ngẫu nhiên bộ dữ liệu phép toán gốc:
- Gửi thông điệp Start.
2 Start Sân khấu - Hiện thị hình ảnh phép toán và dấu =
- Hiển thị các số N1, N2 bằng chữ số lớn trênmàn hình
- Bắt đầu cho người dùng nhập đáp số của
phép tính, lưu vào biến nhớ UserNumber.
- Khi người dùng nhập xong thì gửi thông
điệp InputDone.
3 InputDone Sân khấu - Hiển thị số người dùng đã nhập lên phép
tính trên màn hình
- Gửi thông điệp WaitCheck.
4 WaitCheck Numbers - Xuất hiện nút Check.
- Khi người dùng nháy nút Check thì gửi
thông điệp CheckDone.
5 CheckDone Nút Check Kiểm tra kết quả đúng hay sai
- Nếu Sai, hiển thị nút Sai và gửi thông điệp
ShowCorrect.
- Nếu Đúng, hiển thị nút Đúng
- Hiển thị nút Next Nếu nháy nút Next sẽ gửi
thông điệp Next.
6 ShowCorrect Nút Đúng-Sai Hiển thị đáp án đúng bên dưới số người dùng
đã nhập
(5) Coding - lập trình cụ thể
0 Công cụ hiển thị số bằng hình ảnh to trên màn hình
Thiết lập thủ tục ShowNumber (n) tại vị trí X, Y.
Thủ tục được thiết lập
cho nhân vật Number.
Chuyển đến vị trí đầu tiên có tọa độ X, Y
Lần lượt lấy các chữ số của n từ trái sang phải; chuyển trang phục đến tên chữ số hiện thời; thực hiện lệnh Stamp; sau đó chuyển sang phải 30 bước (là độ rộng củachữ số này)
Trang 3423Hoạt động của sân khấu khi bắt đầu khởi động chương trình: thiết lập thông
điệp Next.
24Xử lý thông điệp Next.
Khi nhận được thông điệp Next, sân khấu sẽ khởi động việc sinh bộ dữ liệu tính toángốc bao gồm N1, N2, op và Solution Trong ví dụ này chúng ta sẽ thiết lập mô hình bài toán đơn giản là phép + hoặc -, các số N1, N2 được sinh ngẫu nhiên trong
khoảng từ 10 đến 999 Việc tổng quát hóa bài toán sẽ nằm trong các bài tập
Biến op sẽ nhận ngẫu nhiên 1 hoặc 2, tương ứng vớp phép tính + và -
Biến op nhận giá trị 1 hoặc 2
Sinh ngẫu nhiên N1, N2
5888 Xử lý thông điệp Start.
Sau khi bộ dữ liệu gốc ban đầu đã được thiết lập (các biến N1, N2, op, Solution),
thông điệp Start được gửi đi thông báo bắt đầu quá trình làm bài của người dùng Các xử lý tiếp theo sau thông điệp Start bao gồm:
- Các chữ số và phép tính được thể hiện trên màn hình
Đoạn chương trình của nhân vật
Operation thể hiện phép tính (+ hoặc
-) và dấu = sau phép tính.
Đoạn chương trình thể hiện 2 số N1, N2 trên màn hình:
Trang 3523 Đồng thời, sân khấu gửi lời yêu cầu nhập đáp số phép tính Dữ liệungười dùng nhập sẽ được đưa vào biến nhớ UserNumber, sau đó gửi thông điệp
InputDone.
23Xử lý thông điệp InputDone.
Sau khi người dùng nhập xong, thì đáp án của người dùng sẽ hiển thị trên màn
hình bên phải dấu = Sau đó thông điệp WaitCheck được gửi đi để chờ người
dùng kiểm tra đúng, ai
5888 Xử lý thông điệp WaitCheck.
Nút Check sẽ hiển thị sau thông điệp WaitCheck và chờ người dùng nháy chuột
sẽ kiểm tra Cửa sổ lệnh của nút Check như sau.
Nút chỉ hiển thị khi nhận thông
thông báo Đúng/Sai.
23Xử lý thông điệp CheckDone.
Nút lệnh Đúng-Sai sẽ xử lý thông điệp CheckDone, chuyển trang phục để thông báo đúng, sai Nếu người dùng làm sai thì thông điệp ShowCorrect sẽ được gửi
đi để nhân vật Number hiển thị đáp án đúng phía dưới đáp án sai
Trang 37Câu hỏi - Bài tập - Mở rộng
5888 Hoàn thiện 2 chương trình Tìm hiểu con vật và Math Board đã thiết kế
trong bài học
5889 Mở rộng chương trình Tìm hiểu con vật theo hướng sau: bổ sung thêm 1
dạng câu hỏi nữa
Giáo viên khi hỏi sẽ đưa ra nội dung câu hỏi = mô tả con vật + "Đó là con gì?",
ví dụ 1 câu hỏi như sau:
Loài vật nuôi trong nhà rất phổ biến trong mọi
gia đình Đó là con gì?
Người dùng vẫn trả lời bằng cách nháy lên một trong các nút A, B, C, D Nếungười dùng làm đúng, hình ảnh con vật sẽ hiện trên màn hình
Phần mềm sẽ tự động sinh ngẫu nhiên một trong hai loại câu hỏi như trên
3 Mở rộng phần mềm Math Board thành 4 phép toán +, -, x, : như sau:
23 Phần mềm sẽ sinh bài toán ngẫu nhiên với các phép tính cộng, trừ, nhân, chia
24 Với các phép toán, bộ dữ liệu ban đầu được sinh ngẫu nhiên như sau:
5888 Phép cộng: sinh 2 số ngẫu nhiên có 2 hoặc 3 chữ số, nhưng tổng số < 1000
5889 Phép trừ: trừ 2 số tự nhiên ngẫu nhiên có 2 hoặc 3 chữ số
5890 Phép nhân: nhân 1 số có 2, 3 chữ số với số có 1 chữ số, tích < 1000
5891 Phép chia: số bị chia (N1) có 2 hoặc 3 chữ số, số chia có 1 chữ số, phép chia phải là chia hết
5888 Thiết kế phần mềm Con gì ăn gì? theo kịch bản sau.
Trên màn hình bên trái là các con Mèo, Khỉ, Ngựa Bên phải là Táo, Chuối và
Cỏ Mỗi con chỉ ăn 1 thứ mà thôi: Khỉ ăn Chuối, Mèo ăn Táo, Ngựa ăn Cỏ.
Chương trình chơi như sau:
Người dùng lần lượt phải dùng chuột kéo thả các con vật ở bên trái sang đúng
vị trí thức ăn của nó ở bên phải
Trang 3823 Nếu kéo thả đúng vị trí thì con vật sẽ dính vào thức ăn của mình và kêu
"Ngon quá"
24 Trò chơi kết thúc khi người chơi kéo thả đúng cả 3 con Mèo, Khỉ, Ngựa
5888 Mở rộng chương trình Con gì ăn gì? theo
hướng sau: - Chỉ cần 2 nhân vật chính là Con thú và
Trang 39Khái niệm Clone
1 Khái niệm phân thân - clone trong Scratch
Tất cả các nhân vật trong Scratch đều có thể "phân thân", tức là tạo ra các nhânvật khác là song sinh với chính bản thân mình Các nhân vật được phân thân
đó gọi là Clone
Chúng ta cùng xem 1 chương trình ngắn để bước đầu làm quen và phân biệt được2 khái niệm: nhân vật chính (gốc) và phân thân (clone) của nhân vật này
Nhân vật chính, gốcNhân vật được phân thân, là song sinh của nhân vật gốc
Nhân vật này được gọi là clone
khởi tạo clone.
Bảng sau mô tả nhanh sự giống nhau và khác nhau giữa nhân vật bình thường vàphân thân của nhân vật (clone)
Nhân vật bình thường Clone (phân thân)
không?
Cửa sổ lệnh Có Không Dùng chung cửa sổ lệnh
khiển của các lệnh Scratch
Trang 40Nhân vật gốc và Clone
Mèo con Clone
Nhân vật gốc là khái niệm Nhân vật
(Sprite) mà chúng ta vẫn biết từ trước
đến nay trong môi trường Scratch
Mỗi nhân vật khi được tạo ra sẽ có
các tính chất, thuộc tính riêng như
hình ảnh, tọa độ x, y, hướng quay,
trang phục, âm thanh, kích thước, các
biến nhớ riêng Mỗi nhân vật có 1
cửa sổ lệnh riêng của mình
Mỗi nhân vật có thể tạo ra các
phân thân (clone) của riêng mình
Clone được khởi tạo từ 1 nhân vậtgốc Clone là 1 phân thân của nhânvật gốc và có mọi thuộc tính của nhânvật gốc
Khi bắt đầu khởi tạo, clone kế thừa toàn bộ tính chất, thuộc tính của nhânvật gốc Tuy nhiên sau khi ra đời, có thể điều khiển clone bằng tất cả các lệnh của Scratch như 1 nhân vật bìnhthường Điểm khác biệt chỉ ở chỗ:
0 Các chương trình điều khiển Clone bắt buộc nằm trong lệnh sự
kiện when I start as a clone.
1 Bản thân clone có thể xóa chính mình
Bảng sau liệt kê các thông tin nhanh liên quan đến nhân vật gốc và clone
Nhân vật gốc
Mô tả Là nhân vật hoạt động chính
nhanh trên sân khấu cho người sử
dụng khởi tạo, hoạt độngvĩnh viễn
Khởi tạo Nhân vật chính dùng lệnh
Clone
đểtạo Clone Có thể tạo Clonecủa mình hoặc của các nhânvật khác
Chú ý: Sân khấu cũng cóquyền tạo Clone cho mọinhân vật
create clone of Clone sau khi
được tạo ra sẽ có đầy đủ tínhchất như 1 nhân vật bình thường
và kế thừa mọi thuộc tính từnhân vật gốc của mình Clonekhông hoạt động vĩnh viễn
Clone sau khi được tạo ra sẽ chịu sự điều khiển của câu lệnh
sự kiện