Cơ Sở Lập Trình
Trịnh Tấn Đạt
Khoa CNTT - Đại Học Sài Gòn
Email:
Website: />
Nội dung
Giới thiệu môn học
Nội dung môn học
Đánh giá
Tài liệu tham khảo
Trao đổi và thảo luận
Giới Thiệu
Tên học phần:
Cơ sở lập trình
Mã mơn học :
841020
Số tín chỉ:
3 (2,1)
Số tiết:
60 tiết (lí thuyết : 30 tiết ; thực hành: 30 tiết)
Mô tả học phần
o Học phần gồm 06 chương, trình bày các kiến cung cấp cho người học kiến thức cơ bản về ngơn
ngữ lập trình C/C++
o Học phầngiảng dạy các kỹ năng tư duy lập trình, kỹ năng soạn thảo chương trình và xử lý lỗi
chương trình.
Mục tiêu: Học phần nhằm giảng dạy các kiến thức cơ bản về lập trình: khái niệm thuật tốn,
lệnh nhập/xuất dữ liệu, lệnh gán, các biểu thức, các cấu trúc điều khiển(rẽ nhánh, cấu trúc lặp),
chương trình con, mảng, kiểu dữ liệu có cấu trúc và rèn luyện tư duy lập trình, các kỹ năng
phân tích, thiết kế một số bài tốn cơ bản, soạn thảo chương trình và xử lý sửa lỗi chương
trình cũng như hình hành các thái độ học tập chăm chỉ, nghiêm túc, trung thực và sáng tạo cho
sinh viên.
Nội dung mơn học
Giới thiệu
Chương 1: Thuật tốn
Chương 2: Giới thiệu ngôn ngữ C/C++
Chương 3: Các cấu trúc điều khiển
Chương 4: Chương trình con và Hàm
Chương 5: Mảng
Chương 6: Struct
Giới Thiệu
Tài liệu tham khảo:
Tài liệu chính
Bài giảng của giảng viên
[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] Trần Đan Thư, Nguyễn Thanh Phương, Đinh Bá Tiến, Trần Minh Triết,“Nhập mơn lập trình”,
Trường ĐH KHTN ĐHQG TPHCM, 2011.
[4] Wikibooks.org, “C Programming”
Nguồn tham khảo khác (từ internet, tìm kiếm bằng tiếng Anh)
o />o />o Stackoverflow: />o GeeksforGeeks : />o Google, Bing, …
Đánh giá mơn học
Điểm q trình: 50%
o Điểm lý thuyết:
Chun cần, thảo luận : 5%
Kiểm tra giữa kỳ: 20 % (làm bài thi trên giấy)
o Điểm thực hành :
Chuyên cần, thảo luận : 5%
Kiểm tra thực hành: 20 % (cho bài tập về nhà làm trong vòng 2 hoặc 3 tuần. Sau đó sẽ thảo
luận và vấn đáp trong phịng thực hành để chấm điểm).
Thi kết thúc học phần: 50%
Tự luận, đề đóng, thời gian làm bài, khơng dùng tài liệu : 90 phút ( câu hỏi từ ngân hàng đề thi)
Điểm thưởng: trả lời câu hỏi, lên bảng làm bài tập, …
Yêu cầu đối với sinh viên
Chuyên cần: Sinh viên cần phải tham dự lớp với ít nhất 80% số buổi học.
Chuẩn bị cho bài giảng: Sinh viên cần chuẩn bị đọc bài trước ở nhà theo kế hoạch
học tập của học phần mà giảng viên đã thống nhất;
Thảo luận: Theo các câu hỏi mà giảng viên nêu ra trong các buổi học;
Kiểm tra giữa kì, kiểm tra thực hành và thi cuối học kỳ: Sinh viên khơng dự thi
sẽ bị tính điểm khơng;
Thái độ: Học tập chăm chỉ, tuân thủ, tự học và tự trao dồi kiến thức.
Nghề lập trình và những sự thật ít người biết tới
/>Trích một phần bài viết
Lập trình là một cơng việc như thế nào? Có phải lập trình viên là những người tối ngày ngồi trước
màn hình máy tính? Cứ code giỏi thì sản phẩm sẽ tốt? …
Lập trình là một lĩnh vực mà nếu khơng phải trong nghề thì thật khó thấu hiểu những nỗi “trần ai”
trong đó. Sau đây, kĩ sư công nghệ thông tin David Veksler – chủ trang blog The Rational Mind – sẽ
chia sẻ cho chúng ta những sự thật ít ai biết về nghề IT – nghề lập trình:
Chỉ 10-20% thời gian của tồn bộ dự án được các lập trình viên sử dụng để viết code, và bất kể trình
độ, mỗi ngày 1 lập trình viên chỉ viết trung bình từ 10-20 dịng code. Sự khác biệt giữa tay chuyên
và gà mờ đó là tay chuyên thì dành 90% thời gian để suy luận, tìm tịi và thử nghiệm các phương
án tối ưu nhất cho mình; cịn những gà mờ thì dành 90% thời gian để debug, thay đổi vài chỗ
trong code, lại debug và mong đến một lúc nào đó chương trình sẽ hoạt động.
Coder, Programmer, Developer and Engineer
/>
Các ví dụ thực tế
Bài tốn document scanner
tham khảo:
/>Goal: to find the corners and edges of a document in the image, so that it can be cropped out from the
background.
output
input
Các ví dụ thực tế
Phân tích thừa số nguyên tố và ứng dụng trong mật mã.
Thuật toán RSA được Ron Rivest, Adi Shamir và Len Adleman mô tả lần đầu tiên vào
năm 1977 tại Học viện Công nghệ Massachusetts (MIT)
Độ an toàn của hệ thống RSA dựa trên 1 trong những vấn đề của tốn học: bài tốn phân tích ra
thừa số nguyên tố các số nguyên lớn.
Ví dụ: 15 = 3 * 5
Năm 2009, để phân tích thành thừa số một số có 232 chữ số (RSA-768) sử dụng hàng trăm máy
tính đã mất hai năm.
/>The limit on the input number to factor is less than 10,000,000,000,000 (less than 10 trillion or a maximum of 13 digits)
Các ví dụ thực tế
Search Algorithm (thuật tốn tìm kiếm)
Goal: Nhanh, hiệu quả, ít tốn bộ nhớ.
Ví dụ: Tìm trong từ điển để tra ý nghĩa một từ ( English to Vietnamese)
Tìm nội dung “thuật tốn sắp xếp trên mảng” trong một quyển sách
Tìm đường đi ngắn nhất từ nhà tới trường trong một thành phố
Các ví dụ thực tế
Super Resolution Algorithm
Goal: tăng độ phân giải và chất lượng của hình ảnh.
Ví dụ: 8K 65 inch QLED TV Q900R with 8K AI Upscaling
/>
Các ví dụ thực tế
Neural Style Transfer Algorithm
Goal: biến đổi hình ảnh theo phong cách nghệ thuật