Tải bản đầy đủ (.pdf) (13 trang)

Introduction to computer programming

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (510.47 KB, 13 trang )

Đại Học Quốc Gia TP.HCM
Trƣờng Đại Học Bách Khoa
Khoa KH&KT Máy Tính

Vietnam National University – HCMC
Ho Chi Minh City University of Technology
Faculty of Computer Science and Engineering

Đề cương môn học

NHẬP MƠN VỀ LẬP TRÌNH
(Introduction to computer programming )

Số tín chỉ
Số tiết
Mơn ĐA, TT, LV
Tỉ lệ đánh giá
Hình thức đánh giá

3 (3.2.7) MSMH
Tổng: 60

LT: 30

TH:

CO1003
TN: 30

BTL/TL: Y


Môn tiên quyết

BT:
TN: 30%
KT:
BTL/TL: 30% Thi: 40%
- Thí nghiệm: sinh viên làm trước các bài thí nghiệm ở nhà; các bài thí
nghiệm được chấm theo cách được nêu trong cột cuối cùng của bảng
danh mục các thí nghiệm, được trình bày ở phần sau, gần cuối bản đề
cương. Điểm tổng kết phần thí nghiệm là điểm trung bình của các bài
thí nghiệm và điểm bài kiểm tra tổng hợp ở buổi thí nghiệm cuối
cùng.
- Bài tập lớn: Sinh viên phải hoàn thành 01 bài tập lớn theo nhóm, từ 3-5
sinh viên. Đề bài tập lớn được phổ biến ngay từ đầu. Sinh viên trao đổi
cách làm bài với giảng viên trong các buổi Lý thuyết và Thí nghiệm.
Giảng viên sẽ sử dụng hệ thống kiểm tra sự trùng mã nguồn ở mức cú
pháp từ Đại Học Standford, Mỹ để kiểm tra việc copy của sinh viên.
Nếu vi phạm các nhóm có copy đều bị 0 điểm môn này.
- Thi: viết và trắc nghiệm, 90 phút
Không

Môn học trước

Khơng

Mơn song hành

Khơng

CTĐT ngành

Trình độ đào tạo

Các khoa của Đại học Bách Khoa Tp.HCM (Trừ Khoa học Máy tính)
Đại học

Cấp độ môn học

Cấp độ 1 (dạy cho sinh viên năm 1)

Ghi chú khác

Sinh viên không được vắng quá 40% số buổi thì nghiệm. Sinh viên sẽ
nhận điểm 0 cho cột điểm tổng kết môn học nếu vi phạm quy định này.

1. Mục tiêu của môn học
Môn học này là mơn học đầu tiên về lập trình, dành cho sinh viên chưa có kiến thức nào về lập trình
trước đó. Mơn học giúp sinh viên có kiến thức về máy tính và lập trình C, cũng như giúp sinh viên
rèn luyện kỹ năng lập trình với ngơn ngữ C.
Aims:
This course is a comprehensive introductory course that is intended for students who have no
background in computer programming. This course provides basic knowledge on computer and
1/13


computer programming with C. It also helps students to practise programming skills for using C
language.

2. Nội dung tóm tắt mơn học







Kiến thức tổng quan về máy tính và lập trình
Kiểu dữ liệu trong C, bao gồm, số, ký tự, chuỗi, enum, mảng, con trỏ và tập tin.
Nhập và xuất dữ liệu trong C
Các cấu trúc điều khiển
Tổ chức chương trình







Course outline:
Overview knowledge on computer and computer programming
Data types in C, including number, character, string, enum, array, pointer and file.
Input and output in C
Control structures
Program organization

3. Tài liệu học tập
Sách, Giáo trình chính:
[1] “C: How to Program”, 7th Ed. – Paul Deitel and Harvey Deitel, Prentice Hall, 2012.
Sách tham khảo:
[1] “The C Programming Language”, 2nd Ed. – Brian W. Kernighan and Dennis M. Ritchie,
Prentice Hall, 1988
[2] “Giáo trình ngơn ngữ lập trình C/C++” – Nguyen Ngoc Cuong, Nhà xuất bản thơng tin và

truyền thông, 2011.
[3] TutorialsPoint.com, Online at />[4] CodingUnit.com, Online at />
4. Hiểu biết, kỹ năng, thái độ cần đạt đƣợc sau khi học môn học
STT
L.O.1

Chuẩn đầu ra môn học
Hiểu tổng quan về Máy tính, lập trình, các bước trong lập trình, và một
chương trình C điển hình
L.O.1.1 – Biết được cấu trúc cơ bản về phần cứng của máy tính.
L.O.1.2 – Giải thích được các bước trong q trình quy trình phát triển
chương trình máy tính.
L.O.1.3 – Liệt kê được các công cụ phần mềm hổ trợ các bước trong q
trình nói trên.
L.O.1.4 – Biết được cấu trúc và hiểu được các thành phần của một chương
trình viết bằng ngơn ngữ lập trình C.
L.O.1.5 – Vận dụng được các nguyên tắc trong phong cách lập trình để
viết được các chương trình trong sáng và dễ đọc.
L.O.1.6 – Liệt kê được các kiểu dữ liệu cơ bản trong C và ghi ra giá trị
điển hình của các kiểu đó trong mã nguồn.
L.O.1.7 – Sử dụng được các hàm để đọc dữ liệu từ bàn phím và xuất dữ

CDIO

2/13


L.O.2

L.O.3


