Bài 1: Tổng quan về chương trình máy tính và lập trình C

1. Chương trình máy tính là gì?

what-is-softwaresPhần mềm, hay được gọi là một chương trình máy tính để máy tính có thể hiểu được mong muốn của người dùng và thực hiện được những mong muốn đó trong khả năng cho phép. Máy tính có thể giao tiếp được với người dùng thông qua ngôn ngữ máy, và được các lập trình viên tạo ra phần mềm để người dùng giao tiếp dễ dàng giữa người và máy.

2. Ngôn ngữ lập trình C

c-programming-languageNgôn ngữ lập trình C là một ngôn ngữ lập trình được phát triển từ đầu thập niên 1970 bởi Dennis Ritchie. Từ đó, ngôn ngữ này đã lan rộng ra nhiều hệ điều hành khác và trở thành một những ngôn ngữ phổ biến nhất. C là ngôn ngữ cực kì hiệu quả và được ưa chuộng nhất để viết các phần mềm hệ thống, mặc dù nó cũng được dùng cho việc viết các ứng dụng.

Ngôn ngữ C là một ngôn ngữ cấu trúc và xếp vào loại ngôn ngữ bậc 3 (loại ngôn ngữ cao cấp hơn ngôn ngữ mã máy và thấp hơn ngôn ngữ hướng đối tượng – bậc 4). Ngôn ngữ C có một số yếu điểm như:

  • Dễ gây lỗi và phải thực hiện biên dịch mới có thể phát hiện ra những lỗi cú pháp
  • Có thể khó hiểu do cú pháp và từ khóa không dễ hiểu như các ngôn ngữ bậc cao hơn
  • Khó chỉnh sửa và phát triển vì không đóng gói theo lớp như các ngôn ngữ lập trình cao hơn.
  • Ngoài ra, ngôn ngữ C cũng là ngôn ngữ cấp thấp, khó sử dụng hơn nhiều các ngôn ngữ lập trình cấp cao.

Vậy tại sao ngôn ngữ C lại được lựa chọn để là ngôn ngữ bước đầu trong việc học lập trình?

Đã có nhiều người có quyết định học các ngôn ngữ lập trình cấp cao hơn và bỏ qua giai đoạn học lập trình ngôn ngữ C vì cho rằng C đã lỗi thời, giờ lại học thì quả là phí công. Tuy nhiên, bạn cần phải biết rằng Java, C# (những ngôn ngữ lập trình phổ cập hàng đầu hiện nay) cú pháp xây dựng hầu hết đều dựa từ C. Chắc chắn một điều là với một ngôn ngữ như C (hay C++), quá trình lập trình các ngôn ngữ này sẽ giúp bạn học thêm rât nhiều trong việc lập trình và cách hoạt động của máy tính, sau đó hoàn toàn đủ khả năng học thêm một vài ngôn ngữ khác nếu bạn muốn. Đó chính là lí do để bạn nên học ngôn ngữ lập trình C đầu tiên và C vẫn là một ngôn ngữ đầu tiên được lựa chọn để đào tạo các ngành về Khoa học máy tính trên thế giới. Đây không phải là một lựa chọn bắt buộc, nhưng sẽ là một lựa chọn xây dựng nền tảng kiến thức bền vững.

Sẽ có bạn thắc mắc, vậy ngôn ngữ C và C++ khác nhau ở điểm nào? Và nên học ngôn ngữ nào?

c-cppNgôn ngữ C++ thật ra vẫn là ngôn ngữ C nhưng được thêm vào một số cải tiến, giúp cho việc lập trình được nhanh và dễ dàng hơn. Do đó, bạn hoàn toàn có thể học ngôn ngữ C, sau đó học C++ một cách dễ dàng bằng cách học những “cải tiến” từ C sang C++. Trong khóa học này, chúng tôi khuyến khích các bạn ở giai đoạn đầu tiên nên sử dụng ngôn ngữ lập trình C trước, sau khi đã thành thạo thì sẽ sử dụng C++ để dễ dàng hơn trong việc thực hiện ý tưởng lập trình của mình.

3. Kiến thức tổng quan về ngôn ngữ C

