
Bài giảng Kỹ thuật lập trình: Giới thiệu môn học - Trịnh Tấn Đạt (2024)
lượt xem 1
download

Bài giảng "Kỹ thuật lập trình: Giới thiệu môn học" giới thiệu tổng quan về môn học, các nội dung chính của môn học, đánh giá, tài liệu tham khảo, đề tài cho đồ án môn học (option), trao đổi và thảo luận. Mời các bạn cùng tham khảo nội dung chi tiết.
Bình luận(0) Đăng nhập để gửi bình luận!
Nội dung Text: Bài giảng Kỹ thuật lập trình: Giới thiệu môn học - Trịnh Tấn Đạt (2024)
- Kỹ Thuật Lập Trình Trịnh Tấn Đạt Khoa CNTT - Đại Học Sài Gòn Email: trinhtandat@sgu.edu.vn Website: https://sites.google.com/site/ttdat88/
- Nội dung ▪ Giới thiệu môn học ▪ Các nội dung ▪ Đánh giá ▪ Tài liệu tham khảo ▪ Đề tài cho đồ án môn học (option) ▪ Trao đổi và thảo luận
- Giới Thiệu ▪ Tên học phần: Kỹ thuật lập trình ▪ Số tín chỉ: 4 (3,1) ▪ Số tiết (lí thuyết, thực hành): 75 (45; 30) ▪ Mô tả học phần o Học phần Kỹ thuật lập trình trình bày các kiến thức tiếp nối của học phần Cơ sở lập trình, bao gồm các chương: Kỹ thuật lập trình đệ qui, Kỹ thuật lập trình con trỏ, Kỹ thuật lập trình ký tự và chuỗi ký tự, Kỹ thuật lập trình với tập tin văn bản, một số kỹ thuật lập trình nâng cao. o Học phần này giúp người học hoàn thiện và nâng cao kiến thức về ngôn ngữ lập trình. Giúp người học rèn luyện nhằm nâng cao tư duy về kỹ thuật lập trình. ▪ Mục tiêu: hoàn thiện các kỹ năng về lập trình như: phát triển tư duy lập trình, Phân tích vấn đề bài toán, thiết kế chương trình, soạn thảo chương trình, hình thành phong cách lập trình hiệu quả, xử lý lỗi chương trình, ...
- Nội dung môn học ▪ Giới thiệu và Ôn Tập ▪ Con trỏ (Pointer) ▪ Thiết kế chương trình ▪ Đệ quy (Recursion) ▪ Tập tin (FILE) ▪ Chuỗi ký tự (String) ▪ Các kỹ thuật lập trình tối ưu o Qui hoạch động o Chia để trị o Tìm kiếm và Quay lui o Tham lam
- Giới Thiệu ❖ Tài liệu tham khảo: ▪ Tài liệu chính [1] Huỳnh Minh Trí, Phan Tấn Quốc, Nguyễn Nhựt Đông, Giáo trình kỹ thuật lập trình, NXB Đại học Quốc Gia TPHCM, 2016. ▪ Tài liệu khác (khuyến khích đọc thêm tài liệu bằng Tiếng Anh) [2] Phạm Văn Ất, “Kỹ thuật lập trình C - cơ sở và nâng cao”, NXB Giáo Dục, 2006. [3] K.N.King, C Programming: A Modern Approach, 2nd Edition [4] Brian W. Kernighan and Dennis M. Ritchie ,The C Programming Language (2nd Edition) [5] Wikibooks.org, “C Programming”, 2012. ▪ Nguồn tham khảo khác (tử internet, tìm kiếm bằng tiếng Anh) o https://www.cprogramming.com/tutorial/c-tutorial.html o http://www.eskimo.com/~scs/cclass/notes/top.html o Stackoverflow: https://stackoverflow.com/ o GeeksforGeeks : https://www.geeksforgeeks.org/ o Google, Bing, …
- Đánh giá môn học ▪ Điểm quá trình: 50% o Điểm lý thuyết: ✓ Chuyên cần, thảo luận : (10%) ✓ Kiểm tra giữa kỳ: (20%) ✓ Điểm đồ án môn học (điểm thưởng): không bắt buộc o Điểm thực hành : ✓ Kiểm tra thực hành: (20%) Điểm thưởng ▪ Thi kết thúc học phần: 50% ✓ Tự luận, đề đóng, thời gian làm bài: 90 phút
- Project môn học (không bắt buộc) ▪ Yêu cầu: • Lý thuyết: đọc hiểu, viết theo hiểu (không dịch word-by-word) • Cài đặt: code và run chương trình. (dựa vào các ví dụ) • Viết báo cáo ❖ Số lượng thành viên (tối đa 03 SV/nhóm) ❖ Thời gian nộp: tuần 14 ❖ SV nộp đồ án được cộng điểm thưởng (tối đa 2,0đ)
- Project môn học (không bắt buộc) ▪ Danh sách các đề tài: 1. Thuật toán quay lui (Backtracking) và bài 12. Thuật toán Balan ngược (Reserve 18. Tìm hiểu về thư viện Standard toán 8 hậu, mã đi tuần Polish Notation) và ứng dụng Template Library (containers, 2. Thuật toán nhánh cận và ứng dụng (ít nhất 3 13. Thuật toán Dynamic Time Warping iterators, algorithms) trong C++ và ví dụ) (dựa trên quy hoạch động) các ví dụ 3. Thuật toán tham lam và ứng dụng (ít nhất 3 ví dụ) 14. Thuật toán gradient descent và ứng 19. Tìm hiểu về C++ Exception 4. Thuật toán leo đồi (Hill Climbing) và ứng dụng Handling, C++ Standard dụng 15. Ma trận thưa và Thuật toán nhân Exceptions, và các ví dụ. 5. Thuật toán luyện kim (Simulated (nhanh) hai ma trận thưa 20. Tìm hiểu về C++ Namespaces, Annealing) và ứng dụng 16. Sum-area Table (Integral Image) và C++ Template và C++ Preprocessor, 6. Tabu Search và ứng dụng ứng dụng. và các ví dụ. 7. Tối ưu bầy đàn (Particle 17. Các thuật toán nhân ma trận Swarm Optimization) và ứng dụng 8. Giải thuật đàn kiến (Ant colony optimization) và ứng dụng 9. Giải thuật di truyền (Genetic Algorithm) và ứng dụng và ứng dụng 10. Thuật toán tối ưu sói xám (Grey Wolf Optimizer) và ứng dụng 11. Thuật toán tối ưu cá voi (Whale Optimization Algorithm) và ứng dụng
- Từ bài toán đến chương trình ▪ Các bài toán thực tế thường rất phức tạp Phải xác định được o Các dữ liệu liên quan đến bài toán o Các thao tác cần thiết để giải quyết bài toán ▪ Ví dụ Bài toán quản lý sinh viên đăng ký học phần Cần quản lý những thông tin nào? • Thông tin về sinh viên: tên, ngày sinh, MSSV, Khoa, … Cần thực hiện những thao tác nào? • Tạo ra tài khoản sinh viên. • Cập nhật một số thông tin về sinh viên. • Thêm, xóa , sửa đăng ký học phần. Ai được phép thực hiện thao tác nào?
- Từ bài toán đến chương trình Giải thuật Thiết kế - Dùng Mã giả Đánh giá Giải thuật tốt/tối ưu Coding Bài toán thực (Pseudocode) tế - Dùng flowchart - Mô hình toán Phân tích, đánh giá Ngôn ngữ lập trình - Chọn kiểu dữ liệu, thuật toán C/C++ cấu trúc dữ liệu -Độ phức tạp Java - Thiết kế giải thuật - Cải tiến thuật toán Python …
- Khái niệm Kỹ thuật lập trình ▪ Kỹ thuật lập trình: là kỹ thuật giải quyết một bài toán trên máy tính dựa trên nền tảng một phương pháp luận và một hoặc nhiều ngôn ngữ lập trình phù hợp với yêu cầu. Tư tưởng thiết kế + Cấu trúc dữ liệu + Giải thuật + Ngôn ngữ lập trình
- Khái niệm Kỹ thuật lập trình ▪ Thế nào là lập trình o Viết chương trình tính 23 o Viết chương trình tính xn o Viết chương trình tính tổng 10 o Viết chương trình tính tổng k số nguyên tố đầu tiên. số nguyên tố đầu tiên.
- Khái niệm Kỹ thuật lập trình ▪ Khái niệm lập trình Với mỗi bài toán (vấn đề) đặt ra, cần: o Thiết kế thuật toán để giải quyết bài toán đó. o Cài đặt thuật toán bằng một chương trình máy tính.
- Khái niệm Kỹ thuật lập trình ▪ Thế nào là lập trình tốt Đúng / Chính xác Khả năng nâng cấp o Thỏa mãn các nhiệm vụ o Dễ dàng chỉnh sửa Hiệu quả o Được khách hàng chấp nhận o Dễ dàng nâng cấp trong điều o Thời gian lập trình ngắn kiện bài toán thay đổi o Khả năng bảo trì dễ dàng Ổn định Tái sử dụng o Giá trị sử dụng lại lớn o Ổn định o Tái sử dụng hoặc kế thừa o Sử dụng đơn giản, thân thiện o Ít lỗi hoặc lỗi nhẹ có thể cho bài toán khác o Nhiều chức năng tiện ích chấp nhận được Tương thích Hiệu suất o Thích ứng tốt các môi o Chương trình nhỏ gọn, ít bộ trường khác nhau nhớ o Tốc độ nhanh, sử dụng ít CPU
- Khái niệm Kỹ thuật lập trình ▪ Làm thế nào để lập trình tốt? o Tư duy và phương pháp lập trình o Hiểu sâu về máy tính o Nắm vững ngôn ngữ o Đam mê o Luyện tập
- Thiết kế chương trình ▪ Thế nào là chương trình tốt? o Cấu trúc rõ ràng o Chương trình có tính logic + các biểu thức được diễn đạt dễ hiểu o Tên dùng trong chương trình có tính chất miêu tả o Chú thích hợp lý o Tôn trọng chiến lược divide/conquer (chia để trị) ▪ Làm thế nào để tạo ra chương trình tốt o Thiết kế top-down o Tinh chỉnh từng bước
- Thiết kế chương trình ▪ Nguyên tắc chung Đơn giản Trực tiếp Rõ ràng Cấu trúc tốt • Thể hiện giải thuật dễ • Sử dụng thư viện mọi lúc • Dùng khối lệnh để tránh • Tôn trọng tính cấu trúc đọc, dễ hiểu có thể. nhập nhằng. của chương trình (chẳng • Lựa chọn cấu trúc dữ liệu • Tránh việc kiểm tra điều • Đặt tên biến, hàm, .. sao hạn dựa vào hàm/ thủ tục ). sao cho việc viết giải thuật kiện không cần thiết. cho tránh được nhầm lẫn • Viết và kiểm thử dựa là đơn giản nhất trên cấu trúc phân cấp của • Tìm cách đơn giản hóa chương trình. các biểu thức • Viết giải thuật bằng giả • Thay những biểu thức lặp ngữ, rồi mới viết bằng 1 đi lặp lại bằng chương NNLT cụ thể trình con tương ứng
- Thiết kế giải thuật ▪ Chia bài toán ra thành nhiều bài toán nhỏ hơn ▪ Tìm giải pháp cho từng bài toán nhỏ ▪ Gộp các giải pháp cho các bài toán nhỏ thành giải pháp tổng thể cho bài toán ban đầu ▪ Có 02 cách thiết kế: o Thiết kế kiểu bottom-up o Thiết kế kiểu top-down
- Thiết kế giải thuật ▪ Thiết kế từ dưới lên (bottom-up): o Là phương pháp thiết kế đi từ việc thiết kế chi tiết nhỏ sau đó kết hợp lại thành bài toán hoàn chỉnh. o Ví dụ: thiết kế chi tiết một phần chương trình, thiết kế chi thiết phần khác, … lặp lại quá trình cho đến hết. o Là cách thiết kế đơn giản, dễ thực hiện, không đòi hỏi kỹ năng cao của người thiết kế. Tuy nhiên, khi gặp hệ thống phức tạp, cách tiếp cận này sẽ không hiệu quả.
- Thiết kế giải thuật ▪ Thiết kế từ trên xuống (top-down): o Là phương pháp lý tưởng nhất trong thiết kế. Ý tưởng là đi từ thiết kế toàn bộ sản phẩm một cách hệ thống, tổng thể sau đó chia nhỏ/ phân rã xuống các bài toán nhỏ hơn để giải quyết, tinh chỉnh cho đến khi hoàn thiện. o Ví dụ: thiết kế top-down trong lập trình • Phác họa hàm main (viết bằng mã giả - pseudocode) • Tinh chỉnh từng lệnh mã giả ✓ Lệnh đơn giản - > thay bằng code ✓ Lệnh phức tạp -> dùng lợi gọi hàm/chương trình con • Lặp lại (trong hầu hết các trường hợp) ở mức sâu hơn, cụ thể hơn, cho đến khi các hàm được định nghĩa xong. • Chương trình có cấu trúc phân cấp. ▪ Ví dụ: thiết kế giải thuật cho bài toán sau:

