Có nên học chuyên tin

BỘ GIÁO DỤC VÀ ĐÀO TẠO
CHƯƠNG TRÌNH CHUYÊN SÂU THPT CHUYÊN
MÔN: TIN HỌC
Hà Nội, 12/2009
LỚP 10
I. MỤC ĐÍCH
- Thống nhất trên phạm vi toàn quốc kế hoạch dạy học và nội dung dạy học môn Tin học cho trường THPT
chuyên
- Thống nhất trên phạm vi toàn quốc nội dung bồi dưỡng học sinh giỏi môn Tin học cấp THPT.
Mục tiêu:
1. Về kiến thức
- Mở rộng và nâng cao hệ thống kiến thức chuẩn, cơ bản của tin học lớp 10 THPT.
- Trang bị kiến thức cơ bản về một số thuật toán, giải thuật.
- Trang bị một số kiến thức cơ bản về ngôn ngữ lập trình.
2. Về kĩ năng
- Thực hiện được một số thuật toán cơ bản.
- Vận dụng dụng được một số thuật toán cơ bản để giải một số bài toán
- Bước đầu sử dụng được ngôn ngữ lập trình để cài đặt được một số thuật toán, biểu diễn dữ liệu.
3. Về thái độ
- Có tác phong suy nghĩ và làm việc hợp lý, khoa học và chính xác.
- Tự giác, tích cực trong học tập
II. KẾ HOẠCH DẠY HỌC
2
Tổng số tiết: 123 tiết, trong đó có 53 tiết dành cho nội dung chuyên sâu.
Học kì I: 61 tiết
Học kì II: 62 tiết
III. NỘI DUNG DẠY HỌC
3.1. Cấu trúc nội dung dạy học
- Nội dung môn Tin học cho các trường THPT, được qui định trong chương trình môn Tin học, lớp 10, ban hành
kèm theo Quyết định số 16/2006/QĐ-BGDĐT ngày 05 tháng 5 năm2006 của Bộ trưởng Bộ Giáo dục và Đào tạo
Nội dung chuyên sâu: gồm 2 chủ đề mở rộng và chuyên sâu:


+ Ngôn ngữ lập trình:
+ Phân tích, thiết kế và cài đặt giải thuật
3.2. Nội dung chuyên sâu
Chuyên đề: NGÔN NGỮ LẬP TRÌNH
Dưới đây dùng Turbo Pascal để mô tả nội dung kiến thức, kĩ năng cần truyền đạt của chuyên đề Ngôn ngữ lập trình, tuy
nhiên khi thực hiện có thể chọn sử dụng các ngôn ngữ lập trình khác như C
++
, Java,… để dạy học.
Số tiết: 20 tiết
3
TT Nội dung Mức độ cần đạt Ghi chú
1
Khái niệm chương trình và
ngôn ngữ lập trình

Kiến thức này đã có
trong sách giáo khoa,
cần nhắc lại để đảm
bảo tính hệ thống.
2
Các thành phần cơ sở của
ngôn ngữ lập trình TP
Kiến thức
• Biết các khái niệm cơ bản: Bảng chữ cái, Tên, Tên
chuẩn, Tên riêng (từ khoá), Hằng và Biến.
Kỹ năng
• Biết đặt tên đúng.
- Nên minh hoạ bằng
một đoạn chương trình
đơn giản

3
Cấu trúc tổng quát của một
chương trình TP
Kiến thức
• Biết các thành phần của một chương trình TP.
Kĩ năng
• Nhận biết được các thành phần của một chương trình
không có chương trình con.
Dùng một chương trình
TP đơn giản để minh
hoạ
4
TT Nội dung Mức độ cần đạt Ghi chú
4
Dịch, thực hiện và hiệu chỉnh
chương trình
Kiến thức
• Biết các bước: soạn thảo, dịch, thực hiện và hiệu
chỉnh chương trình.
• Biết một số công cụ của môi trường TP.
Kĩ năng
• Bước đầu sử dụng được chương trình dịch để phát
hiện lỗi.
• Bước đầu chỉnh sửa được chương trình dựa vào thông
báo lỗi của Chương trình dịch và tính hợp lí của kết
quả thu được.
Giới thiệu trên máy
tính quá trình viết một
chương trình hoàn
chỉnh để học sinh biết

