1. Trang chủ
  2. » Giáo án - Bài giảng

Thiết kế phần mềm giáo dục

338 2K 9

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

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

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 338
Dung lượng 14,22 MB

Nội dung

Đối tượng, mục đích Đối tượng của cuốn sách này: - Họ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

Trang 1

Bùi Việt Hà

Hà Nội - 2017

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 2

Lờ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

Đối tượng, mục đích

Đối tượng của cuốn sách này:

- Họ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

- Giáo viên đang hoặc sẽ giảng dạy môn Tin học trong tương lai muốn tìm hiểu sâu hơn hướng ứ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

- Cuốn sách này cũng hướng đến các giáo viên các bộ môn khác hoặc chuyên gia trong lĩnh vực phần mềm, giáo dục STEM Có thể nói rằng Scratch, 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ất củ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ủa Tin 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ương trì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 trong trường phổ thông của Việt Nam cho đến hiện nay (2017) là:

Soạn thảo văn bản

Lập trình Pascal

CSDL Access

Môn Tin học ở các nước trên thế giới cùng có 1 lộ trình tương tự Có thể với tên gọi khác nhau nhưng nội dung thì cũng gần tương tự của Việt Nam chúng ta.

Trang 3

Từ 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:

- Rời rạc, không liên thông, không liền mạch

- Khô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ện tại

- Khô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

- GV dạy không hứng thú, không có động lực để học thêm, đào sâu thêm kiến thức

- HS học nhàm chán vì kiến thức công nghệ bị lạc hậu với thực tế

- Riê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:

1 CS (computer science): Khoa học máy tính

DL - Học vấn số hóa phổ thông: Các kỹ năng cơ bản, tối thiểu cần có trong thời đại số hóa, ví dụ: Kỹ năng sử dụng chuột, gõ bàn phím; Soạn thảo văn bản, bảng tính, trình chiếu; Khai thác Internet Sử dụng thư điện tử và mạng xã hội

Theo tôi việc phân loại, định hướng kiến thức của môn Tin học trong nhà trường theo 3 nhóm như trên là một phát triển đột phá trong việc định hình lại môn Tin học trong nhà trường Trong chương trình Giáo dục Phổ thông mới của Bộ GD &

Trang 4

Đ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ục Phổ 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ân tách thành 3 hướng kiến thức (phân môn) chính:

1 Khoa học máy tính (CS - Computer Science)

2 CNTT và ứng dụng (IT - Information Technology)

3 Kỹ năng số hóa phổ thông (DL - Digital Literacy)

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 nay vẫn đang giảng dạy, do đó sẽ không có gì bỡ ngỡ Riêng hướng CS là hoàn toàn mớ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ổ

thông

IT - Ứng dụng CNTT và truyền thông

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

vụ yêu cầu Ví dụ đồ họa, phim, ảnh, ứng dụng trong các công việc đời sống

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

Đây là những kỹ năng,

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

2 Nhóm các ứng dụng

CNTT, truyền thông bên trong ICT

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

Khoa học máy tính

CS

Kỹ năng số hóa phổ thông

Ứng dụng CNTT - truyền thông

Trang 5

DL - Học vấn số hóa phổ

thông

IT - Ứng dụng CNTT và truyền thông

CS - Khoa học máy tính

lực phân tích, mô phỏng và giải quyết vấn đề

Trong tương lai, những

kiến thức này sẽ chỉ được

có nhóm 2 và sẽ định hướng cho nghề Tin học ứng dụng

Đâ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ên tục cho các bậc học tiếp theo

Có thể mô tả bảng trên theo sơ đồ sau:

Có thể so sánh 3 nhánh kiến thức của môn Tin học theo sơ đồ trên với các sơ dồ sau của môn Toán và Ngữ văn - tiếng Việt

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 rõ điều này khi giảng dạy Các chuyên gia thiết kế chương trình môn

DL - Học vấn số

hóa phổ thông

Kỹ năng tối thiểu

cho mỗi công dân

trong 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áy tính, giải quyết vấn đề

Bảng chữ

cái, học đánh vần

Đọc hiểu

