29
2017 Computer Science: A curriculum for schools

Computer Science - dulieu.itrithuc.vn · trình này nằm trong chương trình khung tổng thế môn tin học của nước Anh. Tài liệu này vô cùng hữu ích cho các

  • Upload
    others

  • View
    2

  • Download
    0

Embed Size (px)

Citation preview

2017

Computer Science: A curriculum for schools

Khung chương trình phân môn Khoa học máy tính (Anh quốc)

2 | C S 4 S 1 - 2 0 1 7

Khung chương trình phân môn Khoa học máy tính (CS -

Computer Science) trong môn Tin học của Anh quốc

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

Như chúng ta đã biết 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 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 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.

Để các giáo viên Tin học của Việt Nam hiểu được ý nghĩa và nắm bắt được những

thay đổi cơ bản sẽ diễn ra với môn Tin học trong thời gian tới (sau năm 2018), tôi sẽ

biên dịch Khung chương trình phân môn Khoa học máy tính của Anh quốc, chương

trình này nằm trong chương trình khung tổng thế môn tin học của nước Anh.

Tài liệu này vô cùng hữu ích cho các giáo viên đang giảng dạy Tin học trong các nhà

trường phổ thông tại Việt Nam. Các giáo viên tin học cần biết trước để chuẩn bị tự

trang bị kiến thức lõi về CNTT cho mình để có thể giảng dạy được Tin học trong

chương trình mới.

Lưu ý rằng Khung chương trình Khoa học máy tính của Anh quốc có thể hơi nặng so

với chương trình môn Tin học của Việt Nam (tôi nghĩ chắc chương trình của Việt

Nam sẽ bằng khoảng 1/3 chương trình này). tuy nhiên các giáo viên cần trang bị nhiều

kiến thức hơn mới có thể giảng dạy tốt được. Trong mọi trường hợp, tài liệu này sẽ rất

cần thiết cho mỗi giáo viên của Việt Nam.

Sau đây là chương trình khung phân môn Khoa học máy tính của nước Anh.

Khung chương trình phân môn Khoa học máy tính (Anh quốc)

3 | C S 4 S 1 - 2 0 1 7

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

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

Mục lục 1. Tầm quan trọng và đặc thù của Khoa học máy tính trong nhà trường ....................... 4

1.1. Khoa học máy tính là một môn học chuẩn .......................................................... 5

1.2. Khoa học máy tính là môn học STEM ................................................................ 5

1.3. So sánh định hướng CS - Khoa học máy tính và IT - Ứng dụng CNTT ............. 6

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

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

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

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

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

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

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

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

3.2. Lập trình ............................................................................................................ 13

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

4.1. Thuật toán .......................................................................................................... 17

Lớp 1, 2, 3 ................................................................................................................. 17

Lớp 4, 5 ..................................................................................................................... 17

THCS ........................................................................................................................ 18

THPT ........................................................................................................................ 18

4.2. Lập trình ............................................................................................................ 18

Lớp 1, 2, 3 ................................................................................................................. 18

Lớp 4, 5 ..................................................................................................................... 19

THCS ........................................................................................................................ 19

THPT ........................................................................................................................ 20

4.3. Dữ liệu ............................................................................................................... 20

Lớp 1, 2, 3 ................................................................................................................. 20

Lớp 4, 5 ..................................................................................................................... 20

THCS ........................................................................................................................ 21

THPT ........................................................................................................................ 21

Khung chương trình phân môn Khoa học máy tính (Anh quốc)

4 | C S 4 S 1 - 2 0 1 7

4.4. Máy tính ............................................................................................................. 22

Lớp 1, 2, 3 ................................................................................................................. 22

Lớp 4, 5 ..................................................................................................................... 22

THCS ........................................................................................................................ 23

THPT ........................................................................................................................ 23

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

Lớp 1, 2, 3 ................................................................................................................. 23

Lớp 4, 5 ..................................................................................................................... 23

THCS ........................................................................................................................ 24

THPT ........................................................................................................................ 24

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

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

1. Tầm quan trọng và đặc thù của Khoa học máy tính trong nhà