các thao tác cơ bản.

5
TT Nội dung Mức độ cần đạt Ghi chú
5
Một số kiểu dữ liệu chuẩn: số
nguyên, số thực, logic, ký tự,
xâu
Kiến thức
• Với mỗi kiểu dữ liệu, biết được phạm vi giá trị, cách
khai báo, các hàm chuẩn và các thủ tục chuẩn có thể
dùng.
• Với mỗi biến có kiểu dữ liệu trên, biết cách nhận giá
trị (từ bàn phím và dùng lệnh gán) và cách viết giá trị
ra màn hình
Kĩ năng
• Biết chọn kiểu dữ liệu thích hợp cho các biến cần
khai báo.
• Biết dùng một số hàm chuẩn và thủ tục chuẩn viết
một số chương trình dùng các kiểu dữ liệu trên
Với mỗi kiểu dữ liệu,
cho học sinh làm quen
dần từ các ví dụ đơn
giản đến phức tạp
6
TT Nội dung Mức độ cần đạt Ghi chú
6 Tổ chức rẽ nhánh
Kiến thức
• Hiểu được các câu lệnh này dùng để thể hiện các tình
huống phải biện luận khi giải các bài toán

• Biết cách viết đúng các lệnh về mặt cú pháp.
Kĩ năng
• Sử dụng được các lệnh để viết các đoạn chương trình
có biện luận cấu trúc rẽ nhánh trong mô tả thuật toán
của môt số bài toán đơn giản.
• Viết được các lệnh rẽ nhánh khuyết, rẽ nhánh đầy đủ
và áp dụng để thể hiện được thuật toán của một số bài
toán đơn giản.
- Nên bắt đầu bằng việc
sử dụng các thuật toán
đã có trong sách giáo
khoa lớp 10
- Cần xây dựng các bài
thực hành và tổ chức
thực hiện tại phòng
máy để học sinh đạt
được những kỹ năng
theo yêu cầu
- Nhấn mạnh rằng khác
với kiểu mảng, trong
kiểu bản ghi, các
trường có thể thuộc các
kiểu dữ liệu khác nhau.
7
TT Nội dung Mức độ cần đạt Ghi chú
7 Tổ chức lặp
Kiến thức
• Hiểu nhu cầu của cấu trúc lặp trong biểu diễn thuật
toán
• Hiểu cấu trúc lặp kiểm tra điều kiện trước, cấu trúc

lặp với số lần định trước.
• Biết cách vận dụng đúng đắn từng loại cấu trúc lặp
vào tình huống cụ thể.
Kĩ năng
• Mô tả được thuật toán của một số bài toán sử dụng
lệnh lặp.
• Viết đúng các lệnh lặp kiểm tra điều kiện trước, lệnh
lặp với số lần định trước
• Dùng để viết chương trình giải một số bài toán.
8
TT Nội dung Mức độ cần đạt Ghi chú
8 Kiểu mảng Kiến thức
• Hiểu được cách dùng dữ liệu kiểu mảng một chiều và
hai chiều.
• Biết cách khai báo mảng và ký hiệu các phần tử của
mảng.
Kĩ năng
• Thực hiện được khai báo mảng, truy cập, tính toán
các phần tử của mảng.
• Cài đặt được thuật toán của một số bài toán với kiểu
dữ liệu mảng một chiều.
9
TT Nội dung Mức độ cần đạt Ghi chú
9 Kiểu bản ghi
Kiến thức
• Biết kiểu Bản ghi dùng để thể hiện một loạt đối tượng
cùng có chung một số thuộc tính.
• Biết cách khai báo biến kiểu bản ghi.
• Biết truy cập trực tiếp các trường và truy cập bằng
lệnh With ... Do ....