CÓ THỂ BẠN MUỐN DOWNLOAD
-
Bài giảng Kỹ thuật lập trình: Chương 1 - Trần Quang
39 p |
35 |
2
-
Bài giảng Kỹ thuật lập trình: Chương 9 - Trần Quang
33 p |
18 |
2
-
Bài giảng Kỹ thuật lập trình: Chương 8 - Trần Quang
34 p |
35 |
2
-
Bài giảng Kỹ thuật lập trình: Chương 7 - Trần Quang
28 p |
40 |
2
-
Bài giảng Kỹ thuật lập trình: Chương 6 - Trần Quang
37 p |
42 |
2
-
Bài giảng Kỹ thuật lập trình: Chương 4 - Trần Quang
32 p |
34 |
2
-
Bài giảng Kỹ thuật lập trình: Chương 3 - Trần Quang
52 p |
38 |
2
-
Bài giảng Kỹ thuật lập trình: Chương 2 - Trần Quang
25 p |
39 |
2
-
Bài giảng Kỹ thuật lập trình: Các phương pháp giải quyết bài toán trên máy tính - Trịnh Tấn Đạt (2024)
22 p |
4 |
1
-
Bài giảng Kỹ thuật lập trình: Chuỗi ký tự - Trịnh Tấn Đạt (2024)
63 p |
1 |
0
-
Bài giảng Kỹ thuật lập trình: Các kỹ thuật thao tác trên bit - ThS. Đặng Bình Phương
29 p |
29 |
0
-
Bài giảng Kỹ thuật lập trình: Kỹ thuật lập trình đệ quy - ThS. Đặng Bình Phương
44 p |
29 |
0
-
Bài giảng Kỹ thuật lập trình: Chuỗi ký tự - ThS. Đặng Bình Phương
20 p |
30 |
0
-
Bài giảng Kỹ thuật lập trình: Dữ liệu kiểu con trỏ (Nâng cao) - ThS. Đặng Bình Phương
48 p |
30 |
0
-
Bài giảng Kỹ thuật lập trình: Dữ liệu kiểu con trỏ (Cơ bản) - ThS. Đặng Bình Phương
40 p |
10 |
0
-
Bài giảng Kỹ thuật lập trình: Giới thiệu môn học - ThS. Đặng Bình Phương
7 p |
29 |
0
-
Bài giảng Kỹ thuật lập trình: Các kỹ thuật lập trình nâng cao - Trịnh Tấn Đạt (2024)
86 p |
1 |
0


Chịu trách nhiệm nội dung:
Nguyễn Công Hà - Giám đốc Công ty TNHH TÀI LIỆU TRỰC TUYẾN VI NA
LIÊN HỆ
Địa chỉ: P402, 54A Nơ Trang Long, Phường 14, Q.Bình Thạnh, TP.HCM
Hotline: 093 303 0098
Email: support@tailieu.vn