L.O.4

L.O.5

L.O.6

L.O.7

Index
L.O.1

liệu ra màn hình.
L.O.1.8 – Biết được những nguyên tắc để viết ra mã giả mô tả giải thuật.
L.O.1.9 – Liệt kê được tên của các cấu trúc điều khiển trong lập trình có
cấu trúc.
Sử dụng các kiểu dữ liệu trong C
L.O.2.1 – Biết được tên và các thuộc tính của các kiểu dữ liệu cơ bản về
số, ký tự, enum và logic (logic trong mở rộng của C, C++).
L.O.2.2 – Khai báo được các biến và hằng.
L.O.2.3 – Xác định và giải thích rõ các kiểu lưu trữ biến.
L.O.2.4 – Sử dụng được các tốn tử có thể thực hiện được với các kiểu dữ
liệu để thành lập biểu thức.
L.O.2.5 – Nhập được giá trị của các biến từ bàn phím và xuất được giá trị
của các biến ra màn hình (nhắc lại có nâng cao).
L.O.2.6 – Định nghĩa được các kiểu có cấu trúc và sử dụng chúng.
Mơ tả và hiện thực được giải thuật
L.O.3.1 – Liệt kê được các kiểu điều khiển và vẽ sơ đồ mô tả chúng.
L.O.3.2 – Mô tả được được nguyên tắc kết hợp các kiểu điều khiển để mô
tả các giải thuật.

L.O.3.3 – Hiện thực được các kiểu điều khiển bằng ngôn ngữ C.
L.O.3.4 – Sử dụng các cấu trúc điều khiển để giải quyết bài toán thực tế.
L.O.3.5 – Hiện thực được các giải thuật đệ quy bằng ngôn ngữ C và hiểu
được nguyên tắc hoạt động của nó.
Tổ chức được các chương trình lớn viết bằng ngơn ngữ lập trình C
L.O.4.1 – Xác định được thành phần của một hàm.
L.O.4.2 – Hiện thực được giải thuật dưới dạng hàm.
L.O.4.3 – Giải thích được các kiểu truyền tham số trong C.
L.O.4.4 – Tổ chức được các chương trình lớn, gồm nhiều hàm.
Sử dụng được kiểu dữ liệu mảng (dữ liệu nâng cao)
L.O.5.1 – Khai báo được mảng các giá trị.
L.O.5.2 – Mô tả được cách tổ chức bộ nhớ của các phần tử trong mảng.
L.O.5.3 – Truy xuất được các phần tử của mảng và dùng nó trong biểu
thức.
L.O.5.4 – Hiểu được cách truyền một mảng vào hàm.
Sử dụng được kiểu dữ liệu con trỏ (dữ liệu nâng cao)
L.O.6.1 – Khai báo được con trỏ.
L.O.6.2 – Truy xuất được dữ liệu qua con trỏ.
L.O.6.3 – Giải thích được cách cấp phát bộ nhớ động.
L.O.6.4 – Sử dụng được các phép toán trên con trỏ.
L.O.6.5 – Sử dụng được con trỏ của con trỏ khác.
L.O.6.6 – Dùng được con trỏ với kiểu cấu trúc.
L.O.6.7 – Hiểu được sự liên quan giữa con trỏ và mảng.
Sử dụng được file để lưu trữ dữ liệu
L.O.7.1 – Khai báo được kiểu tập tin.
L.O.7.2 – Giải thích được các kiểu mở và đóng tập tin.
L.O.7.3 – Giải thích được nguyên tắc làm việc với tập tin.
L.O.7.4 – Hiện thực được bằng C để lấy dữ liệu từ tập tin hay để ghi dữ
liệu vào tập tin.
L.O.7.5 – Sử dụng được C để giải quyết bài toán trong thực tế.

L.O.7.6 – Sử dụng được macro.

Course Learning Outcomes
Comprehensive understanding about computer, computer programming,

CDIO

3/13


L.O.2

L.O.3

L.O.4

L.O.5

L.O.6

L.O.7

programming’s tasks, and a typical C program.
L.O.1.1 – List basic components of computers and describe their
functionality.
L.O.1.2 – Explain tasks for creating computer programs.
L.O.1.3 – List supporting tools for creating computer programs
L.O.1.4 – Describe basic components of C programs.
L.O.1.5 – Utilize guidelines in coding styles to make C programs clear and
readable.

L.O.1.6 – List fundamental data types of C, and write their literal constants
in source code.
L.O.1.7 – Use library functions to read data from keyboard and to write
data to screen.
L.O.1.8 – Identity basic components of algorithms described by
pseudocode.
L.O.1.9 – List all control structures used in structural programming.
Use data types supported in C
L.O.2.1 – Identify fundamental data types and their attributes in C
L.O.2.2 – Declare variables and constants.
L.O.2.3 – Identify and explain the storage location of variables.
L.O.2.4 – Formulate expressions from variables, literal constants and
operators supported for the data type of the variables.
L.O.2.5 – Read the value of variables from keyboard and write the
variables’ value to screen.
L.O.2.6 – Define new data types using “struct” and use them in C
programs.
Describe and implement algorithms
L.O.3.1 – List all control structures and draw their flowchart.
L.O.3.2 – Describe principles for combining different control structures in
algorithms.
L.O.3.3 – Implement control structures in C.
L.O.3.4 – Use control structures to solve problems in real-life.
L.O.3.5 – Implement recursive algorithms in C and explain the principle
under their working.
Organize large problems written in C.
L.O.4.1 – Identify basic components of functions in C.
L.O.4.2 – Write algorithms using C function
L.O.4.3 – Explain different types of parameter passing in C.
L.O.4.4 – Organize large programs, composed of a large number of

