Mục tiêu của học phần Kết thúc học phần này sinh viên có thể: * Kiến thức: 4.1 Giải thích được các nguyên tắc cơ bản trong lập trình các chương trình hệ thống, trình điều khiển thiết
Trang 1BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƯỜNG ĐẠI HỌC SPKT HƯNG YÊN
CỘNG HOÀ XÃ HỘI CHỦ NGHĨA VIỆT NAM
Độc lập – Tự do – Hạnh phúc
CHƯƠNG TRÌNH TRÌNH ĐỘ ĐẠI HỌC
ĐỀ CƯƠNG CHI TIẾT HỌC PHẦN
LẬP TRÌNH HỆ THỐNG (SYSTEM PROGRAMMING)
1 Thông tin về Giảng viên (ít nhất 2 người)
1.1 Giảng viên 1:
- Họ và tên: Phạm Ngọc Hưng
- Chức danh, học hàm, học vị: Thạc sĩ
- Email, điện thoại cơ quan: phamngochung@gmail.com
1.2 Giảng viên 2:
- Họ và tên: Lê Trung Hiếu
- Chức danh, học hàm, học vị: Thạc sĩ
- Email, điện thoại cơ quan: hieult.ktmt@gmail.com
1.3 Trợ giảng (nếu có):
2 Thông tin chung về học phần
2.1 Tên học phần: Lập trình hệ thống
2.2 Mã số:
2.3 Khối lượng: 3TC (2 Lí thuyết, 1 Thực hành)
2.4 Thời gian đối với các hoạt động dạy học:
Hoạt động dạy học
Thời gian
Lý thuyết Thảo luận/
Bài tập hành/Thí Thực
nghiệm
Thực tập tại xưởng hoặc
cơ sở
Tự học, tự nghiên cứu Tổng
Tiết/Giờ thực hiện 30 15 30 0 82.5 157.5
2.5 Học phần: bắt buộc
2.6 Điều kiện học phần:
- Học phần tiên quyết: Lập trình hướng đối tượng; Hệ điều hành
- Học phần học trước: Cơ sở kỹ thuật lập trình
- Học phần song hành: Không
2.7 Đối tượng tham dự:Sinh viên ngành công nghệ thông tin
2.8 Địa chỉ khoa/bộ môn phụ trách học phần: CNTT/KTMT
3 Mô tả học phần
Trang 2Cung cấp kiến thức và kỹ năng cơ bản về lập trình hệ thống, thiết kế và lập trình các trình điều khiển thiết bị: cấu trúc trình điều khiển thiết bị, các kỹ thuật và phương pháp lập trình, vấn đề đồng bộ hệ thống, yêu cầu vào ra, ghi đọc dữ liệu, quản
lý nguồn
4 Mục tiêu của học phần
Kết thúc học phần này sinh viên có thể:
* Kiến thức:
4.1 Giải thích được các nguyên tắc cơ bản trong lập trình các chương trình hệ thống,
trình điều khiển thiết bị
4.2 Phân tích được cấu trúc một trình điều khiển thiết bị, các yêu cầu chính đối với một trình điều khiển thiết bị
* Kỹ năng:
4.3 Ứng dụng các nguyên lý thiết kế, kỹ thuật và phương pháp lập trình vào thiết kế và lập trình các trình điều khiển thiết bị cho thiết bị được ghép nối với máy tính qua các cổng giao tiếp và khe cắm mở rộng thông dụng hoặc cho các hệ thống nhúng sử dụng
hệ điều hành
* Thái độ:
4.4 Rèn luyện khả năng tự nghiên cứu, khả năng làm việc theo nhóm
5 Nội dung chi tiết học phần
Bài 1: Kiến trúc nền tảng lập trình Windows Driver (WDF)
1.1 Các chức năng thành phần WDF
1.2 Mục tiêu thiết kế WDF
1.3 Thiết bị và trình điều khiển được hỗ trợ trong WDF
1.4 Mô hình trình điều khiển WDF
1.5 Mô hình đối tượng WDF
1.6 Hỗ trợ quản lý nguồn Plug & Play
1.7 Hàng đợi vào ra
1.8 Yêu cầu WMI
1.9 Nhân Windows và Driver Framework
1.10 Công cụ lập trình và kiểm thử
Bài 2: Tổng quan các trình điều khiển chế độ người dùng trong Windows 7
2.1 Các thiết bị được hỗ trợ trong chế độ người dùng (User Mode)
2.2 Tổng quan mô hình UMDF
2.3 Giao diện Callback của trình điều khiển
2.4 Các đặc tính của trình điều khiển UMDF
2.5 Vấn đề vào ra
2.6 Vấn đề đồng bộ và khóa
2.7 Quản lý nguồn Plug & Play
2.8 Quản lý thiết bị
Trang 32.9 Dịch, thử nghiệm và gỡ rối
Bài 3: Lập trình các trình điều khiển trong chế độ người dùng
3.1 Tổng quan vào/ra của Windows
3.2 Kiến trúc UMDF
3.3 Trình điều khiển mẫu UMDF
3.4 Thư viện liên kết động trình điều khiển
3.5 Các chức năng hỗ trợ thành phần COM
3.6 Sử dụng trình điều khiển Skeleton
Bài 4: Thực hành cài đặt và thiết lập môi trường lập trình
Bài 5: Sử dụng COM để phát triển trình điều khiển UMDF
5.1 Khởi đầu
5.2 Sử dụng các đối tượng COM UMDF
5.3 Cài đặt kiến trúc cơ bản
Bài 6: Thực hành lập trình UMDF 1
Bài 7: Tổng quan trình điều khiển chế độ nhân của Windows 7
7.1 Các thiết bị được hỗ trợ chạy chế độ nhân (KMDF)
7.2 Các thành phần KMDF
7.3 Cấu trúc trình điều khiển KMDF
7.4 Mô hình đối tượng KMDF
7.5 Mô hình vào/ra KMDF
Bài 8: Thảo luận mô hình UMDF
Bài 9: Quản lý nguồn và Plug & Play
9.1 Tổng quan về quản lý nguồn và Plug & Play
9.2 Nhận biết và khởi động thiết bị
9.3 Xử lý các yêu cầu WMI
9.4 Vấn đề đồng bộ
9.5 Vấn đề an toàn
Bài 10: Thực hành lập trình UMDF 2
Bài 11: Biên dịch và cài đặt trình điều khiển KMDF
11.1 Công cụ biên dịch trình điều khiển KMDF
11.2 Môi trường biên dịch trình điều khiển KMDF
11.3 Cài đặt trình điều khiển KMDF
Trang 411.4 Kiểm thử trình điều khiển KMDF
Bài 12: Thực hành lập trình UMDF 3
Bài 13: Lập trình trình điều khiển KMDF
13.1 Kiến trúc KMDF và các khái niệm
13.2 Kiến trúc trình điều khiển KMDF đơn giản 13.3 Chương trình mẫu
Bài 14: Thực hành lập trình UMDF 4
Bài 15: Quản lý nguồn và Plug & Play
15.1 Đăng ký Callback
15.2 Chính sách quản lý nguồn
15.3 Callback cho bật, tắt nguồn
15.4 Callback cho hỗ trợ tín hiệu Wake
Bài 16: Thực hành lập trình KMDF 1
Bài 17: Thảo luận KMDF
Bài 18: Lập trình hỗ trợ WMI
18.1 Kiến trúc WMI
18.2 Xử lý yêu cầu WMI
18.3 Các yêu cầu WMI đối với trình điều khiển WMI
Bài 19: Lập trình trình điều khiển phần cứng KMDF 19.1 Các ngắt hỗ trợ thiết bị
19.2 Xử lý ngắt
19.3 Ánh xạ tài nguyên
Bài 20: Thảo luận WMI
Bài 21: Thực hành lập trình KMDF 2
Bài 22: Thực hành lập trình KMDF 3
Bài 23: Thảo luận Lập trình vào ra
Trang 5Bài 24: Thực hành lập trình KMDF 4
Bài 25: Thực hành lập trình KMDF 5
6 Học liệu (giáo trình, bài giảng, tài liệu tham khảo)
6.1 Học liệu bắt buộc
6.1.1 Ronald D.Freeves, "Windows 7 Device Driver", Addison-Wesley, 2010
6.2 Học liệu tham khảo
6.2.1 Johnson M.Hart, “Windows System Programming” , Addison-Wesley,
2010
7 Hình thức tổ chức dạy học
(Đây là nội dung rất quan trọng đối với giáo viên, sinh viên và người quản lí Mỗi nội dung kiến thức đều được tổ chức dạy dưới các hình thức chủ yếu như: lý thuyết, bài tập, thảo luận, thực hành, hoạt động theo nhóm và tự học, tự nghiên cứu… Giáo viên phải cập nhật nội dung này hàng năm Mỗi nội dung trong lịch trình dạy học, phải xác định được số tiết/giờ sẽ thực hiện ở từng hình thức trên; Thời gian cho các hình thức dạy học được tính bằng tiết/giờ thực hiện)
7.1 Lịch trình chung
Nội dung
(Ghi tên
chương, mục
hoặc các nội
dung chính của
học phần trong
mỗi tín chỉ)
Hình thức tổ chức dạy học
Tổng
số
Lên lớp
Thực hành/Thí nghiệm
Thực tập tại
cơ sở
Tự học,
tự nghiên cứu
Lý thuyết Bài tập Thảo luận
Tín chỉ 1
Tín chỉ 2
Trang 6Bài 12 3 1.5 7
Tín chỉ 3
7.1 Lịch trình chi tiết (thiết kế cho cả tiến trình, 15 tuần)
Tuần
ngày Nội dung chính
Hình thức
tổ chức dạy học Số tiết
Yêu cầu sinh viên chuẩn bị Mục tiêu
1 Bài 1: Kiến trúc nền tảng lập trình
Windows Driver (WDF)
Lí thuyết 3 Đọc tài liệu
[6.1.1] (tr 13-38);
1.1
Thảo luận Bài tập/TH
Tự học, tự
NC
6
1 Bài 2: Tổng quan các trình điều
khiển chế độ người dùng trong
Windows 7
Lí thuyết 3 Đọc tài liệu
[6.1.1] (tr 41-77);
2.1
Thảo luận Bài tập/TH
Tự học, tự
NC
6
2
Bài 3: Lập trình các trình điều khiển
trong chế độ người dùng
Lí thuyết 3 Đọc tài liệu
[6.1.1] (tr 79-110);
3.1
Thảo luận Bài tập/TH
Tự học, tự
NC
6
2 Bài 4: Thực hành cài đặt và thiết
lập môi trường lập trình
Lí thuyết Theo HD
Website Microsoft
4.1
Thảo luận Bài tập/TH 3
Tự học, tự
NC
1.5
3 Bài 5: Sử dụng COM để phát triển
trình điều khiển UMD
Lí thuyết 3 Đọc tài liệu
[6.1.1] (tr 111-126);
5.1
Thảo luận Bài tập/TH
Tự học, tự
NC
6
3 Bài 6: Thực hành lập trình UMDF Lí thuyết Đọc tài liệu 6.1
Trang 71 Thảo luận [6.1.1] (tr
106-110);
Bài tập/TH 3
Tự học, tự
NC
1.5
4 Bài 7: Tổng quan trình điều khiển
chế độ nhân của Windows 7
Lí thuyết 3 Đọc tài liệu
[6.1.1] (tr 129-162);
7.1
Thảo luận Bài tập/TH
Tự học, tự
NC
6
4 Bài 8: Thảo luận mô hình UMDF
Lí thuyết Đọc tài liệu
[6.1.1] (tr 79-110);
8.1
Thảo luận 4
Bài tập/TH
Tự học, tự
NC
2
5 Bài 9: Quản lý nguồn và Plug &
Play
Lí thuyết 3 Đọc tài liệu
[6.1.1] (tr 163-181);
9.1
Thảo luận Bài tập/TH
Tự học, tự
NC
6
5 Bài 10: Thực hành lập trình UMDF
2
Lí thuyết Đọc tài liệu
[6.1.1] (tr 106-110);
10.1
Thảo luận Bài tập/TH 3
Tự học, tự
NC
1.5
6 Bài 11: Biên dịch và cài đặt trình
điều khiển KMDF
Lí thuyết 3 Đọc tài liệu
[6.1.1] (tr 183-209);
11.1
Thảo luận Bài tập/TH
Tự học, tự
NC
6
6 Bài 12: Thực hành lập trình UMDF
3
Lí thuyết Đọc tài liệu
[6.1.1] (tr 106-110);
12.1
Thảo luận Bài tập/TH 3
Tự học, tự
NC
1.5
7 Bài 13: Lập trình trình điều khiển
KMDF
Lí thuyết 3 Đọc tài liệu
[6.1.1] (tr 211-241);
13.1
Thảo luận Bài tập/TH
Tự học, tự
NC
6
7 Bài 14: Thực hành lập trình UMDF
4
Lí thuyết Đọc tài liệu
[6.1.1] (tr 106-110);
14.1
Thảo luận Bài tập/TH 3
Tự học, tự
NC
1.5
8 Bài 15: Quản lý nguồn và Plug &
Play
Lí thuyết 3 Đọc tài liệu
[6.1.1] (tr 143-252);
15.1
Thảo luận Bài tập/TH
Tự học, tự
NC
6
8 Bài 16: Thực hành lập trình KMDF
1
Lí thuyết Đọc tài liệu
[6.1.1] (tr 211-241);
16.1
Thảo luận Bài tập/TH 3
Tự học, tự
NC
1.5
9
Bài 17: Thảo luận KMDF
Lí thuyết Đọc tài liệu
[6.1.1] (tr 211-241);
17.1
Thảo luận 4
Bài tập/TH
Tự học, tự
NC
2
9
Bài 18: Lập trình hỗ trợ WMI Lí thuyết 3 Đọc tài liệu 18.1
Thảo luận
Trang 8Bài tập/TH [6.1.1] (tr
253-271);
Tự học, tự
NC
6
10 Bài 19: Lập trình trình điều khiển
phần cứng KMDF
Lí thuyết 3 Đọc tài liệu
[6.1.1] (tr 273-289);
19.1
Thảo luận Bài tập/TH
Tự học, tự
NC
6
10
Bài 20: Thảo luận WMI
Lí thuyết Đọc tài liệu
[6.1.1] (tr 253-271);
20.1
Thảo luận 4
Bài tập/TH
Tự học, tự
NC
2
11 Bài 21: Thực hành lập trình KMDF
2
Lí thuyết Đọc tài liệu
[6.1.1] (tr 211-241);
21.1
Thảo luận Bài tập/TH 3
Tự học, tự
NC
1.5
11 Bài 22: Thực hành lập trình KMDF
3
Lí thuyết Đọc tài liệu
[6.1.1] (tr 211-241);
22.1
Thảo luận Bài tập/TH 3
Tự học, tự
NC
1.5
12
Bài 23: Thảo luận lập trình vào ra
Lí thuyết Đọc tài liệu
[6.1.1] (tr 291-321);
23.1
Thảo luận 3
Bài tập/TH
Tự học, tự
NC
1.5
12 Bài 24: Thực hành lập trình KMDF
4
Lí thuyết Đọc tài liệu
[6.1.1] (tr 211-241);
24.1
Thảo luận Bài tập/TH 3
Tự học, tự
NC
1.5
13 Bài 25: Thực hành lập trình KMDF
5
Lí thuyết Đọc tài liệu
[6.1.1] (tr 211-241);
25.1
Thảo luận Bài tập/TH 3
Tự học, tự
NC
1.5
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
- Có ý thức tự học, chuẩn bị tốt các câu hỏi, nhiệm vụ học tập được giao
- Có mặt đầy đủ trên lớp, cho phép vắng không quá 20% tổng số tiết lên lớp theo quy chế đào tạo hiện hành
- Mỗi sinh viên hoàn bài tập lớn được giao từ đầu học phần
- Làm bài tập thực hành, nộp chấm điểm theo lịch của GV
- Hoàn thành các bài thi giữa học phần, kết thúc học phần theo quy chế
- Các bài tập, câu hỏi trong tuần phải được chuẩn bị trước khi thảo luận hoặc kiểm tra
- đánh giá
9 Danh mục các thiết bị, dụng cụ phục vụ cho quá trình dạy học thực hành, thí nghiệm
TT Tên dụng cụ, thiết bị Số lượng Ghi chú
DỤNG CỤ CÁ NHÂN
Trang 91 Trang phục, quần áo, giầy dép
2 Có thể dùng Laptop cá nhân
3 THIẾT BỊ DÙNG CHUNG (cho 1 nhóm thực tập) (Nhà trường)
Máy tính để bàn của khoa đã cài đặt các chương trình phục vụ cho bài tập
thực hành
10 Phương pháp và hình thức kiểm tra đánh giá kết quả học tập
10.1 Mục đích, nội dung, tiêu chí và hình thức đánh giá các điểm thành phần
10.1.1 Bài tập chương/Tiểu luận
- Sinh viên được giao bài tập lớn để thực hiện trong suốt quá trình học học phần
- Bài tập lớn được giao vào đầu môn học và thu chấm ngay sau khi học xong buổi cuối
- Sinh viên cần nộp cuốn báo cáo kèm theo sản phẩm (nếu có yêu cầu sản phầm minh họa)
- Điểm bài tập lớn tính theo thang điểm 10
10.1.2 Đánh giá thực hành/thí nghiệm
- Sinh viên phải nộp ít nhất 02 bài tập thực hành để chấm điểm
- Điểm thực hành là trung bình điểm các bài tập thực hành được chấm
10.1.3 Thi giữa học phần
- Mục đích: Đánh giá mức độ tích lũy kiến thức, rèn luyện kĩ năng trong nửa đầu của học phần
- Nội dung: Sinh viên nắm được tổng quan các vấn đề liên quan đến lập trình trình điều khiển thiết bị trong Windows
- Hình thức đánh giá: Bài thi viết trong thời gian 60 phút
10.1.4 Thi kết thúc học phần
- Mục đích: Đánh giá kiến thức và khả năng ứng dụng kỹ thuật lập trình trình điều khiển thiết bị trong Windows ở chế độ người dùng và chế độ nhân
- Nội dung: Lập trình UMDF Driver và KMDF Driver
- Hình thức đánh giá: Đánh giá bằng hình thức thi kết thúc HP, bài thi viết thời gian 90 phút
10.2 Lịch thi, kiểm tra
- Thi giữa học phần: tùy theo tiến độ của phòng đào tạo sắp xếp mà lịch thi GHP sẽ thực hiện khi kết thúc nửa đầu chương trình môn học
- Thi kết thúc học phần: Theo lịch thi của phòng Đào tạo
10.3 Cách thức đánh giá điểm
Dùng thang điểm 10 để đánh giá Các điểm thành phần chấm đến 0,25 điểm, làm tròn đến một chữ số thập phân
Chỉ cho phép một trong 2 điểm đánh giá quá trình (Bài tập chương hoặc thi giữa học phần) đạt từ 4 trở lên, và các điểm còn lại phải đạt từ 5 trở lên, đồng thời điểm tổng kết học phần phải đạt từ 5 trở lên mới đạt yêu cầu Nếu điểm thi GHP < 4 điểm thì sinh viên phải tự học lại và đăng ký thi lại giữa học phần (chỉ được thi lại một lần), nếu vẫn không đạt thì phải học lại tất cả các tín chỉ lí thuyết của học phần đó Sinh viên có điểm bài thực hành/thí nghiệm
Trang 10nào < 5 sẽ phải học lại (theo quy định) và làm lại bài thực hành/thí nghiệm đó đến khi đạt (≥ 5 điểm)
Trọng số các điểm thành phần như sau:
Các hình thức
đánh giá
Đánh giá quá trình
Thi kết thúc học phần Bài tập chương/
Tiểu luận
Thực hành/thí nghiệm
Thi giữa học phần
11 Ngày hoàn thành đề cương
08/12/2015
(Kí, ghi rõ họ tên) (Kí, ghi rõ họ tên) (Kí, ghi rõ họ tên)