Những kiến thức này đã được tổng hợp đầy đủ và rõ ràng tại Phần 3. Lập trình, từ trang 95 tới trang 106 tại [1]. Việc đọc các kiến thức tại đây là bắt buộc cho các thành viên tham gia khóa học. Đây là kiến thức các bạn cần đọc từ ngày hôm nay, 10/10/2016 tới ngày 14/10/2016, sau đó sẽ có bài tập kiểm tra các kiến thức này gửi cho các bạn vào ngày 15/10/2016. Bài kiểm tra sẽ là các bài trắc nghiệm đơn giản nhưng cần các bạn giải quyết trong thời gian ngắn, do đó cần hoàn thành các kiến thức này trước ngày 15/10 để làm tốt nhất bài kiểm tra nhỏ này.

Chương trình lập trình đầu tiên: Hello World

  • Dòng đầu tiên là một comment cho chương trình. Comment là những đoạn được thêm vào chương trình bởi các lập trình viên với mục đích là giải thích ý nghĩa của các đoạn code. Đoạn comment được viết trong cặp dấu /* và */ và sẽ không được biên dịch bởi trình biên dịch C. Chúng ta sẽ giải thích qua các thành phần của chương trình trên:
  • Dòng thứ hai là gọi một trong những thư viện cốt lõi của ngôn ngữ lập trình C. Thư viện <stdio.h> gồm các hàm liên quan tới đọc/ghi dữ liệu. Trong chương trình này, cần sử dụng thư viện <stdio.h> là do chúng ta sử dụng câu lệnh printf ở dưới.
  • Dòng thứ ba là bắt đầu chương trình C. Chương trình chính của C được đặt trong cấu trúc main(){}. Phần chương trình chính này là phần sẽ được thực thi đầu tiên của một chương trình C.
  • Dòng thứ tư là câu lệnh in một giá trị nào đó ra màn hình hiển thị. Ở đây, giá trị được in ra chính là một chuỗi giá trị là “Hello World”. Mã kí tự \n là một kí tự  có ý nghĩa là chuyển vị trí dấu nhắc xuống đầu một dòng kế. Dấu ; được đặt ở cuối mỗi câu lệnh trong C để thông báo là kết thúc một câu lệnh,

Như vậy là chúng ta đã có thể thực hiện chương trình đầu tiên trong ngôn ngữ lập trình C với ví dụ kinh điển  trong giới lập trình: Hello World. 

hello-world

Bài tập lập trình

Viết một chương trình lập trình ngôn ngữ C, hiển thị ra màn hình lập trình hình tam giác như sau:

Tham gia thảo luận

Mời mọi người tham gia thảo luận tại địa chỉ sau: http://discuss.eggclub.org/c/cau-truc-du-lieu-va-giai-thuat

4. Giới thiệu khoá học cấu trúc dữ liệu và giải thuật tại Harvard

Tiếp theo là một phần tham khảo thú vị: khóa học Nhập môn Khoa học máy tính CS50 tại trường đại học Harvard do giáo sư David Malan giảng dạy. Các bài giảng này cũng cấp các kiến thức tổng quan về lập trình, ngoài ra còn truyền cảm hứng tốt cho các bạn mới bắt đầu theo ngành CNTT. Việc tham khảo các video này là không bắt buộc, tuy nhiên chúng tôi khuyến khích các bạn dành thời gian xem. Mọi cố gắng nhỏ ngày hôm nay đều có thể sẽ tạo ra những thành quả lớn lao về sau này.

Các bài giảng về khoa học Nhập môn Khoa học máy tính CS50 được đội ngũ tại kienhoc.vn dịch từ nguồn bài là tiếng Anh. Các Cố Vấn Khóa Học và Tình Nguyện Viên của Kiến Học đã Việt hóa phần nhiều bài giảng và thiết kế lại chương trình để phù hợp với người học Việt Nam.

Video bài 1 và 2 – tuần 1 của Khóa học Cấu trúc dữ liệu và giải thuật tại Harvard

5. Tài liệu tham khảo

[1]: Bài giảng tin học đại cương. https://drive.google.com/open?id=0ByyO0Po-LQ5aU0NsZTU3NnEyamM

[2]: Wikipedia. https://www.wikipedia.org/

 

The following two tabs change content below.