functions.
Use array data type
L.O.5.1 – Declare variable with array.
L.O.5.2 – Explain memory layout of array variables.
L.O.5.3 – Access elements in arrays and use them in expressions.
L.O.5.4 – Explain the method to pass arrays to functions.
Use pointer data type
L.O.6.1 – Declare pointers.
L.O.6.2 – Access data via pointers.
L.O.6.3 – Explain dynamic memory allocation.
L.O.6.4 – Use pointer’s operators.
L.O.6.5 – Use pointer to other pointers.
L.O.6.6 – Use pointer with struct data type.
L.O.6.7 – Explain the relationship between pointer and array.
Use file data type and other combination skills
4/13


L.O.7.1 – Declare files.
L.O.7.2 – Explain file’s opening modes.
L.O.7.3 – Explain the principle for working with files.
L.O.7.4 – Implement C functions to read data from files and to write data
to files.
L.O.7.5 – Use C to solve problems in real-life.
L.O.7.6 – Use macro in C.

5. Hƣớng dẫn cách học - chi tiết cách đánh giá môn học
Hướng dẫn cách học:
 Tài liệu học tập bao gồm: đề cương môn học, slide bài giảng, bài thí nghiệm, và bài tập lớn
được lưu trữ trên máy chủ quản lý tư liệu học tập của khoa (trường). Sinh viên tải về, in ra

và mang theo khi lên lớp học.
 Cho mỗi chương hay mỗi bài thí nghiệm, sinh viên cần đọc qua “chuẩn đầu ra của mơn học”
cho phần đó. Sinh viên phải đạt hết các chuẩn đó thì phần học hay thí nghiệm mới được xem
như đạt. Sinh viên nên trao đổi với giảng viên và các TA về các chuẩn chưa đạt được.
 Sinh viên cần đọc bài học (sách), slide và làm bài thí nghiệm (bắt buộc) trước khi đến lớp .
Sinh viên nộp bài thí nghiệm lên máy chủ, và có thể chỉnh sửa trên lớp và nộp lại sau.
 Sinh viên đi học đầy đủ và làm bài tập trong quá trình học sẽ giúp tiết kiệm thời gian trong
q trình ơn thi cuối kỳ. Đặc biệt, sinh viên khơng được vắng q 40% số buổi thí nghiệm.
Sinh viên sẽ nhận điểm 0 cho môn học này nếu vi phạm quy định này.
Chi tiết cách đánh giá môn học:
 Thí nghiệm: sinh viên làm trước các bài thí nghiệm ở nhà; các bài thí nghiệm được chấm
theo cách được nêu trong cột cuối cùng của bảng danh mục các thí nghiệm, được trình bày ở
phần sau, gần cuối bản đề cương. Điểm tổng kết phần thí nghiệm là điểm trung bình của các
bài thí nghiệm và điểm bài kiểm tra tổng hợp ở buổi thí nghiệm cuối cùng.
 Bài tập lớn: Sinh viên phải hoàn thành 01 bài tập lớn theo nhóm, từ 3-5 sinh viên. Đề bài
tập lớn được phổ biến ngay từ đầu. Sinh viên trao đổi cách làm bài với giảng viên và TA
trong các buổi Lý thuyết và Thí nghiệm. Giảng viên sẽ sử dụng hệ thống kiểm tra sự trùng
mã nguồn ở mức cú pháp từ Đại Học Standford, Mỹ, để kiểm tra việc copy của sinh viên.
Nếu vi phạm các nhóm có copy đều bị 0 điểm môn này.
 Thi cuối kỳ: viết và trắc nghiệm, 90 phút

6. Dự kiến danh sách Cán bộ tham gia giảng dạy
 TS. Lê Thành Sách
 TS. Nguyễn Đức Dũng

7. Nội dung chi tiết
Nội dung phần lý thuyết
Tuần

Nội dung


Chuẩn đầu ra chi tiết

1

Chƣơng 1. Giới thiệu về máy tính và
lập trình
1.1. Tổ chức máy tính
1.2. Ngơn ngữ lập trình

L.O.1.1 – Biết được
cấu trúc cơ bản về phần
cứng của máy tính.
L.O.1.2 – Giải thích
được các bước trong
q trình quy trình phát

Hoạt động
dạy và học
- Giảng lý thuyết
- Bài tập trên lớp

Hoạt động
đánh giá
- Bài thí nghiệm
- Bài tập lớn
- Thi cuối kỳ

5/13



Tuần

Nội dung
1.3. Các cơng việc trong lập trình
1.4. Giải thuật và dữ liệu
1.5. Bài tập
Yêu cầu tự học đ/v sinh viên: 8 giờ

2

Chƣơng 2. Cấu trúc và thành phần
của chƣơng trình C
2.1. Chương trình C đơn giản
2.2. Phong cách lập trình
2.3. Dữ liệu và kết xuất trong C
2.4. Dữ liệu và đọc dữ liệu trong C
2.5. Xử lý dữ liệu đơn giản
2.6. Bài tập
Yêu cầu tự học đ/v sinh viên: 8 giờ

3-4