Ngữ pháp, ngôn ngữ, cảm thụ văn học

Trang 6

Tin 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ình thiế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 IT - CNTT và ứng dụng

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

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ực khá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

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ông phục vụ cho việc giải quyết vấn đề 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 đề, …

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

đề

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

4 - Hoàn toàn phụ thuộc vào công nghệ, dễ thay đổi 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ể

5 - Không có hệ thống lý thuyết độc lập, tất cả đều phụ thuộc và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

IT - CNTT và ứng dụng CS - Khoa học máy tính

Hệ thống máy

tính

Hệ thống máy tính được sử dụng như thế nào

Hệ thống máy tính được hoạt động, làm việc như thế nào

Đối tượng Con người là trung tâm của

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

Trang 7

IT - CNTT và ứng dụng CS - Khoa học máy tính

Sử dụng sản

phẩm

Nhấn mạnh việc lựa chọn, đánh giá sử dụng phần mềm trong công việc

Nhấn mạnh đến các nguyên lý

và kỹ thuật của hệ thống, phần mềm Lập trình luôn đóng vai trò trung tâm của các vấn đề quan tâm

Tư duy hệ

thống

Hệ thống ứng dụng CNTT 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

chung

Định hướng ứng dụng, nghề nghiệp

Định hướng chuyên nghiệp, hàn lâm

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ình LOGO, 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 cứng máy tính Mô hình tư duy này sẽ cung cấp các khung kiến thức để giải quyết các bài toán, vấn đề nảy sinh Đi cùng mô hình tư duy này là 1 tập hợp các

Trang 8

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 lực phân tí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ập trì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ần củ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ên má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ống nhà 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ự động hó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 9

2010-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ách mạ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ạy mớ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ấn mạnh đến tầm quan trọng đặc biệt của 4 chuyên ngành trên trong sự phát triể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ích hợ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

- 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

- 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

- 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

- Khoa học máy tính yêu cầu và có liên quan rất nhiều đến sự hiểu biết, ứng dụng,

đánh giá các công nghệ của nhiều chuyên ngành khác nhau

Trang 10

Hơ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ực STEM khác như chúng ta vẫn biết rõ điều đó Có thể nói tư duy máy tính, các nguyê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ên má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 tốt nhất

Vì sao lại có thể khẳng định Scratch là môi trường lập trình hỗ trợ giáo dục STEM tốt nhất?

Như chúng ta đã biết, điểm cốt lõi cơ bản nhất của giáo dục STEM là vừa học vừa làm, thực hành làm ra các sản phẩm cụ thể, từ đó nâng cao sự đam mê, yêu thích môn học của mình

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ình là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 bài tập, mở rộng này trong tương lai

Trang 11

Chủ đề 1 Một số nguyên tắc và qui trình thiết kế phần mềm Mục tiêu:

- Giới thiệu một số nguyên tắc thiết kế phần mềm, trò chơi trên Scratch

- Mô tả các bước thiết kế 1 chương trình phần mềm hoàn chỉnh

Chủ đề 1 sẽ trình bày một số nguyên tắc, và đặc biệt trình bày, đưa ra 1 qui trình thiết kế phần mềm bằng Scratch Có 4 qui trình quan trọng nhất của việc thiết kế phần mềm là:

- Viết kịch bản phần mềm

- Thiết kế nhân vật

- Thiết kế bộ dữ liệu hệ thống

- Lập trình

Để 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

Mục tiêu:

- Giới thiệu nhanh khái niệm và một số kỹ thuật lập trình với Clone trong Scratch

- Ứng dụng kỹ thuật Clone trong việc thiết kế phần mềm, trò chơi giáo dục

Chủ đề này nhắc lại các kiến thức, kỹ thuật chính liên quan đến Clone (phân thân) Clone có lẽ đóng vai trò trung tâm nhất của toàn bộ quá trình thiết kế phần mềm Nội dung của chủ đề này được lấy chủ yếu từ cuốn sách TỰ HỌC LẬP TRÌNH SCRATCH mà tôi đã viết trước đây

Chủ đề 3 Các công cụ và kỹ thuật thiết kế phần mềm

Mục tiêu:

- 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

- 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:

- Kỹ thuật đếm điểm số, do thời gian

- Kỹ thuật hiển thị số lần chơi

- Kỹ thuật hiển thị số hoặc chữ lớn

- 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:

- 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

Chủ đề này sẽ bắt đầu thực sự thiết kế chi tiết một số phần mềm quen thuộc và tiêu biểu Hầu hết các phần mềm trong chủ đề này đều đã được giới thiệu trong

Trang 12

cuố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à:

- Bút vẽ tự do và nâng cao

- Flappy Bird

- Kỹ thuật bắn súng

- Tham quan bảo tàng

- Trò chơi đoán từ Hangman

- 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ủ đề:

- Di chuyển chuột

- Nháy chuột

- Kéo thả chuột

- 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:

- Một số thuật toán chính biến đổi số trong các hệ đếm khác nhau

- 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

- 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ân môn khoa học máy tính của môn Tin học Các chủ đề cụ thể bao gồm:

- 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

- Các thuật toán sắp xếp và phần mềm mô phỏng sắp xếp

Trang 13

- 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:

- Thiết kế một số phần mềm hỗ trợ học và dạy môn Toán

- 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ạng toá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:

- Thiế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

- Thiế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 15

MỤ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

Nội dung chính 54

1 Một số đặc điểm của phần mềm trò chơi 54

Trang 16

2 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

4 Mô phỏng sắp xếp (loại 2) 211

Trang 17

5 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

7 Mô phỏng sắp xếp (loại 4) 233

Câu hỏi - Bài tập - Mở rộng 238

Chủ đề 7 Phần mềm hỗ trợ học Toán 242

Nội dung chính 242

1 Trò chơi điền số vào dãy, vào bảng 242

2 Trò chơi tìm số 255

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

Chủ đề 8 Phần mềm hỗ trợ học Khoa học 282

Nội dung chính 282

1 Mô phỏng đồng hồ và lịch 282

2 Các bánh xe quay 292

3 Bánh xe lăn trên đường thẳng 294

4 Bánh xe quay trong vòng tròn 296

5 Bánh xe lăn trên đường cong bất kỳ 299

6 Mô phỏng bắn súng 305

7 Mô phỏng Bi-a 312

Câu hỏi - Bài tập - Mở rộng 320

PHỤ LỤC: CÁC TẬP LỆNH SCRATCH 322

1 Nhóm câu lệnh Move 322

2 Nhóm câu lệnh Look 323

3 Nhóm câu lệnh Sound 325

4 Nhóm câu lệnh Pen 326

5 Nhóm câu lệnh Variable 327

6 Nhóm câu lệnh Event 328

7 Nhóm câu lệnh Control 330

8 Nhóm câu lệnh Sensing 331

9 Nhóm câu lệnh Operators 334

10 Nhóm lệnh More Blocks 335

Tài liệu tham khảo 337

Trang 19

Chủ đề 1

Một số nguyên tắc và qui trình thiết kế phần mềm Mục tiêu:

- Giới thiệu một số nguyên tắc thiết kế phần mềm, trò chơi trên Scratch

- Mô tả các bước thiết kế 1 chương trình phần mềm hoàn chỉnh

A 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ủa câ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 Hay cá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:

- 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 động chính, các chức năng chính, nêu được mục đích và đối tượng sử dụng của chương trình

- 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

- 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

B Đạ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ịch bả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à:

- Xá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à người quyết định thiết lập 3 nhân vật độc lập hay chỉ dùng 1 nhân vật với 3 clone

để thể hiện

Trang 20

- Thiế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

- Tìm kiếm âm thanh sẽ được sử dụng trong chương trình

- Quản trị toàn bộ chương trình, kiểm tra, kiểm thử, sửa lỗi trong suốt quá trình thiết kế chi tiết và lập trình

- Quyết định thời điểm chương trình hoàn thành và nghiệm thu

C 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:

- Thiết kế các biến nhớ và dữ liệu tổng thể

- Phân rã chương trình

- Tổng quát hóa và trừu tượng hóa các mô hình: nhân vật, sự kiện, hành động

