Phương thức Giờ lý thuyết: giảng và báo cáo Giờ thực hành tại phòng máy Kiểm tra và thi Kiểm tra thực hành: kỹ năng lập trình Thi lý thuyết : trắc nghiệm khách quan Được tham
Trang 1Dành cho sinh viên chính quy
chuyên ngành Công Nghệ Thông Tin
ThS Nguyễn Cao Trí
caotri@dit.hcmut.edu.vn www.dit.hcmut.edu.vn/~caotri
Trang 2Giới thiệu
Mục tiêu môn học
Giới thiệu các khái niệm cơ bản về lập trình trên máy tính Cung cấp cơ sở lý thuyết và kỹ năng cơ bản về lập trình cho các môn học sau
Nội dung
Kỹ năng tư duy và thực hành trên ngôn ngữ cụ thể
Trang 3Phương thức
Giờ lý thuyết: giảng và báo cáo
Giờ thực hành tại phòng máy
Kiểm tra và thi
Kiểm tra thực hành: kỹ năng lập trình
Thi lý thuyết : trắc nghiệm khách quan
Được tham khảo tài liệu
Slide bài giảng Lập Trình Căn Bản
Giáo trình Lập trình căn bản – Khoa CNTT
Tài liệu khác
CDROM bài tập PASCAL và thực hành
www.dit.hcmut.edu.vn/~caotri
Trang 4 Một số khái niệm cơ bản về
Máy tính & chương trình máy tính
Ngôn ngữ lập trình ,translator,
Giải thuật và flow chart
Giải thuật & biểu diễn giải thuật
Flowchart
Công cụ phát triển
Công cụ IDE, Compiler
Error & debug
Trang 5Máy tính - Computer
Máy tính Analog
Máy tính số
Đặc tính chung
Trang 6Kiến trúc máy tính
Máy tính (Computer system)
Bao gồm nhiều thiết bị phần cứng (hardware devices)
Keyboard
Screen (monitor)
Disks
Memory
Processing Units
Hệ điều hành (Operating System – OS)
Phần mềm (software)
Trang 7Chương trình máy tính
Danh mục các trang thiết bị, tài nguyên sử dụng
Tiến trình sử dụng các tài nguyên và thực hiện các công việc định trước
Kết quả thực hiện
Tập hợp các lệnh được liệt kê theo một trình tự nhất định
Các dữ liệu sẽ được nhận
Các tài nguyên cần sử dụng
Các kết quả sẽ có được
Mục tiêu: xử lý dữ liệu theo yêu cầu định trước
Lập trình: viết chương trình cho máy tính
Trang 8Ngôn ngữ lập trình
Ngôn ngữ lập trình
Những quy định về cú pháp (syntax) & ngữ nghĩa (semantic)
Phân chia làm 3 nhóm chính
Ngôn ngữ duy nhất của máy tính - CPU
Trang 9Ngôn ngữ máy - Machine languages Ngôn ngữ duy nhất được máy tính (CPU) hiểu trực tiếp.
Được xác định bởi tập lệnh của CPU
Khó nhớ hàng chục ngàn lệnh dạng {0,1}*
Rất khó xác định & sửa lỗi
Không được sử dụng trong thực tế để viết chương trình
Nền tảng xây dựng hợp ngữ
Trang 10Hợp ngữ - Assembly Languages
Sử dụng các từ khóa tiếng Anh cho các lệnh hay nhóm
lệnh của mã máy.
Được dịch sang mã máy khi thực hiện
Chuyển đỗi nhanh chóng
Dễ đọc và dễ hiểu hơn
Vẫn tương đối khó sử dụng do
Nền tảng xây dựng các ngôn ngữ cấp cao
Trang 11Ngôn ngữ cấp cao
Một câu lệnh diễn tả nhiều động thái
Có cấu trúc ngày càng giống ngôn ngữ tự nhiên (tiếng Anh)
Được dịch sang assembly hay mã máy bằng các chương trình dịch trước khi thực thi.
Source code & Executed code
Được phân làm nhiều lớp
Lập trình cấu trúc – Structured
Trang 12Học ngôn ngữ lập trình
Quy tắc ngữ pháp
Từ vựng
Cấu trúc câu
Quy tắc ngữ pháp đơn giản
Từ vựng ít, tự quy định
Cấu trúc câu đơn giản
Trang 13Chương trình dịch Dùng để dịch từ một ngôn ngữ lập trình này sang ngôn ngữ lập trình khác
code –> chương trình thực thi
Intepreter – thông dịch
Compiler – biên dịch
Intepreter vs Compiler
Công cụ phát triển – Integrated Development Environment (IDE)
Soạn thảo
Dịch và sửa lỗi chương trình
Chạy thử và sửa lỗi
Trang 14Một số khái niệm khác Lỗi và sửa lỗi
Syntax error – lỗi ngữ pháp
Semantic error- lỗi ngữ nghĩa
Runtime error - Lỗi thực thi
Debug – Tìm và sửa lỗi
Dữ liệu, kiểu dữ liệu
integer, long, character, byte, ….
Real (double, float)
Kiểu khác: string
Kiểu dữ liệu có cấu trúc: array, string, record,
Biến (Variable) & Hằng (Constant)
Trang 15Flow chartStart •Start /Begin bắt đầu giải thuật Chỉ có 1 và chỉ 1 điểm START.
• Input / Output dữ liệu xuất/nhập
• Dòng xử lý
• Đặc tả thao tác xử lý hay tính toán dữ liệu
• Điều khiển rẽ nhánh
Điều kiện
Yes
No
• Phát biểu rẽ nhánh khác Giá trị xét phân nhánh
Trường hợp 1 Trường hợp i Khác
Stop • Stop/End kết thúc của giải thuật Có thể có một hoặc nhiều
điểm STOP.
Trang 16Flow chart
Ưu điểm
Trình bày trực quan giải thuật
Nguyên tắc kiểm tra
điểm dừng STOP
Trang 17Flow chartStart
Nhập a, b
a=0 ?
Yes
No
b=0 ?
Yes
No
X=-b/a
Không có nghiệm Vô số nghiệm
Stop
Algorithms
Giải phương trình ax + b = 0
Trang 18Cấu trúc điều khiển cơ bản
If <condition> then Statement;
If <condition> then Statement 1
else Statement 2;
Case <Value> of
………
end;
For counter=start value to end value do Statement;
For counter=start value downto end value do Statement
Trang 19Chu kỳ sống của phần mềm
Thu thập yêu cầu
Phân tích thiết kế
Phát triển chương trình - codeing
Xác định giải thuật
Viết code và dịch thử , hiệu chỉnh các lỗi syntax
Thử nghiệm - Testing
runtime
Vận hành và bảo trì
Phát triển theo yêu cầu
Trang 20Một số ngôn ngữ lập trình
Assembly
Basic
Pascal, C
Foxpro
Java, C++, Object Pascal,…
Khác
Prolog, LISP, Visual basic (VB), VC++, J++, Delphi, ASP, PHP,
Visual studio NET: VB.NET, ASP.NET, C++.NET, C#