Chƣơng 3. Tổ chức dữ liệu trong
chƣơng trình
3.1. Dữ liệu và kiểu dữ liệu
3.2. Biến và khai báo biến
3.3. Lưu trữ biến, stack
3.4. Định nghĩa hằng
3.5. Phép toán và biểu thức

3.6. Kiểu cấu trúc
3.7. Bài tập
Yêu cầu tự học đ/v sinh viên: 16 giờ

5

Chƣơng 4. Cấu trúc rẽ nhánh
4.1. Cấu trúc if và if-else
4.2. Cấu trúc if lồng nhau

Chuẩn đầu ra chi tiết
triển chương trình máy
tính.
L.O.1.3 – Liệt kê được
các cơng cụ phần mềm
hổ trợ các bước trong
q trình nói trên.
L.O.1.8 – Biết được
những nguyên tắc để
viết ra mã giả mô tả
giải thuật.
L.O.1.9 – Liệt kê được
tên của các cấu trúc
điều khiển trong lập
trình có cấu trúc.
L.O.1.4 – Biết được
cấu trúc và hiểu được
các thành phần của một
chương trình viết bằng
ngơn ngữ lập trình C.

L.O.1.5 – Vận dụng
được các nguyên tắc
trong phong cách lập
trình để viết được các
chương trình trong
sáng và dễ đọc.
L.O.1.6 – Liệt kê được
các kiểu dữ liệu cơ bản
trong C và ghi ra giá trị
điển hình của các kiểu
đó trong mã nguồn.
L.O.1.7 – Sử dụng
được các hàm để đọc
dữ liệu từ bàn phím và
xuất dữ liệu ra màn
hình.
L.O.2.1 – Biết được
tên và các thuộc tính
của các kiểu dữ liệu cơ
bản về số, ký tự, enum
và logic (logic trong
mở rộng của C, C++).
L.O.2.2 – Khai báo
được các biến và hằng.
L.O.2.3 – Xác định và
giải thích rõ các kiểu
lưu trữ biến.
L.O.2.4 – Sử dụng
được các tốn tử có thể
thực hiện được với các

kiểu dữ liệu để thành
lập biểu thức.
L.O.2.5 – Nhập được
giá trị của các biến từ
bàn phím và xuất được
giá trị của các biến ra
màn hình (nhắc lại có
nâng cao).
L.O.2.6 – Định nghĩa
được các kiểu có cấu
trúc và sử dụng chúng.
L.O.3.1 – Liệt kê được
các kiểu điều khiển và
vẽ sơ đồ mô tả chúng.
L.O.3.2 – Mô tả được

Hoạt động
dạy và học

Hoạt động
đánh giá

- Giảng lý thuyết
- Bài tập trên lớp

- Bài thí nghiệm
- Bài tập lớn
- Thi cuối kỳ

- Giảng lý thuyết

- Bài tập trên lớp

- Bài thí nghiệm
- Bài tập lớn
- Thi cuối kỳ

- Giảng lý thuyết
- Bài tập trên lớp

- Bài thí nghiệm
- Bài tập lớn
- Thi cuối kỳ

6/13


Tuần

Nội dung
4.3. Cấu trúc switch
4.4. Bài tập
Yêu cầu tự học đ/v sinh viên: 8 giờ

6-7

Chƣơng 5. Các cấu trúc lặp
5.1. Cấu trúc while
5.2. Cấu trúc for
5.3. Cấu trúc do-while
5.4. Sự lồng nhau của các cấu trúc

5.5. Bài tập
Yêu cầu tự học đ/v sinh viên: 16 giờ

8, 9

Kiểm tra giữa kỳ

1011

Chƣơng 6. Tổ chức chƣơng trình
6.1. Dùng các hàm thư viện
6.2. Một hàm đơn giản
6.3. Các thành phần của hàm
6.4. Truyền tham số bằng trị
6.5. Đệ quy
6.6. Tổ chức chương trình
6.7. Bài tập
Yêu cầu tự học đ/v sinh viên: 16 giờ

1213

Chƣơng 7. Sử dụng mảng (array)
7.1. Khai báo mảng một chiều
7.2. Tổ chức bộ nhớ
7.3. Truy xuất các phần tử
7.4. Mảng ký tự (chuỗi)
7.5. Mảng nhiều chiều
7.6. Truyền mảng như tham số
7.7. Bài tập
Yêu cầu tự học đ/v sinh viên: 16 giờ


1416

Chƣơng 8. Sử dụng con trỏ
8.1. Khai báo và gán trị cho con trỏ
8.2. Lưu trữ biến, heap
8.3. Cấp phát và thu hồi bộ nhớ
8.4. Các phép toán với con trỏ

Chuẩn đầu ra chi tiết
được nguyên tắc kết
hợp các kiểu điều khiển
để mô tả các giải thuật.
L.O.3.3 – Hiện thực
được các kiểu điều
khiển bằng ngôn ngữ
C.
L.O.3.4 – Sử dụng các
cấu trúc điều khiển để
giải quyết bài toán thực
tế.
L.O.3.1 – Liệt kê được
các kiểu điều khiển và
vẽ sơ đồ mô tả chúng.
L.O.3.2 – Mô tả được
được nguyên tắc kết
hợp các kiểu điều khiển
để mô tả các giải thuật.
L.O.3.3 – Hiện thực
được các kiểu điều

