dungnt system programming training plan c++

15
CHƯƠNG TRÌNH ĐÀO TẠO Nhân viên: Thời gian: từ 04/05/2011 Người lập: Phạm Công Phan 6/6/2022 Page 1 of 15

Upload: tiendung717

Post on 28-Nov-2014

106 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: DungNT System Programming Training Plan C++

CHƯƠNG TRÌNH ĐÀO TẠO

Nhân viên: Thời gian: từ 04/05/2011

Người lập: Phạm Công Phan

Chương trình đào tạo (04/05/2011-04/08/2011)

1 Pre knowledge: OOP, C,C++.

4/9/2023 Page 1 of 10

Page 2: DungNT System Programming Training Plan C++

Yêu cầu:

- Thành thạo lập trình C,C++ cơ bản.

- Nắm được cơ bản về OOP, OOD.

- Sử dụng thành thạo ít nhất 1 case tool để thiết kế ht hướng đối tượng.

Day(s) Chủ đề Nội dung Người hướng dẫn,

hỗ trợĐánh giá kết

qủa

Tổng: 4 weeks.Nộp báo cáo và bài tập chậm nhất vào 04/06/2011

Lập trình hướng đối tượng

Hiểu các khái niệm công nghệ hướng đối tượng(Mỗi khái niệm đưa ra đều phải đưa ra ví dụ minh họa cho khái niệm đó)

1. Lập trình hướng đối tượng: - Các khái niệm?.- Advantages of Object-oriented Methodology?

2. Trừu tượng và đóng gói dữ liệu (Data abstraction and encapsulation):

- Khái niệm abstraction & encapuslation?, tại sao cần trừu tượng và đóng gói dữ liệu. Ví dụ minh họa?

- Đóng gói dữ liệu trong C++: Các mức đóng gói trong C++?- Cách khai báo lớp, các thuộc tính, các phương thức, constructor &

destructor (default constructor, copy constructor…),

Làm báo cáo chi tiết các kiến thức thu hoạch được, mỗi phần đều có ví dụ cài dặt đơn giản để minh họa.

4/9/2023 Page 2 of 10

Page 3: DungNT System Programming Training Plan C++

3. Thừa kế (Inheristance):- Khái niệm quan hệ thừa kế?, các thuật ngữ trong quan hệ thừa kế, các

mức thừa kế (public, protected, private).- Multiple Inheristance?

4. Polymorphism:- Đa hình là gi?- Đa hình hàm – function polymorphism?- Đa hình và hướng đối tượng?- So sánh overloading và overriding?.- Method overriding?.- Method hiding?- Virtual fucntion in C++?, virtual destructor?.- Method hiding in virtual member?- Static & Dynamic binding, Static & Dynamic polymorphism?.- Abstract class, pure virtutal function?

5. Operator overloading:- Khái niệm? - Các toán tử overload được trong C++, cách khai báo và cài đặt chung

cho việc chồng toán tử.- Cho 1 ví dụ minh họa khai báo và cài đặt toán tử ‘=’, ‘+’, ‘++’.

6. Tìm hiểu 2 tiêu chí đánh giá chất lượng thiết kế module: module cohension & coupling.

- Cohension: Độ kết dính của một module: ám chỉ mức độ liên quan về chức năng giữa các nhiệm vụ của module.

- Coupling: Độ ghép cặp giữa các module, chỉ mức độ phụ thuộc lẫn nhau của các module trong 1 hệ thống.

4/9/2023 Page 3 of 10

Page 4: DungNT System Programming Training Plan C++

Các mục mở rộng tìm hiểu thêm (ko bắt buộc).

1. Exception handling.- Ném ngoại lệ- Cơ chế try-catch trong C++.- Chuyển tiếp ngoại lệ.- Khai báo ngoại lệ.

2. Generic programming (Lập trình tổng quát):- Template?, khuôn mẫu trong C++, khuôn mẫu hàm (template

function), khuôn mẫu lớp (template class), các tham số template.- Thư viện STL.

Mục bắt buộc phải tìm hiểu và áp dụng vào các bài tập sau này:3. Tìm hiểu các case tool dùng trong phân tích thiết kế hướng

đối tượng, và quản trị dự án. Ví dụ: - Rational rose.- Power designer.- Ms project.- MS Visual sourcesafe, SVN…

Bài tập vận dụng:

Bài tập 1, 2 phần OOP Học ngoài giờ

Bao gồm source và chỉ dẫn biên dịch, hướng dẫn sử dụng.

4/9/2023 Page 4 of 10

Page 5: DungNT System Programming Training Plan C++

Trong quá trình làm bài tập cần bổ sung báo cáo thu hoạch phần lý thuyết

4/9/2023 Page 5 of 10

Page 6: DungNT System Programming Training Plan C++

2 Lập trình hệ thống (Windows Programming)

Yêu cầu:- Thành thạo lập trình C++ mức advance, các bài tập thực hành phải thiết kế theo OOP. Nắm vững các giải thuật thông dụng như sắp

xếp, tìm kiếm…- Nắm vững các kỹ năng cơ bản trong lập trình hệ thống: (ko phân biệt unix, windows, linux…)