- Thiết kế sơ đồ quan hệ giữa các nhân vật và nền sân khấu

- Chuẩn bị các thuật toán cần thiết cho các bài toán con đã được phân rã

D Người lập trình (coding) cụ thể

Cuối cùng là người lập trình (coding) cụ thể Người lập trình sẽ phải tuân thủ tất

cả các đề nghị, yêu cầu và kiểm soát bởi 3 người phía trên

2 Các bước thiết kế phần mềm

Trong mục này sẽ mô tả chi tiết các bước cần thực hiện của công việc thiết kế phần mềm Các công việc này là nhiệm vụ của người đạo diễn (B) và người thiết

kế hệ thống (C) ở phần trên

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ếp cậ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

- Với từng nhân vật, nhóm nhân vật, có dùng Clone hay không? Nếu dùng Clone thì sẽ triển khai như thế nào?

- 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

- 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ác hì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 21

ngườ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

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

3 Sơ đồ 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ình thiế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

- 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)

- 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

- 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

- 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ập trì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ềm của bài học này

Trang 22

4 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

Ý 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:

- Quan sát hình ảnh đoán tên con vật

- Đọc mô tả đoán tên con vật

- 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

- 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

- Bên dưới sẽ hiện 4 đáp án trong đó có 1 đáp án đúng

Trang 23

- Người dùng cần làm bài bằng cách nháy chuột lên một trong các nút có chữ A,

B, C, D ở phía dưới mỗi đáp án

- Nếu làm đúng, Giáo viên sẽ thông báo "Đúng rồi" (có thể có âm thanh kèm theo)

và sau đó Giáo viên hiển thị thông tin mô tả con vật này để người chơi biết thêm thông tin Sau khi dừng 2 giây, Giáo viên sẽ hỏi câu tiếp theo

- 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