Kỹ năng
Sử dụng được loại biến bản ghi một cách linh hoạt
10 Kiểu tập hợp Kiến thức
• Biết cách khai báo dữ liệu kiểu tập hợp với các hạn
chế so với tập hợp dùng trong Toán học
• Biết các hàm chuẩn và thủ tục chuẩn đối với kiểu
tập hợp
Kỹ năng
Sử dụng được kiểu tập hợp thể hiện một số đối tượng
trong một số bài toán
10
TT Nội dung Mức độ cần đạt Ghi chú
11 Tệp và xử lý tệp
Kiến thức
• Biết khái niệm tệp định kiểu và tệp văn bản và mục
đích của các kiểu dữ liệu này để lưu giữ lâu dài các
thông tin tạo lập được.
• Biết các lệnh khai báo tệp định kiểu và tệp văn bản.
• Biết các lệnh và một số hàm, thủ tục chuẩn khi làm
việc với tệp: gán tên cho biến tệp, mở tệp, đọc thông tin
từ tệp, ghi thông tin vào tệp, đóng tệp.
Kĩ năng
Biết các thao tác tệp, chủ yếu là tệp văn bản
11
TT Nội dung Mức độ cần đạt Ghi chú
12 Chương trình con
Kiến thức
• Biết sự cần thiết của việc tổ chức chương trình con
khi viết chương trình-chia để trị.
• Biết sự phân loại chương trình con: thủ tục và hàm.

• Biết cấu trúc một chương trình con.
• Biết gọi một thủ tục, một hàm
Kĩ năng
Viết được các chương trình phức tạp bằng cách tổ chức
các chương trình con.
12
Chuyên đề: PHÂN TÍCH, THIẾT KẾ VÀ CÀI ĐẶT THUẬT TOÁN
Số tiết: 33 tiết
TT Nội dung Mức độ cần đạt Ghi chú
1
Khái niệm bài toán và thuật
toán
Có trong sách giáo
khoa lớp 10, chỉ cần hệ
thống lại
2 Phân tích thuật toán
Kiến thức
• Biết được cùng một bài toán có thể có nhiều thuật toán
khác nhau, việc phân tích thuật toán giúp ta lựa chọn
thuật toán thích hợp.
• Biết các yếu tố để đánh giá một thuật toán tốt.
Kỹ năng
Đánh giá được độ phức tạp của một số thuật toán cơ bản.
Việc phân tích, đánh
giá độ phức tạp của
từng thuật toán được
thực hiện khi học các
thuật toán cụ thể.
Việc đánh giá độ phức
tạp của thuật toán sẽ

còn được củng cố khi
giới thiệu đến các thuật
toán cụ thể ở phần tiếp
theo.
13
TT Nội dung Mức độ cần đạt Ghi chú
3
Một số thuật toán duyệt: tổ
hợp, dãy nhị phân, hoán vị,
phân chia số
Kiến thức
Biết các thuật toán duyệt tuần tự và duyệt đệ quy các tổ
hợp, dãy nhị phân, hoán vị, phân chia số
Kỹ năng
Vận dụng được để giải một số bài toán và cài đặt được trên
máy tính.
1.
4
Một số thuật toán sắp xếp:
sắp xếp đơn giản, QuickSort,
MergeSort
Kiến thức
• Biết được tầm quan trọng của các thuật toán sắp xếp
• Biết ba thuật toán sắp xếp phổ biến: sắp xếp đơn giản,
QuickSort, MergeSort
Kỹ năng
Vận dụng được để giải một số bài toán và cài đặt được trên
máy tính.
14
TT Nội dung Mức độ cần đạt Ghi chú

5 Chia để trị
Kiến thức
• Biết được ý tưởng cơ bản của phương pháp giải bài toán
bằng cách chia để trị là chuyển việc giải bài toán kích thước
lớn về việc giải bài toán có kích thước nhỏ hơn.
• Biết một số thuật toán tiêu biểu: tìm kiếm nhị phân, luỹ
thừa nhanh.
Kỹ năng
• Vận dụng được để giải một số bài toán khác và cài đặt
được trên máy tính.
6 Chia để trị
Kiến thức
• Biết được ý tưởng cơ bản của phương pháp giải bài toán
bằng cách chia để trị là chuyển việc giải bài toán kích thước
lớn về việc giải các bài toán có kích thước nhỏ hơn
• Biết được một số thuật toán tiêu biểu: tìm kiếm nhị
phân, luỹ thừa nhanh
Kỹ năng
• Vận dụng được để giải một số bài toán khác và cài đặt
được trên máy tính.
15
TT Nội dung Mức độ cần đạt Ghi chú
7
Mô hình đồ thị không có và có
trọng số, cây
Kiến thức
• Nắm được các khái niệm cơ bản liên quan đến mô hình
đồ thị: đỉnh, cạnh/cung, đường đi, chu trình, tính liên thông,
thành phần liên thông, cây khung, trọng số thông qua các ví
dụ điển hình.