trường

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

Khung chương trình phân môn Khoa học máy tính (Anh quốc)

5 | C S 4 S 1 - 2 0 1 7

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

1.1. Khoa học máy tính là một môn học chuẩn

Trước hết cần khẳng định luôn, phân môn Khoa học máy tính trong môn Tin học mới

là một môn khoa học chuẩn theo đúng nghĩa.

Khái niệm môn khoa học chuẩn được đặc trưng bởi các yếu tố sau:

- Kiến thức chuẩn. Có một tập hợp các ý tưởng, khái niệm và khung lý thuyết để có

thể triển khai các ý tưởng, khái niệm đó.

- Tập hợp các phương pháp lý luận và kỹ năng chuẩn. Có đủ một tập hợp các

phương pháp lý luận, kỹ thuật và kỹ năng để giải được các bài toán, vấn đề nảy sinh

của kiến thức.

- Tư duy và phương pháp làm việc chuẩn. Có tư duy và các phương pháp làm việc

riêng để thế giới của kiến thức sẽ khác biệt với các môn học chuẩn khác.

- Thời gian dài. Kiến thức của môn học không bị lạc hậu nhanh với thời gian.

- Không quá phụ thuộc vào công nghệ đặc thù. Kiến thức của môn học đủ tổng quát

để không phụ thuộc vào các công nghệ đặc thù nào.

Phân môn Khoa học máy tính có đủ các đặc tính trên. Chú ý rằng cả 2 phân môn,

hướng còn lại là IT và DL của Tin học đều không hội tụ đủ các đặc tính trên.

Phân môn Khoa học máy tính có đầy đủ các phương pháp, lý luận và lý thuyết nền

tảng (ví dụ lý thuyết tính toán, …), và được phổ biến rộng rãi cùng rất nhiều ý tưởng

và khái niệm kèm theo (ví dụ khái niệm CSDL quan hệ, ….). Phân môn này (CS) có

cả một tập hợp các phương pháp, kỹ năng, kỹ thuật để giải quyết vấn đề. Tư duy khoa

học máy tính khác biệt hẳn so với các khoa học khác, ví dụ như toán học, vật lý, hóa

học. Các ý tưởng, khái niệm, lý luận nền tảng của khoa học máy tính đã ổn định hơn

20 năm trở lại đây và sẽ ổn định lâu dài nữa. Và cuối cùng tất cả các phương pháp kỹ

thuật và kỹ năng chính của khoa học máy tính đều phát triển độc lập với các công

nghệ đặc thù mới phát sinh sau này.

1.2. Khoa học máy tính là môn học STEM

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

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

Khung chương trình phân môn Khoa học máy tính (Anh quốc)

6 | C S 4 S 1 - 2 0 1 7

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

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.

1.3. So sánh định hướng CS - Khoa học máy tính và IT - Ứng dụng CNTT

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.

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

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

Khung chương trình phân môn Khoa học máy tính (Anh quốc)

7 | C S 4 S 1 - 2 0 1 7

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

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.

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

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.

Khung chương trình phân môn Khoa học máy tính (Anh quốc)

8 | C S 4 S 1 - 2 0 1 7

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

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

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

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

Khung chương trình phân môn Khoa học máy tính (Anh quốc)

9 | C S 4 S 1 - 2 0 1 7

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

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

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

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

Khung chương trình phân môn Khoa học máy tính (Anh quốc)

10 | C S 4 S 1 - 2 0 1 7

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

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

ả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?

Khung chương trình phân môn Khoa học máy tính (Anh quốc)

11 | C S 4 S 1 - 2 0 1 7

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

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

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.

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

Khung chương trình phân môn Khoa học máy tính (Anh quốc)

12 | C S 4 S 1 - 2 0 1 7

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

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.

Khung chương trình phân môn Khoa học máy tính (Anh quốc)

13 | C S 4 S 1 - 2 0 1 7

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

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

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

Khung chương trình phân môn Khoa học máy tính (Anh quốc)

14 | C S 4 S 1 - 2 0 1 7

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

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

