35
2017 Lch smôn Tin hc ca Vit Nam Scratch: Đề ra knày

2017 - dulieu.itrithuc.vn...các máy tính này là bắt đầu có hệ điều hành chạy như 1 phần mềm độc lập. Thời kỳ này khoa học máy tính đã phát

  • Upload
    others

  • View
    3

  • Download
    0

Embed Size (px)

Citation preview

Page 1: 2017 - dulieu.itrithuc.vn...các máy tính này là bắt đầu có hệ điều hành chạy như 1 phần mềm độc lập. Thời kỳ này khoa học máy tính đã phát

2017

Lịch sử môn Tin học của Việt Nam

Scratch:

Đề ra kỳ này

Page 2: 2017 - dulieu.itrithuc.vn...các máy tính này là bắt đầu có hệ điều hành chạy như 1 phần mềm độc lập. Thời kỳ này khoa học máy tính đã phát

2 | C S 4 S 3 ( 5 ) - 2 0 1 7

LỊCH SỬ MÔN TIN HỌC CỦA VIỆT NAM

Bùi Việt Hà, Công ty Công nghệ Tin học Nhà trường

I. LỊCH SỬ ĐƯA TIN HỌC VÀO NHÀ TRƯỜNG VIỆT NAM

Như chúng ta đã biết những chiếc máy tính thực sự đầu tiên trên thế giới ra đời vào

những năm 1950 của thế kỷ trước. Các máy tính điện tử thế hệ đầu tiên sử dụng bóng

điện tử và công nghệ analog. Thời kỳ đó chắc chắn không phải sinh viên nào học

chuyên ngành này cũng có thể tiếp cận được những chiếc máy đó. Mỗi máy tính thời

kỳ đó to như 1 tòa nhà. Ngành khoa học liên quan đến máy tính thì xuất hiện trước

đó.

Vào những năm 70 của thế kỷ trước bắt đầu xuất hiện những máy tính mini (hay còn

gọi là mainframe). Các máy tính này nhỏ hơn (như 1 cái bàn nhỏ). Điểm đặc biệt của

các máy tính này là bắt đầu có hệ điều hành chạy như 1 phần mềm độc lập. Thời kỳ

này khoa học máy tính đã phát triển rất mạnh trong rất nhiều các trường đại học trên

thế giới. Tại Việt Nam các trường đại học lớn như BKHN đã có các khoa toán tinh,

toán điều khiển. Máy tính mainframe IBM đã có trong 1 số cơ sở tại Sài Gòn.

Thời điểm quyết định nhất là vào đầu những năm 1980 khi chiếc máy tính PC đầu tiên

ra đời với hệ điều hành DOS. Lần đầu tiên mỗi người dân được nhìn thấy và có thể sử

dụng các máy tinh của riêng mình. Cũng vào thời kỳ này khoa học máy tính đã phát

triển rực rỡ, các hệ thống mạng máy tính ra đời đã kết nối tất cả các máy tính lớn trên

toàn thế giới. Thời kỳ này cũng xuất hiện những ngôn ngữ lập trình bậc cao phù hợp

cho việc dạy cho HS phổ thông như Basic, Algol, Pascal, C. Và người ta bắt đầu nghĩ

đến việc đưa tin học xuống nhà trường phổ thông. Tại Việt Nam học sinh các lớp

chuyên toán bắt đầu được làm quen và học lập trình Pascal.

Năm 1989, lần đầu tiên thế giới tổ chức cuộc thi IOI - thi Olympic Tin học quốc tế lần

thứ nhất. Việt Nam có 3 học sinh tham gia và ngay lập tức có 1 giải nhì. Các năm tiếp

sau đó Việ Nam đều tham gia và có giải IOI. Một trong các em học sinh đạt giải 3 IOI

những năm đó nay là Hiệu trưởng trường Đại học Công nghệ, ĐHQGHN.

Vào những năm 1990, Bộ GD&ĐT bắt đầu tổ chức viết SGK tin học cho cấp THPT.

Ban đầu chỉ có lập trình Pascal, nhưng sau đó Bộ đã nhanh chóng mở rộng ra phần

kiến thức Hệ điều hành, và sau đó bổ sung phần Cơ sở dữ liệu, Mạng máy tính và

Soạn thảo văn bản. Đầu những năm 2000, học sinh cấp THPT của Việt Nam chính

thức được học môn Tin học, không muộn hơn so với thế giới.

Vào những năm cuối thế kỷ 20, các khoa CNTT trong các trường Đại học của Việt

Nam phát triển bùng nổ. Thường là xuất phát từ khoa Toán, bộ môn Toán, sau đó đổi

thành Toán - Tin, sau đó đổi thành CNTT.

Vào khoảng năm 2000-2002, Bộ GD&ĐT đã ban hành 1 chương trình Tin học tự chọn

cho cấp THCS. NXBGD cấp tốc viết SGK và bắt đầu từ những năm 2007-2008, học

sinh cấp THCS bắt đầu được học môn Tin học (tự chọn) với các module kiến thức

tương đối rời rạc như Làm quen máy tính, hệ điều hành, soạn thảo văn bản, phần mềm

học tập, lập trình Pascal, mạng Internet và trình chiếu.

Page 3: 2017 - dulieu.itrithuc.vn...các máy tính này là bắt đầu có hệ điều hành chạy như 1 phần mềm độc lập. Thời kỳ này khoa học máy tính đã phát

3 | C S 4 S 3 ( 5 ) - 2 0 1 7

Khoảng năm 2008-2010, SGK Tin học cho Tiểu học ra đời như 1 môn học tự chọn với

các module kiến thức như làm quen máy tính, tập chuột, học gõ bàn phím bằng 10

ngón, học vẽ, học soạn thảo, phần mềm học tập, LOGO, ....

Như vậy cho đến hiện nay môn Tin học đã phủ kín toàn bộ các cấp học từ Tiểu học,

THCS, THPT nhưng vẫn là những module rời rạc, không liên thông vì chưa là môn

học bắt buộc với cấp 1 và 2. Các nhược điểm này không chỉ có ở Việt Nam mà có ở

tất cả các nước trên thế giới. Theo 1 công bố của Bộ GD Anh quốc nếu cứ tiếp tục dạy

Tin học như hiện nay thì nên đóng cửa môn Tin học lại.

Vào khoảng năm 2010-2012, một số nhà giáo dục tại Anh và Mỹ đã đề xuất 1 chương

trình cải cách triệt để việc dạy Tin học trong nhà trường. Có thể nói việc cải cách này

như 1 cuộc cách mạng. Theo cách thay đổi này, môn Tin học sẽ có 1 cái tên mới, nội

dung mới, liên thông, chặt chẽ, logic, xuyên suốt từ lớp 1 đến lớp 12.

II. CẤU TRÚC VÀ NỘI DUNG MÔN TIN HỌC HIỆN THỜI

Như vậy cho đến khoảng năm 2008, môn Tin học trong nhà trường Việt Nam đã hình

thành 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 là:

Tiểu học THCS THPT

Cấu trúc máy tính.

Tập chuột, tập gõ bàn

phím.

Học vẽ.

Học nhạc.

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

LOGO

Phần mềm học tập.

Máy tính, hệ điều hành.

Mạng Internet.

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

Bảng tính.

Trình chiếu.

Lập trình Pascal.

Phần mềm học tập.

Máy tính, hệ điều hành.

Mạng máy tính. Mạng

Internet.

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

Lập trình Pascal.

CSDL Access.

Lưu ý rằng chương trình môn học này tại các nước khác trên thế giới cũng gần tương

tự như vậy.

Trong 1 tài liệu của các chuyên gia giáo dục Anh quốc (cuốn shutdown or restart), các

tác giả đã phân tích sự tụt hậu của chương trình môn Tin học tại nước Anh như sau

(tóm tắt):

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

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

Page 4: 2017 - dulieu.itrithuc.vn...các máy tính này là bắt đầu có hệ điều hành chạy như 1 phần mềm độc lập. Thời kỳ này khoa học máy tính đã phát

4 | C S 4 S 3 ( 5 ) - 2 0 1 7

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

Chú thích thêm:

- Tại nước Anh tên môn học này gọi là ICT và được coi là 1 cái tên không hợp lý vì

nó rất dễ nhầm lẫn với tên 1 hệ thống thông tin.

- Riêng ở VN, môn Tin học trong suốt thời gian qua là môn phụ, không 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 là công nghê liên quan đến CNTT, ICT phát triển quá nhanh, trong khi 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 HS 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.

2. IT (infomation technology): CNTT và ứng dụng.

3. 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.

IT - CNTT và ứng dụng: 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ố. Ví dụ đồ họa, phim, ảnh, ứng dụng trong các công việc đời sống.

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.

Chú ý: Trong 3 hướng trên chỉ có CS là nội dung có tính khoa học chặt chẽ nhất, liên

thông, liên tục, không bị lạc hậu nhanh với công nghê. Cũng theo sách trên, CS phải là

hướng trọng tâm nhất, quan trọng nhất trong định hướng môn Tin học tương lai.

Chúng ta cùng phân loại lại các nội dung đã có trong chương trình môn Tin học hiện

nay:

1. Tiểu học

Cấu trúc máy tính (IT).

Tập chuột, tập gõ bàn phím (DL).

Page 5: 2017 - dulieu.itrithuc.vn...các máy tính này là bắt đầu có hệ điều hành chạy như 1 phần mềm độc lập. Thời kỳ này khoa học máy tính đã phát

5 | C S 4 S 3 ( 5 ) - 2 0 1 7

Học vẽ (IT).

Học nhạc (IT).

Soạn thảo văn bản (DL).

LOGO (CS).

Phần mềm học tập (IT)

2. THCS

Máy tính, hệ điều hành (CS).

Mạng Internet (DL).

Soạn thảo văn bản (DL).

Bảng tính (DL).

Trình chiếu (DL).

Lập trình Pascal (CS).

Phần mềm học tập (IT).

3. THPT

Máy tính, hệ điều hành (CS).

Mạng máy tính. Mạng Internet (DL).

Soạn thảo văn bản (DL).

Lập trình Pascal (CS).

CSDL Access (IT).

Như vậy trong chương trình môn Tin học hiện nay, phần lớn kiến thức được dạy cho

HS là mảng IT và DL, mảng kiến thức lõi nhất là CS hầu như không có. Điều này lý

giải vì sao môn Tin học không trở thành môn học quan trọng và hấp dẫn HS và GV

như thời gian qua.

Nhưng liệu có thể thay đổi được điều đó trong tương lai không? Câu trả lời sẽ có trong

các phần tiếp theo.

III. Môn Tin học sẽ phải thay đổi như thế nào

Chúng ta đã biết định hướng kiến thức môn Tin học trong tương lai được chia làm 3

nhóm sau:

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 phần trước tôi cũng phân tích chương trình môn Tin học hiện nay so sánh với 3

định hướng trên, qua đó sơ bộ đánh giá những điểm tụt hậu của chương trình môn Tin

học hiện nay.

Page 6: 2017 - dulieu.itrithuc.vn...các máy tính này là bắt đầu có hệ điều hành chạy như 1 phần mềm độc lập. Thời kỳ này khoa học máy tính đã phát

6 | C S 4 S 3 ( 5 ) - 2 0 1 7

Bây giờ chúng ta sẽ cùng nhau phân tích và tìm hiểu sâu hơn về 3 nhóm (hướng, phân

loại) nội dung trên. Từ đó sẽ xác định được hướng đi của môn Tin học trong tương lai.

Các phân tích sau đây không phải là mặc định tự nhiên có, mà nó được tích lũy, định

hình sau 1 thời gian dài triển khai giảng dạy môn Tin học trên thực tế. Việc phát hiện

và tách nội dung kiến thức môn Tin học thành 3 hướng như trên (CS, IT, DL) là:

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

Có thể hiểu đơn giản Kỹ năng số hóa phổ thông (DL) là các kỹ năng cơ bản giúp học

sinh có thể sử dụng máy tính và các thiết bị máy tính tương ứng một cách an toàn,

hiệu quả. Nếu so sánh với môn học tiếng Việt (hay ngoại ngữ) chẳng hạn thì DL sẽ

tương ứng với các kỹ năng đọc, viết tối thiểu ban đầu. Còn nếu so sánh với môn Toán