khiển bằng ngôn ngữ
C.
L.O.3.4 – Sử dụng các
cấu trúc điều khiển để
giải quyết bài toán thực
tế.
L.O.4.1 – Xác định
được thành phần của
một hàm.
L.O.4.2 – Hiện thực
được giải thuật dưới
dạng hàm.
L.O.4.3 – Giải thích
được các kiểu truyền
tham số trong C.
L.O.4.4 – Tổ chức
được các chương trình
lớn, gồm nhiều hàm.
L.O.3.5 – Hiện thực
được các giải thuật đệ
quy bằng ngôn ngữ C
và hiểu được nguyên
tắc hoạt động của nó.
L.O.5.1 – Khai báo
được mảng các giá trị.
L.O.5.2 – Mô tả được
cách tổ chức bộ nhớ
của các phần tử trong
mảng.
L.O.5.3 – Truy xuất

được các phần tử của
mảng và dùng nó trong
biểu thức.
L.O.5.4 – Hiểu được
cách truyền một mảng
vào hàm.
L.O.6.1 – Khai báo
được con trỏ.
L.O.6.2 – Truy xuất
được dữ liệu qua con
trỏ.
L.O.6.3 – Giải thích

Hoạt động
dạy và học

Hoạt động
đánh giá

- Giảng lý thuyết
- Bài tập trên lớp

- Bài thí nghiệm
- Bài tập lớn
- Thi cuối kỳ

- Giảng lý thuyết
- Bài tập trên lớp

- Bài thí nghiệm

- Bài tập lớn
- Thi cuối kỳ

- Giảng lý thuyết
- Bài tập trên lớp

- Bài thí nghiệm
- Bài tập lớn
- Thi cuối kỳ

7/13


Tuần

Nội dung

Chuẩn đầu ra chi tiết

8.5. Truyền con trỏ vào hàm
8.6. Con trỏ và cấu trúc
8.7. Con trỏ và mảng
8.8. Con trỏ hàm (tự đọc)
8.9. Bài tập
Yêu cầu tự học đ/v sinh viên: 16 giờ

17

Chƣơng 9. Sử dụng tập tin
9.1. Khai báo tập tin

9.2. Mở và đóng tập tin
9.3. Lưu trữ và trích xuất dữ liệu
9.4. Sử dụng macro
9.5. Bài tập
Yêu cầu tự học đ/v sinh viên: 16 giờ

18
**

Review
Nội dung giới hạn cho kiểm tra giữa
kỳ (tập trung)
Chương 1 – 5
Ứơc tính số giờ SV cần chuẩn bị để
kiểm tra giữa kỳ: 16
Nội dung thi cuối kỳ (tập trung)
Chương 6 – 9
Ứơc tính số giờ SV cần chuẩn bị để thi
cuối kỳ: 16

**

được cách cấp phát bộ
nhớ động.
L.O.6.4 – Sử dụng
được các phép toán
trên con trỏ.
L.O.6.5 – Sử dụng
được con trỏ của con
trỏ khác.

L.O.6.6 – Dùng được
con trỏ với kiểu cấu
trúc.
L.O.6.7 – Hiểu được
sự liên quan giữa con
trỏ và mảng.
L.O.7.1 – Khai báo
được kiểu tập tin.
L.O.7.2 – Giải thích
được các kiểu mở và
đóng tập tin.
L.O.7.3 – Giải thích
được ngun tắc làm
việc với tập tin.
L.O.7.4 – Hiện thực
được bằng C để lấy dữ
liệu từ tập tin hay để
ghi dữ liệu vào tập tin.
L.O.7.5 – Sử dụng
được C để giải quyết
bài toán trong thực tế.
L.O.7.6 – Sử dụng
được macro.

Hoạt động
dạy và học

Hoạt động
đánh giá


- Giảng lý thuyết
- Bài tập trên lớp

- Bài thí nghiệm
- Bài tập lớn
- Thi cuối kỳ

Hoạt động
dạy/học
 Thầy/Cơ:
- Hướng dẫn làm bài
tiêu biểu.
- Phân tích và chỉnh
sửa bài giải của sinh
viên làm trước ở nhà
(lấy ngẫu nhiên)

Hoạt động
đánh giá
Đánh giá trên
thái độ tham gia
thí nghiệm,
chuyên cần,
coding style, và
bài giải của sinh
viên trên file nộp
ở máy chủ hay
file nộp trực tiếp
tại lớp.


Nội dung phần thí nghiệm
Tuần

Nội dung

Chuẩn đầu ra chi tiết

1

Bài thực hành số 1
1.1. Làm quen với IDE
1.2. Luyện tập các cơng việc trong
lập trình: tạo tập tin mã nguồn,
biên dịch, v.v.
1.3. Luyện tập việc in ra các hằng số
thuộc các kiểu khác nhau.
1.4. Luyện tập việc đọc giá trị từ bàn
phím.
1.5. Luyện tập sử dụng một số hàm
thư viện
1.6. Luyện tập phong cách lập trình

L.O.1.2 – Giải thích
được các bước trong
q trình quy trình phát
triển chương trình máy
tính.
L.O.1.3 – Liệt kê được
các cơng cụ phần mềm
hổ trợ các bước trong

q trình nói trên.
L.O.1.4 – Biết được
cấu trúc và hiểu được
các thành phần của một
chương trình viết bằng
ngơn ngữ lập trình C.
L.O.1.5 – Vận dụng

 Sinh viên:
- Làm trước bài tập ở
nhà và chép file mang
theo, cũng như nộp
lên hệ thống máy chủ

8/13