• Biết cách thể hiện đồ thị khi lập trình.
Kỹ năng
Cài đặt được các cách biểu diễn đồ thị
8
Bài toán tìm đường đi ngắn
nhất
Kiến thức
Biết được hai thuật toán tiêu biểu: Floyd và Dijkstra
Kỹ năng
Vận dụng được để giải một số bài toán và cài đặt được trên
máy tính.
9
Bài toán tìm cây khung nhỏ
nhất
Kiến thức
Biết được hai thuật toán Prim và Kruskal
Kỹ năng
Vận dụng được để giải một số bài toán và cài đặt được trên
máy tính.
16
IV. GIẢI THÍCH VÀ HƯỚNG DẪN THỰC HIỆN
1. Kế hoạch dạy học
Tổng số tiết cho lớp 10 chuyên là 123 tiết. Trong đó, có 70 tiết học theo chương trình, sách giáo khoa chung cho
tất cả các lớp 10 THPT, 53 tiết còn lại được dành để dạy học các modul kiến thức của phần mở rộng và nâng cao. Việc
phân chia cụ thể số tiết học cho mỗi phần mở rộng và nâng cao phụ thuộc vào điều kiện thực tế.
Do thời lượng môn Tin học chuyên ít, nên khi chọn chủ đề tự chọn các học sinh lớp 10 chuyên tin học cần chọn
chủ đề Tin học để bổ sung thêm thời lượng cho môn học.
2. Nội dung dạy học
Nội dung các chuyên đề được xây dựng với các điều kiện về giáo viên, cơ sở vật chất được đảm bảo và khả năng
tiếp thu của học sinh là khá tốt và dựa trên quan niệm:

- Lớp 10 cần học, làm các bài tập để tiếp thu các kiến thức cơ bản và rèn luyện một số kĩ năng phổ thông. Bước
đầu trang bị một số kiến thức mở rộng về giải thuật, vận dụng để giải một số bài toán và cài đặt trên máy tính.
- Lớp 11 là lớp bản lề của cả khoá, cần đưa vào các vấn đề nâng cao, chuyên sâu, các bài tập khó hơn.
- Lớp 12 là lớp cuối cấp, học sinh chuẩn bị cho kì thi thi tốt nghiệp và đại học-cao đẳng, chương trình có giảm
nhẹ, nhất là phần bài tập. Chủ yếu đưa vào các vấn đề để mở rộng tầm hiểu biết và tăng cường ứng dụng công
nghệ.
17
Không bắt buộc phải dạy hết toàn bộ các chủ đề cũng như tất cả các nội dung trong từng chủ đề, việc chọn chủ đề
và nội dung trong từng chủ đề cần cân nhắc dựa trên điều kiện về giáo viên, cơ sở vật chất và khả năng tiếp thu của học
sinh.
Tài liệu này thống nhất nội dung dạy học và định hướng việc xây dựng một chương trình cụ thể cho các lớp
chuyên tin học trong trường THPT chuyên, các lớp chuyên tin học của khối phổ thông chuyên thuộc trường đại học. Các
trường THPT không chuyên căn cứ vào nội dung quy định trong bản hướng dẫn này để bồi dưỡng học sinh giỏi tin học
với thời lượng thích hợp.
Ngoài ra, chương trình này còn định hướng kế hoạch xây dựng đội ngũ, đào tạo, bồi dưỡng giáo viên cho các lớp
chuyên tin học. Định hướng việc thu thập tài liệu tốt, phù hợp.
Số tiết đưa ra cho mỗi chủ đề chỉ mang tính gợi ý và tương đối. Tuỳ điều kiện cụ thể, giáo viên tự xác định số tiết
của từng bài giảng.
3. Phương pháp và phương tiện dạy học
1) Về cơ bản việc dạy các chủ đề theo cách học sinh tự nghiên cứu dưới sự hướng dẫn, định hướng của giáo viên.
Khuyến khích học sinh trao đổi, thảo luận (kể cả qua mạng Internet) về các nội dung học tập.
2) Hai chủ đề nên dạy song song một cách hợp lý sao cho luôn có các bài tập hay để lập trình.
3) Khi dạy mô đun 1, không nhất thiết dạy xong các kiểu dữ liệu mới dạy lệnh. Ví dụ, sau kiểu lô gic, có thể dạy
luôn các tổ chức rẽ nhánh, tổ chức lặp.
4) Học sinh chuyên cần cài đặt các thuật toán trên máy tính và trao đổi, tham khảo học tập qua Internet, vì vậy các
trường cần trang bị máy tính, Internet cho các lớp chuyên tin.
18
4. Đánh giá kết quả học tập của học sinh
1) Hiện tại ngôn ngữ lập trình Pascal là ngôn ngữ lập trình được dùng trong kì thi chọn học sinh giỏi quốc gia môn
tin học (chương trình dịch có thể là Turbo Pascal hoặc Free Pascal). Tuy nhiên, để phù hợp với xu thế phát triển

