TỔNG QUAN HỌC THUẬT VÀ NỘI DUNG GIÁO TRÌNH LẬP TRÌNH CĂN BẢN (MÃ MÔN MH 10)
Tổng quan về giáo trình
Giáo trình môn học Lập trình căn bản (Mã số môn học: MH 10) do tác giả Phạm Tất Thành biên soạn, được ban hành kèm theo Quyết định số 285/QĐ-CĐNHN ngày 21 tháng 07 năm 2017 của Hiệu trưởng Trường Cao đẳng nghề Hà Nam. Tài liệu được thiết kế giảng dạy cho nghề Quản trị mạng máy tính ở trình độ Cao đẳng, đồng thời có thể sử dụng làm tài liệu tham khảo cho các ngành đào tạo khác trong hệ thống giáo dục nghề nghiệp.
Về vị trí trong chương trình đào tạo, môn học được bố trí giảng dạy sau khi sinh viên đã hoàn thành các môn học chung, các môn học cơ sở về tin học và tin học văn phòng. Đây là môn học lý thuyết chuyên ngành nhưng có thời lượng thực hành đáng kể trên môi trường phần mềm cụ thể.
Mục tiêu học tập (Learning Outcomes) của giáo trình được xác lập trên ba phương diện:
- Về kiến thức: Sinh viên trình bày được khái niệm cơ bản về lập trình; mô tả được cú pháp và công dụng của các câu lệnh trong ngôn ngữ lập trình; phân tích được nhiệm vụ của chương trình; nắm rõ các thao tác trong môi trường phát triển (biên tập mã nguồn, sử dụng công cụ, điều khiển luồng, gọi thực đơn trợ giúp, kiểm tra lỗi, gỡ rối và bẫy lỗi).
- Về kỹ năng: Viết và thực thi được chương trình trên máy tính; thiết lập môi trường hoạt động của hệ thống (điều khiển, tập hợp dữ liệu, nhập dữ liệu từ bàn phím hoặc tệp, in kết quả); chú thích chi tiết các đoạn xử lý mã nguồn.
- Về năng lực tự chủ và trách nhiệm: Tự chủ giải quyết các bài tập lập trình cơ bản hoặc làm việc theo nhóm; áp dụng kiến thức để giải quyết bài toán thực tế; đánh giá chất lượng sản phẩm thực hành của bản thân và thành viên trong nhóm.
Cấu trúc giáo trình gồm 6 chương:
- Chương 1: Làm quen với ngôn ngữ lập trình
- Chương 2: Các thành phần cơ bản
- Chương 3: Các cấu trúc điều khiển
- Chương 4: Hàm và thủ tục
- Chương 5: Dữ liệu kiểu tập hợp, mảng và bản ghi
- Chương 6: Dữ liệu kiểu chuỗi
Điểm đặc trưng của giáo trình là việc sử dụng ngôn ngữ lập trình Pascal (môi trường Turbo Pascal 7.0 / Borland Pascal) làm công cụ sư phạm cốt lõi để hình thành tư duy lập trình cấu trúc, tường minh hóa các khái niệm về bộ nhớ, biến số và luồng điều khiển.
Nội dung kiến thức cốt lõi
Các chương và chủ đề chính
Nội dung giáo trình được thiết kế theo trình tự logic chặt chẽ, từ nhận thức cơ bản về môi trường lập trình đến việc xây dựng các khối mã nguồn phức tạp:
- Chương 1: Làm quen với ngôn ngữ lập trình: Giới thiệu định nghĩa về lập trình, ngôn ngữ máy và lịch sử phát triển của ngôn ngữ Pascal do Giáo sư Niklaus Wirth (Trường Đại học Kỹ thuật Zurich - Thụy Sĩ) đề xuất năm 1970. Trình bày bảng phân cấp ngôn ngữ lập trình theo mức độ trừu tượng (thấp, cao, rất cao). Giới thiệu giao diện Turbo Pascal, các phím chức năng (
F1trợ giúp,F2lưu tệp,F3mở tệp,F7/F8chạy từng bước,Alt+F9biên dịch,Ctrl+F9thực thi). Cung cấp khung cấu trúc chuẩn của chương trình gồm các từ khóaProgram,Uses,Label,Const,Type,Var,Begin..End.. - Chương 2: Các thành phần cơ bản: Khảo sát hệ thống từ khóa (
and,array,begin,case,const,div,mod,for,function,if,procedure,record,type,var,while...), kiểu dữ liệu số nguyên (Integer), số thực (Real), ký tự (Chardựa trên bảng mã ASCII từ 0 đến 255), logic (Booleannhận giá trịTrue/False), và chuỗi (Stringtối đa 255 ký tự). Quy tắc khai báo hằng (Const), biến (Var), các phép toán số học/quan hệ, biểu thức và thứ tự ưu tiên toán tử. Cú pháp các câu lệnh đơn giản: lệnh gán (:=), thủ tục nhập (Read,Readln,Assign,Reset,ReadKey,KeyPressed) và thủ tục xuất (Write,Writeln,Rewrite,Close) cùng định dạng xuất có quy cách (I:N,R:N:M). - Chương 3: Các cấu trúc điều khiển: Phân tích cú pháp, lưu đồ và nguyên lý hoạt động của cấu trúc rẽ nhánh
IF..THEN,IF..THEN..ELSEvàCASE..OF..ELSE..END. Khảo sát cấu trúc lặp xác địnhFOR..TO..DO(tiến),FOR..DOWNTO..DO(lùi) và cấu trúc lặp không xác địnhREPEAT..UNTIL,WHILE..DO. Cung cấp các lệnh điều khiển đặc biệt nhưGoto,Break(thoát vòng lặp lồng) vàExit(chấm dứt chương trình con hoặc chương trình chính). - Chương 4: Hàm và thủ tục: Phân loại chương trình con thành hàm (
FUNCTION) và thủ tục (PROCEDURE). Hướng dẫn quy tắc định nghĩa, danh sách tham số hình thức, cách gọi chương trình con trong khối lệnh chính. Phân tích sự khác biệt giữa truyền tham biến (sử dụng từ khóaVAR) và truyền tham trị. Cơ chế phân bổ bộ nhớ cho biến toàn cục (vùng dữ liệu Data) và biến địa phương (vùng ngăn xếp Stack). - Chương 5: Dữ liệu kiểu tập hợp, mảng và bản ghi: Giới thiệu các kiểu dữ liệu có cấu trúc phục vụ việc lưu trữ danh sách và tập hợp dữ liệu phức tạp.
- Chương 6: Dữ liệu kiểu chuỗi: Chi tiết hóa các thao tác xử lý xâu ký tự và ứng dụng trong bài toán thực tế.
Kiến thức nền tảng được xây dựng
Giáo trình cung cấp các khối kiến thức lý thuyết cơ sở:
- Lý thuyết về lập trình có cấu trúc: Thể hiện qua ba phương diện: dữ liệu (xây dựng kiểu dữ liệu phức tạp từ kiểu đơn giản), câu lệnh (kết hợp lệnh đơn giản thành lệnh ghép qua
Begin..End), và chương trình (phân rã hệ thống thành các hàm và thủ tục). - Phân loại cấp bậc ngôn ngữ: Bảng phân loại dựa trên mức độ trừu tượng của lệnh và quản lý bộ nhớ: Mức thấp (lệnh máy đơn giản, truy cập bộ nhớ trực tiếp như Hợp ngữ), Mức cao (biểu thức tường minh, quản lý bộ nhớ qua phép gán như C, Pascal, Ada), Mức rất cao (máy trừu tượng, cấp phát tự động như Prolog, Miranda).
- Nguyên lý quản lý phạm vi và bộ nhớ: Bản chất của biến toàn cục được lưu trong Data segment (tồn tại suốt vòng đời chương trình) so với biến địa phương cấp phát trên Stack (tự động giải phóng khi kết thúc hàm/thủ tục).
- Nguyên lý thứ tự ưu tiên toán tử: Dấu ngoặc
()$\rightarrow$ phép toán một toán hạng (Not, dấu âm-) $\rightarrow$ phép nhân/chia/logic (*,/,DIV,MOD,AND) $\rightarrow$ phép cộng/logic (+,-,OR,XOR) $\rightarrow$ phép toán so sánh quan hệ (=,<>,<=,>=,>,<,IN).
Kỹ năng phát triển
- Kỹ năng kỹ thuật (Technical Skills): Khởi động và cấu hình môi trường Borland/Turbo Pascal; biên dịch (
Alt+F9) và bẫy lỗi biên dịch; chạy từng bước lệnh (F7/F8) để kiểm tra luồng dữ liệu; theo dõi giá trị biến trong quá trình thực thi (Ctrl+F4); thiết lập định dạng xuất số thực và số nguyên ra màn hình hoặc tệp văn bản. - Kỹ năng phân tích (Analytical Skills): Phân tích và biểu diễn thuật toán giải quyết các bài toán số học (kiểm tra số nguyên tố, tính giai thừa $n!$, tìm ước số chung lớn nhất bằng giải thuật trừ/chia dư Euclid, kiểm tra số hoàn hảo, sinh dãy số Fibonacci); áp dụng thuật toán tìm giá trị lớn nhất bằng phương pháp "lính canh".
- Kỹ năng thực hành tổng hợp (Practical Competencies): Tổ chức mã nguồn mô-đun hóa; phân định chính xác khi nào cần truyền tham biến để trả dữ liệu và khi nào dùng tham trị để bảo vệ toàn vẹn dữ liệu; chú thích mã nguồn bằng cặp dấu
{ }hoặc(* *).
Phương pháp giảng dạy và học tập
Giáo trình áp dụng mô hình sư phạm theo hướng dẫn hành vi kết hợp phân tích thuật toán:
- Phương pháp tiếp cận sư phạm: Đi từ định nghĩa cú pháp trừu tượng, cung cấp lược đồ cú pháp/lưu đồ khối, minh họa bằng các đoạn mã nguồn ngắn hoàn chỉnh, sau đó phân tích các tình huống ngoại lệ hoặc lỗi sai thường gặp khi thực thi.
- Hệ thống bài tập và nghiên cứu tình huống:
- Bài tập cú pháp và nhập xuất: In các định dạng văn bản (đơn xin phép, bài thơ, bảng mã ASCII từ 0 đến 255), tính toán biểu thức hình học (diện tích hình thang, cạnh huyền Pythagoras, công thức Heron tính diện tích tam giác).
- Bài tập cấu trúc rẽ nhánh: Giải phương trình bậc nhất $ax + b = 0$, phương trình bậc hai $ax^2 + bx + c = 0$, xếp loại học lực dựa trên điểm số bằng lệnh
Case..Of, xác định số ngày trong tháng của năm nhuận/không nhuận, chuyển đổi năm dương lịch sang hệ Can - Chi âm lịch. - Bài tập vòng lặp: Vẽ các hình tam giác ký tự
*lồng nhau, in bảng số từ 1 đến 100 theo hàng, tính tổng các chuỗi phân số $S = \sum \frac{1}{i}$ và $S = \sum \frac{1}{i^2}$. - Bài tập chương trình con: Tách hàm tính diện tích hình tròn
DT(Radius: Real), hàm tính giai thừaGiaiThua(m: Longint), thủ tục in dãy sốINSO(So: Integer), và bài tập phát hiện lỗi sai cú pháp khi định nghĩa hàm/thủ tục.
- Phương pháp đánh giá: Đánh giá thông qua việc kiểm tra tính đúng đắn của chương trình mẫu (chạy thử với các bộ dữ liệu đầu vào biên), kiểm tra khả năng giải thích cơ chế thực thi của câu lệnh (ví dụ: giải thích kết quả của việc gõ phím thừa trong lệnh
Readln), và đánh giá kỹ năng sửa lỗi cú pháp. - Hướng dẫn tự học: Giáo trình yêu cầu người học chủ động thực hiện từng bước trên máy: nhập mã nguồn, dịch lỗi, quan sát thông báo lỗi của trình biên dịch, sử dụng phím trợ giúp
F1, và tự chạy thử nghiệm với các trường hợp dữ liệu khác nhau.
Điểm nổi bật và cập nhật
- Tính hệ thống và chuẩn hóa theo chương trình nghề: Giáo trình được xây dựng theo chuẩn đào tạo nghề Cao đẳng, ban hành chính thức theo văn bản pháp quy của Trường Cao đẳng nghề Hà Nam (Quyết định 285/QĐ-CĐNHN năm 2017).
- Tích hợp kỹ năng xử lý hệ thống: Tài liệu hướng dẫn chi tiết cách thức vận hành phần mềm Turbo Pascal trên nền tảng hệ điều hành Windows hiện đại thông qua cơ chế giả lập MS-DOS Mode (cấu hình Properties cho tập tin
TURBO.EXEhoặc shortcut), giúp người học kết nối giữa phần mềm cũ và môi trường máy tính hiện hành. - Minh họa thuật toán gắn liền với toán học và quản lý: Các ví dụ thực tế trong giáo trình phản ánh các bài toán cơ bản nhưng mang tính ứng dụng cao: tính chu kỳ dao động con lắc đơn $T = 2\pi\sqrt{\frac{l}{g}}$, phân loại lứa tuổi (trẻ vị thành niên, người lớn, người già), xử lý chuỗi và quản lý tệp tin trên đĩa thông qua các lệnh
ASSIGN,RESET,REWRITE,CLOSE. - Tối ưu hóa thao tác bàn phím: Giáo trình cung cấp hệ thống bảng tra cứu phím tắt đầy đủ cho cả Turbo Pascal 7.0 và Borland Pascal, từ các thao tác khối (
Ctrl+K+B,Ctrl+K+K,Ctrl+K+C,Ctrl+K+V,Ctrl+K+Y,Ctrl+K+W,Ctrl+K+R) đến các thao tác trên clipboard (Shift+Mũi tên,Ctrl+Ins,Shift+Ins).
Đối tượng sử dụng giáo trình
- Sinh viên trình độ Cao đẳng: Đối tượng phục vụ chính là sinh viên học nghề Quản trị mạng máy tính tại các trường Cao đẳng nghề, trường Cao đẳng kỹ thuật. Sinh viên các ngành Công nghệ thông tin, Hệ thống thông tin cũng có thể sử dụng làm tài liệu tiếp cận ban đầu.
- Điều kiện tiên quyết (Prerequisites): Sinh viên cần hoàn thành các môn học chung, môn tin học đại cương và tin học văn phòng; hiểu các khái niệm cơ bản về hệ thống máy tính, tệp tin, thư mục và thao tác sử dụng bàn phím/chuột.
- Giảng viên chuyên ngành: Sử dụng giáo trình làm khung tài liệu giảng dạy chuẩn cho học phần Lý thuyết chuyên ngành Lập trình căn bản (MH 10). Giảng viên có thể khai thác trực tiếp hệ thống ví dụ, lưu đồ thuật toán và bài tập thực hành mẫu trong giáo trình để xây dựng đề cương chi tiết và bài kiểm tra đánh giá.
- Người tự học và tham khảo: Phù hợp cho học sinh, sinh viên bước đầu tiếp cận khoa học máy tính cần một tài liệu có hướng dẫn thực hành chi tiết từng bước, có đáp án và giải thuật mẫu cho các dạng bài toán căn bản.
Câu hỏi thường gặp (FAQ)
1. Giáo trình này phù hợp với ai?
Giáo trình được biên soạn chuyên biệt cho sinh viên trình độ Cao đẳng nghề Quản trị mạng máy tính, đồng thời thích hợp cho sinh viên các cơ sở giáo dục nghề nghiệp và người mới bắt đầu học lập trình cần nắm vững cấu trúc dữ liệu và giải thuật cơ bản.
2. Cần kiến thức nền nào để học?
Người học cần hoàn thành khối kiến thức tin học cơ sở, tin học văn phòng, nắm rõ cấu trúc lưu trữ tập tin/thư mục và có kiến thức toán học phổ thông cơ bản (đại số, hình học tam giác, phương trình bậc nhất/bậc hai).
3. Điểm khác biệt với giáo trình khác?
Giáo trình tập trung sâu vào mô hình lập trình cấu trúc thông qua Pascal với sự tường minh về quản lý bộ nhớ (phân định rõ biến toàn cục trong Data segment và biến địa phương trong Stack, cơ chế truyền tham biến VAR và tham trị), cung cấp chi tiết toàn bộ bảng phím tắt IDE, thao tác tệp và hướng dẫn cấu hình môi trường thực thi cụ thể.
4. Làm sao để tự học hiệu quả?
Người học nên kết hợp đọc lý thuyết cú pháp với việc gõ trực tiếp các chương trình mẫu vào máy, sử dụng các phím F7/F8 để chạy từng dòng lệnh nhằm quan sát sự thay đổi giá trị biến, tự giải quyết các bài tập thuật toán từ dễ đến khó ở cuối mỗi chương và sử dụng hệ thống trợ giúp F1 có sẵn trong môi trường phát triển.
5. Có tài liệu bổ trợ nào kèm theo?
Tài liệu cung cấp bảng tra cứu mã ASCII (0 đến 255), danh mục các đơn vị thư viện chuẩn của Pascal (CRT, DOS, GRAPH, GRAPH3, OVERLAY, PRINTER, SYSTEM, TURBO3), bảng từ khóa và cú pháp các hàm/thủ tục điều khiển nhập xuất cơ bản.
Kết luận
Giáo trình Lập trình căn bản (MH 10) của Trường Cao đẳng nghề Hà Nam là tài liệu học tập chuẩn hóa, cung cấp nền tảng kiến thức toàn diện về kỹ thuật lập trình có cấu trúc. Thông qua 6 chương học được thiết kế tuần tự, tài liệu hỗ trợ người học xây dựng tư duy giải thuật mạch lạc, hiểu rõ cơ chế hoạt động của ngôn ngữ lập trình và làm chủ các kỹ năng thao tác trên môi trường phát triển phần mềm.
Lộ trình học tập khuyến nghị bắt đầu từ việc làm quen môi trường và cú pháp khai báo (Chương 1, 2), rèn luyện kỹ năng xây dựng giải thuật qua các cấu trúc rẽ nhánh, vòng lặp (Chương 3), tổ chức mã nguồn bằng chương trình con và quản lý bộ nhớ (Chương 4), trước khi hoàn thiện các kỹ thuật xử lý dữ liệu phức hợp trên mảng, bản ghi và chuỗi ký tự (Chương 5, 6). Hệ thống thư viện chuẩn và các bài toán mẫu trong giáo trình là nguồn tham khảo trực tiếp cho các học phần lập trình chuyên sâu tiếp theo.