Tuần

Nội dung
Yêu cầu tự học đ/v sinh viên:

2

3

Bài thực hành số 2
2.1. Luyện tập khai báo biến và hằng
với các kiểu dữ liệu cơ bản
2.2. Đọc và xuất giá trị của biến

2.3. Phát triển việc xử lý dữ liệu đơn
giản
2.4. Luyện tập phong cách lập trình
Yêu cầu tự học đ/v sinh viên:

Bài thực hành số 3
3.1. Định nghĩa kiểu dữ liệu có cấu
trúc
3.2. Khai báo biến với kiểu mới
3.3. Truy xuất các thành phần của cấu
trúc
3.4. Luyện tập phong cách lập trình
Yêu cầu tự học đ/v sinh viên:

Chuẩn đầu ra chi tiết
được các nguyên tắc
trong phong cách lập
trình để viết được các
chương trình trong
sáng và dễ đọc.
L.O.1.6 – Liệt kê được
các kiểu dữ liệu cơ bản
trong C và ghi ra giá trị
điển hình của các kiểu
đó trong mã nguồn.
L.O.1.7 – Sử dụng
được các hàm để đọc
dữ liệu từ bàn phím và
xuất dữ liệu ra màn
hình.

L.O.1.5 – Vận dụng
được các nguyên tắc
trong phong cách lập
trình để viết được các
chương trình trong
sáng và dễ đọc.
L.O.2.1 – Biết được
tên và các thuộc tính
của các kiểu dữ liệu cơ
bản về số, ký tự, enum
và logic (logic trong
mở rộng của C, C++).
L.O.2.2 – Khai báo
được các biến và hằng.
L.O.2.3 – Xác định và
giải thích rõ các kiểu
lưu trữ biến.
L.O.2.4 – Sử dụng
được các toán tử có thể
thực hiện được với các
kiểu dữ liệu để thành
lập biểu thức.
L.O.2.5 – Nhập được
giá trị của các biến từ
bàn phím và xuất được
giá trị của các biến ra
màn hình (nhắc lại có
nâng cao).

L.O.1.5 – Vận dụng

được các nguyên tắc
trong phong cách lập
trình để viết được các
chương trình trong
sáng và dễ đọc.
L.O.2.6 – Định nghĩa
được các kiểu có cấu
trúc và sử dụng chúng.

Hoạt động
dạy/học
(đề lấy từ hệ thống
máy chủ quản lý tư
liệu học tập).
- Trình bày lời giải
cho giảng viên.
- Nộp lời giải cho
giảng viên ở cuối
buổi hay nộp trên hệ
thống máy chủ.

Hoạt động
đánh giá

 Thầy/Cô:
- Hướng dẫn làm bài
tiêu biểu.
- Phân tích và chỉnh
sửa bài giải của sinh
viên làm trước ở nhà

(lấy ngẫu nhiên)

Đánh giá trên
thái độ tham gia
thí nghiệm,
chuyên cần,
coding style, và
bài giải của sinh
viên trên file nộp
ở máy chủ hay
file nộp trực tiếp
tại lớp.

 Sinh viên:
- Làm trước bài tập ở
nhà và chép file mang
theo, cũng như nộp
lên hệ thống máy chủ
(đề lấy từ hệ thống
máy chủ quản lý tư
liệu học tập).
- Trình bày lời giải
cho giảng viên.
- Nộp lời giải cho
giảng viên ở cuối
buổi hay nộp trên hệ
thống máy chủ.

 Thầy/Cô:
- Hướng dẫn làm bài

tiêu biểu.
- Phân tích và chỉnh
sửa bài giải của sinh
viên làm trước ở nhà
(lấy ngẫu nhiên)
 Sinh viên:
- Làm trước bài tập ở
nhà và chép file mang
theo, cũng như nộp
lên hệ thống máy chủ
(đề lấy từ hệ thống
máy chủ quản lý tư
liệu học tập).
- Trình bày lời giải

Đánh giá trên
thái độ tham gia
thí nghiệm,
chuyên cần,
coding style, và
bài giải của sinh
viên trên file nộp
ở máy chủ hay
file nộp trực tiếp
tại lớp.

9/13


Tuần


Nội dung

Chuẩn đầu ra chi tiết

4

Bài thực hành số 4
4.1. Luyện tập sử dụng cấu trúc if, ifelse, và switch
4.2. Luyện tập việc lồng nhau giữa
các cấu trúc rẽ nhánh
4.3. Luyện tập phong cách lập trình
Yêu cầu tự học đ/v sinh viên:

L.O.1.5 – Vận dụng
được các nguyên tắc
trong phong cách lập
trình để viết được các
chương trình trong
sáng và dễ đọc.
L.O.3.2 – Mô tả được
được nguyên tắc kết
hợp các kiểu điều khiển
để mô tả các giải thuật.
L.O.3.3 – Hiện thực
được các kiểu điều
khiển bằng ngôn ngữ
C.
L.O.3.4 – Sử dụng các
cấu trúc điều khiển để

giải quyết bài toán thực
tế.

5

6

Bài thực hành số 5
5.1. Luyện tập sử dụng các cấu trúc
lặp: for, while, và do-while
5.2. Luyện tập việc lồng nhau giữa
các cấu trúc rẽ nhánh
5.3. Luyện tập phong cách lập trình
Yêu cầu tự học đ/v sinh viên:

Bài thực hành số 6
6.1. Sử dụng hàm thư viện
6.2. Định nghĩa hàm và gọi hàm
6.3. Truyển tham số vào hàm, bằng
kiểu truyển bằng trị
6.4. Luyện tập phong cách lập trình
Yêu cầu tự học đ/v sinh viên:

L.O.1.5 – Vận dụng
được các nguyên tắc
trong phong cách lập
trình để viết được các
chương trình trong
sáng và dễ đọc.
L.O.3.2 – Mơ tả được

được nguyên tắc kết
hợp các kiểu điều khiển
để mô tả các giải thuật.
L.O.3.3 – Hiện thực
được các kiểu điều
khiển bằng ngôn ngữ
C.
L.O.3.4 – Sử dụng các
cấu trúc điều khiển để
giải quyết bài toán thực
tế.

L.O.1.5 – Vận dụng
được các nguyên tắc
trong phong cách lập
trình để viết được các
chương trình trong
sáng và dễ đọc.
L.O.4.1 – Xác định
được thành phần của
một hàm.
L.O.4.2 – Hiện thực
được giải thuật dưới
dạng hàm.

Hoạt động
dạy/học
cho giảng viên.
- Nộp lời giải cho
giảng viên ở cuối

buổi hay nộp trên hệ
thống máy chủ.
 Thầy/Cô:
- Hướng dẫn làm bài
tiêu biểu.
- Phân tích và chỉnh
sửa bài giải của sinh
viên làm trước ở nhà
(lấy ngẫu nhiên)
 Sinh viên:
- Làm trước bài tập ở
nhà và chép file mang
theo, cũng như nộp
lên hệ thống máy chủ
(đề lấy từ hệ thống
máy chủ quản lý tư
liệu học tập).
- Trình bày lời giải
cho giảng viên.
- Nộp lời giải cho
giảng viên ở cuối
buổi hay nộp trên hệ
thống máy chủ.
 Thầy/Cơ:
- Hướng dẫn làm bài
tiêu biểu.
- Phân tích và chỉnh
sửa bài giải của sinh
viên làm trước ở nhà
(lấy ngẫu nhiên)

 Sinh viên:
- Làm trước bài tập ở
nhà và chép file mang
theo, cũng như nộp
lên hệ thống máy chủ
(đề lấy từ hệ thống
máy chủ quản lý tư
liệu học tập).
- Trình bày lời giải
cho giảng viên.
- Nộp lời giải cho
giảng viên ở cuối
buổi hay nộp trên hệ
thống máy chủ.
 Thầy/Cô:
- Hướng dẫn làm bài
tiêu biểu.
- Phân tích và chỉnh
sửa bài giải của sinh
viên làm trước ở nhà
(lấy ngẫu nhiên)
 Sinh viên:
- Làm trước bài tập ở
nhà và chép file mang

Hoạt động
đánh giá

Đánh giá trên
thái độ tham gia

thí nghiệm,
chuyên cần,
coding style, và
bài giải của sinh
viên trên file nộp
ở máy chủ hay
file nộp trực tiếp
tại lớp.

Đánh giá trên
thái độ tham gia
thí nghiệm,
chuyên cần,
coding style, và
bài giải của sinh
viên trên file nộp
ở máy chủ hay
file nộp trực tiếp
tại lớp.

Đánh giá trên
thái độ tham gia
thí nghiệm,
chuyên cần,
coding style, và
bài giải của sinh
viên trên file nộp
ở máy chủ hay
file nộp trực tiếp
tại lớp.


10/13


Tuần

Nội dung

Chuẩn đầu ra chi tiết
L.O.4.3 – Giải thích
được các kiểu truyền
tham số trong C.
L.O.4.4 – Tổ chức
được các chương trình
lớn, gồm nhiều hàm.

7

8

Bài thực hành số 7
7.1. Luyện tập sử dụng hàm đệ quy
7.2. Luyện tập phong cách lập trình
Yêu cầu tự học đ/v sinh viên:

Bài thực hành số 8
8.1. Khai báo mảng
8.2. Truy xuất các phần tử của màng
8.3. Kết hợp mảng và array
8.4. Luyện tập truyền mảng vào/ra

hàm
8.5. Luyện tập phong cách lập trình
Yêu cầu tự học đ/v sinh viên:

9

Bài thực hành số 9
9.1. Khai báo con trỏ
9.2. Luyện tập sử dụng con trỏ trong
tổ chức dữ liệu
9.3. Luyện tập phong cách lập trình

L.O.1.5 – Vận dụng
được các nguyên tắc
trong phong cách lập
trình để viết được các
chương trình trong
sáng và dễ đọc.
L.O.3.5 – Hiện thực
được các giải thuật đệ
quy bằng ngôn ngữ C
và hiểu được nguyên
tắc hoạt động của nó.

L.O.1.5 – Vận dụng
được các nguyên tắc
trong phong cách lập
trình để viết được các
chương trình trong
sáng và dễ đọc.

L.O.5.1 – Khai báo
được mảng các giá trị.
L.O.5.2 – Mô tả được
cách tổ chức bộ nhớ
của các phần tử trong
mảng.
L.O.5.3 – Truy xuất
được các phần tử của
mảng và dùng nó trong
biểu thức.
L.O.5.4 – Hiểu được
cách truyền một mảng
vào hàm.

L.O.1.5 – Vận dụng
được các nguyên tắc
trong phong cách lập
trình để viết được các
chương trình trong
sáng và dễ đọc.