Khung chương trình phân môn Khoa học máy tính (Anh quốc)

15 | C S 4 S 1 - 2 0 1 7

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

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.

Khung chương trình phân môn Khoa học máy tính (Anh quốc)

16 | C S 4 S 1 - 2 0 1 7

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

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

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ô

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

Khung chương trình phân môn Khoa học máy tính (Anh quốc)

17 | C S 4 S 1 - 2 0 1 7

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.

4.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?)

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

Khung chương trình phân môn Khoa học máy tính (Anh quốc)

18 | C S 4 S 1 - 2 0 1 7

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

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

Khung chương trình phân môn Khoa học máy tính (Anh quốc)

19 | C S 4 S 1 - 2 0 1 7

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

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

Khung chương trình phân môn Khoa học máy tính (Anh quốc)

20 | C S 4 S 1 - 2 0 1 7

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

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

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.

Khung chương trình phân môn Khoa học máy tính (Anh quốc)

21 | C S 4 S 1 - 2 0 1 7

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

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

Khung chương trình phân môn Khoa học máy tính (Anh quốc)

22 | C S 4 S 1 - 2 0 1 7

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

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

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.

Khung chương trình phân môn Khoa học máy tính (Anh quốc)

23 | C S 4 S 1 - 2 0 1 7

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

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

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

Khung chương trình phân môn Khoa học máy tính (Anh quốc)

24 | C S 4 S 1 - 2 0 1 7

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

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

Khung chương trình phân môn Khoa học máy tính (Anh quốc)

25 | C S 4 S 1 - 2 0 1 7

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

Các chuyên mục nâng cao này sẽ tập trung vào giai đoạn THPT và dành cho học sinh

các lớp chuyên.

1. Thuật toán

• Số học trên các trường modular

• Băm

• Các thuật toán phân tán.

• Các thuật toán tối ưu và cảm tính; các giải thuật dạng "đủ tốt" ví dụ thuật toán

di truyền, thuật toán SA (simulated annealing).

• Phương pháp Monte Carlo.

• Hệ thống tự học (learning system).

• Mô phỏng sinh học; mạng nơron; automat tế bào; ….

• Các thuật toán đồ họa (ví dụ quay mô hình 3D).

2. Lập trình

• Sử dụng thành thạo lập trình đệ qui.

• Lập trình mô phỏng thời gian thực.

• Người máy.

• Biết sử dụng các ngôn ngữ lập trình hướng đối tượng, bậc cao khác.

• Phát triển ứng dụng thực tế.

• Phát triển trên các môi trường khác nhau.

• Lập trình dựa trên SDK và phần cứng.

• Lập trình mã nguồn mở.

3. Dữ liệu

• Đồ thị của mảng và thuật toán duyệt trên cây nhị phân.

• Con trỏ và mảng động.

• Xử lý dữ liệu lớn.

• Xử lý dữ liệu động (đặc biệt dữ liệu trên Internet).

• Biểu diễn con trỏ động.

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

• Ngắt và các hệ thống thời gian thực.

• Hệ thống đa vi xử lý (multiprocessor system).

• Quản lý bộ nhớ caches.

• Các vấn đề bất định.

5. Truyền thông và Internet

Khung chương trình phân môn Khoa học máy tính (Anh quốc)

26 | C S 4 S 1 - 2 0 1 7

• Mã hóa không đối xứng

• Trao đổi key.

6. Tương tác người - máy (HCI - Human Computer Interative)

• Hiểu sự quan trọng của giao diện tương tác; Máy tính tương tác với người

dùng.

• Thiết kế giao diện tương tác đơn giản.

5. 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à).

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

Khung chương trình phân môn Khoa học máy tính (Anh quốc)

27 | C S 4 S 1 - 2 0 1 7

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

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

Khung chương trình phân môn Khoa học máy tính (Anh quốc)

28 | C S 4 S 1 - 2 0 1 7

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

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

Khung chương trình phân môn Khoa học máy tính (Anh quốc)

29 | C S 4 S 1 - 2 0 1 7

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.