thì DL sẽ là các kỹ năng đọc, đếm số cơ bản.

Vậy có thể liệt kê các kỹ năng tối thiểu cần có của mỗi học sinh đối với môn Tin học

sẽ là:

- Kỹ năng thực hành chuột, gõ bàn phím.

- Kỹ năng sử dụng máy tính đơn giản.

- Kỹ năng soạn thảo văn bản.

- Kỹ năng trình chiếu.

- Kỹ năng dùng bảng tính để thiết lập dữ liệu đơn giản.

- Kỹ năng tra cứu Internet, nhận và gửi thư điện tử.

- Kỹ năng sử dụng các dịch vụ mạng xã hội đơn giản.

Nhóm Kỹ năng số hóa phổ thông (DL) không phải là kiến thức mà chỉ đơn giản là

tập hợp các kỹ năng tối thiểu mà mỗi học sinh cần biết.

Các bạn lưu ý rằng những "kỹ năng" tối thiểu nêu ở trên có rất nhiều trong chương

trình môn Tin học hiện thời như là những "kiến thức" tin học cơ bản. Điều này trong

tương lai phải dần loại bỏ.

2. Sự khác nhau giữa 2 định hướng CS và IT

Chúng ta vừa tìm hiểu nhóm thứ nhất, DL - kỹ năng số hóa phổ thông. 2 nhóm còn lại

(CS, IT) thì khó phân biệt hơn vì chúng đều là những kiến thức thực sự của môn Tin

học, được dạy trên khắp tất cả các quốc gia. Để hiểu rõ hơn 2 định hướn này chúng ta

bắt đầu bằng việc so sánh giữa chúng.

2.1. So sánh định hướng nội dung giữa CS và IT

Bảng sau so sánh phần kiến thức, nội dung dự kiến của 2 hướng CS và IT. Phần nội

dung này chỉ là phác thảo tạm thời, chưa chính thức và đầy đủ. Mục đích của các bảng

này để chúng ta cảm nhận được sự khác nhau rõ rệt giữa 2 hướng nội dung này mà từ

xưa đến nay ít để ý đến.

Page 7: 2017 - dulieu.itrithuc.vn...các máy tính này là bắt đầu có hệ điều hành chạy như 1 phần mềm độc lập. Thời kỳ này khoa học máy tính đã phát

7 | C S 4 S 3 ( 5 ) - 2 0 1 7

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

Định hướng này bao gồm sử dụng một

cách hiệu quả, sáng tạo các hệ thống ứng

dụng CNTT có sẵn vào nhu cầu công

việc cụ thể. Ví dụ:

- Sử dụng các phần mềm có sẵn để tạo ra

các dữ liệu, thông tin phục vụ nhu cầu cụ

thể như học tập, vui chơi, giải trí.

- Thiết kế và cài đặt các hệ thống thông

tin dữ liệu dựa trên các ứng dụng CNTT

có sẵn để tạo ra được các hệ thống trợ

giúp công việc.

Định hướng CS trong môn Tin học được

mô tả bởi các tính chất quan trọng sau:

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.

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

5 đặc điểm trên xác định hướng nội dung

của nhánh nội dung CS trong môn Tin

học.

2.2. So sánh định hướng tổng quát giữa CS và IT

Cả 2 hướng CS, IT đều mang ý nghĩa kiến thức cơ bản trong mô hình môn Tin học

của tương lai. Nhưng giữa chúng có sự khác biệt đáng kể, thậm chí ngược nhau, bù trừ

cho nhau. Bảng sau phác thảo sự khác nhau cơ bản đó giữa 2 hướng nội dung CS và

IT.

IT - CNTT và ứng dụng CS - Khoa học 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.

Con người là trung tâm của môn học. Máy tính là trung tâm của môn học.

Page 8: 2017 - dulieu.itrithuc.vn...các máy tính này là bắt đầu có hệ điều hành chạy như 1 phần mềm độc lập. Thời kỳ này khoa học máy tính đã phát

8 | C S 4 S 3 ( 5 ) - 2 0 1 7

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

Tập trung, quan tâm đến sự phát triển

của hệ thống hướng tới nhu cầu người sử

dụng.

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.

Quan tâm đến việc sử dụng các phần

mềm, hệ thống đã có để đáp ứng nhu cầu

hiện tại.

Quan tâm đến việc thiết kế các hệ thống,

phần mềm mới.

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.

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 ứng dụng, nghề nghiệp. Định hướng chuyên nghiệp, hàn lâm.

3. Định hướng kiến thức CS - Khoa học máy tính có tính chất STEM rất điển hình

Trong 3 định hướng trên của môn Tin học, chỉ có duy nhất CS - Khoa học máy tính

là có tính chất STEM rất điển hình. Sau đây là các lý do:

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

hoàn thiện.

- Trọng tâm của CS 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á 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.

- Khoa học máy tính là khoa học gắn liền với thực nghiệm và đo đạc số liệu một cách

khoa học.

4. Quan hệ giữa CS, IT và DL

Qua những phân tích trên chúng ta tạm thời đi đến 1 số kết luận sau:

- Nhóm DL - kỹ năng số hóa phổ thông không nằm trong danh mục kiến thức môn

Tin học, mà chỉ là những yêu cầu, kỹ năng tối thiểu nhất mà mỗi HS cần biết để có thể

bắt đầu học các kiến thức chính của Tin học một cách an toàn, hiệu quả nhất. Các kỹ

năng này cần được trang bị cho HS ngay từ cấp Tiểu học, ngay từ lớp 1, cố gắng kết

Page 9: 2017 - dulieu.itrithuc.vn...các máy tính này là bắt đầu có hệ điều hành chạy như 1 phần mềm độc lập. Thời kỳ này khoa học máy tính đã phát

9 | C S 4 S 3 ( 5 ) - 2 0 1 7

thúc trong giai đoạn THCS. HS có thể được trang bị các kỹ năng này ngoài giờ lên

lớp, ở gia đình, trong các tiết ngoại khóa.

Tuy nhiên khác với nhiều môn học khác, các kỹ năng này sẽ được học xen kẽ với các

nhóm kiến thức còn lại của Tin học.

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

- Các mạch kiến thức DL và IT có thể chồng lấn nhau, phụ thuộc vào thực tế cơ sở

vật chất máy tính trong nhà trường, thực tế triển khai và trình độ giáo viên.

5. Phân môn Khoa học máy tính (CS - Computer Science) trong môn Tin học

Như vậy chắc chắn sẽ hình thành khái niệm, hay phân môn Khoa học máy tính trong

lòng môn Tin học của tương lai.

Tương lai. kiến tức môn Tin học trong trường phổ thông sẽ được phân tách thành 3