Hoạt động
dạy/học
theo, cũng như nộp
lên hệ thống máy chủ
(đề lấy từ hệ thống
máy chủ quản lý tư
liệu học tập).
- Trình bày lời giải
cho giảng viên.

- Nộp lời giải cho
giảng viên ở cuối
buổi hay nộp trên hệ
thống máy chủ.
 Thầy/Cô:
- Hướng dẫn làm bài
tiêu biểu.
- Phân tích và chỉnh
sửa bài giải của sinh
viên làm trước ở nhà
(lấy ngẫu nhiên)
 Sinh viên:
- Làm trước bài tập ở
nhà và chép file mang
theo, cũng như nộp
lên hệ thống máy chủ
(đề lấy từ hệ thống
máy chủ quản lý tư
liệu học tập).
- Trình bày lời giải
cho giảng viên.
- Nộp lời giải cho
giảng viên ở cuối
buổi hay nộp trên hệ
thống máy chủ.
 Thầy/Cơ:
- Hướng dẫn làm bài
tiêu biểu.
- Phân tích và chỉnh
sửa bài giải của sinh

viên làm trước ở nhà
(lấy ngẫu nhiên)
 Sinh viên:
- Làm trước bài tập ở
nhà và chép file mang
theo, cũng như nộp
lên hệ thống máy chủ
(đề lấy từ hệ thống
máy chủ quản lý tư
liệu học tập).
- Trình bày lời giải
cho giảng viên.
- Nộp lời giải cho
giảng viên ở cuối
buổi hay nộp trên hệ
thống máy chủ.


Hoạt động
đánh giá

Đánh giá trên
thái độ tham gia
thí nghiệm,
chuyên cần,
coding style, và
bài giải của sinh
viên trên file nộp
ở máy chủ hay
file nộp trực tiếp

tại lớp.

Đánh giá trên
thái độ tham gia
thí nghiệm,
chuyên cần,
coding style, và
bài giải của sinh
viên trên file nộp
ở máy chủ hay
file nộp trực tiếp
tại lớp.

11/13


Tuần

10

**

**

**

Nội dung

Bài thực hành số 10
10.1. Luyện tập sử dụng file để lưu trữ

dữ liệu của một bài toán thực
10.2. Luyện tập sử dụng macro

Chuẩn đầu ra chi tiết
L.O.6.1 – Khai báo
được con trỏ.
L.O.6.2 – Truy xuất
được dữ liệu qua con
trỏ.
L.O.6.3 – Giải thích
được cách cấp phát bộ
nhớ động.
L.O.6.4 – Sử dụng
được các phép toán
trên con trỏ.
L.O.6.5 – Sử dụng
được con trỏ của con
trỏ khác.
L.O.6.6 – Dùng được
con trỏ với kiểu cấu
trúc.
L.O.6.7 – Hiểu được
sự liên quan giữa con
trỏ và mảng.
L.O.7.1 – Khai báo
được kiểu tập tin.
L.O.7.2 – Giải thích
được các kiểu mở và
đóng tập tin.
L.O.7.3 – Giải thích

được ngun tắc làm
việc với tập tin.
L.O.7.4 – Hiện thực
được bằng C để lấy dữ
liệu từ tập tin hay để
ghi dữ liệu vào tập tin.
L.O.7.5 – Sử dụng
được C để giải quyết
bài toán trong thực tế.
L.O.7.6 – Sử dụng
được macro.

Hoạt động
dạy/học

Hoạt động
đánh giá

 Thầy/Cơ:
- Hướng dẫn làm bài
tiêu biểu.
- Phân tích và chỉnh
sửa bài giải của sinh
viên làm trước ở nhà
(lấy ngẫu nhiên)

Đánh giá trên
thái độ tham gia
thí nghiệm,
chuyên cần,

coding style, và
bài giải của sinh
viên trên file nộp
ở máy chủ hay
file nộp trực tiếp
tại lớp.

 Sinh viên:
- Làm trước bài tập ở
nhà và chép file mang
theo, cũng như nộp
lên hệ thống máy chủ
(đề lấy từ hệ thống
máy chủ quản lý tư
liệu học tập).
- Trình bày lời giải
cho giảng viên.
- Nộp lời giải cho
giảng viên ở cuối
buổi hay nộp trên hệ
thống máy chủ.

Review
Nội dung báo cáo tiểu luận/thực
hành
Yêu cầu đ/v sinh viên: Sinh viên làm
trước ở nhà và nộp lên máy chủ, cũng
như có thể chỉnh sửa và nộp trực tiếp
cho giảng viên
Nội dung giới hạn cho kiểm tra giữa

kỳ (tập trung)
Khơng có
Nội dung thi cuối kỳ (tập trung)
(Uớc tính số giờ SV cần để chuẩn bị
cho kỳ thi: )

8. Thông tin liên hệ
Bộ mơn/Khoa phụ trách

Bộ Mơn Khoa Học Máy Tính – Khoa KH&KT Máy Tính
12/13


Văn phòng
Điện thoại

38647256 - 5839

Giảng viên phụ trách

Lê Thành Sách

Email


Tp. Hồ Chí Minh, ngày 05 tháng 04 năm 2016

TRƢỞNG KHOA

CHỦ NHIỆM BỘ MÔN


CB PHỤ TRÁCH LẬP ĐỀ CƢƠNG

LÊ THÀNH SÁCH

LÊ THÀNH SÁCH

13/13



×