(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ần thiế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 bảng

dữ liệu chính:

Animal và Animal_list

Hệ thống sân khấu và nhân vật tham gia hoạt động trong bài toán này: nhân vật chính, thầy giáo, 4 nút phương án và sân khấu

Tim hieu con

chương trình

Hình ảnh con vật chính của câu hỏi trắc nghiệm

Các phương án cần chọn Nút lựa chọn đáp án

Trang 24

(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

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

Nhân vật Giáo viên chính, đóng vai trò MC của chương trình

Các nút lệnh, mỗi nút lệnh là 1 nhân vật

(3) 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

Giá trị nhận được từ 1 đến

4

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ậy người dùng làm bài đúng

khi và chỉ khi choice = PA_correct

List Animals,

Animal_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à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ổ sung vào 2 bảng này và bổ sung trang phục tương ứng cho

Animal

PA_list 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

PA_list được sinh ngẫu nhiên bằng cách lấy ra 4 chỉ

số ngẫu nhiên trong khoảng 1->length(Animalss)

Trang 25

(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

Có thể mô tả bằng lời Sơ đồ thiết kế hoạt động của chương trình như sau:

- Thô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à:

+ 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

+ MC ra câu hỏi: đây là con gì

+ Nhân vật Animal chuyển trang phục sang số thứ tự con vật tương ứng

- Sau 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

- Thô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

- Sau đó Giáo viên gửi thông điệp Next để bắt đầu lại câu hỏi mới

Hiển thị câu hỏi: Đây là con gì? Khi người dùng click chuột, nạp

lựa chọn vào biến nhớ choice và gửi thông điệp Done

Trang 26

2 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

- Thiế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ẫu nhiê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

- 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

- Sau khi sinh xong các bộ dữ liệu trên thì việc tiếp theo là hiển thị con vật giữa màn hình cho đúng câu hỏi

đi khỏi dãy Temp_list

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ỉ số lấy từ PA_list

Trang 27

4 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

- Nếu đúng, GV thông báo đúng rồi, sau đó hiển thị thông tin mô tả của con vật tương ứng

- Nế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

Ý 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án chỉ 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

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 được hiện trên màn hình với các số thể hiện bằng đồ họa

Chương trình

Math Board

Math Board.sb2

Trang 28

Ngườ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

vật, nút

lệnh

Nhân vật Mô tả ý nghĩa

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ình nà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 -

Sai

Nút thể hiện thông báo Đúng / Sai trên màn hình

(3) 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

N1, N2 Giá trị 2 số tự nhiên là đầu

vào của phép tính cần thực hiện của phần mềm

Các số đầu vào của bài toán sẽ được sinh ngẫu nhiên

Trang 29

Biến nhớ Ý nghĩa Ghi chú thêm

op Giá trị mô tả phép toán

= 1, phép cộng

= 2, phép trừ

Tham số này có thể mở rộng lên cho cả các phép tính nhân, chia

Hiển thị đáp án của người dùng nhập

Hiển thị đáp

án đúng bên dưới

Hiển thị nút Check

Ẩn nút

Kiểm tra Đúng/ Sai và hiển thị trang phục tương ứng

Nếu sai, gửi thông

điệp ShowCorrect

Trang 30

Stt Sự kiện -

Thông điệp

Người thực hiện

Công việc cần thực hiện

Next

- Sinh ngẫu nhiên bộ dữ liệu phép toán gốc:

op, N1, N2

- 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ên mà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ể

1 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

số này)

Trang 31

2 Hoạ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

3 Xử 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án gố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à -

Chú ý: Dữ liệu N1, N2 được sinh trong ví dụ trên là các bài tập tính +, - bất kỳ (có nhớ) trong phạm vi 3 chữ số)

4 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 thể hiện 2 số N1, N2 trên màn hình:

Biến op nhận giá trị 1 hoặc 2

Sinh ngẫu nhiên N1, N2 sao cho N1 + N2 < 1000

Sinh ngẫu nhiên N1 trong khoảng [200, 900], N2 từ [50, N1-50] do đó N1-N2 sẽ luôn > 50

Đ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

Trang 32

- Đồ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ệu người dùng

nhập sẽ được đưa vào biến nhớ UserNumber, sau đó gửi thông điệp InputDone

5 Xử 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

6 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

7 Xử 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

Nút chỉ hiển thị khi nhận thông điệp

Sau đó ẩn đi và gửi thông điệp

CheckDone để kích hoạt nút thông

báo Đúng/Sai

Trang 34

Câu hỏi - Bài tập - Mở rộng

1 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

2 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:

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ếu ngườ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:

- 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

- Với các phép toán, bộ dữ liệu ban đầu được sinh ngẫu nhiên như sau:

+ Phép cộng: sinh 2 số ngẫu nhiên có 2 hoặc 3 chữ số, nhưng tổng số < 1000 + Phép trừ: trừ 2 số tự nhiên ngẫu nhiên có 2 hoặc 3 chữ số

+ Phép nhân: nhân 1 số có 2, 3 chữ số với số có 1 chữ số, tích < 1000

+ 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

4 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

- Nếu kéo thả không đúng (chưa tới hoặc nhầm) thì con vật sẽ kêu "Ối ối" và chạy

về chỗ cũ

Loài vật nuôi trong nhà rất phổ biến trong mọi

gia đình Đó là con gì?

Trang 35

- 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á"

- Trò chơi kết thúc khi người chơi kéo thả đúng cả 3 con Mèo, Khỉ, Ngựa

5 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à Thức ăn

- Mỗi nhân vật này có 1 dãy các trang phục tương ứng với các con vật và thức ăn của chúng Giao diện chương trình tương tự bài trên nhưng các con vật và thức ăn lấy ngẫu nhiên từ dãy các trang phục của 2 nhân vật chính trên Quá trình thực hiện trò chơi tương tự bài trên

Trang 36

Chủ đề 2

Clone và một số kỹ thuật xử lý Clone Mục tiêu:

- Giới thiệu nhanh khái niệm và một số kỹ thuật lập trình với Clone trong Scratch

- Ứng dụng kỹ thuật Clone trong việc thiết kế phần mềm, trò chơi giáo dục

Nội dung chính

Clone - phân thân là 1 công nghệ rất đặc biệt của Scratch và có rất nhiều ứng dụng trong các bài toán thiết kế phần mềm, trò chơi trong Scratch

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ân vậ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 được

2 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

Chúng ta cùng xem đoạn chương trình của nhân vật chính con mèo

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)