- Hệ thống I/O.- Memory management.- Multi threading.- Thread, process synchronization.- Network Programming: phải nắm được và phân biệt được các mô hình lập trình socket khác nhau.

Day(s) Chủ đề Nội dung Hướng dẫn, hỗ trợ Đánh giá kết qủaTổng: 2 months

Lập trình hệ thống với Windows API.

Yêu cầu:

- Mỗi phần khái niệm đưa ra đều phải có ví dụ minh họa.

- Trong mỗi bài tập áp dụng đều phải có mô tả ngắn về cách giải quyết bài toán, phần mã chương trình có comment đầy đủ + dễ hiểu.

- Khai báo các biến kí tự, chuỗi kí tự, hàm xử lý chuỗi trong các chương trình đều hỗ trợ xử lý Unicode khi biên dịch với option _UNICODE.

- Làm bài tập trong file: System Programming

Học tại công ty và học ngoài giờ

Làm báo cáo chi tiết các kiến thức thu hoạch được, mỗi phần đều có ví dụ cài dặt đơn giản để minh họa.

4/9/2023 Page 6 of 10

Page 7: DungNT System Programming Training Plan C++

04/06/2011 – 11/06/2011

12/06/2011 – 18/06/2011

Exercise.doc

1. Input/output with file and directory processing

- File Systems and Sequential I/O: Sử dụng các hàm cơ bản của Windows API: CreateFile, ReadFile, WriteFile, CloseFile.

- Unicode and Generic Characters: Xử lý Unicode và cách viết các ứng dụng hỗ trợ Unicode trong C++.

- Standard Devices and Console I/O: Các hàm thao tác với các thiết bị vào ra chuẩn.

- Direct acess file I/O.- File Locking.- File and Directory Management.Thực hành: Làm bài tập 1.

2. Memory Management, Memory-Mapped Files, and DLLs

- Memory management and heaps: kiến trúc bộ nhớ, các hàm windows API cung cấp dung để quản lý bộ nhớ heap.

- Memory-mapped files: Advantages of file mapping technics, các hàm win API hỗ trợ..

- Dynamic Link libraries: Advantages of DLL,..

4/9/2023 Page 7 of 10

Page 8: DungNT System Programming Training Plan C++

19/06/2011 –30/06/2011

01/07/2011 – 16/07/2011

Thực hành: Làm bài tập 2.

3. Process & Thread Management- Nêu khái quát về windows process, thread?,

thread function? So sánh process và thread? Why need multi threading? Multi threading versus multi processing?

- Benefits and Risks when using threads?- Các hàm win API dùng để quản lý process,

thread? Thread priority?- Process, Thread Termination and

Synchronization: sử dụng các hàm WaitForSingleObject and WaitForMultipleObjects.

- C library and threads.

Thực hành: Làm bài tập 3.

4. Thread synchronization- Why need for Synchronization ?- Thread Synchronization Objects ?- CRITICAL_SECTIONs ? Nêu các hàm quản

lý critical sections.- Using Interlocked Functions.- Using Mutexes for Mutual Exclusion.- Using Events, Semaphores, mutexs for

synchronizing.

4/9/2023 Page 8 of 10

Page 9: DungNT System Programming Training Plan C++

18/07/2011 – 04/08/2011

- Describe Deadlock?, Deadlock Avoidance?- Sử dụng kết hợp events & mutexs để giải

quyết bài toán producer/consumer.- Sử dụng hàm API SignalObjectAndWait():

How to use and advantages?- Asynchronous Procedure Calls and Alertable

Wait Functions: Ý nghĩa, cách sử dụng hàm Win API QueueUserAPC(), SleepEx(), WaitForSingleObjectEx(),WaitForMultipleObjectEx().

Thực hành: Làm bài tập 4 và 5.

5. Interproces Communication:- Describe the Windows interprocess

communication mechanisms?, anonymous pipes, named pipes, and mailslots?

- Describe the different capabilities of anonymous pipes, named pipes, and mailslots

6. Windows Sockets andNetwork Programming:

- The basic of windows sockets API: winsock initialization, creating a socket.

- Socket modes: Blocking and non-blocking.- Socket IO models ? - Functions for creating and managing socket

4/9/2023 Page 9 of 10

Page 10: DungNT System Programming Training Plan C++

server, client.- Comparing named pipes and sockets.- Datagram service.- I/O Completion Port Model?

Thực hành: Làm bài tập 6.

1.1 Một số yêu cầu.

Nắm các kiến thức về các nội dung đề ra trong plan.Làm các bài tập sau mỗi phần (theo plan hoặc tự đề ra theo kiến thức học tập)Có Báo cáo kết quả thu hoạch sau mỗi phần. Cần chi tiết các phần trọng tâm. Các báo cáo được viết tiếp vào các phần trong tài liệu mẫu báo cáo gửi kèmLập và kiểm soát kế hoạch theo tuần. Lập kế hoạch vào thứ 2 và báo cáo vào thứ 7 hàng tuầnTrao đổi với người hướng dẫn hoặc các thành viên khác khi gặp khó khăn.

Một số lưu ý khi lập trình: Theo file hướng dẫn gửi kèm.

Giai đoạn tiếp theo sẽ được lập trước khi giai đoạn 1 kết thúc.

4/9/2023 Page 10 of 10