Page 1
KHOA CÔNG NGHỆ THÔNG TIN
CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM
Độc lập – Tự do – Hạnh phúc
ĐỀ CƢƠNG CHI TIẾT HỌC PHẦN
LẬP TRÌNH CƠ BẢN –PROGRAMMING BASICS
1. Thông tin về giáo viên
TT Họ tên giáo
viên
Học hàm Học vị Đơn vị công tác (Bộ môn)
1 Nguyễn Thị
Hiền
GV ThS Công nghệ phần mềm
Thời gian, địa điểm làm việc: văn phòng Bộ môn Công nghệ phần mềm
Địa chỉ liên hệ: Bộ môn CNPM – Khoa CNTT
Điện thoại, email: 0912092486, [email protected]
Các hướng nghiên cứu chính: Lập trình Gien, Học máy, Tính toán tự nhiên
2. Thông tin chung về học phần
- Tên học phần: LẬP TRÌNH CƠ BẢN
- Mã học phần: 12500151
- Số tín chỉ: 3
- Cấu trúc học phần: 3(2,2): 60 tiết (45-15 – 0 – 0)
- Học phần (bắt buộc hay lựa chọn): bắt buộc
- Các học phần tiên quyết: không
- Các yêu cầu đối với học phần (nếu có):
- Giờ tín chỉ đối với các hoạt động:
Nghe giảng lý thuyết: 45
Làm bài tập trên lớp: 15
Thảo luận:
Thực hành, thực tập (ở PTN, nhà máy, thực tập...):
Hoạt động theo nhóm:
Tự học: 90
- Khoa/Bộ môn phụ trách học phần, địa chỉ: Bộ môn Công nghệ phần mềm
- Khoa Công nghệ thông tin
Điện thoại: 069515338
Page 2
2
Email: [email protected]
3. Mục tiêu của học phần
- Kiến thức: Lập trình cơ bản là một trong các môn học cơ sở của sinh viên
ngành Công nghệ Thông tin. Môn học nhằm trang bị cho sinh viên những
hiểu biết cơ bản về ngành CNTT, kiến thức cơ bản về lập trình, về ngôn
ngữ lập trình bậc cao, kỹ năng phân tích và xây dựng chương trình trong
một ngôn ngữ cụ thể.
- Kỹ năng: Sử dụng ngôn ngữ lập trình, gỡ rối chương trình
- Thái độ, chuyên cần: lên lớp đầy đủ và chuẩn bị cho giờ lên lớp theo yêu
cầu của giáo viên
4. Tóm tắt nội dung học phần (khoảng 150 từ)
Cung cấp những kiến thức cơ bản về:
1. Lịch sử phát triển ngành CNTT
2. Các lĩnh vực ứng dụng của CNTT
3. Các lĩnh vực học thuật có nhu cầu sử dụng CNTT
4. Một số nội dung nhập môn về tin học
Khái niệm về thông tin và xử lý thông tin
Các thiết bị tính toán,
Một số kỹ năng cơ bản với máy tính,
Một số khái niệm về ngôn ngữ lập trình, và giải thuật.
Một số công cụ hỗ trợ kỹ thuật lập trình thông dụng như Matlab,
hay C
5. Nội dung chi tiết học phần (tên các chương, mục, tiểu mục)
Chương,
mục, tiểu
mục
Nội dung Số
tiết
Giáo trình,
Tài liệu tham
khảo
(Ghi TT của
TL ở mục 6)
Ghi chú
Phần I: Cơ sở CNTT
Chương 1:
Giới thiệu
chung về
CNTT
1. Lịch sử phát triển ngành
CNTT
2. Các lĩnh vực ứng dụng của
CNTT
3. Các lĩnh vực học thuật có nhu
cầu sử dụng CNTT
3 3
Chương 2 - 1 Thông tin và xử lý thông tin 3 1
Page 3
3
Máy tính
điện tử và
xử lý thông
tin.
bằng máy tính điện tử
1.1 Khái niệm về thông tin,
độ đo thông tin, mã hoá thông
tin
1.2 Xử lý thông tin tự động
bằng máy tính điện tử
1.3 Tin học và công nghệ
thông tin
2 Máy tính điện tử
2.1 Kiến trúc chung của máy
tính điện tử
2.2 Nguyên lý Von Neumann
2.3 Bộ nhớ
2.4 Các thiết bị vào – ra
2.5 Bộ xử lý
2.6 Quá trình thi hành lệnh
2.7 Các thế hệ máy tính điện tử
Chương 3:
Các hệ đếm
thường
dùng trong
tin học và
biểu diễn
thông tin
trong máy
tính
1 Các hệ đếm thường dùng trong
tin học
1.1 Hệ đếm
1.2 Tìm biểu diễn số trong
các hệ đếm
1.3 Số học nhị phân
2 Biểu diễn thông tin trong máy
tính
2.1 Dữ liệu kiểu số
2.2 Dữ liệu phi số
2.3 Biểu diễn thông tin
trong máy tính
5 1
Chương 4:
Phần mềm
máy tính và
mạng máy
tính
1. Phần mềm
1.1 Phần mềm hệ thống
1.2 Phần mềm công cụ
1.3 Phần mềm ứng dụng
1.4 Phần mềm tiện ích
1.5 Quá trình xây dựng
4 1
Page 4
4
phần mềm
2. Mạng máy tính
2.1 Các mô hình xử lý
cộng tác
2.2 Mạng máy tính
2.3 Khái niệm về Internet
2.4 Các tài nguyên, dịch
vụ trên Internet
Phần II: Giải thuật và ngôn ngữ lập trình
Chương 5
Giải thuật
xử lý thông
tin và ngôn
ngữ lập
trình
1. Khái niệm bài toán giải
thuật
2. Đặc trưng của giải thuật
3. Các phương pháp diễn đạt
giải thuật
4. Sơ lược về đánh giá giải
thuật
5. Ngôn ngữ lập trình và các
mức khác nhau của ngôn
ngữ lập trình
6. Quá trình thực hiện
chương trình trên ngôn
ngữ bậc cao
5 2, 4
Page 5
5
Chương 6:
Các khái
niệm cơ
bản trong
ngôn ngữ
lập trình C
1. Giới thiệu ngôn ngữ lập
trình C
2. Các kiểu dữ liệu cơ bản
3. Biến, hằng và biểu thức
4. Các phép toán
5. Cấu trúc chương trình
6. Hàm main và đối số dòng
lệnh
7. Khai báo biến
8. Phát biểu include
9. Câu lệnh
10. Xuất dữ liệu ra thiết bị
chuẩn: các hàm putch,
puts, printf
11. Nhập dữ liệu từ thiết bị
chuẩn: các hàm getch,
gets, scanf
3 2, 4
Chương 7:
Các cấu
trúc điều
khiển
1. Cấu trúc tuần tự
2. Cấu trúc rẽ nhánh (if,
switch)
3. Cấu trúc lặp (for, while, do
while)
12 2, 4
Page 6
6
Chương 8:
Mảng, con
trỏ và xâu
ký tự
1. Mảng một chiều và nhiều
chiều
2. Con trỏ và địa chỉ
3. Các phép toán với con trỏ
4. Liên hệ giữa con trỏ và
mảng
5. Xâu ký tự và một số hàm
làm việc với xâu ký tự
8 2, 4
Chương 9:
Giới thiệu
về hàm
1. Khái niệm
2. Prototype, định nghĩa và
các kiểu của hàm
3. Biến cục bộ
4. Truyền tham số và giá trị
trả lại
5. Hàm inline
6. Đệ quy
8 2, 4
Chương 10:
Cấu trúc dữ
liệu
1. Khái niệm về trừu tượng
dữ liệu
2. Cấu trúc dữ liệu đơn giản
3. Cấu trúc dữ liệu nâng cao
(mảng, con trỏ, tích hợp,..)
4 2, 4
Chương 11:
Làm việc
với tệp
1. Các hàm fopen, fclose,
fscanf, fprintf, fflush
2. Đọc và ghi tệp ngẫu nhiên:
các hàm fread, frwite
4 2, 4
6. Giáo trình, tài liệu tham khảo
TT Tên giáo trình, tài liệu Tình trạng giáo trình, tài liệu
1 Giáo trình tin học cơ sở, Hồ Sỹ
Đàm, Đào Kiến Quốc, Hồ Đắc
Phương. Đại học Sư phạm, 2004.
Giáo viên
có
2 Kỹ thuật lập trình C: cơ sở và nâng Thư
Page 7
7
cao, Phạm Văn Ất viện có
3 Computing Essentials, Tim and
Linda O’Leary, McGraw-Hill, 2012
Giáo viên
có
4 The C programming language 2nd
Edition, Brian Kernighan and
Dennis Ritchie, Prentice Hall
Software Series
Giáo viên
có
7. Hình thức tổ chức dạy học
7.1. Lịch trình chung: (Ghi tổng số giờ cho mỗi cột)
Nội dung
Hình thức tổ chức dạy học
môn học
Tổng
Lên lớp Thực
hành
, thí
nghiệ
m,
thực
tập...
Tự
học,
tự
nghi
ên
cứu
Lý
thuyế
t
Bài
tập
Th
ảo
luậ
n
Phần I: Cơ sở CNTT 13 2 15
1 - Giới thiệu chung về CNTT 3 3
2 - Máy tính điện tử và xử lý
thông tin.
3 6
3 - Các hệ đếm thường dùng
trong tin học và biểu diễn thông
tin trong máy tính
3 2 5
4- Phần mềm máy tính và mạng
máy tính
4 4
Phần II: Giải thuật và ngôn ngữ
lập trình
30 12 45
5 - Giải thuật xử lý thông tin và
ngôn ngữ lập trình
3 2 5
Page 8
8
6- Các khái niệm cơ bản trong
ngôn ngữ lập trình C
3 1 4
7 - Các cấu trúc điều khiển 9 3 12
8 - Mảng, con trỏ và xâu ký tự 6 2 8
9- Giới thiệu về hàm 6 2 8
10 - Cấu trúc dữ liệu 3 1 4
11 - Làm việc với tệp 3 1 4
7.2. Lịch trình tổ chức dạy học cụ thể
- Nội dung 1, Tuần 1: Giới thiệu chung về CNTT
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
SV
chuẩn
bị
Ghi chú
Lý thuyết Theo
bố
trí
của
P2
1. Lịch sử phát triển ngành CNTT
2. Các lĩnh vực ứng dụng của CNTT
3. Các lĩnh vực học thuật có nhu cầu
sử dụng CNTT
Đọc
trước
chương
1, 3 tài
liệu 3.
Bài tập
Thảo luận
Thực hành, thí
nghiệm, thực
tập, rèn nghề…
Tự học, tự
nghiên cứu
- Nội dung 2, Tuần 2: Máy tính điện tử và xử lý thông tin
Hình
thức tổ
chức
Thời
gian,
địa
Nội dung chính Yêu cầu
SV
chuẩn
Ghi
chú
Page 9
9
dạy học điểm bị
Lý thuyết Theo
bố trí
của P2
1 Thông tin và xử lý thông tin bằng máy tính
điện tử
1.1 Khái niệm về thông tin, độ đo thông
tin, mã hoá thông tin
1.2 Xử lý thông tin tự động bằng máy tính
điện tử
1.3 Tin học và công nghệ thông tin
2 Máy tính điện tử
2.1 Kiến trúc chung của máy tính điện tử
2.2 Nguyên lý Von Neumann
2.3 Bộ nhớ
2.4 Các thiết bị vào – ra
2.5 Bộ xử lý
2.6 Quá trình thi hành lệnh
2.7 Các thế hệ máy tính điện tử
Đọc
chương
1,2, 3 tài
liệu [1]
Bài tập
Thảo luận
Thực
hành, thí
nghiệm,
thực tập,
rèn
nghề…
Tự học, tự
nghiên
cứu
Nội dung 3, Tuần 3: Các hệ đếm thường dùng trong tin học và biểu diễn
thông tin trong máy tính
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 SV
chuẩn
bị
Ghi
chú
Page 10
10
Lý thuyết Theo
bố trí
của P2
1 Các hệ đếm thường dùng trong tin học
1.1 Hệ đếm
1.2 Tìm biểu diễn số trong các hệ đếm
1.3 Số học nhị phân
2 Biểu diễn thông tin trong máy tính
2.1 Dữ liệu kiểu số
2.2 Dữ liệu phi số
2.3 Biểu diễn thông tin trong máy tính
Đọc
chương
4, 6 tài
liệu [1]
Bài tập 1. Đổi các số thập phân sau đây ra hệ nhị
phân: 10, 15, 29, 8.625, 77
2. Hãy đổi các số nhị phận sau đây ra hệ
thập phân: 11, 101, 1010, 11001, 1011.110
3. Đổi các số nhị phân sau đây ra hệ 16
11010110101, 1011111000101,
1111011101.1100101
4. Đổi các số hệ 16 ra hệ nhị phân 3E5,
35FA, A54
Thảo luận
Thực
hành, thí
nghiệm,
thực tập,
rèn
nghề…
Tự học, tự
nghiên
cứu
Nội dung 4, Tuần 4: Phần mềm máy tính và mạng máy tính
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 SV
chuẩn
bị
Ghi
chú
Page 11
11
Lý thuyết Theo
bố trí
của P2
1. Phần mềm
1.1 Phần mềm hệ thống
1.2 Phần mềm công cụ
1.3 Phần mềm ứng dụng
1.4 Phần mềm tiện ích
1.5 Quá trình xây dựng phần mềm
2. Mạng máy tính
2.1 Các mô hình xử lý cộng tác
2.2 Mạng máy tính
2.3 Khái niệm về Internet
2.4 Các tài nguyên, dịch vụ trên Internet
Đọc
chương
8, 12,
13 tài
liệu [1]
Bài tập
Thảo luận
Thực
hành, thí
nghiệm,
thực tập,
rèn
nghề…
Tự học, tự
nghiên
cứu
Tuần 5: Giải thuật xử lý thông tin và ngôn ngữ lập trình
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
SV
chuẩn
bị
Ghi
chú
Lý thuyết Theo
bố trí
của P2
1. Khái niệm bài toán giải thuật
2. Đặc trưng của giải thuật
3. Các phương pháp diễn đạt giải thuật
4. Sơ lược về đánh giá giải thuật
5. Ngôn ngữ lập trình và các mức khác
nhau của ngôn ngữ lập trình.
6. Quá trình thực hiện chương trình trên
Đọc
chương
7, 9 tài
liệu [1]
Page 12
12
ngôn ngữ bậc cao
Bài tập 1. Cho tam giác ABC có góc vuông A và cho
biết cạnh a và góc B. Hãy viết thuật toán để
tính góc C, cạnh b và cạnh c.
2. Trình bày tính chất xác định của thuật toán
và nêu rõ nghĩa của tính chất này.
3*.Hãy phát biểu thuật toán để giải bài toán
sau: "Có một số quả táo. Dùng cân hai đĩa
(không có quả cân) để xác định quả táo nặng
nhất"
4. Xác định input và output cho các thuật toán
sau đây:
a) Rút gọn một phân số.
b) Kiểm tra xem ba số cho trước a, b và c có
thể là độ dài ba cạnh của một tam giác hay
không?
c) Tính trung bình cộng của hai số.
d) Dùng một cốc phụ để tráo nước ở hai cốc
cho trước.
e) Tìm chu vi và diện tích của hình tròn có bán
kính cho trước.
5. Chỉ dùng phép cộng, viết thuật toán để từ số
tự nhiên n, tính số n2
Thảo luận
Thực
hành, thí
nghiệm,
thực tập,
rèn
nghề…
Tự học, tự
Page 13
13
nghiên
cứu
Tuần 6: Các khái niệm cơ bản trong ngôn ngữ lập trình C
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ên
chuẩn bị
Ghi
chú
Lý thuyết
Theo
bố trí
của P2
- Ngôn ngữ lập trình, đặc điểm của C
- Bảng chữ cái, tên, quy tắc đặt tên trong C, từ
khoá
- 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 của C: phép gán, các phép
toán số học, so sánh, logic, các phép toán thao
tác trên bit, các phép toán tích luỹ, toán tử
điều kiện, toán tử tăng/giảm 1, toán tử &, *,
độ ư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
Cấu trúc chương trình và nhập xuất dữ liệu
- Cấu trúc, ý 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
- Ví dụ chương trình đơn giản để minh hoạ
- 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 dữ liệu nhập
xuất)
- Ví dụ: nhập 2 số nguyên và in ra màn hình
- Giới thiệu cách sử dụng một số hàm thông
dụng trong thư viện C
- Đọc
chương 2,
3 tài liệu
[2],
chương 2
tài liệu
[4].
Bài tập
Thảo luận
Thực
hành, thí
nghiệm...
Page 14
14
Tự học, tự
nghiên
cứu
Tuần 7: Các cấu trúc điều khiển
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ên
chuẩn bị
Ghi
chú
Lý thuyết
Theo bố
trí của
P2
- Cấu trúc điều khiển
- Cấu trúc rẽ nhánh if: cú pháp, sơ
đồ khối của cấu trúc, ý nghĩa
- Ví dụ 1: chương trình nhập số
nguyên dương, kiểm tra số đó có là
số chính phương hay không;
- Ví dụ 2: chương trình tìm nghiệm
của phương trình bậc 2
- Cấu trúc rẽ nhánh switch: cú
pháp, ý nghĩa
- Ví dụ (minh hoạ cấu trúc
switch): nhập biểu thức đơn giản
dạng a b (: có thể là phép
toán số học, hoặc quy ước x, : )
tính giá trị của biểu thức đó
- Cấu trúc lặp while: cú pháp, sơ
đồ khối của cấu trúc, ý nghĩa (chú
tới điều kiện trước)
- Ví dụ 1 (minh hoạ cấu trúc while):
tính n!;
- Ví dụ 2: tính tổng 12
1
n
i
i
, với i = 1
n;
- Ví dụ 3: kiểm tra số nguyên tố
- Cấu trúc lặp do while: cú pháp, sơ
đồ khối của cấu trúc, ý nghĩa (phân
biệt điều kiện lặp với while)
- Đọc các phần
tương ứng trong
chương 5 của [2],
chương 3 của [4].
- Làm bài tập về
nhà
- Đọc các phần
tương ứng trong
chương 5 của [2],
chương 3 của [3].
- Làm thêm các bài
tập (tham khảo)
- C1: tính cos(x)
theo công thức
khai triển Taylor
- C2: Tính tổng
1/(i!) với i: 1 n
- C3: Tìm n số
nguyên tố đầu tiên
- C4: Nhập n số
thực, tìm và in giá
trị lớn nhất, nhỏ
nhất
- C5: Viết chương
trình nhập dãy các
số nguyên dương
từ bàn phím, cho
Page 15
15
- Ví dụ 1 (minh hoạ cấu trúc do
while): Viết chương trình nhập dãy
các số nguyên dương từ bàn phím,
cho tới khi nhập số âm thì kết thúc
nhập, in giá trị lớn nhất;
tới khi nhập số âm
thì kết thúc nhập,
tìm giá trị lớn nhất
và số phần tử bằng
giá trị lớn nhất đó
- C6: Viết chương
trình chọn ngẫu
nhiên một kí tự c
nào đó, cho phép
lặp nhập một kí tự
từ bàn phím, nếu
trùng với c thì
thông báo chọn
đúng và kết thúc
Bài tập
Thảo
luận
Thực
hành, thí
nghiệm...
Tự học,
tự nghiên
cứu
Tuần 8: Các cấu trúc điều khiển (tiếp theo)
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ên
chuẩn bị
Gh
i
ch
ú
Lý
thuyết
Theo
bố trí
của P2
- Cấu trúc lặp for: cú pháp, sơ đồ
khối của cấu trúc, ý nghĩa (chú tới
trường hợp các biểu thức rỗng,
nhiều biều thức cách nhau bởi dấu
phẩy)
- Ví dụ 1: In các kí tự từ A - Z
- Ví dụ 2: Giải bài toán vui trăm
Đọc các phần tương
ứng trong chương 5
của [2], chương 3 của
[4].
- Làm thêm bài tập
(tham khảo)
- C7: Viết chương in
Page 16
16
trâu trăm cỏ
- Ví dụ 3: Nhập số n, in các số
hoàn chỉnh <= n
- Câu lệnh break, continue, kết
thúc sớm vòng lặp
Bài tập về nhà:
- Bài 4 - Nhập dãy có n số thực,
hãy xác định trật tự của dãy đó
(tăng, giảm, điều hay không có thứ
tự)
- Bài 5 - Nhập n, in n số fibonaxi
đầu tiên
- Bài 6 - Nhập số n, in các số
nguyên tố 2..n
- Bài 7 - Viết chương trình nhập
dãy các số nguyên dương từ bàn
phím, cho tới khi nhập số âm thì
kết thúc nhập, tìm giá trị lớn nhất
và số phần tử bằng giá trị lớn
bảng cửu chương ra
màn hình
- C8: Tính đại lượng
S=
nn 2)1(2..42
với n cho trước
Bài tập
Thảo
luận
Thực
hành, thí
nghiệm...
Tự học,
tự
nghiên
cứu
Tuần 9: Bài tập (3 tiết)
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ên
chuẩn bị
G
hi
ch
ú
Page 17
17
Lý
thuyết
Bài tập Theo
bố trí
của P2
- Bài 8 -Viết chương trình nhập số n, tìm
và in các số nguyên tố thuộc 2..n
- Bài 9: Kiểm tra số fibonaxi
- Bài 10: Kiểm tra số hoàn chỉnh
- Bài 11: Tính sin(x) theo công thức khai
triển Taylor với độ chính xác cho trước
- Bài 12: Nhập dãy có n số thực, hãy xác
định trật tự của dãy đó (tăng, giảm, điều
hay không có thứ tự)
- Bài 13: Nhập n, in n số fibonaxi đầu
tiên
- Bài 14: Nhập số n, in các số nguyên tố
2..n
- Bài 15: Viết chương trình nhập dãy các
số nguyên dương từ bàn phím, cho tới
khi nhập số âm thì kết thúc nhập, tìm
giá trị lớn nhất và số phần tử bằng giá
trị lớn
Chuẩn bị
trước các
bài tập về
nhà và bài
tập tham
khảo
Thảo
luận
Thực
hành, thí
nghiệm...
Tự học,
tự
nghiên
cứu
Tuần 10: Mảng, con trỏ và xâu ký tự
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ên
chuẩn bị
Ghi
chú
Lý thuyết Theo bố 1. Mảng 1 chiều - Đọc chương 2
Page 18
18
trí của
P2
- Khái niệm, lệnh khai báo mảng 1
chiều, truy xuất các phần tử, lưu ý
trường hợp truy xuất vượt chỉ số,
bố trí các phần tử trong bộ nhớ, giá
trị khởi đầu các phần tử
- Ví dụ 1: Nhập mảng có n phần tử
kiểu nguyên, in các phần tử của
mảng
- Ví dụ 2: Nhập 2 mảng có n phần
tử kiểu nguyên, tính và in mảng
tổng
2. Mảng 2 chiều
- Khái niệm, lệnh khai báo mảng 1
chiều, truy xuất các phần tử, lưu ý
trường hợp truy xuất vượt chỉ số
dòng, cột, sắp xếp các phần tử trong
bộ nhớ, liên hệ giữa chỉ số dòng,
cột với số thứ tự
- Ví dụ 1: Nhập mảng có n dòng, m
cột các phần tử kiểu nguyên, in các
phần tử của mảng ra màn hình
- Ví dụ 2: Nhập 2 mảng A,B có n,
m cột các phần tử kiểu nguyên,
tính và in mảng C=A+B
- Ví dụ 3: Nhập 2 vector có n phần
tử kiểu nguyên, kiểm tra 2 vector đó
có vuông góc với nhau hay không
Bài tập về nhà:
- Bài 16: Sắp xếp mảng 1 chiều
bằng phương pháp chọn (đổi chỗ
- nổi bọt)
trong [2], chương 5
trong [4]
- Làm bài tập về
nhà
- Làm thêm các
bài tập (tham
khảo)
- C9: Nhập mảng
có n phần tử kiểu
nguyên theo trật tự
tăng dần, in các
phần tử khác nhau
của mảng
- C10: Nhập 2
mảng theo trật tự
tăng dần, trộn 2
mảng để được có
thứ tự tăng dần
- C11: Nhập mảng
có n phần tử kiểu
nguyên, in các
phần tử khác nhau
của mảng
- C12: Tìm kiếm
bằng phương pháp
chia đôi trên mảng
có thứ tự
Bài tập Chữa các bài tập: Bài 9, Bài 10, Bài
11
Thảo
Page 19
19
luận
Thực
hành, thí
nghiệm...
Tự học,
tự nghiên
cứu
Tuần 11: Mảng, con trỏ và xâu ký tự (tiếp theo)
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ên
chuẩn bị
Ghi
chú
Lý thuyết
Theo bố
trí của
P2
Mảng, con trỏ và xâu ký tự (2)
- Giới thiệu mảng nhiều chiều
- Con trỏ và các phép toán trên con trỏ:
Khai báo con trỏ, phép gán con trỏ, truy
xuất giá trị qua con trỏ, số học địa chỉ
- Cấp phát vùng nhớ cho con trỏ (giới
thiệu qua về cấp phát động new, và giải
phóng vùng nhớ delete)
- Liên hệ giữa con trỏ và mảng
- Ví dụ: Cấp phát động mảng 1 chiều,
nhập và in mảng đó bằng các dùng con
trỏ
Mảng, con trỏ và xâu ký tự (3)
- Xâu kí tự: Khái niệm, khai báo xâu kí
tự
- Giới thiệu một số hàm làm việc với xâu
kí tự: nhập, in, so sánh, sao chép, tìm
kiếm, chuyển đổi chữ hoa/ chữ thường
- Ví dụ: Nhập mảng các xâu kí tự dài
không quá 30, sắp xếp theo thứ tự tăng, in
mảng sau khi sắp xếp.
Bài tập:
- Đọc
chương 6
trong [2],
chương 5
trong [4]
- Làm bài tập
về nhà
- Làm bài
tập tham
khảo
- C13: Cho
ma trận m
dòng, n cột
a) Tìm phần
tử lớn nhất
mỗi cột và
đặt chúng
vào dòng
cuối cùng.
b) Tìm phần
tử nhỏ nhất
mỗi dòng và
đặt chúng
Page 20
20
- Bài 17: Nhập 2 mảng A(n,m), B(m,n)
phần tử kiểu số thực, tính và in mảng
C=A*B
- Bài 18: Nhập 2 mảng A(n,m), B(m,n)
phần tử kiểu số thực, kiểm tra A có là
hoán vị của B hay không
- Bài 19: Nhập A(n,n) với n không giới
hạn trước, kiểm tra A có là ma trận
đơn vị không?
- Bài 20: Xây dụng ma trận A(n,m), sao
cho các phần tử có giá trị theo dạng
xoắn ốc (n, m không giới hạn trước)
- Bài 21: Nhập xâu họ tên (không quá 40
kí tự), chuẩn hoá xâu đó (kí tự đầu từ
viết hoa, các kí tự khác viết thường,
các từ cách nhau 1 dấu cách)
- Bài 22: Nhập 3 xâu s1, s2, s3 (không
quá 40 kí tự), thay xâu s2 bằng s3
trong s1
- Bài 19: Nhập xâu kí tự. Đưa xâu đó về
dạng chuẩn
- Bài 23: Nhập xâu kí tự và tìm từ dài
nhất trong xâu.
vào cột đầu
tiên.
c) Sắp xếp
dòng thứ 2
theo thứ tự
giảm dần.
d) Sắp xếp
cột 4 theo
thứ tự tăng
dần.
- Tra cứu
một số hàm
thư viện
string
- C14: Viết
chương trình
đổi 1 số
trong hệ thập
phân sang hệ
nhị phân.
Bài tập Chữa các bài tập: Bài 13, Bài 14, Bài 15,
Bài 16
Thảo
luận
Thực
hành, thí
nghiệm...
Tự học,
tự nghiên
cứu
Tuần 12: Giới thiệu về hàm
Page 21
21
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ên chuẩn bị
G
hi
ch
ú
Lý thuyết
Theo bố
trí của
P2
Cơ bản về hàm (1)
- Khái niệm hàm, ý nghĩa ưu điểm của
việc sử dụng hàm
- Nguyên mẫu hàm, định nghĩa hàm, giá
trị trả về của hàm
- Lời gọi hàm
- Ví dụ 1: viết hàm kiểm tra số nguyên
tố, sử dụng hàm đó để in n số nguyên tố
đầu tiên
- Truyền tham số: tham trị, con trỏ
Đọc các
chương 4
trong [4],
chương 6
trong [2].
Bài tập
Thảo
luận
Thực
hành, thí
nghiệm...
Tự học,
tự nghiên
cứu
Tuần 13: Giới thiệu về hàm (tiếp)
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ên
chuẩn bị
Ghi
chú
Lý thuyết
Theo
bố trí
của
P2
Cơ bản về hàm (2)
- Các loại biến, phạm vi của biến
- Ví dụ 2: viết hàm nhập mảng 1 chiều, hàm
in mảng, hàm tích vô hướng 2 vector; sử
dụng các hàm trên để kiểm tra 2 vector có
vuông góc với nhau hay không?
- Hàm đệ quy
Đọc các
chương 4
trong [4],
chương 6
trong [2].
Page 22
22
- Giới thiệu về hàm inline
- Đối của hàm main
- Hàm với đối số bất định
- Ví dụ 3: Tìm ước số chung lớn nhất bằng
hàm đệ quy
- Ví dụ 4: Xây dựng hàm tìm min của dãy n
số (đối số chưa xác định)
- B19: Xây dựng hàm tìm kiếm phần tử
trong mảng có thứ tự bằng phương pháp chia
đôi
Bài tập:
- Bài 24: Viết hàm tính ước số chung lớn
nhất của 2 số tự nhiên a, b.
- Bài 25: Viết hàm xác định một số tự nhiên
có phải nguyên tố hay không.
- Bài 26: Viết hàm nhập mảng, in mảng,
hàm sắp xếp mảng bằng phương pháp chia
đôi; hàm main sử dụng các hàm trên.
- Bài 27: Viết hàm nhập ma trận, in ma trận,
hàm nhân 2 ma trận, hàm kiểm tra ma trận
đơn vị; hàm main sử dụng các hàm trên để
nhập và kiểm tra 2 ma trận có là nghịch đảo
của nhau hay không.
Bài tập Chữa các bài tập: Bài 24, Bài 25
Thảo
luận
Thực
hành, thí
nghiệm…
Tự học,
tự nghiên
cứu
Tuần 14: Cấu trúc dữ liệu trừu tượng
Hình
thức tổ
Thời
gian,
Nội dung chính Yêu cầu
sinh viên
Ghi
chú
Page 23
23
chức
dạy học
địa
điểm
chuẩn bị
Lý thuyết
Theo bố
trí của
P2
Cấu trúc dữ liệu
- Khái niệm trừu tượng hoá dữ liệu
- Dữ liệu kiểu struct (khái niệm, khai báo,
cách sử dụng)
- Ví dụ 1: Xây dựng cấu trúc phân số (PS1)
gồm: Tử số, mẫu số và các hàm: nhập, in,
tối giản
- Ví dụ 2: Xây dựng cấu trúc Sinh viên
Đọc các
chương
2, 6 trong
[2]
Bài tập
Thảo
luận
Thực
hành, thí
nghiệm…
Tự học,
tự nghiên
cứu
Tuần 15: Làm việc với tệp, Ôn tập
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ên
chuẩn bị
Ghi
chú
Lý thuyết
Theo bố
trí của
P2
Làm việc với tệp
- Khái niệm kiểu FILE, các mode làm việc
(nhị phân, văn bản)
- Mở /đóng tệp, định vị con trỏ
- Đọc/ghi tệp (tuần tự, ngẫy nhiên)
- Ví dụ 1: Nhập 2 ma trận A(n,m), B(m,n)
từ bàn phím, tính C= A*B rồi ghi A,B,C
vào tệp (theo dạng văn bản);
- Ví dụ 2: Giả sử có tệp các số nguyên
(dạng text) ghi các phần tử của mảng theo
dạng: dòng 1 ghi số phần tử, dòng thứ 2 ghi
- Đọc các
chương 2
trong [4],
chương 10
trong [2].
- Làm bài
tập về nhà
Page 24
24
các phần từ cách nhau bởi dấu trống; viết
chương trình đọc các giá trị đó vào mảng,
sắp xếp tăng dần rồi ghi vào cuối của tệp
đó.
Bài tập về nhà:
- Bài 28: Nhập tên, điểm của học sinh hai
lớp vào hai tệp văn bản, mỗi học sinh ghi
trên một dòng của tệp
Ôn tập
- Ôn tập các nội dung lý thuyết
- Chữa các bài tập
- thảo luận các hướng giải bài toán, các vấn
đề gặp phải khi lập trình.
Bài tập
Thảo
luận
Thực
hành, thí
nghiệm...
Tự học,
tự nghiên
cứu
8. Chính sách đối với học phần và các yêu cầu khác của giáo viên
- Lên lớp nghe giảng, tham gia thảo luận, chuẩn bị tốt phần tự học, bài
tập.
- Sinh viên phải chuẩn bị các nội dung theo yêu cầu trong đề cương môn
học trước mỗi buổi học
- Tham gia đầy đủ các buổi học theo qui định của Học viện
- Mỗi sinh viên lên chữa bài tập không ít hơn 1 lần
- Bài tập và bài kiểm tra đạt không dưới 5/10
- Các bài tập được giao nếu phát hiện sao chép sẽ nhận điểm 0
- Các bài tập phải nộp đúng hạn, có thể làm lại nếu muốn điểm cao hơn.
9. Phƣơng pháp, hình thức kiểm tra - đánh giá kết quả học tập học phần
Page 25
25
- Viết đúng, sử dụng biến hợp lý, chương trình viết dạng module:
10 điểm
- Viết đúng, viết chương trình ở dạng module: 7-9
điểm
- Viết đúng, chạy được chương trình trong một số điều kiện: 5-6
điểm
- Làm sai, không làm được: 1 – 4
điểm
9.1. Điểm chuyên cần: 10%
- Tham gia học tập trên lớp (đi học đầy đủ, chuẩn bị bài tốt và tích cực
thảo luận, …)
9.2. Điểm thường xuyên: 20%
- Biết cách dùng ngôn ngữ C để giải các bài toán
- Giải được một số bài tập điển hình;
- Kiểm tra đánh giá giữa kỳ và các bài tập của từng nội dung học.
9.3. Thi kết thúc học phần:70%
- Hiểu và vận dụng thành thạo các kỹ năng lập trình, cú pháp của ngôn
ngữ lập trình;
- Đủ khả năng giải quyết được bất cứ bài tập lập trình nào;
-
Chủ nhiệm Khoa
(Ký và ghi rõ họ tên)
Chủ nhiệm Bộ môn
(Ký và ghi rõ họ tên)
Giảng viên biên soạn
(Ký và ghi rõ họ tên)
-