của ngôn ngữ lập trình, khuyến khích sử dụng các ngôn ngữ dùng cho lập trình chuyên nghiệp như C, Java... để
dạy học.
2) Nội dung dạy học tin học chuyên còn định hướng cho các kì thi tuyển chọn học sinh giỏi tin học ở địa phương và
quốc gia.
3) Việc đánh giá kết quả học tập của học sinh chuyên phải căn cứ vào mục tiêu dạy học (kiến thức, kĩ năng, yêu cầu
về thái độ); việc biên soạn đề kiểm tra phải căn cứ vào nội dung được qui định trong chương trình môn Tin học
THPT và chương trình mở rộng, chuyên sâu, chú trọng đánh giá kĩ năng thực hành, năng lực giải quyết vấn dề và
năng lực sáng tạo của học sinh.
4) Cần sử dụng kết hợp các phương pháp đánh giá như đánh giá theo kết quả đầu ra, đánh giá theo quá trình. Đa
dạng hoá các loại hình kiểm tra: viết, vấn đáp, thực hành trên máy, tự kiểm tra, học sinh kiểm tra nhau, đánh giá
của các chuyên gia, đánh giá nhờ các website trên mạng,...
19
TÀI LIỆU THAM KHẢO
1) Sách giáo khoa Tin học lớp 10, 11, 12
2) Wirth, N., Programs = Algorithms + Data Structures (có bản dịch tiếng Việt: Chương trình = Thuật toán + Cấu
trúc dữ liệu)
3) Sedgewick, R., Algorithms (Bản dịch tiếng Việt: Cẩm nang Thuật toán)
4) Ullman, J.D., Data structures and Algorithms.
5) Ley, J.B., Programming pearls (Bản dịch tiếng Việt : Những viên ngọc trong lập trình).
6) Courtin J. Kowarski I.
7) Nhập môn thuật toán và cấu trúc dữ liệu
8) Tạp chí thế giới Vi tính PCWORLD
9) L.Nyhoff, S. Leestma (Bản dịch tiếng Việt : Lập trình nâng cao bằng Passcal với các cấu trúc dữ liệu )
10) Một số sách bài tập lập trình của ĐHTH HN , ĐHBK HN,Viện KHGD
11) Đỗ Xuân Lôi, Cấu trúc dữ liệu và giải thuật.
12) Một số trang web:
trang web của các kỳ thi Tin học quốc tế
: trang web của các sinh viên và học sinh chuyên Tin Việt Nam do Đại học Quốc gia Hà
Nội chủ trì
20

