Đề cương tin học cơ sở 4
Trang 1ĐỀ CƯƠNG MÔN HỌC TIN HỌC CƠ SỞ 4
1 Thông tin về giảng viên
2 Thông tin chung về môn học
- Tên môn học: Tin học cơ sở 4
- Đối tượng học: Định hướng dành cho sinh viên ngành Công nghệ thông tin, Toán –Tin ứng dụng
- Mã môn học: INT1006
- Môn học: Bắt buộc
- Số tín chỉ: 3
- Môn học tiên quyết: Tin học cơ sở 1
- Giờ tín chỉ đối với các hoạt động
+ Lý thuyết: từ 19 – 20 giờ tuỳ theo lựa chọn ngôn ngữ lập trình.
+ Làm bài tập trên lớp: 5 giờ.
+ Thực hành và kiểm tra giữa kỳ: 18 giờ.
+ Tự học: 2 – 3 giờ.
- Yêu cầu về trang thiết bị:
+ Phòng học lý thuyết: máy tính giáo viên, máy chiếu (projector), màn chiếu + Phòng máy tính: 1 sinh viên/1 máy, mỗi nhóm không quá 30 sinh viên + Đầy đủ phần mềm cần thiết cho môn học.
3 Mục tiêu của môn học
3.1 Mục tiêu chung
Môn học Tin học cơ sở 4 nhằm cung cấp cho sinh viên những kiến thức cơ sở
về lập trình cho máy tính và ngôn ngữ lập trình nói chung; cung cấp kỹ năng cơ bản
để lập trình bằng một ngôn ngữ lập trình bậc cao cụ thể, thực hiện được một nhiệm
vụ lập trình vừa phải, đã đặc tả rõ ràng
3.1.1 Mục tiêu kiến thức:
Sau khi học xong, sinh viên có:
- Kiến thức cơ bản về ngôn ngữ lập trình bâc cao và phương pháp lập trình: các cấu trúc điều khiển, các kiểu dữ liệu cơ bản, các kiểu dữ liệu có cấu trúc, hàm, biến cục bộ, biến toàn cục, vào ra dữ liệu tệp; các bước để xây dựng chương trình; môi trường phát triển tích hợp.
- Các phương pháp lập trình: phương pháp hướng thủ tục; phương pháp hướng đối tượng
Trang 23.1.2 Mục tiêu kỹ năng:
Sau khi học xong, sinh viên có:
- Kỹ năng lập trình bằng một ngôn ngữ lập trình bậc cao cụ thể đã lựa chọn.
- Kỹ năng sử dụng một môi trường phát triển tích hợp cụ thể để xây dựng chương trình.
Chú ý: 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ể (C/C++/JAVA - được đưa trong “Tài liệu triển khai”)
3.1.3 Mục tiêu về thái độ người học:
Có ý thức rèn luyện kỹ năng làm việc chính xác, cẩn thận và theo phong cách công nghiệp, hệ thống.
3.2 Mục tiêu chi tiết
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 mộ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 chọn so với một
số ngôn ngữ lập trình phổ biến khác Nội dung 2
Các kiểu dữ liệu
cơ bản và các phép
toán
Nắm được các khái niệm kiểu dữ liệu (chuẩn) của ngôn ngữ lập trình, tên kiểu, kích thước, miền giá trị
Hiểu rõ khi nào thì sử dụng kiểu dữ liệu cụ thể, sự chuyển kiểu
Sử dụng biến, kiểu hợp lý Nắm được khái niệm, câu lệnh khai báo và sử dụng biến, hằng Hiểu trình tự kết hợp của các toán tử Biết cách sử dụng các toán tử trong ngôn ngữ lập trình, thứ tự độ ưu tiên
Nội dung 3
Cấu trúc chương
trình đơn giản
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, cú pháp viết các thành phần
Nội dung 4
Các bước xây
dựng chương trình
Hiểu các bước xây dựng chương trình: mã nguồn, biên dịch, liên kết, mã thi hành
Hiểu môi trường phát triển tích hợp đã gồm những chức năng và tiện ích thông dụng để phát triển chương trình thuận tiện
Nội dung 5
Xuất/nhập dữ liệu
đơn giản
Hiểu cách nhập dữ liệu từ bàn phím và xuất ra màn hình
Nội dung 6
Các cấu trúc điều
khiển
Hiểu rõ các loại điều khiển, ý nghĩa 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 và sử dụng hợp lý giữa các cấu trúc điều khiển Hiểu vòng lặp vô hạn, lệnh nhảy vô điều kiện (go to), nhược điểm của nó
Trang 3Nội dung Yêu cầu
Nội dung 7
Dữ liệu kiểu mảng
Nắm được khái niệm mảng; Khai báo mảng, cách sử dụng mảng Hiể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
Nội dung 8
Hàm
Hiểu khái niệm hàm, ưu điểm của hàm, Hiểu việc phân rã chương trình, phân chia bài toán cụ thể thành các hàm Xây dựng hàm, lời gọi hàm và truyền đối số
Hiểu khái niệm biến cục bộ, toàn cục, phạm vi và khả năng truy xuất của các loại biến: cục bộ, biến toàn cục
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 đối số;
Một số đặc tính nâng cao của hàm (đệ quy, nạp chồng hàm/hàm có đối số thay đổi, )
Nội dung 9
Xây dựng kiểu dữ
liệu mới
Hiểu khái niệm trừu tượng dữ liệu Hiểu ý nghĩa của kiểu dữ liệu mới do người lập trình xây dựng, câu lệnh khai báo, cách sử dụng kiểu dữ liệu mới
Nội dung 10
Làm việc với tệp
Hiểu khái niệm tệp; biết sử dụng các thao tác với tệp: mở, đóng, đọc, ghi, với tệp
Nội dung 11
Các phương pháp
lập trình
Hiểu sự phát triển phương pháp luận lập trình: từ lập trình hướng thủ tục đến lập trình hướng đối tượng
Hiểu cách tiếp cận hướng chức năng Hiểu cách tiếp cận hướng đối tượng
Ưu, nhược điểm của hai phương pháp lập trình
4 Tóm tắt nội dung môn học
- Cung cấp cho sinh viên kiến thức cơ bản về lập trình, ngôn ngữ lập trình bâc cao, phương pháp lập trình, các bước để xây dựng chương trình, cấu trúc chương trình, các cấu trúc điều khiển, các kiểu dữ liệu, cấu trúc mảng, hàm, biến cục bộ, biến toàn cục, vào ra dữ liệu tệp.
- Rèn luyện kỹ năng sử dụng thành thạo một ngôn ngữ lập trình bậc cao qua việc lựa chọn một ngôn ngữ cụ thể (C, C++, Java – được đưa trong “Tài liệu triển khai”) để viết chương trình.
5 Nộ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
- Minh họa cụ thể về ngôn ngữ lập trình
2 Các kiểu dữ liệu cơ bản và các phép toán
- Khái niệm kiểu dữ liệu, các kiểu dữ liệu cơ bản
Trang 4- Biến, hằng và biểu thức
- Các phép toán
- Minh họa cụ thể về kiểu dữ liệu, các phép toán trong ngôn ngữ lập trình (tùy lựa chọn)
3 Cấu trúc chương trình đơn giản
- Cấu trúc chương trình
- Khai báo biến, hằng
- Câu lệnh
- Minh họa cụ thể trong ngôn ngữ lập trình (tùy lựa chọ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
- Nhập dữ liệu từ thiết bị chuẩn
- Minh họa về xuất/nhập trong một ngôn ngữ lập trình cụ thể (tùy lựa chọn)
6 Các cấu trúc điều khiển
- Các loại cấu trúc điều khiển
- Cấu trúc tuần tự, ý nghĩa
- Cấu trúc rẽ nhánh, chức năng
- Câu lệnh nhảy vô điều kiện
- Cấu trúc lặp, ý nghĩa; vòng lặp vô hạn và kết thúc sớm vòng lặp
- Minh họa cụ thể về các cấu trúc điều khiển trong ngôn ngữ lập trình (tùy lựa chọn).
7 Dữ liệu kiểu mảng
- Mảng: khái niệm, khai báo và sử dụng mảng
- Một số thao tác với mảng
- Tổ chức vùng nhớ của mảng
- Xâu ký tự và một số thao tác làm việc với xâu ký tự
- Con trỏ và cấp phát bộ nhớ động
- Minh họa cụ thể về mảng trong ngôn ngữ lập trình (tùy lựa chọn)
8 Hàm
- Khái niệm về hàm; ưu điểm của việc dùng hàm
Trang 5- Định nghĩa hàm; lời gọi hàm và truyền đối số
- Phạm vi của biến
- Hàm đệ quy
- Nâng cao về hàm
- Minh họa về hàm trong một ngôn ngữ cụ thể (tùy lựa chọn)
9 Xây dựng kiểu dữ liệu mới
- Khái niệm về trừu tượng hóa dữ liệu
- Xây dựng kiểu dữ liệu mới, cách sử dụng
- Minh họa về xây dựng kiểu và cách sử dụng trong một ngôn ngữ cụ thể
10 Làm việc với tệp
- Khái niệm về tệp
- Một số thao tác với tệp: mở tệp, đóng tệp, đọc và ghi tệp
- Minh họa thao tác với tệp trong ngôn ngữ cụ thể
11 Các phương pháp lập trình
- Từ lập trình hướng thủ tục đến lập trình hướng đối tượng
- Cách tiếp cận hướng chức năng
- 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ách tiếp cận hướng đối tượng
- Nguyên tắc bao kín dữ liệu – truyền thông báo.
- Ưu, nhược điểm của phương pháp hướng đối tượng
6 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
[3] M Deitel - Deitel & Associates, Inc., P J Deitel; Prentice, Java How to
Program, 6th Edition
Tài liệu tham khảo
[4] Lê Đăng Hưng, Lập trình hướng đối tượng với C++, NXB Khoa học và kỹ
thuật
[5] Scott Robert Ladd (Nguyễn Hùng - biên dịch), C++ Kỹ thuật và ứng dụng [6] Phương Lan (chủ biên), Java 1, NXB Thống kê 2004
[7] J.Glenn Brookshear, Computer Science: An Overview, Addision Wesley 2009
Trang 67.Tổ chức giảng dạy
Các lưu ý chung
Nội dung chi tiết môn học là bắt buộc, cơ sở để giảng dạy, ra đề và đánh giá áp dụng chung trong toàn ĐHQGHN 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.
Nội dung được trình bày ở đây là kiến thức chung về lập trình và ngôn ngữ lập trình bậc cao; khi tiến hành dạy học, giảng viên cần chọn một ngôn ngữ lập trình cụ thể để minh họa.
Phần “Tài liệu triển khai” sẽ trình bày cụ thể đối với từng ngôn ngữ lập trình lựa chọn Vì thế cần kết hợp và thống nhất giữa tài liệu này và “Tài liệu triển khai” trong việc dạy học Yêu cầu rèn kỹ năng lập trình qua một ngôn ngữ lập trình bậc cao
cụ thể.
Ngôn ngữ lập trình để minh họa: C/C++/Java
Bài giảng của giảng viên cần đưa lên mạng để sinh viên truy cập, tham khảo.
7.1. Lịch trình chung
Hình thức tổ chức giảng dạy Lên lớp
Thực hành
Tự học Tổng
Lý thuyết
Bài tập
Thảo luận
1
Nội dung 1 Mở đầu
- Khái niệm về lập trình
- Ngôn ngữ lập trình
- Bảng chữ cái, tên, từ khoá
2
Nội dung 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
- Các phép toán
- Biến, hằng, biểu thức
3
Nội dung 3 Cấu trúc chương trình đơn
giản
- Cấu trúc chương trình
- Khai báo biến, hằng và cách sử dụng
4
Nội dung 4 Các bước xây dựng chương
trình
- Từ mã nguồn đến mã thực thi
- Biên dịch và thực hiện chương trình
trong môi trường phát triển tích hợp
- Biên dịch và thực hiện chương trình
không dùng môi trường phát triển tích
hợp
Trang 7STT Nội dung
Hình thức tổ chức giảng dạy Lên lớp
Thực hành
Tự học Tổng
Lý thuyết
Bài tập
Thảo luận 6
Nội dung 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 /Lựa chọn
- Cấu trúc lặp
7
Nội dung 7 Dữ liệu kiểu mảng
- Mảng và cách sử dụng
- Tổ chức vùng nhớ của mảng
- Xâu ký tự
- Cấp phát động và giải phóng bộ nhớ
8
Nội dung 8 Hàm
- Khái niệm hàm, ưu điểm của hàm
- Khai báo và định nghĩa hàm
- Lời gọi hàm và truyền tham số, giá trị
trả về của hàm
- Biến và phạm vi
- Nâng cao về hàm
9
Nội dung 9 Xây dựng kiểu dữ liệu mới
- Khái niệm kiểu dữ liệu do người lâp
trình định nghĩa
- Khái niệm trừu tượng hóa dữ liệu
-Câu lệnh khai báo kiểu mới và cách sử
dụng
10
Nội dung 10 Làm việc với tệp
- Khái niệm kiểu tệp
- Các thao tác làm việc với tệp
11
Nội dung 11 Các phương pháp lập trình
- Từ lập trình hướng thủ tục đến
lập trình hướng đối tượng
- Cách tiếp cận hướng chức năng
- Cách tiếp cận hướng đối tượng
- Ưu, nhược điểm của hai phương
pháp
7.2 Lịch trình dạy học cụ thể
Tổng số thời gian thực hành và kiểm tra là 18 giờ tín chỉ - được tính bằng 36 tiết thực hành Có hai cách tổ chức thực hành mà giảng viên có thể lựa chọn:
- Thực hành với nội dung tuân theo các chủ đề của nội dung lý thuyết
Trang 8- Thực hành theo kiểu bài tập lớn Giảng viên ra đề cho từng sinh viên hoặc từng nhóm với bài đủ phức tạp để sinh viên phải vận dụng được tất cả các khía cạnh của môn học Cách này có thể tăng cường được khả năng làm việc độc lập và làm việc nhóm của sinh viên nhưng đòi hỏi cơ sở đào tạo phải có phòng máy thực hành
mở cửa tự do cho sinh viên hoặc sinh viên tự lo được máy
Đề cương sau đây phân bố thời gian theo cách thứ nhất Đối với cách thứ 2 giảng viên chủ động dành một số giờ thực tập để hướng dẫn thực hành ban đầu, sau
đó để sinh viên chủ động.
Hình thức tổ
chức dạy học Thời gian,địa điểm Nội dung chính viên chuẩn bịYêu cầu sinh Ghi chú
Tuần 1: Nội dung 1 và 2
Lý thuyết
2 giờ tín chỉ
Giảng đường Nội dung 1 Mở đầu
- Khái niệm về lập trình
- Các phương pháp lập trình,
ưu điểm của lập trình có cấu trúc
- Các bước xây dựng chương trình
- Ngôn ngữ lập trình: từ ngôn ngữ máy đến ngôn ngữ bậc cao
Nội dung 2 Các kiểu dữ 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, so sánh, logic
Đọc tài liệu về các kiểu dữ liệu, biểu diễn số thực ([2].p35-50)
Tự học
0.5 giờ tín chỉ
(1.5 tiết thực
học)
Biểu diễn số nguyên, số thực trong máy tính
Đọc tài liệu về các kiểu dữ liệu, biểu diễn số thực ([2].p35-50)
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 thao tác trên bit, độ ưu tiên của các toán tử
- Khái niệm biến, hằng, biểu thức
- Lệnh khai báo biến, hằng
- Tham khảo về các thao tác nhập xuất
([2].p35-50)
- Cấu trúc chương trình
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 chuẩn bị Ghi chú
Nội dung 3 Cấu trúc chương trình đơn giản và Nội dung 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ạ
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ách dùng, ý nghĩa, định dạng dữ liệu 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ấu trúc, ý nghĩa
Đọc tài liệu phần các cấu trúc điều khiển ([2].p50-59;
[3].chương 4,5)
Giao bài tập
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ảo chương trình: soạn thảo, ghi,
mở file chương trình,
- Biên dịch và thực hiện chươ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áp phổ 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: cú pháp,
sơ đồ khối của cấu trúc, ý
Đọc tài liệu [2].p50-59;
[3].chương 4,5
Giao bài tập
Trang 10Hì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 chuẩn bị Ghi chú nghĩa (chú tới điều kiện
trước)
Trang 11Hình thức tổ
chức dạy học Thời gian,địa điểm Nội dung chính viên chuẩn bịYêu cầu sinh Ghi chú Thực hành
1.5 giờ tín chỉ
(3 tiết thực
học)
Phòng máy - Nhập/xuất dữ liệu
-Lập trình giải một số bài toán đơn giản để minh hoạ các cấu trúc điều khiển
- Gỡ rối chương trình
Chuẩn bị bài tập thực hành
Tự học
1 giờ tín chỉ
(3 tiết thực
học)
- Lệnh nhảy không điều kiệ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)
- Lặp vô hạn và kết thúc sớm vòng lặp
Đọc tài liệu [2].p50-59;
[3].chương 4,5
Giao bài tập
Bài tập
0.5 giờ tín chỉ
(1 tiết thực
học)
Giảng đường Làm bài tập nội dung 6 Làm các bài tập
được giao
Thực hành
1.5 giờ tín chỉ
(3 tiết thực
học)
Phòng máy Thực hành các chương trình
về cấu trúc điều khiển được giao trong tuần 4
Tuần 6: Nội dung 6; thực hành nội dung 6
Bài tập
1 giờ tín chỉ
(2 tiết thực
học)
Giảng đường Làm bài tập nội dung 6 Làm các bài tập
được giao Giao bài tập
Thực hành
1.5 giờ tín chỉ
(3 tiết thực
học)
Phòng máy Thực hành các chương trình
được giao trong tuần 5, 6
Tuần 7: Nội dung 7; thực hành nội dung 7
Lý thuyết
2 giờ tín chỉ
Giảng đường Nội dung 7 Dữ liệu kiểu
mảng
- Khái niệm mảng
- Khai báo và sử dụng mảng
- Con trỏ / tham chiếu
- Xâu ký tự
Đọc trước tài liệu phần Mảng
và con trỏ/tham chiếu
([2].chương 5;
[3].chương 7)
Giao bài tập