Có là nhân vật không?

Cửa sổ lệnh riêng?

với nhân vật gốc

Chịu sự điều khiển của các lệnh Scratch

Nhân vật chính, gốc Nhâ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 của nhân

Trang 37

Là nhân vật phân thân từ 1 nhân vật gốc, được khởi tạo bởi lệnh

create clone of Clone sau khi

được tạo ra sẽ có đầy đủ tính chấ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 Clone không hoạt động vĩnh viễn

Khởi tạo

Clone

Nhân vật chính dùng lệnh

để tạo Clone Có thể tạo Clone của mình hoặc của các nhân vật khác

Chú ý: Sân khấu cũng có quyền tạo Clone cho mọi nhân vật

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ật gốc Clone là 1 phân thân của nhân vật gốc và có mọi thuộc tính của nhân vậ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ân vậ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ình thường Điểm khác biệt chỉ ở chỗ:

- 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

- Bản thân clone có thể xóa chính mình

Trang 38

Chúng ta cùng xét 1 ví dụ sau Ví dụ này minh họa cho quan hệ giữa nhân vật

chính và các phân thân - clone của chính mình

Chương trình cụ thể trên Scratch như sau:

Tạo 1 biến nhớ riêng có tên CloneID của nhân vật chính Chương trình sẽ lần lượt tạo ra 3 clone, và trước mỗi lần tạo

sẽ gán giá trị CloneID lần lượt là 1, 2,

3 Các clone này sẽ kế thừa biến nhớ CloneID cho riêng mình với các giá trị lần lượt là 1, 2, 3 Khi tạo ra, các clone

sẽ di chuyển ngẫu nhiên, tự do trên màn hình và luôn hiện giá trị CloneID của riêng mình để phân biệt với các clone khác

Chương trình chính:

Sau mỗi giây, tăng CloneID lên 1 đơn

vị và tạo 1 Clone mới của Mèo Clone

mới này sẽ mang giá trị biến CloneID

tương ứng bằng 1, 2, 3 Giá trị này sẽ

gắn với từng Clone và không thay đổi

nữa Sau khi tạo xong 3 Clone thì nói

"tôi không là Clone"

Chương trình cho mỗi Clone:

Khi được sinh ra, mỗi Clone

sẽ đọc CloneID của riêng mình và sau đó chạy xung quanh sân khấu, sau mỗi 0.1 giây thì thay đổi màu áo của mình

Trang 39

Clone có ý nghĩa gì trong các ứng dụng thực tế của Scratch, chúng ta cùng tìm hiểu các hoạt động tiếp theo

2 Rừng hoa

Chương trình đơn giản sau cho em hiểu thêm hoạt động của clone

Chương trình đơn giản này chỉ có đúng 1 nhân vật là bông hoa, nhưng với nhiều hình ảnh đẹp mắt khác nhau

Mục đích của chương trình là tạo ra 1 rừng hoa với nhiều màu sắc sặc sỡ

Để làm như vậy, em cần sưu tầm nhiều hình ảnh hoa với màu sắc đa dạng khác nhau và đưa vào thành các trang phục của nhân vật này

Chương trình được xây dựng đơn giản như sau:

- Nhân vật chính bông hoa cần tạo ra nhiều hình ảnh khác nhau nhưng có kích thước gần giống nhau làm trang phục Ví dụ:

- Trong mạch chương trình chính, em cho bông hoa lần lượt tạo ra 50 clone của chính mình

- Mỗi phân thân, clone sẽ di chuyển nhanh tới 1 vị trí ngẫu nhiên trên màn hình với thể hiện trang phục ngẫu nhiên

Thiết lập các hình bông hoa có kích thước gần giống nhau và màu sắc đa dạng khác nhau

Dãy các trang phục (costume)

được đánh số từ 1

Lệnh này sẽ tạo ra 50 bản clone của nhân vật chính Các phân thân clone này khi tạo ra có trang phục và khuôn dạng giống với nhân vật chính và ở tại đúng vị trí của nhân vật chính (nhưng nằm phía dưới)