LỚP 11
I MỤC ĐÍCH
- Thống nhất trên phạm vi toàn quốc kế hoạch dạy học và nội dung dạy học môn Tin học cho trường THPT
chuyên
- Thống nhất trên phạm vi toàn quốc nội dung bồi dưỡng học sinh giỏi môn Tin học cấp THPT.
Mục tiêu:
Về kiến thức:
- Mở rộng và nâng cao hệ thống chuẩn, cơ bản của môn Tin học lớp 11 THPT
- Tiếp tục mở rộng và nâng cao các nội dung các chuyên đề đã có ở lớp 10 chuyên môn Tin học trường THPT
chuyên.
- Trang bị một số chiến lược xây dựng thuật toán: Quy hoạch động, Lí thuyết trò chơi,...
Về kĩ năng:
- Vận dụng được các chiến lược thiết kế thuật toán để giải các bài toán cụ thể ở mức tương đối khó và khó.
- Thành thạo trong tổ chức dữ liệu, cài đặt thuật toán bằng ngôn ngữ lập trình bậc cao.
Thái độ:
- Có ý thức xây dựng các thuật toán tốt cho các bài toán cụ thể
- Có ý thức rèn luyện kĩ năng lập trình chuyên nghiệp, giải các bài toán một cách hiệu quả .
II. KẾ HOẠCH DẠY HỌC
21
Ngoài 52,5 tiết của chương trình Tin học 11 THPT, có 35 tiết dành cho chuyên sâu.
22
III NỘI DUNG DẠY HỌC
3.1. Cấu trúc nội dung dạy học
- Nội dung môn Tin học cho các trường THPT, được qui định trong chương trình môn Tin học, lớp 11, ban hành
kèm theo Quyết định số 16/2006/QĐ-BGDĐT ngày 05 tháng 5 năm2006 của Bộ trưởng Bộ Giáo dục và Đào tạo
- Nội dung chuyên sâu: gồm các chuyên đề chuyên sâu.
3.2. Nội dung chuyên sâu
Nội dung chuyên sâu bao gồm các chuyên đề chuyên sâu sau:
Chuyên đề 1. Thuật toán Quy hoạch động
Chuyên đề 2. Lý thuyết trò chơi

Chuyên đề 3. Duyệt toàn bộ nâng cao
Chuyên đề 4. Bài toán luồng cực đại trong mạng và ứng dụng
Chuyên đề 5. Bài toán lập lịch
Chuyên đề 1. THUẬT TOÁN QUY HOẠCH ĐỘNG ( Dynamic programming algorithm)
Số tiết: 15
TT Nội dung Mức độ cần đạt Ghi chú
1. Bài toán có thể giải bằng
thuật toán QHĐ
Kiến thức:
• Biết nguyên lí tối ưu, đặc trưng các bài toán có
thể giải bằng thuật toán QHĐ, đặc trưng chính
Thông qua ví dụ để minh họa
lí thuyết.
23
TT Nội dung Mức độ cần đạt Ghi chú
của thuật toán QHĐ.
• Phân biệt sự giống và khác nhau căn bản giữa
thuật toán QHĐ và Đệ quy
Kĩ năng:
Nhận biết được bài toán cụ thể có thể giải được
bằng QHĐ hay không.
2. Thuật toán QHĐ
Kiến thức:
• Hiểu các bước cần thực hiện khi xây dựng
thuật toán QHĐ
• Hiểu các khái niệm cơ bản: cở sở, bảng phương
án, công thức truy hồi, các truy vết để tìm
nghiệm.
Kĩ năng:
Xây dựng được thuật toán QHĐ để giải bài toán cụ

thể.
Các ví dụ ban đầu nên chọn bài
toán dễ tìm thuật toán QHĐ để
giải.
3 Một số bài toán thường gặp
được giải bằng QHĐ
Kiến thức:
- Nên yêu cầu HS hiểu thấu đáo
cách xác định các khái niệm
24
TT Nội dung Mức độ cần đạt Ghi chú
- Bài toán dãy con đơn điệu
tăng dài nhất;
- Bài toán xâu con chung dài
nhất;
- Bài toán biến đổi xâu;
- Bài toán cái túi;
- Bài toán lũy thừa một số;
- Bài toán nhân các ma trận;
- Bài toán chia đa giác thành
các tam giác;
Với mỗi bài toán cụ thể, hiểu cách xác định các
khái niệm cơ bản của QHĐ.
Kĩ năng
Cài đặt được chương trình và thử nghiệm chương
trình với các bộ dữ liệu khác nhau.
cơ bản trước khi cài đặt chương
trình.
- GV có thể tùy chọn các bài
toán cụ thể khác để thay thế

cho các bài toán nêu ở cột bên.
Chuyên đề 2. LÝ THUYẾT TRÒ CHƠI
Số tiết: 15
TT Nội dung Mức độ cần đạt Ghi chú
1 Khái niệm bài toán trò chơi.
Phân loại. Một số bài toán
Kiến thức:
• Hiểu khái niệm về trò chơi đối kháng và không
Chưa yêu cầu tìm chiến lược
tối ưu
25