hướng (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 sẽ làm 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.

Do vậy để có thể đáp ứng nhu cầu tương lai của môn Tin học, các giáo viên tin cần

phải thay đổi rất nhiều, tự trang bị cho mình những kiến thức cần thiết, đặc biệt với

nhánh kiến thức (phân môn) Khoa học máy tính của môn Tin học trong tương lai.

Hiện nay Bộ GD & ĐT vẫn đang hoàn thiện khung chương trình đổi mới giáo dục sau

năm 2018 nên chưa thể biết rõ cụ thể các thay đổi chi tiết của môn Tin học. Tuy vậy

căn cứ vào xu thế chung của thế giới có thể dự đoán được 1 phần những thay đổi này.

Khoa học máy tính CS

IT DL

Kỹ năng số hóa

phổ thông Ứng dụng CNTT -

truyền thông

Page 10: 2017 - dulieu.itrithuc.vn...các máy tính này là bắt đầu có hệ điều hành chạy như 1 phần mềm độc lập. Thời kỳ này khoa học máy tính đã phát

10 | C S 4 S 3 ( 5 ) - 2 0 1 7

Để các giáo viên Tin học có thể hình dung trước những gì sẽ thay đổi trong tương lai

đối với môn Tin học, tôi sẽ lược dịch nhanh khung Chương trình phân môn Khoa học

máy tính (CS - Computer Science) trong Chương trình môn Tin học hiện tại của nước

Anh. Anh là quốc gia đi tiên phong trong việc đổi mới hoàn toàn chương trình môn

Tin học theo hướng phân loại rõ ràng và đưa nội dung Khoa học máy tính vào nhà

trường phổ thông ngay từ bậc Tiểu học.

IV. KHUNG CHƯƠNG TRÌNH MÔN TIN HỌC, PHÂN MÔN

KHOA HỌC MÁY TÍNH (Anh quốc)

1. Các khái niệm chính của định hướng Khoa học máy tính

Đây là những khái niệm, thuật ngữ, định nghĩa, vấn đề chính của phân môn Khoa học

máy tính. Các vấn đề ở đây được nhóm và phân loại theo hướng chung, tổng quát. Có

5 nhóm khái niệm chính như sau.

- Ngôn ngữ, máy tính, tính toán.

- Dữ liệu số và biểu diễn dữ liệu.

- Tương tác và truyền thông.

- Thiết kế và trừu tượng hóa.

- Các mô hình mở.

Chúng ta sẽ cùng tìm hiểu chi tiết hơn các nhóm khái niệm này.

1.1. Ngôn ngữ, máy tính, tính toán

Nhóm này bao gồm các khái niệm sau:

(a) Ngôn ngữ lập trình

Ngôn ngữ lập trình ở đây được hiểu là các ngôn ngữ lập trình từ bậc thấp đến bậc cao

được sử dụng rộng rãi trên toàn thế giới hiện nay. Các chuyên gia giải quyết các bài

toán của mình bằng cách viết code chương trình trên 1 ngôn ngữ lập trình nào đó. Vậy

có thể hình dung Ngôn ngữ lập trình chính là "ngôn ngữ" của Khoa học máy tính.

Những ngôn ngữ lập trình kéo thả mới nhất như Scratch, Code.org, Snap, Kodu, …

cũng được xếp vào nhóm Ngôn ngữ lập trình.

(b) Thuật toán

Thuật toán được hiểu là các phương pháp để giải quyết vấn đề trong môi trường máy

tính, khoa học máy tính. Thuật toán được thể hiện bằng chương trình và được viết

bằng các ngôn ngữ lập trình khác nhau. Các phương pháp giải bằng thuật toán là một

trong những nội dung kiến thức quan trọng nhất của Khoa học máy tính.

(c) Máy tính toán

Máy tính toán được hiểu là các bộ máy, thiết bị trực tiếp thực hiện các công việc tính

toán, xử lý số, … Ví dụ điển hình của máy tính toán là CPU. Máy tính toán cũng có

thể được thiết lập ảo, ví dụ các Máy ảo Java, Máy tính ảo, …. Các môi trường lập

Page 11: 2017 - dulieu.itrithuc.vn...các máy tính này là bắt đầu có hệ điều hành chạy như 1 phần mềm độc lập. Thời kỳ này khoa học máy tính đã phát

11 | C S 4 S 3 ( 5 ) - 2 0 1 7

trình, chạy chương trình trực tiếp, ví dụ như Scratch, cũng được coi là các máy tính

toán.

(d) Mô hình tính toán

Có các mô hình tính toán như tính toán tuần tự (tại 1 thời điểm chỉ thực hiện được 1

lệnh) hoặc tính toán song song (tại 1 thời điểm có thể thực hiện đồng thời nhiều lệnh).

1.2. Dữ liệu số và biểu diễn dữ liệu

Một trong những thông số quan trọng của các máy tính là cách thức chúng có thể lưu

trữ và xử lý dữ liệu số lớn, nhanh, an toàn như thế nào. Các khái niệm liên quan đến

lĩnh vực này bao gồm:

- Dữ liệu được thể hiện như thế nào, ví dụ thể hiện bằng số, chữ, mẫu hình ảnh, âm

thanh, video, …

- Dữ liệu được lưu trữ và kết xuất như thế nào, ví dụ các khái niệm liên quan như nén

dữ liệu; kiểm tra lỗi; mã hóa và giải mã thông tin.

- Dữ liệu được tổ chức như thế nào, theo cấu trúc gì, ví dụ như retational database.

- Các dữ liệu, số đo analog (ví dụ nhiệt độ, áp suất, mật độ ánh sáng, âm thanh) được

biến đổi sang dữ liệu số (digital data) như thế nào.

1.3. Tương tác và truyền thông

Máy tính về bản chất là các thiết bị có tương tác hoặc là các thiết bị hỗ trợ tương tác,

truyền thông giữa người - người hoặc người - máy tính hoặc giữa các máy tính với

nhau. Các khái niệm chính trong lĩnh vực này bao gồm:

- Hầu hết các chương trình đều được xây dựng trên cơ sở các quá trình có phản ứng

(reactive processes). Cụ thể là các hành động (action) được thực hiện dựa trên sự

kiện (event). Mô hình nhỏ nhất của các quá trình này đều có mẫu chung là đầu vào

xử lý đầu ra (input process output).

- Các quá trình phản ứng như vậy được thiết kế và chạy rất khác nhau trong các hệ

thống khác nhau, có thể chạy vô hạn và cũng có thể dừng theo điều khiển.

- Máy tính và thiết bị kết nối, nói chuyện với nhau thông qua giao thức (protocols), ví

dụ TCP/IP hoặc HTTP thông qua các HTML tags.

- Dữ liệu truyền thông trên các giao thức đó có thể hỗ trợ các chuyển mạch gói và

định tuyến (packet switching and routing). Dữ liệu giao tiếp được chứng thực

(authentication) và bảo mật tính riêng tư (privacy).

- Mạng máy tính (network) là một tập hợp máy tính được kết nối để chia sẻ dữ liệu,

tài nguyên và thiết bị dùng chung. Internet là mạng máy tính toàn cầu lớn nhất hiện

nay.

1.4. Thiết kế và trừu tượng hóa

Trừu tượng hóa (abstraction) là một kỹ thuật rất cơ bản trong quá trình thiết kế, hay

được dùng trong khoa học máy tính khi cần xử lý các hệ thống lớn, phức tạp, có nhiều

tham số. Ý tưởng cơ bản của kỹ thuật trừu tượng hóa là làm ẩn đi những tham số

Page 12: 2017 - dulieu.itrithuc.vn...các máy tính này là bắt đầu có hệ điều hành chạy như 1 phần mềm độc lập. Thời kỳ này khoa học máy tính đã phát

12 | C S 4 S 3 ( 5 ) - 2 0 1 7

phụ, những công đoạn xử lý, tính toán không quan trọng, mà chỉ cần tập trung

vào các tham số chính nhất, các tính năng quan trọng nhất. Khái niệm trừu tượng

hóa và các kiến thức có liên quan sẽ là một trong những trọng tâm quan trọng của

phân môn Khoa học máy tính trong nhà trường. Chúng ta hãy cùng xét chi tiết hơn.

- Phần cứng máy tính. Chúng ta đều biết rằng về phần cứng máy tính sẽ bao gồm các

thành phần (phần cứng) được ghép nối với nhau (thông qua các kết nối gọi là giao

diện). Ví dụ: bo mạch chủ, CPU lõi, ổ chứng SATA, RAM, ….

- Phần mềm máy tính. Mỗi phần mềm bao giờ cũng được xây dựng từ các lớp trừu

tượng hóa. Ví dụ như kỹ thuật xây dựng các hàm số và thủ tục, được biên dịch và kết

nối thông qua các giao diện. Hay một ví dụ khác khi phần mềm có lời gọi dữ liệu SQL

đến các CSDL quan hệ thực chất là các lệnh đã được trừu tượng hóa, giấu đi các chi

tiết xử lý dữ liệu phức tạp bên trong.

- Mô phỏng mô hình thực tế. Khi mô phỏng các mô hình thực tế chúng ta luôn phải

thực hiện quá trình trừu tượng hóa, bỏ đi các chi tiết, tham số không quan trọng.

- Giao diện (interface). Thiết kế giao diện phần mềm là một ví dụ rõ nữa về khái niệm

trừu tượng hóa. Khi thiết kế giao diện, chúng ta đã bỏ đi tất cả các chi tiết, chỉ để lại

các kết nối dữ liệu quan trọng nhất trên giao diện.

- Khi thiết kế mô hình và làm việc trên mô hình (modelling), thực chất chúng ta đang

làm việc trên kết quả của việc trừu tượng hóa, chỉ làm việc với các tính năng chính mà

bỏ qua các chi tiết.

- Tất cả các quá trình chúng ta vẫn thực hiện trên thực tế như sắp xếp, phân hoạch,

phân loại chính là một dạng của quá trình trừu tượng hóa.

1.5. Các mô hình mở rộng hơn của máy tính và khoa học máy tính

Các hệ thống máy tính hiện nay đóng vai trò rất lớn và là trung tâm của thời đại công

nghệ số hiện đại. Không chỉ có bản thân các hệ thống máy tính, khoa học máy tính

đóng vai trò cầu nối và kết nối với thế giới xung quanh chúng ta. Do vậy phân môn

Khoa học máy tính sẽ có quan hệ rất chặt chẽ với các hệ thống, mô hình mở rộng, lớn

hơn trong xã hội và thế giới tự nhiên xung quanh. Sau đây là một vài vấn đề nảy sinh.

(1) Các vấn đề liên quan đến trí tuệ và ý thức nhân tạo.

Hiện nay khoa học máy tính có hẳn một ngành nghiên cứu gọi là trí tuệ nhân tạo.

Những vấn đề, câu hỏi là liệu con người có thể tạo ra các robot có thể suy nghĩ, trí tuệ,

có nhận thức như con người được hay không.

(2) Mô phỏng hiểu biết về thế giới xung quanh chúng ta.

Khoa học máy tính sẽ giúp con người có thể nhìn ra xa hơn xung quanh, quan sát và

mô phỏng thế giới rộng lớn các vì sao, hành tinh, ngược về điểm bắt đầu của vũ trụ,

hoặc có thể mô tả cấu trúc toàn bộ DNA của con người. Khoa học máy tính sẽ còn có

rất nhiều ứng dụng khác nữa kết nối con người với thế giới xung quanh.

(3) Sáng tạo và bản quyền trí tuệ.

Các vấn đề về sáng tạo và bản quyền trí tuệ này sinh do sự phát triển nhanh của công

nghệ giúp việc sao chép, thể hiện trực tuyến các tác phẩm văn học, nghệ thuật, phim

Page 13: 2017 - dulieu.itrithuc.vn...các máy tính này là bắt đầu có hệ điều hành chạy như 1 phần mềm độc lập. Thời kỳ này khoa học máy tính đã phát

13 | C S 4 S 3 ( 5 ) - 2 0 1 7

ảnh, ca nhạc trở nên rất dễ dàng. Một câu hỏi được đặt ra là có thể các họa sĩ, nghệ sĩ

có thể hoạt động sáng tác theo "tư duy máy tính" được không? Vấn đề về tác quyền,

bản quyền trí tuệ phần mềm cũng là một câu hỏi lớn. Vai trò của phần mềm tự do mã

nguồn mở trong vấn đề này?

(4) Các vấn đề đạo đức và tinh thần.

Cuối cùng là các câu hỏi, vấn đề liên quan đến đạo đức, nhân phẩm, tinh thần của con

người khi sử dụng máy tính, phần mềm, dữ liệu và chia sẻ chúng trên mạng xã hội.

Khoa học máy tính có thể đóng góp gì vào việc ngăn chặn sự xuống cấp đạo đức, vi

phạm nhân phẩm, tinh thần của xã hội trong lĩnh vực khai thác và sử dụng máy tính

được hay không?

2. Tư duy máy tính: năng lực tư duy quan trọng nhất của CS

Trong phần này sẽ mô tả các năng lực tư duy và kỹ năng cơ bản của học sinh cần nắm

vững trong phân môn khoa học máy tính. Hay nói cách khác phần này sẽ mô tả những

điều mà học sinh cần nắm được, làm được, thực hành được và hiểu rõ sau khi học

phần kiến thức Khoa học máy tính của môn Tin học. Xuyên suốt có thể nói 1 câu:

năng lực tư duy chính của Khoa học máy tính là Tư duy máy tính (computational

thinking).

Trước khi đi vào chi tiết các vấn đề chúng ta cùng tìm hiểu 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.

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 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”.

“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à 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".

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

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

Page 14: 2017 - dulieu.itrithuc.vn...các máy tính này là bắt đầu có hệ điều hành chạy như 1 phần mềm độc lập. Thời kỳ này khoa học máy tính đã phát

14 | C S 4 S 3 ( 5 ) - 2 0 1 7

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.

- Lập trình.

Chúng ta sẽ cùng tìm hiểu chi tiết các kỹ năng trên.

2.1. Trừu tượng hóa: mô hình, phân rã và tổng quát

Khi sử dụng tư duy máy tính để giải quyết 1 bài toán thì vấn đề khó khăn nhất khi độ

phức tạp và độ lớn dữ liệu của bài toán tăng lên. Khi làm 1 bài toán với ít dữ liệu

hoặc số liệu nhỏ thì việc giải khá dễ dàng. Nhưng khi qui mô, độ phức tạp của bài toán

tăng lên thì việc giải sẽ vô cùng khó khăn. Tư duy quan trọng nhất khi giải quyết các

bài toán phức tạp chính là quá trình trừu tượng hóa. Quá trình này có thể được thể

hiện rất đa dạng, dưới nhiều kiểu, dạng khác nhau như mô hình hóa, phân rã thành các

vấn đề nhỏ hơn, hoặc tổng quát hóa một số tham số để mở rộng phạm vi áp dụng.

Trong tất cả các trường hợp, điểm cột lõi là phải giấu đi các chi tiết phức tạp. Xét 1

vài ví dụ:

- Khi thiết kế các tuyến xe buýt 1 sao cho tối ưu trong 1 thành phố, người ta thường

giấu đi tất cả các thông số kỹ thuật và yêu cầu chỉ tiết, chỉ để lại các thông tin cơ bản

nhất, ví dụ 1 bản đồ các đường phố chính.

- Khi đưa ra cho người dùng 1 hàm số đơn giản, ví dụ tính căn bậc 2 của 1 số, hàm

sqrt(x), người thiết kế đã giấu đi các thuật toán phức tạp bên trong của hàm số này khi

tính gần đúng căn bậc 2 của 1 số thực dương x. Người dùng không cần biết tất cả chi

tiết bên trong của hàm số này.

(1) Mô hình hóa (modelling)

Mô hình hóa là quá trình xây dựng một biểu diễn của một vấn đề của thế giới thực,

một hệ thống hoặc một trạng thái quan trọng cần thiết cho một mục đích nào đó. Khi

thực hiện mô hình bao giờ cũng cần lấy ra các thông tin, đặc tính quan trọng nhất của

mô hình thực tế để đưa vào mô hình và bỏ qua các chi tiết ít quan trọng khác.

Ví dụ của mô hình hóa rất nhiều: thiết lập 1 bản đồ đường phố; thiết lập bản đồ địa

hình 1 khu vực trên trái đất; mô phỏng 1 thí nghiệm ảo; mô tả sự chuyển động của con

lắc; ….

Mỗi mô hình được xây dựng có những mục đích khác nhau, đó đó bản thân khái niệm

mô hình và biểu diễn của chúng cũng rất đa dạng, khác nhau.

Một bài toán có thể cần nhiều mô hình. Ví dụ khi thiết kế 1 Website thì cần các mô

hình như: mô hình phân tích bản đồ liên kết website; mô hình thể hiện font chữ cho

các tiêu đề; mô hình thể hiện và phân bổ các thông tin chính trên trang.

Một ví dụ khác khi thiết kế mô hình mô phỏng một hệ thống nào có của thực tế, ví dụ

mô hình Trái Đất quay xung quanh Mặt Trời, mô hình các hành tinh trong hệ Mặt

Page 15: 2017 - dulieu.itrithuc.vn...các máy tính này là bắt đầu có hệ điều hành chạy như 1 phần mềm độc lập. Thời kỳ này khoa học máy tính đã phát

15 | C S 4 S 3 ( 5 ) - 2 0 1 7

Trời. Trong các mô hình này chỉ giữ lại 1 số ít thông tin quan trọng ví dụ như quĩ đạo

chuyển động, tốc độ chuyển động, … còn lại các thông tin khác sẽ được bỏ qua.

(2) Phân rã (decomposing)

Phân rã là quá trình chuyển, đưa 1 bài toán lớn thành các bài toán nhỏ hơn (và do đó

dễ hơn) để giải. Khi giải xong các bài toán con này thì gộp lại sẽ thu được lời giải bài

toán lớn. Để hình dung đơn giản chúng ta xét 1 ví dụ bài toán chuẩn bị 1 bữa cơm.

Chúng ta sẽ phân rã bào toán này thành các bài toán, công việc nhỏ hơn như:

1- Chuẩn bị gạo - nấu cơm.

2- Chuẩn bị rau - luộc rau.

3- Chuẩn bị các món có chất đạm - làm trứng, thịt.

Khi cả 3 công việc con trên đã hoàn thành thì toàn bộ bài toán chuẩn bị 1 bữa cơm

cũng xong.

Chú ý: các bài toán con (subproblem) cũng có thể lại được phân rã 1 lần nữa thành các

bài toán nhỏ hơn nữa. Ví dụ công việc 3 ở trên có thể phân rã thành 2 việc nhỏ nữa:

rán trứng và kho thịt.

Một ví dụ khác của khái niệm phân rã là bài toán xử lý dữ liệu thống kê dân số của

một khu vực. Người ta đã phân loại thông tin dân số theo các nhóm như thông tin cá

nhân; thông tin vị trí địa lý và các thông tin nghề nghiệp khác. Việc xử lý dữ liệu sẽ

được phân rã thành các bài toán nhỏ hơn khi phân tích riêng các nhóm dữ liệu.

Quá trình phân rã bài toán trong khoa học máy tính đóng vai trò rất quan trọng. Việc

phân rã liên tục được gọi là đệ qui (recursive). Quá trình thực hiện giải bài toán bằng

cách phân rã được gọi là quá trình giải quyết vấn đề từ trên xuống dưới (top-down).

Với rất nhiều bài toán, việc phân rã thành các bài toán con chính là một phần của lời

giải bài toán này. Tuy nhiên nhiều khi cần hiểu ý tưởng phát triển lời giải ngay từ đầu,

mà không cần hoặc chưa cần tiến hành quá trình phân rã bài toán. Ví dụ nhìn vào 1 sơ

đồ khối làm việc của các cấu thành hệ thống (ví dụ 1 hệ thống gồm các máy tính chủ,

máy trạm, hub, máy in với các sơ đồ kết nối giữa chúng) sẽ giúp chúng ta hiểu ngay

hệ thống mà chưa cần tiến hành bất cứ quá trình phân rã nào.

(3) Tổng quát hóa (generalising) và phân loại hóa (classifying)

Tổng quát hóa cũng là 1 phương pháp để giải quyết các vấn đề của sự phức tạp của

vấn đề cần giải quyết. Khi có quá nhiều các dữ liệu, các ví dụ mẫu, tham số, … làm

cho bài toán cần giải trở nên quá phức tạp thì khi đó quá trình tổng quát hóa sẽ có ý

nghĩa. Ví dụ đơn giản nếu chúng ta cần phải thực hiện các công việc cụ thể là vẽ 1

vòng tròn bán kính 3, một vòng tròn khác bán kính 5 và 1 vòng tròn nữa bán kính 7.

Khi đó chúng ta sẽ cố gắng thiết lập một qui trình vẽ vòng tròn với bán kính R bất

kỳ, gọi nó là 1 thủ tục (hay hàm số) với tham số là bán kính R. Khi đó chỉ cần gọi thủ

tục này với các tham số R bằng 3, 5, 7 là xong. Với cách làm như trên, rất nhiều đoạn

chương trình riêng rẽ có thể được viết 1 lần, được kiểm thử 1 lần, viết tài liệu 1 lần và

được hiểu 1 lần.

Một ví dụ khá rõ của phân loại hóa là khả năng của các ngôn ngữ lập trình hướng đối

tượng cho phép tạo ra các lớp. Các lớp cha sẽ mô tả các tính năng chung của đối

Page 16: 2017 - dulieu.itrithuc.vn...các máy tính này là bắt đầu có hệ điều hành chạy như 1 phần mềm độc lập. Thời kỳ này khoa học máy tính đã phát

16 | C S 4 S 3 ( 5 ) - 2 0 1 7

tượng hiện thời, ví dụ như màu sắc đối tượng. Trong khi đó các lớp con sẽ mô tả các

thuộc tính riêng biệt (ví dụ hình dạng vuông, tam giác hay tròn).

Quá trình tổng quát là quá trình tìm ra các đặc tính chung của mẫu, từ đó sẽ kiểm soát

được một phần sự phức tạp của hệ thống bằng cách chia sẻ các tính chất chung đó.

2.2. Lập trình

Khoa học máy tính tất nhiên rộng hơn lập trình. Tuy nhiên lập trình là quá trình then

chốt, cơ bản nhất và quan trọng nhất của khoa học máy tính. Giảng dạy, truyền đạt kỹ

năng lập trình tốt sẽ rèn luyện, cổ vũ sự sáng tạo, tư duy logic, kỹ năng giải quyết vấn

đề, thái độ lao động chăm chỉ. Rèn luyện lập trình tốt sẽ thúc đẩy cá nhân sáng tạo và

biết cách làm việc trong môi trường nhóm. Tư duy lập trình sẽ giúp học sinh biết trừu

tượng hóa, tổng quát hóa các vấn đề trong cuộc sống, từ đó tạo ra được các kỹ năng

đặc biệt để giải quyết vấn đề.

Trong phân môn Khoa học máy tính, học sinh cần học để biết, nắm vững các yêu cầu

sau liên quan đến lập trình.

(1) Thiết kế và viết chương trình

a. Mỗi học sinh cần được có điều kiện thực hiện liên tục để thực hiện các công việc

thiết kế, viết chương trình, dịch, chạy, kiểm thử và sửa lỗi các chương trình chạy

được (executable programs). Thời gian để thực hiện các công việc trên có thể khác

nhau với từng lứa tuổi và điều kiện thực tế, nhưng bắt buộc phải liên tục. Ở đây

"chương trình chạy được" được hiểu theo nghĩa rộng, phụ thuộc vào công cụ, phần

mềm và ngôn ngữ mà học sinh được học.

Ví dụ các công việc sau đều có thể gọi là lập trình.

- Thiết lập chương trình bởi các ngôn ngữ nhỏ, riêng biệt, ví dụ qui trình điều khiển

robot, lắp ráp LEGO, điều khiển Rùa trong LOGO.

- Các ngôn ngữ kéo thả ví dụ Scratch, Kodu, Alice, Snap, ….

- Các ngôn ngữ bậc cao dạng "văn bản" như Pascal, C, C++, Java, C#, PHP, Python,

Visual Basic, JavaScript, …

- Công thức tính toán trong bảng tính.

Trong mọi trường hợp, điều quan trọng là các khái niệm, kỹ năng tư duy lập trình,

thuật toán chứ không phải bản chất của ngôn ngữ lập trình hay chương trình dịch.

b. Không những chỉ là điều kiện thực hiện viết chương trình, mà khả năng hiểu và

giải thích được chương trình mới là quan trọng nhất. Học sinh nhất thiết phải học

và làm được điều sau đây.

- Thiết kế và viết chương trình sẽ cần phải hiểu được:

+ Tính tuần tự (sequencing): các lệnh phải được thực hiện tuần từ, lệnh này sau 1

lệnh khác.

+ Sự lựa chọn (selection): có thể thực hiện theo cách này hoặc cách khác, ví dụ lệnh

if-then-elsse. Trong ngôn ngữ và tư duy lập trình hay gọi điều này là rẽ nhánh.

+ Khả năng lặp lại (repetition): lặp có điều kiện, lặp vô hạn và lặp chính nó (đệ qui).

Page 17: 2017 - dulieu.itrithuc.vn...các máy tính này là bắt đầu có hệ điều hành chạy như 1 phần mềm độc lập. Thời kỳ này khoa học máy tính đã phát

17 | C S 4 S 3 ( 5 ) - 2 0 1 7

+ Khả năng trừu tượng hóa (abstraction): có thể tạo ra các khái niệm "trừu tượng"

để có thể dùng lại nhiều lần. Ví dụ thông qua khả năng tạo thủ tục và hàm số với tham

số.

+ Khả năng tạo tương tác trực tiếp với bên ngoài thông qua việc trao đổi vào/ra files

(input/output).

- Tìm và sửa được lỗi trong chương trình.

- Phân tích kỹ lưỡng và sâu sắc chương trình, biết được chương trình dẫn đến kết quả

đúng hay sai, kết quả chương trình có thỏa mãn yêu cầu đề ra hay không.

- Mô tả được thiết kế, ý nghĩa các lệnh (coding), biến nhớ, thủ tục, hàm số và trình

bày lại cho mọi người cùng biết.

(2) Cơ chế trừu tượng hóa

Sử dụng hiệu quả cơ chế trừu tượng hóa khi viết chương trình (ví dụ sử dụng hàm số,

thủ tục, lớp đối tượng, …) đóng vai trò trung tâm và quan trọng nhất khi xử lý các vấn

đề có độ phức tạp lớn. Ví dụ thiết kế các thủ tục chính là quá trình trừu tượng hóa

bằng cách giấu đi các tính toán cụ thể, phức tạp bên trong thông qua một giao diện

đơn giản bên ngoài.

Các quá trình trừu tượng hóa này có thể lồng nhau, chồng lớp lên nhau. Ví dụ: Thủ tục

vẽ hình vuông sẽ gọi các thủ tục vẽ một đoạn thẳng; thủ tục tô màu 1 điểm pixel trên

mặt phẳng sẽ phải gọi thủ tục lấy địa chỉ bộ nhớ của điểm với tọa độ (x, y) trên mặt

phẳng.

Khi sử dụng quá trình trừu tượng hóa bằng cách tạo ra các thủ tục của riêng mình,

hoặc sử dụng các thư viện thủ tục của người khác, học sinh cần hiểu rõ và thành thạo

công việc này. Sau đây là một ví dụ minh họa.

+ Cần nhận ra khi cần phải viết các đoạn chương trình bị lặp lại giống nhau. Ví dụ

lệnh vẽ 1 đường tròn bán kính 7 và 1 đường tròn khác bán kính 5.

+ Thiết kế một thủ tục để tổng quát hóa công việc lặp lại đó. Ví dụ thiết lập thủ tục vẽ

đường tròn bán kính R.

+ Thay thế các đoạn chương trình lặp lại trên bằng cách gọi thủ tục vừa khởi tạo sau

khi thay thế các tham số bằng các giá trị cụ thể, ví dụ R = 7 và R = 5. Quá trình thay

thế đoạn chương trình bằng thủ tục chính là quá trình trừu tượng hóa sau khi áp dụng

các mẫu. Việc thiết kế thủ tục chính là thiết kế các mẫu để được dùng lại nhiều lần.

Ở mức độ cao hơn, việc thiết kế các mẫu để được sử dụng lặp lại nhiều lần khi giải

quyết bài toán đóng vai trò trung tâm của rất nhiều các lớp bài toán. Ví dụ:

+ Khi chúng ta thiết kế chương trình, sử dụng các "mẫu" như biến nhớ, bản ghi, mảng,

danh sách, cây dữ liệu, bảng hash.

+ Các mẫu ở mức cao hơn nữa như: chia để trị, hàng đợi, sắp xếp, tìm kiếm, quay lui,

đệ qui, client/server, bộ nhớ đệm, qui hoạch động, …

(3) Kiểm thử và sửa lỗi chương trình

Khi một chương trình gặp lỗi thì ta phải làm gì để sửa lỗi?

Page 18: 2017 - dulieu.itrithuc.vn...các máy tính này là bắt đầu có hệ điều hành chạy như 1 phần mềm độc lập. Thời kỳ này khoa học máy tính đã phát

18 | C S 4 S 3 ( 5 ) - 2 0 1 7

Máy tính thường rất lạ, kỳ ảo (nhiều người lập trình vẫn nói vui là trong máy tính có

ma). Máy tính thường hay đưa ra các kết quả kỳ lạ, sai be bét, vô cùng khó hiểu trước

khi nó hoạt động chính xác theo yêu cầu đúng của chương trình.

Thông qua lập trình, học sinh cần phải học được các cơ hội, khả năng và kỹ năng để

có thể tự dự đoán, tìm lỗi và sửa lỗi chương trình. Một số yêu cầu sau là cần thiết cho

công việc này:

- Đọc và hiểu tài liệu của chương trình.

- Giải thích được một đoạn chương trình sẽ chạy như thế nào, hoặc có thể không làm

việc như thế nào.

- Có thể "thực hiện", "chạy" chương trình bằng suy luận (chay), không cần máy tính,

ví dụ chỉ dùng bút và giấy trắng.

- Phân tách, cô lập lỗi bằng các công cụ như tìm vết và kiểm thử.

- Bổ sung thêm chú thích cho các dòng lệnh để làm cho chương trình dễ hiểu hơn.

- Viết bổ sung các đoạn chương trình có nhiệm vụ riêng để tìm lỗi bên trong chương

trình. Thông thường các lỗi này thuộc về logic nội tại của bài toán, lỗi logic, lỗi phá

vỡ tính đồng bộ, nhất quán của chương trình hoặc dữ liệu.

- Tìm được các đoạn code tạo ra lỗi của chương trình.

- Thiết lập và lựa chọn các bộ dữ liệu, bộ test có thể tạo ra lỗi.

Trong chương trình khoa học máy tính dành cho học sinh phổ thông không yêu cầu

học sinh nắm được hay trở thành các nhà viết phần mềm, sản phẩm phần mềm chuyên

nghiệp. Ví dụ các công việc mang tính chuyên nghiệp như viết phân tích yêu cầu đầu

vào, mô tả chức năng thiết kế, tài liệu sản phẩm, kế hoạch kiểm thử, …. sẽ không cần

trang bị cho học sinh.

3. Phân loại kiến thức học sinh cần biết của phân môn Khoa học

máy tính trong trường phổ thông

Trong các phần trên tôi đã viết phần 1, 2 của Khung chương trình phân môn Khoa học

máy tính cho các nhà trường nước Anh.

Phần 1 mô tả các khái niệm cơ bản, định hướng chính của phân môn Khoa học máy

tính trong nhà trường phổ thông (của Anh quốc, không phải Việt Nam).

Phần 2 mô tả những kỹ năng, năng lực mà học sinh cần nắm vững, làm được đối với

phân môn Khoa học máy tính.

Phần này sẽ mô tả chi tiết các nội dung kiến thức học sinh cần được học, cần biết, nắm

vững sau mỗi giai đoạn học tập, được phân loại theo từng nhóm kiến thức. Chúng tôi

sẽ chuyển tương đương sang các cấp học của nhà trường Việt Nam để mọi người dễ

hình dung.

Đây là phần nội dung quan trọng nhất của Đề cương vì nó mô tả chi tiết những kiến

thức định hướng năng lực mà học sinh cần biết sau mỗi giai đoạn học tập, Cách mô tả

này chính là mô tả theo mô hình ĐỊNH HƯỚNG NĂNG LỰC, hoàn toàn mới,

không phải mô hình ĐỊNH HƯỚNG NỘI DUNG mà chúng ta vẫn quen biết. Mô

Page 19: 2017 - dulieu.itrithuc.vn...các máy tính này là bắt đầu có hệ điều hành chạy như 1 phần mềm độc lập. Thời kỳ này khoa học máy tính đã phát

19 | C S 4 S 3 ( 5 ) - 2 0 1 7

hình ĐỊNH HƯỚNG NỘI DUNG thường mô tả theo các phần, chương, bài hoặc

theo các modules (module mẹ, module con). Còn mô hình ĐỊNH HƯỚNG NĂNG

LỰC thì sẽ liệt kê những yêu cầu mà học sinh cần biết, cần nắm vững và làm được

sau mỗi giai đoạn. Với kiểu mô tả chương trình theo mô hình ĐỊNH HƯỚNG NĂNG

LỰC thì phần nội dung giảng dạy cụ thể sẽ do các giáo viên hoàn toàn chủ động

giảng dạy theo đề cương, giáo án của riêng mình, hoặc theo bộ SGK mà mình đã lựa

chọn.

Trong mô hình giáo dục phổ thông của Anh quốc được chia làm 4 giai đoạn (stage).

Có thể tạm thời tương ứng với mô hình phổ thông của Việt Nam như sau:

Anh quốc Việt Nam (hiện nay) Việt Nam (sau 2018)

Giai đoạn 1 (Stage 1) Các lớp từ 1 đến 2 Các lớp từ 1 đến 3

Giai đoạn 2 (Stage 2) Các lớp 3, 4, 5 Các lớp 4, 5

Giai đoạn 3 (Stage 3) Các lớp THCS Các lớp từ 6 đến 10

Giai đoạn 4 (Stage 4) Các lớp THPT Các lớp 11, 12

Chú ý: Theo mô hình giáo dục phổ thông mới của Việt Nam sau năm 2018 thì Giai

đoạn 3 của Anh quốc có thể tương đương với các lớp học từ 6 đến 10 của Việt Nam.

Vì theo mô hình nền giáo dục Anh, giai đoạn 4 là bắt đầu phân hóa mạnh theo đúng

mô hình các lớp 11, 12 của mô hình GD Việt Nam.

Toàn bộ nội dung kiến thức phần Khoa học máy tính sẽ được chia thành 6 nhóm sau.

- Thuật toán.

- Lập trình.

- Dữ liệu.

- Máy tính và thiết bị.

- Truyền thông và mạng Internet.

- Các chuyên mục nâng cao khác.

Sau đây là mô tả chi tiết.

3.1. Thuật toán

Học sinh cần hiểu được thế nào là thuật toán, và thuật toán được dùng để làm gì.

Lớp 1, 2, 3

- Thuật toán là một dãy các lệnh dùng để thực hiện một nhiệm vụ nào đó, các lệnh này

được xác định trước. Ví dụ thuật toán dùng để trả lời cho câu hỏi: nấu cơm như thế

nào? (bằng cách nào?)

Page 20: 2017 - dulieu.itrithuc.vn...các máy tính này là bắt đầu có hệ điều hành chạy như 1 phần mềm độc lập. Thời kỳ này khoa học máy tính đã phát

20 | C S 4 S 3 ( 5 ) - 2 0 1 7

- Thuật toán có thể được biểu diễn rất đơn giản, ví dụ có thể viết lên bảng hoặc trên

giấy.

- Các công việc, hoạt động hàng ngày cũng có thể coi là thuật toán. Thuật toán có thể

thực hiện bởi con người hoặc máy tính.

- Thuật toán mô tả cho máy tính thực hiện cần viết chính xác hơn so với các bước

thuật toán cho con người thực hiện.

- Các bước của thuật toán có thể lặp lại và có thể chia thành các bước nhỏ hơn.

Lớp 4, 5

- Thuật toán có thể biểu diễn bằng sơ đồ (ví dụ sơ đồ khối) hoặc sử dụng các lệnh có

qui tắc viết đặc biệt (ví dụ lệnh điều khiển rùa của LOGO).

- Các lệnh của thuật toán có thể có tính năng lựa chọn / rẽ nhánh (if) hoặc lặp (loops).

- Thuật toán có thể chia (phân rã) thành các thành phần con (thủ tục con), mỗi thành

phần như vậy có thuật toán riêng của mình.

- Thuật toán luôn phải được bắt đầu một cách rõ ràng, dễ hiểu, chính xác để tránh tối

đa lỗi có thể phát sinh.

- Thuật toán luôn được thiết kế và phát triển dựa trên một kế hoạch và (có thể) được

kiểm tra. Nếu gặp lỗi khi kiểm tra, thuật toán có thể được điều chỉnh lại.

- Sẽ (có thể) dễ dàng hơn nếu có thể thực hiện việc lên kế hoạch, kiểm thử và điều

chỉnh các thành phần con độc lập của một thuật toán.

THCS

- Thuật toán là một dãy các lệnh chính xác để giải một bài toán, vấn đề cho trước.

- Một bài toán cụ thể có thể được giải bằng nhiều thuật toán khác nhau.

- Sự lựa chọn thuật toán để giải một bài toán cụ thể sẽ phụ thuộc vào các yếu tố sau

theo yêu cầu của lời giải: độ phức tạp của chương trình; thời gian thực hiện; bộ nhớ sử

dụng; yêu cầu dữ liệu; dữ liệu đầu vào và đầu ra theo yêu cầu.

- Cần thiết sự chính xác của cả thuật toán và tổ chức dữ liệu khi giải một bài toán. Ví

dụ cần cả các kiểm tra

THPT

- Sự lựa chọn thuật toán đúng cần phải phụ thuộc cả vào cấu trúc dữ liệu và bản thân

các giá trị cần tính toán của dữ liệu.

- Học sinh cần biết và làm quen với 1 số thuật toán quen thuộc, nổi tiếng. Ví dụ các

thuật toán sắp xếp, tìm kiếm.

- Thuật toán cần được thiết kế sao cho có thể dễ dàng xem lại, đánh giá, kiểm tra và

sửa lại nếu có lỗi.

- Các thuật toán khác nhau sẽ có các hành vi, tính chất, đặc trưng thuộc tính khác nhau

trên cùng một bài toán hoặc trên cùng 1 bộ dữ liệu kiểm thử.

Page 21: 2017 - dulieu.itrithuc.vn...các máy tính này là bắt đầu có hệ điều hành chạy như 1 phần mềm độc lập. Thời kỳ này khoa học máy tính đã phát

21 | C S 4 S 3 ( 5 ) - 2 0 1 7

3.2. Lập trình

Học sinh cần biết lập trình tối thiểu một ngôn ngữ.

Lớp 1, 2, 3

- Máy tính (ở đây "máy tính" được hiểu bao gồm cả các thiết bị như bộ vi xử lý, hoặc

các thiết bị có thể điều khiển như robot, máy games, PCs) được điều khiển bằng dãy

các lệnh.

- Một chương trình máy tính giống như phần thuyết minh của một câu chuyện. Nhiệm

vụ của máy tính là thực hiện theo đúng thuyết minh đó. Máy tính không tự sáng tạo,

thực hiện theo các lệnh của thuyết minh đó một cách chính xác tuyệt đối.

- Một bài toán cụ thể có thể được thực hiện bằng cách tạo ra chương trình trên máy

tính để giải bài toán đó. Các máy tính có thể cho phép người dùng tự tạo cho riêng

minh các chương trình.

- Máy tính có thể nhận các dữ liệu đầu vào (input), sau đó thực hiện một dãy các lệnh

có sẵn trong máy tính, và đưa kết quả ra (output).

- Các chương trình đều có thể có các lệnh (nhóm lệnh) trùng nhau (lệnh lặp).

Lớp 4, 5

- Một chương trình máy tính là một dãy các lệnh được viết ra để thực hiện (giải) một

nhiệm vụ (bài toán) nào đó.

- Ý tưởng xây dựng một chương trình là thiết lập 1 dãy các lệnh được viết bằng một

ngôn ngữ lập trình nào đó (ví dụ Scratch).

- Có một số cơ chế (qui định) cho phép chọn lệnh thực hiện dựa trên giá trị của một

vài dữ liệu nào đó. Ví dụ lệnh if … then trong Scratch.

- Có một số cơ chế (qui định) cho phép thực hiện lặp lại một dãy lệnh, và sử dụng giá

trị của một số dữ liệu để điều khiển số lần lặp của dãy lệnh được lặp này. Ví dụ các

lệnh repeat, repeat until, … trong Scratch.

- Chương trình có thể mô hình và mô phỏng thực hiện để trả lời cho câu hỏi "Nếu xảy

ra điều này thì sao?" (what if?).

- Chương trình có thể được thiết lập bằng các công cụ kéo thả (visual). Một chương

trình có thể được thực hiện với các kiểu dữ liệu khác nhau. Chương trình có thể sử

dụng nhiều loại lệnh điều khiển khác nhau. Ví dụ các lệnh chọn (rẽ nhánh) hay tạo thủ

tục.

- Chương trình sẽ được phát triển dựa trên kế hoạch xây dựng và kiểm thử (test). Nếu

kiểm thử bị sai thì chương trình sẽ được sửa lại cho đúng.

- Cách mà một chương trình sẽ chạy như thế nào (thể hiện như thế nào) cần được lên

kế hoạch trước.

- Một chương trình được viết tốt có nghĩa là nó sẽ thuyết minh tốt cho người đọc và

cho chương trình chạy, theo nghĩa cả dòng lệnh (code) và tài liệu cho con người có thể

đọc.

Page 22: 2017 - dulieu.itrithuc.vn...các máy tính này là bắt đầu có hệ điều hành chạy như 1 phần mềm độc lập. Thời kỳ này khoa học máy tính đã phát

22 | C S 4 S 3 ( 5 ) - 2 0 1 7

- Một trang web được xây dựng bằng các lệnh HTML (HTML script) để hiển thị nội

dung trên trang. Các trình duyệt cũng có thể hiển thị bởi các lệnh lập trình khác.

- Máy tính có thể lập trình sao cho nó sẽ trả lời (phản ứng) một cách "thông minh" bởi

các dữ liệu đầu vào (input).

THCS

- Chương trình là một dạng hoạt động để giải toán (problem-solving activity). Sẽ có

nhiều chương trình khác nhau cùng để giải 1 bài toán.

- Biến nhớ và gán giá trị cho biến nhớ.

- Chương trình có thể làm việc với nhiều dạng, kiểu dữ liệu khác nhau, ví dụ số tự

nhiên, ký tự, xâu ký tự.

- Biết sử dụng hợp lý các phép toán và logic để điều khiển lệnh nào sẽ được thực hiện

và thực hiện theo thư tự nào.

+ Biết cách sử dụng phép toán logic AND, OR, NOT.

+ Biết cách phép tính phủ định sẽ ảnh hưởng thế nào đến các phép tính khác, ví dụ

NOT(a>b) = a<=b.

- Trừu tượng hóa bằng cách thiết lập hàm số và thủ tục (biết cách định nghĩa và cách

gọi lệnh), trong đó:

+ Hàm và thủ tục có thể chứa tham số.

+ Lập trình thực hiện nhiều lởi gọi hàm (thủ tục).

- Biết viết tài liệu mô tả và giải thích chương trình chạy như thế nào.

- Hiểu được sự khác nhau giữa lỗi của chương trình do cú pháp lệnh, và lỗi chương

trình do lập trình sai ý nghĩa (mục đích). Biết cách tìm được và sửa cả 2 loại lỗi

chương trình này.

THPT

- Có thể tính toán trực tiếp các biểu thức logic (không dùng máy tính).

- Sử dụng mảng 2 chiều (hoặc cao hơn).

- Lập trình bằng ngôn ngữ lập trình bậc thấp. [* chú ý: ở VN thì điều này nên thay

bằng biết lập trình bằng ngôn ngữ lập trình bậc cao.]

- Lập trình cho thủ tục gọi chính nó (đệ qui), có thể nhiều mức gọi lồng nhau. Trìu

tượng hóa lớp này trên lớp khác.

- Chương trình có thể đọc và ghi dữ liệu từ tệp, ra tệp.

- Viết tài liệu mô tả kết quả lập trình và giải thích chương trình sẽ chạy như thế nào.

3.3. Dữ liệu

Mỗi học sinh cần hiểu máy tính biểu diễn dữ liệu như thế nào.

Page 23: 2017 - dulieu.itrithuc.vn...các máy tính này là bắt đầu có hệ điều hành chạy như 1 phần mềm độc lập. Thời kỳ này khoa học máy tính đã phát

23 | C S 4 S 3 ( 5 ) - 2 0 1 7

Lớp 1, 2, 3

- Thông tin có thể được lưu trữ và tương tác dưới nhiều dạng, ví dụ số, chữ, hình ảnh,

phim.

- Máy tính sử dụng chuyển đổi (công tắc) nhị phân (on/off) để lưu trữ thông tin. Có

thể hiểu đơn giản, máy tính dùng 2 chữ số 0, 1 để lưu trữ thông tin.

- Với hệ số đếm nhị phân có thể trả lời nhiều thông tin quan trọng. Ví dụ: có mặt hay

vắng mặt, đồng ý hay phản đối, cao hay thấp, nam hay nữ, đen hay trắng, ….. Số nhị

phân có thể dùng cho việc ra quyết định.

Lớp 4, 5

- Thông tin tương tự có thể thể hiện nhiều lần.

- Nhập môn về hệ đếm nhị phân (thể hiện tên, đối tượng, ý tưởng bằng dãy các chữ số

0 và 1).

- Sự khác nhau giữa hằng số và tham biến trong chương trình.

- Sự khác nhau giữa dữ liệu và thông tin.

- Dữ liệu có cấu trúc được lưu trữ dưới dạng bảng với các hàng và cột. Dữ liệu trong

bảng có thể sắp xếp theo thứ tự. Bảng dữ liệu có thể được tìm kiếm để trả lời theo các

dạng câu hỏi khác nhau. Tìm kiếm dữ liệu trong bảng có thể theo một hoặc nhiều cột.

- Dữ liệu có thể chứa lỗi và nó ảnh hưởng đến quá trình tìm kiếm và các kết luật của

công việc tìm kiếm đó. Lỗi có thể được giảm bớt hoặc loại bỏ bằng các công cụ kiểm

tra và xác nhận.

- Thông tin cá nhân cần được nhập chính xác, lưu trữ bảo mật, hạn chế sử dụng với

các mục đích khác nhau và cần được đối xử tôn trọng.

THCS

- Nhập môn tính toán nhị phân (bằng tay, không dùng máy tính).

- Biểu diễn (nhị phân) của:

+ Số nguyên không dấu.

+ Chữ. (Ví dụ: mỗi ký tự được biểu diễn bằng 1 mẫu bit. Biểu diễn chỉ mang tính hình

thức, ví dụ các mẫu ASCII, ký hiệu Morse).

+ Âm thanh. Ví dụ cả 2 loại: chuyển đổi từ dạng tương tự sang dạng số (analogue

digital), ví dụ WAV, và dạng tự do MIDI.

+ Hình ảnh (ví dụ bitmap) và video.

- Nhiều loại đối tượng khác nhau có thể được biểu diễn như nhau, hoặc như các

chuyên gia vẫn nói "ý nghĩa của một mẫu bít nằm trong mắt của người tạo ra nó". Ví

dụ một dãy bit có thể là biểu diễn của một tệp ảnh BMP, hoặc một tệp bảng dữ liệu;

một số nhị phân 8-bit có thể là biểu diễn của một ký tự hoặc là biểu diễn của một số.

Page 24: 2017 - dulieu.itrithuc.vn...các máy tính này là bắt đầu có hệ điều hành chạy như 1 phần mềm độc lập. Thời kỳ này khoa học máy tính đã phát

24 | C S 4 S 3 ( 5 ) - 2 0 1 7

- Thông tin trong thế giới thực mà chúng ta nhìn thấy khác với cách mà máy tính xử

lý, do vậy cần sự chuyển đổi theo cả 2 chiều. Ví dụ cần biết âm thanh wav sẽ được

chuyển đổi sang dạng MP3 như thế nào và ngược lại.

- Thông tin trên thực tế có rất nhiều cách thể hiện trên máy tính. Ví dụ một bài hát có

thể thể hiện trên máy tính như sau:

+ Hình ảnh chụp của bản nhạc bài hát.

+ Tệp MIDI ghi lại các nốt nhạc.

- Tệp WAV hoặc MP3 ghi lại thể hiện thực của bài hát.

- Các thể hiện khác nhau của thông tin trong máy tính để đạt các mục đích khác nhau.

Ví dụ với mục đích dễ tìm kiếm, chỉnh sửa, tiết kiệm dung lượng, bảo mật.

THPT

- Hệ hexadecimal.

- Bù 2 của số nguyên có dấu (two’s complement signed integers).

- Xử lý xâu ký tự.

- Nén dữ liệu. Các thuật toán nén dữ liệu lossless và lossy (ví dụ nén JPEG).

- Các vấn đề khi sử dụng biểu diễn nhị phân:

+ Vấn đề định lượng: biểu diễn nhị phân không thể thể hiện các tín hiệu tương tự

(analogue) một cách hoàn toán chính xác. Ví dụ các hình ảnh màu xám chỉ có thể có

16, 256 hoặc các mức cao hơn màu xám, nhưng không thể thể hiện chính xác một số

hữu hạn màu xám.

+ Vấn đề tần số mẫu: biểu diễn nhị phân không thể biểu diễn được tính liên tục theo

không gian và thời gian. Ví dụ hình ảnh có thể chứa nhiều điểm, ít hoặc nhiều hơn,

nhưng không thể liên tục.

+ Vấn đề biểu diễn phân số.

3.4. Máy tính

Mỗi học sinh cần biết và hiểu được các cấu thành chính tạo nên một hệ thống máy

tính và chúng có chức năng gì, quan hệ với nhau như thế nào.

Lớp 1, 2, 3

- Máy tính bao gồm các thiết bị điện tử và lưu trữ dãy các lệnh điều khiển.

- Các máy tính thường nhận thông tin vào và xử lý rồi đưa thông tin ra, ví dụ các máy

tính PC, điện thoại thông minh, máy tính bảng.

- Hiện nay có rất nhiều thiết bị cũng có máy tính bên trong. Ví dụ bên trong máy lạnh,

điều hòa, quạt, tivi có chứa các máy tính nhỏ và có thể điều khiển được bằng dãy lệnh.

Page 25: 2017 - dulieu.itrithuc.vn...các máy tính này là bắt đầu có hệ điều hành chạy như 1 phần mềm độc lập. Thời kỳ này khoa học máy tính đã phát

25 | C S 4 S 3 ( 5 ) - 2 0 1 7

Lớp 4, 5

- Máy tính là các thiết bị có thể chạy được chương trình.

- Phần mềm ứng dụng chính là các chương trình máy tính được thiết kế để thực hiện

các yêu cầu của người sử dụng.

- Hệ điều hành là một phần mềm đặc biệt dùng để điều khiển quan hệ giữa các phần

mềm ứng dụng và phần cứng máy tính.

- Cả 2 loại phần mềm ứng dụng và hệ điều hành đều lưu trữ và sử dụng dữ liệu, ví dụ

bộ nhớ và hệ thống tệp (file system).

- Tất cả những điều trên cũng đúng với cả các thiết bị có máy tính nhúng bên trong (ví

dụ máy ảnh số, điện thoại thông minh) và máy tính cá nhân.

- Có rất nhiều hệ điều hành và phần mềm ứng dụng có thể cài đặt phù hợp trên cùng

một hệ thống phần cứng.

- Người dùng (con người) có thể ngăn chặn hoặc tìm ra, sửa được lỗi của máy tính (ví

dụ thiết bị có 1 bộ phận nào đó bị hỏng, hoặc thiết bị nhiễm virus).

- Có nhiều vấn đề xã hội, đạo đức liên quan đến việc sử dụng máy tính trong cuộc

sống của chúng ta.

THCS

- Máy tính là các thiết bị có thể chạy được chương trình.

- Máy tính là các thiết bị chuyên dụng (có thể được thiết kế để thực hiện rất nhiều

công việc và bài toán khác nhau).

- Không phải mọi thiết bị tính toán đều là máy tính theo đúng nghĩa. Ví dụ các máy

tính bỏ túi có chức năng tính toán nhưng không phải là máy tính.

- Cấu trúc cơ bản của máy tính: CPU, bộ nhớ (RAM, đĩa cứng), input/output (ví dụ

chuột, bàn phím).

- Máy tính chạy rất nhanh, và càng ngày càng nhanh (theo định luật Moore).

- Máy tính có khả năng "dường như là" thực hiện nhiều công việc cùng một lúc. Có

thể dễ dàng chuyển đổi từ 1 công việc này sang công việc khác.

THPT

- Các cổng logic: AND/OR/NOT. Mạch logic. Khái niệm thanh ghi. [* phần kiến thức

này quá nâng cao, không cần thiết đưa vào nhà trường].

- Kiến trúc Von Neumann: CPU, bộ nhớ, địa chỉ, chu kỳ thực hiện lệnh, các lệnh cấp

thấp. Mã Assembly. [* phần kiến thức này nâng cao, không cần thiết phải đưa vào nhà

trường].

- Chương trình dịch và thông dịch (chỉ cần biết khái niệm, không cần biết cấu trúc bên

trong của các chương trình này).

Page 26: 2017 - dulieu.itrithuc.vn...các máy tính này là bắt đầu có hệ điều hành chạy như 1 phần mềm độc lập. Thời kỳ này khoa học máy tính đã phát

26 | C S 4 S 3 ( 5 ) - 2 0 1 7

- Hệ điều hành (điều khiển phần mềm nào chạy và hệ thống files) và các máy tính ảo.

3.5. Truyền thông và mạng Internet

Mỗi học sinh cần hiểu được các nguyên tắc chính (bên trong, nằm dưới) của việc

truyền dữ liệu trên mạng Internet.

Lớp 1, 2, 3

- World Wide Web chứa vô cùng nhiều thông tin và dữ liệu.

- Trình duyệt là chương trình dùng để xem các trang web.

- Mỗi website có một tên duy nhất.

- Nhập địa chỉ website để vào xem website đó. Khi vào 1 website có thể xem các trang

web khác bằng cách nháy lên các đường link.

Lớp 4, 5

- Mạng Internet là một tập hợp các máy tính được kết nối, chia sẻ chung một cách trao

đổi thông tin. Internet không phải là web, và web không phải là Internet.

- Các kết nối máy tính mạng Internet sử dụng nhiều thiết bị công nghệ (ví dụ dây nối

mạng, dây nối điện thoại, wifi, điện thoại di động, …).

- Mạng Internet hỗ trợ nhiều dịch vụ khác nhau (ví dụ Web, e-mail, VoIP).

- Quan hệ giữa các khái niệm: máy chủ web, trình duyệt web, website, trang web.

- Khuôn dạng của URLs.

- Vai trò của các máy tìm kiếm giúp người dùng tìm được các trang web theo ý muốn.

Cơ sở (cơ bản) của cơ chế tìm kiếm thông tin trên Internet.

- Các vấn đề về an toàn và bảo mật thông tin, dữ liệu dưới góc độ kỹ thuật.

THCS

- Mạng máy tính là một tập hợp các máy tính cùng làm việc với nhau.

- Sự hiểu biết cơ bản về cơ chế khi người dùng gửi yêu cầu tới 1 trang web (web page)

trong phần mềm trình duyệt.

+ Trình duyệt và máy chủ trao đổi thông điệp qua lại với nhau trên nền mạng Internet.

+ Trong thông điệp đó có thông tin gì? (yêu cầu http, HTML).

+ Cấu trúc 1 trang web: HTML, style sheets, liên kết, tài nguyên.

+ Máy chủ sẽ làm những việc gì? (tìm file và gửi trả lại).

+ Trình duyệt làm những việc gì? (dịch thông tin từ file được gửi về, thể hiện trên

màn hình, tìm và thể hiện nhiều thứ khác nữa).

- Dữ liệu được truyền trên Internet như thế nào?

+ Đóng gói dữ liệu và chuyển mạch gói dữ liệu.

Page 27: 2017 - dulieu.itrithuc.vn...các máy tính này là bắt đầu có hệ điều hành chạy như 1 phần mềm độc lập. Thời kỳ này khoa học máy tính đã phát

27 | C S 4 S 3 ( 5 ) - 2 0 1 7

+ Giao thức đơn giản: ngôn ngữ giao tiếp đơn giản giữa 2 máy tính. Ví dụ: giao thức

của radio bao gồm các "over", "out"; giao thức ack/nack; giao thức ethernet; ….

- Máy tìm kiếm làm việc như thế nào và làm thế nào để tìm kiếm hiệu quả. Các câu

lệnh tìm kiếm nâng cao sử dụng phép toán boolean.

THPT

- Mô hình Client/Server.

- Địa chỉ MAC, địa chỉ IP, dịch vụ Domain Name, khái niệm cookies.

- Một vài giao thức thực tế. Ví dụ telnet dùng để kết nối với máy chủ HTTP.

- Định tuyến (routing).

- Khóa chết (deadlock) và livelock.

- Thông tin thừa và sửa lỗi thông tin.

- Mã hóa và an toàn thông tin.

3.6. Các chuyên mục nâng cao

Phần này sẽ bỏ qua vì không cần thiết.

4. Yêu cầu kiểm tra, đánh giá năng lực của nhánh Khoa học máy

tính đối với từng cấp học phổ thông

Các yêu cầu kiểm tra, đánh giá kiến thức và năng lực học sinh theo chương trình này

sẽ được mô tả bằng việc thể hiện khả năng của học sinh theo các mức. Các mức được

đánh số từ 1 đến 8.

Yêu cầu cụ thể của các cấp học theo mức được mô tả trong bảng sau. Trong đó cột thứ

2 (mức độ có thể đạt) chỉ ra yêu cầu phần lớn học sinh phải đạt được. Cột 3 (mức độ

cần đạt cho đại trà) chỉ ra yêu cầu bắt buộc cho tất cả.

Phạm vi cấp học Mức độ có thể đạt Mừc độ cần đạt cho đại trà

Lớp 1, 2 (Stage 1) Mức độ 1 - 3 Mức độ 2

Lớp 3, 4, 5 (Stage 2) Mức độ 2 - 5 Mức độ 4

THCS (Stage 3) Mức độ 3 - 7 Mức độ 5

THPT (Stage 4) Mức độ 5 - 8 Mức độ 6

Sau đây là mô tả chi tiết các mức thể hiện khả năng, năng lực của học sinh theo phân

môn Khoa học máy tính.

Mức 1.

- Học sinh có thể nói chuyện về các công việc, hoạt động hàng ngày của mình (trên

lớp, ở nhà).

Page 28: 2017 - dulieu.itrithuc.vn...các máy tính này là bắt đầu có hệ điều hành chạy như 1 phần mềm độc lập. Thời kỳ này khoa học máy tính đã phát

28 | C S 4 S 3 ( 5 ) - 2 0 1 7

- Học sinh có thể sắp xếp thứ tự các hình ảnh theo một yêu cầu nào đó.

- Học sinh hiểu và nhận ra được rằng có rất nhiều thiết bị, máy tính xung quanh có

khả năng thực hiện các lệnh bằng cách phát tín hiệu cho nó.

- Học sinh có thể thiết lập các lệnh đơn giản để điều khiển thiết bị chơi, robot, games

đơn giản.

Mức 2.

- Học sinh có thể kể và vẽ ra các công việc, hoạt động hàng ngày của mình.

- Học sinh có thể lên kế hoạch và sau đó thực hiện các kế hoạch của mình giống như

điều khiển các robot đồ chơi.

- Học sinh có thể tự giải các bài toán đơn giản sử dụng lập trình cho robot trò chơi.

- Học sinh có thể phân loại được một tập hợp nhỏ các dữ liệu.

Mức 3.

- Học sinh có thể tìm ra được các công việc tương tự nhau trong bảng các công việc

hàng ngày của mình.

- Học sinh lên được 1 kế hoạch công việc bao gồm 1 dãy các lệnh cần thực hiện có thứ

tự (không có lặp và rẽ nhánh).

- Học sinh thiết lập được một dãy các lệnh để thực hiện một yêu cầu, công việc.

- Học sinh có thể mở rộng, phát triển và làm tốt hơn dãy các lệnh của mình.

- Học sinh thể hiện dữ liệu một cách có hệ thống và dễ hiểu.

Mức 4.

- Học sinh có thể phân tích được và thể hiện dãy các lệnh và sự kiện bằng ký hiệu.

- Học sinh phân biệt được các dạng khác nhau của dữ liệu: chữ, số, lệnh.

- Học sinh hiểu được vì sao cần chú ý rất cẩn thận và chính xác cú pháp của các lệnh

khi thực hiện chương trình.

- Học sinh có thể thực hiện được chương trình có các lệnh lựa chọn (rẽ nhánh) và lặp.

- Học sinh có thể tự "suy nghĩ, suy luận" trên một thuật toán và dự đoán được kết quả.

- Học sinh có thể biểu diễn được dữ liệu dưới dạng có cấu trúc và phù hợp để chạy

chương trình.

Mức 5.

- Học sinh đã bắt đầu có thể phân tích và phân rã một bài toán cần giải thành các bài

toán nhỏ hơn và mô tả, thể hiện cách làm đó.

- Học sinh có thể phân tích và thể hiện thuật toán để giải quyết 1 bài toán.

- Học sinh biết cách làm tốt chương trình lên bằng cách thay đổi, bổ sung các biến nhớ

trong chương trình.

Page 29: 2017 - dulieu.itrithuc.vn...các máy tính này là bắt đầu có hệ điều hành chạy như 1 phần mềm độc lập. Thời kỳ này khoa học máy tính đã phát

29 | C S 4 S 3 ( 5 ) - 2 0 1 7

- Học sinh có thể thiết lập, tự điều chỉnh các lệnh của chương trình, và chỉ ra được tính

hiệu quả của các lệnh trong chương trình của mình. Học sinh có thể tiếp thu các góp ý,

phê bình, phân tích về lệnh và có thể sửa chữa, thay đổi lại để làm cho chương trình

tốt lên.

- Học sinh biết cách tạo ra các thủ tục không có tham số dùng trong chương trình của

mình. Học sinh có thể tự xử lý bằng tay các xâu ký tự và lựa chọn kiểu dữ liệu hợp lý

cho chương trình của mình.

- Học sinh có thể thiết kế chương trình sử dụng mảng 1 chiều.

Mức 6.

- Học sinh hiểu và mô tả được một số thuật toán phức tạp hơn, ví dụ các thuật toán tìm

kiếm, sắp xếp.

- Học sinh có thể vẽ sơ đồ khối để mô tả các thành phần của chương trình.

- Học sinh có thể thành thạo sử dụng kỹ thuật phân rã chương trình thành các bài toán

nhỏ hơn và sử dụng chúng trong chương trình của mình.

- Học sinh có thể nhận ra sự tương tự trong bài toán của mình và thiết lập mô hình bài

toán tổng quát mà mô hình đó có thể áp dụng cho bài toán hiện thời với 1 số thay thế

dữ liệu tham số phù hợp.

- Học sinh biết cách tạo ra giao diện để thực hiện việc dự đoán và đánh giá chương

trình bằng cách thay đổi các bộ dữ liệu, từ đó có thể làm tốt hơn chương trình của

mình.

- Học sinh có khả năng viết các chương trình ngắn một cách độc lập. đồng thời biết

tìm sửa lỗi (debug).

- Học sinh biết cách tạo hàm số và thủ tục có tham số dùng trong các chương trình của

mình. Biết sử dụng thành thạo mảng 1 chiều.

- Học sinh có thể thiết kế và sử dụng dữ liệu có cấu trúc 2 chiều (2D).

Mức 7.

- Học sinh có thể mô tả và thực hiện được một số thuật toán cơ bản và hiểu được tính

hiệu quả của chúng. Ví dụ các thuật toán tìm kiếm, sắp xếp, thuật toán xoay rubik, ….

- Học sinh thành thạo trong việc phân rã một bài toán lớn thành các bài toán, vấn đề

nhỏ hơn và sử dụng các bài toán con đó trong nhiều trường hợp tương tự khác.

- Học sinh có thể nhận biết sự tương tự của một số bài toán tương đối phức tạp để tạo

ra mô hình tổng quát, và sau khi thay thế một số thông số để giải các bài toán này.

- Học sinh có thể sử dụng các modules đã được xây dựng sẵn để thiết kế một hệ thống

của riêng mình.

- Học sinh có thể tự thiết kế hệ thống thông tin, dữ liệu phức tạp bao gồm cả CSDL

quan hệ.

Page 30: 2017 - dulieu.itrithuc.vn...các máy tính này là bắt đầu có hệ điều hành chạy như 1 phần mềm độc lập. Thời kỳ này khoa học máy tính đã phát

30 | C S 4 S 3 ( 5 ) - 2 0 1 7

- Học sinh có thể lựa chọn và sử dụng các bộ công cụ lập trình thích hợp trong công

việc của mình, biến đổi các yêu cầu ở bất kỳ dạng hay ngôn ngữ nào về ngôn ngữ

chính của mình.

- Học sinh có thể cảm nhận và đánh giá các lợi thế và yếu điểm của một ngôn ngữ lập

trình, từ đó trên cơ sở các chương trình đã thực hiện, học sinh có thể dự đoán được

chất lượng của các chương trình trong tương lai.

- Học sinh có thể lập trình trên một ngôn ngữ lập trình dạng "văn bản" và thực hiện

các công việc như câu trên. Học sinh có thể viết tài liệu và mô tả chương trình của

mình sẽ chạy như thế nào. Học sinh có thể sửa lỗi trực tiếp trên mô tả này.

- Học sinh có thể phân tích các bộ dữ liệu phức tạp, sử dụng chúng trong chương trình

và đơn giản hóa dữ liệu này.

Mức 8.

- Học sinh có thể tự độc lập chọn cho mình một ngôn ngữ lập trình thích hợp, sử dụng

chúng cho bài toán của mình một cách tương đối dễ dàng.

- Học sinh có thể nhận biết sự tương tự của một số bài toán khá phức tạp để tạo ra mô

hình tổng quát, và sau khi thay thế một số thông số để giải các bài toán này.

- Học sinh có thể tự viết chương trình cho người khác sử dụng và có nhiều phương

pháp, cách tìm sửa lỗi (debug) tiên tiến.

- Học sinh có thể phân tích, sử dụng và đơn giản hóa các cấu trúc dữ liệu phức tạp

bằng nhiều cách, ví dụ, chuẩn hóa chúng.

- Học sinh hiểu và có thể trình bày quan hệ giữa các vấn đề phức tạp trên thực tế và

thuật toán, logic, ảo hóa thông qua (bằng) lập trình.

VI. LỊCH SỬ MÔN TIN HỌC. PHẦN KẾT

Như vậy chúng ta có thể đi đến 1 kết luận: Môn Tin học sẽ thay đổi.

Nhưng Tin học sẽ thay đổi như thế nào? Điều này còn chưa ai biết, tất cả còn phụ

thuộc vào rất nhiều yếu tố, trong đó có Chương trình Giáo dục Phổ thông mới đang

được Bộ GD&DT đưa ra cho nhân dân góp ý kiến.

Tuy nhiên căn cứ vào tình tình thực tế đang diễn ra ở Việt Nam cũng như trên thế giới

có thể dự đoán 1 số điều chắc chắn sau đây.

1. Môn tin học sẽ là bắt buộc

Hiện nay mặc dù chưa được thông qua chính thức, nhưng dựa trên những thông tin có

được từ Khung Chương trình GDPT mới và xu thế của thế giới thì chắc chắn Tin học

sẽ là môn học bắt buộc trong trường phổ thông, xuyên suốt từ các cấp Tiểu học,

THCS và THPT. Tin học sẽ là môn học ngang bằng với các môn học khác.

Có thể tóm tắt sơ bộ về khung môn học này như sau.

- Với các cấp Tiểu học, THCS, Lớp 10 thì Tin học sẽ là môn học BẮT BUỘC CÓ

PHÂN HÓA. Điều này có nghĩa: môn học Tin học là bắt buộc. Nội dung của môn học

Page 31: 2017 - dulieu.itrithuc.vn...các máy tính này là bắt đầu có hệ điều hành chạy như 1 phần mềm độc lập. Thời kỳ này khoa học máy tính đã phát

31 | C S 4 S 3 ( 5 ) - 2 0 1 7

này sẽ luôn có 2 phần: Phần Cơ bản (hay tối thiểu) và sẽ là bắt buộc và Phần nâng cao

sẽ do các nhà trường và học sinh lựa chọn học hay không.

- Từ lớp 11, 12, môn học Tin học sẽ tách làm 2 môn: Tin học ứng dụng và Khoa học

máy tính. Cả 2 môn học này sẽ ngang bằng với tất cả các môn học khác. 2 môn học là

TỰ CHỌN BẮT BUỘC, có nghĩa là học sinh có thể chọn học hoặc không, nếu đã

chọn thì sẽ bắt buộc. Chú ý với cấp THPT là phân hóa nên sẽ là "học gì thi nấy" nên

nếu học sinh chọn môn Tin học thì sẽ thi môn này.

Chú ý thêm là với THPT các môn tự chọn bắt buộc bao gồm: Giáo dục kinh tế và

pháp luật, Lịch sử, Địa lý, Vật lý, Hóa học, Sinh học, Khoa học máy tính, Tin học ứng

dụng, Thiết kế và Công nghệ, Mỹ thuật, Âm nhạc, Chuyên đề học tập.

Như vậy từ năm học 2018-2019 trở đi Tin học sẽ là môn học chính thức trong trường

phổ thông, nhà nước bắt buộc sẽ có biên chế cho GV tin học và bắt buộc phải đầu tư

cho nhà trường để GV có đủ điều kiện giảng dạy môn học này.

Các GV Tin học cần chuẩn bị ngay từ bây giờ cho những thay đổi này.

2. Chương trình môn Tin học sẽ thay đổi căn bản.

Chắc chắn chương trình môn Tin học sẽ có các thay đổi rất cơ bản so với hiện nay.

Như tôi đã trình bày trong các phần trên, nội dung môn học này sẽ được phân loại khá

rõ ràng theo 3 hướng (nội dung và năng lực):

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 3 định hướng này, 2 nhánh sau là IT và DL đã khá quen thuộc với giáo viên tin

học trong nhà trường Việt Nam vì chương trình môn Tin học của chúng ta từ xưa đến

nay hầu hết tập trung vào 2 hướng này.

Chỉ có hướng CS: Khoa học máy tính là hoàn toàn mới.

Với hướng CS - Khoa học máy tính, chương trình chắc chắn sẽ hoàn toàn mới, các

GV cần chuẩn bị ngay từ bây giờ, nếu không sẽ không đủ khả năng để chuẩn bị cho

trương trình mới bắt đầu từ năm học 2018-219. Phần chương trình Khoa học máy tính

các GV có thể tham khảo Khung chương trình phân môn Khoa học máy tính của Anh

quốc mà tôi đã trình bày trong các bài viết trước.

Theo cảm nhận của tôi, thực trạng hiện nay GV Tin học của chúng ta còn rất yếu và

thiếu kiến thức trong phân môn Khoa học máy tính này. GV cần tự giác tự đọc sách,

tự học để chuẩn bị cho định hướng mới này. Một số nội dung chính của phần kiến này

là:

- Thuật toán.

- Ngôn ngữ lập trình,

- Dữ liệu và biểu diễn dữ liệu.

- Máy tính, cấu trúc máy tính và thiết bị.

- Mạng máy tính, giao tiếp, truyền thông.

Page 32: 2017 - dulieu.itrithuc.vn...các máy tính này là bắt đầu có hệ điều hành chạy như 1 phần mềm độc lập. Thời kỳ này khoa học máy tính đã phát

32 | C S 4 S 3 ( 5 ) - 2 0 1 7

Riêng ngôn ngữ lập trình, Pascal sẽ không còn là ngôn ngữ được khuyến khích. Thay

vào đó là các ngôn ngữ kéo thả ví dụ Scratch, với ngôn ngữ bậc cao sẽ là Python, C,

C++, Java, …

3. Môn Tin học sẽ còn phải thay đổi liên tục để đáp ứng nhu cầu phát triển mạnh mẽ của khoa học công nghệ, định hướng STEM và CMCN 4.0.

Chắc tất cả chúng ta vẫn hàng ngày được nghe thấy những từ, cụm từ như STEM,

CMCN 4.0. Đó không phải là những thứ xa vời, mà chúng đang trực tiếp bị ảnh

hưởng bởi những xu thế không thể đảo ngược đó.

Mặc dù Chương trình Khung các môn học của Chương trình Giáo dục PT mới sẽ được

thông qua trong tháng 9 năm nay, nhưng chắc chắn riêng môn Tin học sẽ còn có có

điều chỉnh, thay đổi theo thời gian (không như các môn học khác).

Theo dự đoán của tôi thì thời gian trước mắt trong Khung CT mới, thị phần của phân

môn CS - Khoa học máy tính có thể sẽ chiếm không nhiều trong tổng thế, nếu so sánh

với 2 định hướng kia là IT và DL. Nhưng trong tương lai chắc chắn phân môn CS sẽ

ngày càng đóng vai trò quan trọng và sẽ được điều chỉnh, mở rộng trong khung

chương trình môn Tin học mới. Các giáo viên cần nắm vững điểm này để chuẩn bị

hành trang, kiến thức cho riêng mình.

Hiện nay theo tôi biết, ở các quốc gia phát triển, việc chuẩn bị đón đầu xu thế phát

triển của STEM và CMCN 4.0 đang đặt ra thành các vấn đề rất lớn, nghiêm trọng của

Giáo dục trong các nước đó. Ví dụ tại nước Mỹ thậm chí đã thành lập 1 ủy ban Quốc

gia về Giáo dục để chuẩn bị đối phó với các thay đổi của CMCN 4.0.

4. Các giáo viên Tin học đóng vai trò quyết định trong toàn bộ thay đổi này

Trong tất cả những thay đổi trên, môn Tin học sẽ thay đổi, chương trình sẽ thay đổi,

đầu tư vào môn học này sẽ thay đổi, nhưng điều quan trọng nhất vẫn là con người.

Các giáo viên Tin học sẽ đóng vai trò quyết định trong toàn bộ quá trình thay đổi này.

Nếu các Giáo viên của chúng ta vẫn tư duy như cũ, không chịu thay đổi mình, không

chịu tự học hỏi những nội dung, kiến thức mới thì việc áp dụng Chương trình Giáo

dục PT mới sẽ thất bại với môn Tin học. Tất cả phụ thuộc vào đội ngũ giáo viên tin

học hiện hành trong nhà trường của Việt Nam chúng ta.

Page 33: 2017 - dulieu.itrithuc.vn...các máy tính này là bắt đầu có hệ điều hành chạy như 1 phần mềm độc lập. Thời kỳ này khoa học máy tính đã phát

33 | C S 4 S 3 ( 5 ) - 2 0 1 7

Chuyên mục này sẽ có thường xuyên trên CS4S. Đề ra kỳ này bao gồm các bài tập. lý

thuyết cũng như thực hành, liên quan đến phân môn Khoa học máy tính trong nhà

trường. Sẽ có các phần Đề bài và Lời giải. Riêng các bài tập lập trình sẽ được ghi rõ

yêu cầu cần làm trên ngôn ngữ cụ thể nào.

Bài 4. Công cụ vẽ đường tròn. THCS, THPT

Thiết lập chương trình có chức năng sau:

Trên màn hình có các nút màu sắc để chọn màu. Bên phải là thanh trượt để điều khiển

giá trị bán kính R.

Người dùng có thể chọn màu hoặc thay đổi R.

Thao tác của chương trình như sau: nháy 1 điểm trên màn hình sẽ vẽ 1 hình tròn có

tâm là điểm vừa nháy, bán kính R và với màu sắc đang chọn.

Scratch:

Đề ra kỳ này

Page 34: 2017 - dulieu.itrithuc.vn...các máy tính này là bắt đầu có hệ điều hành chạy như 1 phần mềm độc lập. Thời kỳ này khoa học máy tính đã phát

34 | C S 4 S 3 ( 5 ) - 2 0 1 7

Bài 5. Chạy thi maraton. Tiểu học, THCS.

Trên màn hình ban đầu có 1 trọng tài và 2 bạn học sinh như trên hình. Khi bắt đầu

chơi, trọng tài nói chuẩn bị, và sau đó hô "Bắt đầu". Hai bạn sẽ chạy từ trái sang phải

(với vận tốc ngẫu nhiên). Đến cạnh phải thì dừng lại. Phía trên có đồng hồ đo thời

gian của 2 người chơi. Sau khi kết thúc, trọng tài sẽ tuyên bố tên người thắng cuộc.

Bài 6. Con gì ăn cái gì? THCS, THPT

Page 35: 2017 - dulieu.itrithuc.vn...các máy tính này là bắt đầu có hệ điều hành chạy như 1 phần mềm độc lập. Thời kỳ này khoa học máy tính đã phát

35 | C S 4 S 3 ( 5 ) - 2 0 1 7

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ây.

Mỗi con chỉ ăn 1 thứ mà thôi: Khỉ ăn Chuối, Mèo ăn Táo, Ngựa ăn Cây.

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 "Sai rồi" và chạy về

chỗ cũ.

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