Tài liệu triển khai đề cương môn tin học cơ sở 4
Trang 1TÀI LIỆU TRIỂN KHAI
ĐỀ CƯƠNG MÔN TIN HỌC CƠ SỞ 4
(Lập trình căn bản)
Trong đề cương môn học Tin học cơ sở 4 đã nêu nội dung chi tiết môn học cũng như yêu cầu về kiến thức, kỹ năng cần đạt được về lập trình, ngôn ngữ lập trình bậc cao Trong quá trình triển khai dạy học, giảng viên cần chọn một ngôn ngữ lập trình để minh họa Việc sử dụng một ngôn ngữ cụ thể trong quá trình dạy học nhằm hai mục đích chính sau:
- Minh họa các khái niệm về lập trình và ngôn ngữ lập trình bậc cao;
- Rèn luyện kỹ năng lập trình cho sinh viên.
Trong tài liệu này giới thiệu ba ngôn ngữ lập trình C, C++ và Java để lựa chọn Tuỳ vào nhu cầu thực tế của mỗi ngành, đơn vị đào tạo có thể chọn một trong các ngôn ngữ lập trình bậc cao cụ thể đó để triển khai.
Phần phân bố thời lượng cũng như phần tiến trình dạy học cụ thể chỉ mang tính giới thiệu, định hướng.
Lựa chọn 1 Lập trình căn bản với C Mục tiêu chi tiết của môn học
Nội dung 1
Mở đầu
Từ ngôn ngữ máy đến ngôn ngữ lập trình bậc cao
Nắm được các khái niệm cơ bản về lập trình, ngôn ngữ lập trình, đặc điểm củamột số ngôn ngữ lập trình bậc cao phổ biến
Hiểu được ưu điểm / nhược điểm của ngôn ngữ lập trình C so với một số ngônngữ lập trình phổ biến khác
Trang 2đơn giản
Nội dung 6
Cấu trúc điều khiển
Hiểu rõ cú pháp, chức năng các cấu trúc điều khiển; sử dụng được các cấu trúc
đó Xác định sự khác nhau giữa các cấu trúc điều khiển lặp; biết cách sử dụng break,continue
Hiểu vòng lặp vô hạn, kết thúc sớm vòng lặpNội dung 7
Hiểu địa chỉ phân đoạn và độ rời, một số phép toán trên con trỏNội dung 8
Hiểu khái niệm tham số, đối số, kiểu và giá trị trả về của hàm, truyền tham sốcho hàm Phân biệt sự khác nhau giữa truyền tham số theo giá trị, con trỏ
Nội dung 9
Cấu trúc dữ liệu
Hiểu khái niệm trừu tượng dữ liệuHiểu ý nghĩa của cấu trúc (struct) và câu lệnh khai báo cấu trúc, truy xuất cácthành phần
Hiểu khái niệm và khai báo mảng cấu trúc, union (hợp) Vận dụng được kiểucấu trúc, union, trường bít
Hiểu khái niệm và xây dựng cấu trúc tự trỏ, danh sách liên kếtNội dung 10
Làm việc với tệp
Hiểu khái niệm tệp; Biết cách sử dụng các hàm thao tác với tệpPhân biệt giữa mode nhị phân và văn bản, việc đọc ghi kí tự \n\r trong các modevăn bản và nhị phân
Trang 3Nội dung chi tiết của môn học
1 Mở đầu
- Khái niệm về lập trình
- Các ngôn ngữ lập trình: Từ ngôn ngữ máy đến ngôn ngữ bậc cao
- Ngôn ngữ lập trình C
2 Các kiểu dữ liệu cơ bản và các phép toán
- Các kiểu dữ liệu cơ bản
4 Các bước xây dựng chương trình
- Từ mã nguồn đến mã thi hành: mã nguồn, biên dịch, liên kết các thư viện,
mã thi hành
- Môi trường phát triển tích hợp: những chức năng và tiện ích thông dụng
5 Xuất nhập dữ liệu đơn giản
- Xuất dữ liệu ra thiết bị chuẩn: các hàm putch, puts, printf
- Nhập dữ liệu từ thiết bị chuẩn: các hàm getch, gets, scanf
6 Các cấu trúc điều khiển
- Cấu trúc tuần tự
- Cấu trúc rẽ nhánh (if, switch)
- Cấu trúc lặp (for, while, do while)
- Lệnh goto
7 Mảng, con trỏ và xâu ký tự
- Mảng một chiều và nhiều chiều
- Con trỏ và địa chỉ
- Các phép toán với con trỏ
- Liên hệ giữa con trỏ và mảng
- Xâu ký tự và một số hàm làm việc với xâu ký tự
Trang 4- Khái niệm về trừu tượng dữ liệu
- Cấu trúc dữ liệu đơn giản
- Cấu trúc dữ liệu nâng cao (mảng, con trỏ, tích hợp, )
10 Làm việc với tệp
- Các hàm fopen, fclose, fscanf, fprintf, fflush
- Đọc và ghi tệp ngẫu nhiên: các hàm fread, fwrite
11 Các phương pháp lập trình
- Cách tiếp cận hướng chức năng và lập trình hướng thủ tục
- Tổ chức dữ liệu và truyền dữ liệu giữa các hàm/thủ tục
- Ưu, nhược điểm của phương pháp hướng thủ tục
- C++ là mở rộng của C theo cách tiếp cận hướng đối tượng
- Lớp, biến thành phần và nguyên tắc bao kín dữ liệu
- Các phương thức và tương tức giữa các lớp qua truyền thông báo
- Ưu, nhược điểm của phương pháp hướng đối tượng
Học liệu
Tài liệu bắt buộc
[1] Bài giảng của giáo viên
[2] Brian W Kernighan and Dennis M Ritchie, The C programming language,
Prentice Hall 1988.
Tài liệu tham khảo
[3]Scott Robert Ladd (Nguyễn Hùng - biên dịch), C++ Kỹ thuật và ứng dụng
[4]J.Glenn Brookshear, Computer Science: An Overview, Addision Wesley 2009
Trang 5Tổ chức giảng dạy
Lịch trình chung
Hình thức tổ chức giảng dạyLên lớp
Thựchành họcTự Tổng
Lýthuyết Bàitập Thảoluận
Các kiểu dữ liệu cơ bản và các phép toán
- Các kiểu dữ liệu cơ bản
Các bước xây dựng chương trình
- Các bước xây dựng chương trình: từ mã
Xuất nhập dữ liệu đơn giản:
- Các hàm nhập/xuất dữ liệu của C
- Cách thức và khuôn dạng dữ liệu nhập/xuất
6
Các cấu trúc điều khiển
- Cấu trúc tuần tự: Cấu trúc if, cấu trúc switch
- Cấu trúc lặp: for, while, do while
- Điều khiển break và continue
- Khái niệm hàm, ưu điểm của hàm
- Nguyên mẫu và định nghĩa hàm
- Lời gọi hàm và truyền tham số, giá trị trả về
Trang 6STT Nội dung Thực
hành
Tựhọc Tổng
Lýthuyết
Bàitập
Thảoluận
- Cấu trúc dữ liệu struct
- Cấu trúc tự trỏ và danh sách liên kết
- Kiểu union và trường bít
- C++ là mở rộng của C theo cách tiếp cận
hướng đối tượng
- Lớp, biến thành phần và nguyên tắc bao
kín dữ liệu
- Các phương thức và tương tức giữa các
lớp qua truyền thông báo
- Ưu, nhược điểm của phương pháp hướng
đối tượng
Lịch trình dạy học cụ thể
Hình thức tổ
chức dạy học Thời gian,địa điểm Nội dung chính Yêu cầu sinh viênchuẩn bị Ghi chú
Tuần 1: Nội dung 1 và 2
- Các bước xây dựngchương trình
- Ngôn ngữ lập trình: từngôn ngữ máy đến ngônngữ bậc cao
Nội dung 2 Các kiểu dữ
Đọc tài liệu vềcác kiểu dữ liệu,biểu diễn số thực([2].Chương 1,2)
Trang 7Hình thức tổ
chức dạy học
Thời gian,địa điểm Nội dung chính
Yêu cầu sinh viên
liệu và phép toán
- Các kiểu dữ liệu cơ bản:
tên, kích thước, miền giátrị, quy tắc chuyển kiểu
tự động
- Các phép toán: phép gán,các phép toán số học, sosánh, logic
Tuần 2: Nội dung 2 ,3 và 4
Lý thuyết
2 giờ tín chỉ
Giảng đường Nội dung 2 Các kiểu dữ
liệu và phép toán (tiếp)
- Các phép toán trên bit, tích luỹ
- Phép toán tăng/giảm 1, toán tử điều kiện,
Nội dung 3 Cấu trúc chương trình và 4 Xây dựng chương trình
- Các bước xây dựng chương trình
- Cấu trúc chương trình, ý nghĩa các thành phần
- Lệnh và khối lệnh
- Biên dịch và thực hiện chương trình trong môi trường dòng lệnh
- Ví dụ chương trình đơn giản để minh hoạ
- Tham khảo vềcác thao tác nhậpxuất
- Cấu trúcchương trình([2].Chương 3)
Tuần 3: Nội dung 5 và 6; thực hành nội dung 3, 4
Lý thuyết
2 giờ tín chỉ
Giảng đường Nội dung 5 Xuất nhập
dữ liệu đơn giản
-Sử dụng các hàm nhập / xuất chuẩn của C (cách dùng, ý nghĩa, định dạng
([2] Chương 7,3)
Giao bài tập
Trang 8-Cấu trúc rẽ nhánh/lựachọn (if, switch): cúpháp, sơ đồ khối của cấutrúc, ý nghĩa
Thực hành
1.5 giờ tín chỉ
(3 tiết thực
học)
Phòng máy -Sử dụng môi trường tích
hợp/ công cụ soạn thảochương trình: soạn thảo,ghi mở file chươngtrình,
-Biên dịch và thực hiệnchương trình, nhập dữliệu vào, xem kết quả
-Cách tra cứu hàm thưviện
-Sửa một số lỗi cú phápphổ biến
-Cách sử dụng thư viện
Giáo viên chuẩn bị một
số chương trình (có thể chưa hoàn thiện) đơn giản
để minh hoạ sửa lỗi cú pháp
Tuần 4: Nội dung 6; thực hành nội dung 4, 5
Lý thuyết
2 giờ tín chỉ
Giảng đường Nội dung 6 Cấu trúc
điều khiển (tiếp)
-Cấu trúc lặp (for, while,do while: cú pháp, sơ đồkhối của cấu trúc, ý nghĩa(chú tới điều kiện trước)
Đọc tài liệu phầncác cấu trúc điềukhiển
Phòng máy -Lập trình giải một số bài
toán đơn giản để minhhoạ các cấu trúc điềukhiển
- Câu lệnh kết thúc vòng lặp
Đọc tài liệu [3].chương 4,5
Tuần 5: Nội dung 6
Lý thuyết
1 giờ tín chỉ
Giảng đường Nội dung 6 Cấu trúc
điều khiển (tiếp)
- Câu lệnh: break,continue, return
- Lặp vô hạn và kết thúc sớm vòng lặp
Trang 9Hình thức tổ
chức dạy học
Thời gian,địa điểm Nội dung chính
Yêu cầu sinh viên
Tuần 6: Nội dung 6
- Con trỏ
- Xâu ký tự
Đọc trước tài liệuphần Mảng vàcon trỏ
Tuần 8: Nội dung 7
- Cấp phát vùng nhớ động: malloc, free,
- Liên hệ giữa con trỏ và mảng
Đọc trước tài liệuphần Mảng vàcon trỏ
Trang 10- Một số hàm cấp phát bộ nhớ động: malloc, calloc, free,
Tuần 9: Nội dung 7
Phòng máy Kiểm tra giữa kỳ
Tuần 10 Nội dung 8; thực hành nội dung 7, 8
Lý thuyết
2 giờ tín chỉ
Giảng đường Nội dung 8 Hàm
-Khái niệm hàm, ý nghĩa,
ưu điểm của việc sử dụnghàm
-Nguyên mẫu hàm, xây dựng hàm
- Hàm đệ quy
-Giới thiệu về hàm inline
Đọc trước tài liệu
về hàm đệ quy([2].Chương 4)
Giao bài tập
Trang 11Hình thức tổ
chức dạy học
Thời gian,địa điểm Nội dung chính
Yêu cầu sinh viên
- Cách tiếp cận hướngchức năng
- Cách tiếp cận hướng đốitượng
- Ưu, nhược điểm của haiphương pháp
- Ưu, nhược điểm củaphương pháp hướng đốitượng
Đọc tài liệu[2] Chương 6
Giao bài tập nội dung 9
-Dữ liệu kiểu union vàtrường bit (bit field)
-Mảng kiểu cấu trúc
-Giới thiệu cấu trúc tự trỏ
Đọc tài liệu[2] Chương 6
Giao bài tậpthực hành
Trang 12Phòng máy Thực hành về kiểu cấu trúc
Tuần 14: Nội dung 9
-Đọc/ghi tệp (tuần tự, ngẫunhiên)
Đọc tài liệu[2] Chương 7
Lựa chọn 2 Lập trình căn bản với C++
(Lưu ý: Do C++ là ngôn ngữ lập trình hỗ trợ hướng đối tượng, nên để cho việc dạy
học được thuận lợi chúng tôi đã gộp 2 nội dung 9 và 11 trong đề cương chung thành một nội dung 9)
Mục tiêu chi tiết của môn học
Nội dung 1
Mở đầu
Từ ngôn ngữ máy đến ngôn ngữ lập trình bậc cao
Nắm được các khái niệm cơ bản về lập trình, đặc điểm của ngôn ngữ lập
Trang 13Nội dung Yêu cầu
trình C++
Hiểu được ưu điểm / nhược điểm của ngôn ngữ lập trình C++ so với một
số ngôn ngữ lập trình phổ biến khácNội dung 2
Cấu trúc chương
trình
Hiểu cấu trúc tổng quát của chương trình, ý nghĩa của các thành phần, lệnh
và khối lệnh Hiểu được các bao hàm tệp, khai báo macro và ý nghĩaHiểu và sử dụng được đối dòng lệnh (đối của hàm main)
Cấu trúc điều khiển
Hiểu rõ cú pháp, chức năng các cấu trúc điều khiển; sử dụng được các cấutrúc đó
Xác định sự khác nhau giữa các cấu trúc điều khiển lặp; biết cách sử dụngbreak, continue
Hiểu vòng lặp vô hạn, kết thúc sớm vòng lặpNội dung 7
Mảng, con trỏ và xâu
ký tự
Nắm được khái niệm mảng 1, 2, nhiều chiềuNắm được cách phân bố các phần tử mảng trong bộ nhớ Sự cấp phát bộnhớ cho con trỏ, sự khác nhau giữa con trỏ và mảng, địa chỉ phân đoạn và
độ rờiHiểu được giới hạn của mảng trong bộ nhớ, lỗi gây ra khi truy cập phần tửvượt giới hạn mảng
Hiểu khái niệm con trỏ, địa chỉPhân biệt mảng con trỏ và con trỏ mảngNội dung 8
Hàm
Hiểu khái niệm hàm, ưu điểm của hàm, khái niệm nguyên mẫu và địnhnghĩa hàm Hiểu việc phân mảng chương trình (Phân chia bài toán cụ thểthành các hàm)
Hiểu khái niệm biến cục bộ, toàn cục, biến tĩnh, biến ngoài, nạp chồnghàm Hiểu phạm vi và khả năng truy xuất của các loại biến: cục bộ, tĩnh,ngoài
Trang 14truyền tham số cho hàmPhân biệt sự khác nhau giữa truyền tham số theo giá trị, con trỏ, thamchiếu, hàm với tham số có giá trị ngầm định
Nạp chồng hàmNội dung 9
Lập trình hướng đối
tượng
Hiểu cách tiếp cận hướng chức năng và lập trình hướng thủ tụcHiểu cách tiếp cận lập trình hướng đối tượng và C++ là mở rộng của Ctheo cách tiếp cận hướng đối tượng
Biết ưu, nhược điểm của hai phương phápHiểu khái niệm đối tượng, đóng gói và che dấu thông tinHiểu phương pháp lập trình hướng đối tượng, ưu điểm so với hướng thủtục
Hiểu câu lệnh khai báo lớp và các thành phầnKhái niệm hàm khởi tạo, hàm huỷ đối tượng Hiểu ý nghĩa và phân biệt các quyền truy xuất của các thành phần củađối tượng
Hiểu ý nghĩa, hoạt động của hàm khởi tạo, hàm huỷ đối tượng Hiểu khái niệm kế thừa, lớp cơ sở, lớp dẫn xuất; biết cách xây dựng lớpdẫn xuất; khái niệm đa hình
Phân biệt các kiểu dẫn xuất; hiểu ý nghĩa của hàm ảo, kết gán sớm,muộn
Hiểu cơ chế cài đặt hàm ảo của C++
2 Các kiểu dữ liệu cơ bản và các phép toán
- Các kiểu dữ liệu cơ bản
Trang 15- Tệp bao hàm (include)
- Câu lệnh
4 Các bước xây dựng chương trình
- Từ mã nguồn đến mã thi hành: mã nguồn, biên dịch, liên kết các thư viện, mã thi hành
- Môi trường phát triển tích hợp: những chức năng và tiện ích thông dụng
5 Xuất nhập dữ liệu đơn giản
- Xuất dữ liệu ra thiết bị chuẩn cout
- Nhập dữ liệu từ thiết bị chuẩn cin
6 Các cấu trúc điều khiển
- Cấu trúc tuần tự
- Cấu trúc rẽ nhánh (if, switch)
- Cấu trúc lặp (for, while, do while)
- Break và continue
7 Mảng, con trỏ và xâu ký tự
- Mảng một chiều và nhiều chiều
- Con trỏ và địa chỉ
- Các phép toán với con trỏ
- Liên hệ giữa con trỏ và mảng
- Xâu ký tự và một số hàm làm việc với xâu ký tự
9 Khái niệm về lập trình hướng đối tượng
- Cách tiếp cận hướng chức năng và lập trình hướng thủ tục
- C++ là mở rộng của C theo cách tiếp cận hướng đối tượng
- Ưu, nhược điểm của hai phương pháp
- Khái niệm về đối tượng và tính đóng gói
Trang 16- Khởi tạo và hủy đối tượng
- Thuộc tính và phương thức
- Cơ chế che giấu thông tin
- Khái niệm về kế thừa và đa hình
- Một số lớp đối tượng định nghĩa sẵn của C++
Tài liệu bắt buộc
[1] Bài giảng của giáo viên
[2] H.M Deitel – Deitel, C++ How to Program, 5th edition Prentice Hall 2005
[3] Scott Robert Ladd (Nguyễn Hùng - biên dịch), C++ Kỹ thuật và ứng dụng
[4] Andrew Koenig and Barbara E Moo Accelerated, C++: Practical Programming by Example, Addison-Wesley 2000.
Tài liệu tham khảo
[5] J.Glenn Brookshear, Computer Science: An Overview, Addision Wesley 2009
[6] Lê Đăng Hưng, Lập trình hướng đối tượng với C++, NXB Khoa học và kỹ
Thựchành Tự học
1
Nội dung 1 Mở đẩu
- Khái niệm về lập trình, ngôn ngữ lập trình,
- Đặc điểm của C++
- Bảng chữ cái, tên, từ khoá
1
2
Nội dung 2 Các kiểu dữ liệu cơ bản và phép toán
- Các kiểu dữ liệu cơ bản và các phép toán của
Trang 17Thựchành Tự học
- Khai báo biến
- Lệnh và khối lệnh
4
Nội dung 4 Các bước xây dựng chương trình
- Mã nguồn, biên dịch, lỗi cú pháp, chạy thử
chương trình và sửa lỗi
- Biên dịch và chạy chương trình trong môi
trường dòng lệnh
- Ví dụ chương trình đơn giản để minh hoạ
- Giới thiệu môi trường phát triển tích hợp
- C++ là mở rộng của C theo cách tiếp cận
hướng đối tượng
- Ưu, nhược điểm của hai phương pháp
- Khái niệm về đối tượng và tính đóng gói
Trang 18thức thuyết tập hành Tự học
- Khái niệm về kế thừa và đa hình
- Một số lớp đối tượng định nghĩa sẵn của C++
Yêu cầu sinhviên chuẩn bị Ghi chú
Tuần 1: Nội dung 1 và 2
- Các bước xây dựng chươngtrình
- Ngôn ngữ lập trình: từ ngônngữ máy đến ngôn ngữ bậccao
- Đặc điểm của C++
Nội dung 2 Các kiểu dữ liệu
và phép toán trong C++
- Các kiểu dữ liệu cơ bản:
tên, kích thước, miền giá trị,quy tắc chuyển kiểu tự động
- Các phép toán: phép gán,các phép toán số học, sosánh, logic
Đọc tài liệu vềcác kiểu dữ liệu,biểu diễn sốthực
Tuần 2: Nội dung 2, 3 và 4
Trang 19Hình thức tổ
chức dạy học
Thời gian,địa điểm Nội dung chính
Yêu cầu sinhviên chuẩn bị Ghi chú
-Khái niệm biến, hằng, biểu thức
-Lệnh khai báo biến, hằng
Nội dung 3 Cấu trúc chương trình và 4 Xây dựng chương trình
-Các bước xây dựng chươngtrình
- Mã nguồn, biên dịch, lỗi cúpháp, chạy thử chương trình
và sửa lỗi
-Cấu trúc chương trình, ýnghĩa các thành phần
-Lệnh và khối lệnh
- Biên dịch và chạy chươngtrình trong môi trường dònglệnh
- Giới thiệu môi trường pháttriển tích hợp
- Ví dụ chương trình đơn giản
để minh hoạ
-Tham khảo vềcác thao tácnhập xuất
chương trình([2].Chương1,15)
Tuần 3: Nội dung 3, 4, 5 và 6
Lý thuyết
2 giờ tín chỉ
Giảng đường Nội dung 5 Xuất nhập dữ
liệu đơn giản
- Sử dụng các hàmnhập / xuất chuẩn (cáchdùng, ý nghĩa, định dạng
dữ liệu nhập xuất), dùngluồng nhập xuất
Nội dung 6 Cấu trúc điều
khiển
- Cấu trúc tuần tự
- Cấu trúc rẽ nhánh : cúpháp, sơ đồ khối của cấutrúc, ý nghĩa
Đọc tài liệuphần các cấutrúc điều khiển([2].Chương 15,4,5)
Phòng máy - Sử dụng môi trường
tích hợp/ công cụ soạn thảochương trình: soạn thảo, ghi
mở file chương trình,
Giáo viên chuẩn
bị một số chươngtrình (có thể chưahoàn thiện) đơn