Rung hoa.sb2

Trang 40

3 Hai chú mèo sinh đôi

Giả sử chúng ta có 1 chương trình mà Mèo mẹ sinh ra 1 cặp mèo sinh đôi Hai chú mèo này, một có tên "Mèo vàng", một có tên "Mèo đen" Chương trình sử dụng công nghệ Clone để từ 1 nhân vật ban đầu tạo ra 2 Clone tương ứng với cặp mèo sinh đôi như hình dưới đây

Giả sử chúng ta cần thiết lập 2 clone của nhân vật Mèo mẹ này, nhân vật 1 (ID=1)

có tên là Mèo vàng, nhân vật 2 (ID=2) có tên là Mèo đen Để thực hiện được những việc trên chúng ta sẽ thiết lập 2 biến riêng (local) của nhân vật chính là ID

và Name ID dùng để chỉ số thứ tự các clone, biến Name để lưu trữ tên của các Clone được khởi tạo Khi bắt đầu chương trình, các biến nhớ riêng được gán giá trị ban đầu là ID = 0, Name = (empty) Đoạn chương trình sau sẽ tạo Clone đầu tiên

Chú ý khi Clone đầu tiên tạo ra sẽ kế thừa và có giá trị ID = 1 và Name = "Mèo vàng"

Sau đây là các đoạn chương trình thiết lập ban đầu

Yêu cầu của chương trình: khi nháy chuột lên nhân vật thì nhân vật sẽ nói và kêu lên, ví dụ: Tôi là Mèo vàng / Mèo đen

Thiết lập thêm 2 trang phục cho nhân vật chính của chương trình với tên Mèo vàng, Mèo đen

Đoạn chương trình tạo Clone đầu tiên, đặt ID = 1 và Name = Mèo vàng

Hai chu meo

sinh doi.sb2

Ngày đăng: 30/08/2017, 05:33

Nguồn tham khảo

Tài liệu tham khảo Loại Chi tiết
[7]. CS unplugged. Giảng dạy khoa học máy tính không cần máy tính. http://www.csunplugged.org Link
[12]. Trang chính của Scratch. https://scratch.mit.edu/ Link
[13]. Computing at School, The Raspberry Pi Education Manual (CAS, 2012). http://pi.cs.man.ac.uk/download/Raspberry_Pi_Education_Manual.pdf [14]. Scratch Programming For Teens. Jerry Lee Ford, Jr Link
[18]. Computer Science: A curriculum for schools. http://www.computingatschool.org.uk/ Link
[1]. Computing in the national curriculum. A guide for primary teachers Khác
[2]. Computing in the national curriculum. A guide for secondary teachers Khác
[3]. Learn to Program with Scratch. Majed Marji Khác
[4]. Scratch 2.0 Game Development. Sergio van Pul, Jessica Chiang Khác
[8]. Chương trình, chuẩn kiến thức môn Tin học. NXBGD, Hà Nội, 2000 Khác
[9]. Chương trình giáo dục phổ thông tổng thể trong chương trình giáo dục phổ thông mới. Tài liệu chính thức Bộ Giáo dục và Đào tạo, 2015 Khác
[17]. Computational thinking. A guide for teachers. Andrew Csizmadia, Simon Humphreys, National Coordinator, Computing At School Khác
[19]. K12-Computer Science Framework Khác
[20]. Lịch sử phát triển môn Tin học ở Việt Nam. CS4S số 3 (2017) Khác
[21]. Đề cương khung chương trình môn Tin học của Anh quốc (bản mới). CS4S số 1 (2017) Khác
[22]. Hiểu và đi trong cách mạng công nghiệp lần thứ tư. Hồ Tú Bảo. 2017 Khác
[23]. Tự học lập trình Scratch. Bùi Việt Hà Khác
[24]. Scratch for beginners. Bùi Việt Hà Khác
[25]. 20 bài tập lập trình Scratch. Bùi Việt Hà Khác
[26]. Introduction to Algorithms. Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest, and Clifford Stein.[27] Khác

TỪ KHÓA LIÊN QUAN

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

TÀI LIỆU LIÊN QUAN

w