Lập trình C cơ bản
Lập trình C Cơ bản
Xin chào các bạn!
Chào mừng các bạn đến với Chương trình Lập trình nhúng IoT cùng Lumi (IoT Programing with Lumi) thuộc khung chương trình đào tạo giữa FUNiX và Công ty cổ phần Lumi Việt Nam.
Môn học đầu tiên - Lập trình C Cơ bản sẽ cung cấp cho học viên những kiến thức cơ bản về ngôn ngữ C, một trong những ngôn ngữ lập trình phổ biến nhất hiện nay và được ứng dụng nhiều trong lĩnh vực IoT. Thông qua khóa học, các chuyên gia về lập trình sẽ giới thiệu tới các bạn những khái niệm cơ bản và ứng dụng của ngôn ngữ lập trình C, từ đó cung cấp cho bạn một nền tảng để phát triển các kỹ năng về lập trình IoT.
Nội dung các bài học tập trung vào các thành phần chính trong lập trình C như biến và kiểu dữ liệu; cấu trúc và tệp tin; giúp các bạn làm quen với các dạng cú pháp cơ bản, cách thức quản lý bộ nhớ và dữ liệu sử dụng con trỏ. Ngoài ra, các bài tập lớn sẽ giúp bạn ứng dụng kiến thức đã học vào các bài toán cụ thể liên quan đến các ứng dụng IoT thực tế như tính toán vị trí đặt bộ phát sóng wifi trong nhà để tìm được vị trí tốt nhất cho bộ điều khiển trung tâm hay các kỹ thuật xử lý bản tin dữ liệu từ cảm biến.
Chúc các bạn học tốt!
MỤC TIÊU MÔN HỌC
Sau khi học xong môn này, học viên sẽ đạt được các chuẩn kiến thức, kỹ năng đầu ra như sau:
- Nắm được kiến thức cơ bản về lập trình C.
- Hiểu và vận dụng ngôn ngữ lập trình C để triển khai một số thuật toán cơ bản.
- Hiểu và ứng dụng con trỏ trong quản lý bộ nhớ chương trình.
- Biết cách vận dụng giải thuật trong C áp dụng vào các bài toán thực tế.
TRẢI NGHIỆM HỌC TẬP
Để bắt đầu, các bạn nên dành một vài phút khám phá môn học và cấu trúc chung. Môn học sẽ có 4 phần với 15 bài học. Xuyên suốt các bài học và cuối mỗi học phần, các bài thực hành Lab và bài tập lớn (Project) sẽ giúp các bạn tăng cường việc ghi nhớ và vận dung lý thuyết đã học vào các bài toán thực tế. Để việc học tập được hiệu quả, hãy luôn trau dồi kiến thức, không ngừng học hỏi, nghiên cứu và lập cho mình một kế hoạch học tập hợp lý để hoàn thành khóa học một cách xuất sắc.
Trong thời gian học (dự kiến là 6 tuần), việc phân bổ tuần học là rất quan trọng. Nếu các bạn có bất cứ câu hỏi nào hãy kết nối với Mentor để được giải đáp.
CẤU TRÚC MÔN HỌC
Phần 1: Giới thiệu về lập trình và ngôn ngữ lập trình C
- Bài 1 - Tổng quan về lập trình C
- Bài 2 - Cài đặt phần mềm và chạy chương trình đầu tiên
- Lab 1 - Làm quen với trình biên dịch
- Bài 3 - Một số khái niệm cơ bản
- Lab 2 - Làm quen với scanf, printf và bộ tiền xử lí
- Bài 4 - Biến và kiểu dữ liệu
- Lab 3 - Thực hành về các kiểu dữ liệu cơ bản
Progress Test
Phần 2: Cú pháp cơ bản
- Bài 5 - Toán tử
- Lab 4 - Sử dụng toán tử và bitwise
- Bài 6 - Cấu trúc điều kiện
- Lab 5 - Thực hành với lệnh điều kiện if-else và switch
- Bài 7 - Cấu trúc vòng lặp
- Lab 6 - Thực hành với các vòng lặp
- Bài 8 - Mảng
- Lab 7 - Thực hành với mảng
- Bài 9 - Hàm
- Lab 8 - Thực hành với hàm
Project 1 - Lập trình giải hình tam giác
Phần 3: Quản lý bộ nhớ và dữ liệu
- Bài 10 - Chuỗi ký tự
- Lab 9 - Thực hành với chuỗi ký tự
- Bài 11 - Con trỏ (Phần 1)
- Lab 10 - Thực hành con trỏ cơ bản
- Bài 12 - Con trỏ (Phần 2)
- Lab 11 - Thực hành con trỏ với mảng và chuỗi
Project 2 - Xử lý bản tin dữ liệu cảm biến lưu trữ tại bộ điều khiển trung tâm
Phần 4: Python cho Khoa học dữ liệu
- Bài 13 - Cấu trúc
- Lab 12 - Thực hành với structures
- Bài 14 - Thao tác với tệp tin (Files)
- Lab 13 - Thực hành thao tác với file
- Bài 15 - Làm quen với một số thư viện C và tổng kết
Project 3 - Bài toán tọa độ điểm
CHUYÊN GIA THIẾT KẾ VÀ PHẢN BIỆN MÔN HỌC
THIẾT KẾ MÔN HỌC: Nguyễn Tuấn Anh
- Chairman/CTO tại Công ty Cổ phần Lumi Việt Nam
- Kĩ sư ngành Kỹ thuật điều khiển và tự động hoá, Đại học Bách Khoa Hà Nội
- 8 năm kinh nghiệm trong lĩnh vực nghiên cứu và phát triển sản phẩm Smarthome - IoT
- Kiến trúc sư trưởng giải pháp nhà thông minh Lumi và hệ sinh thái Lumi Life
THIẾT KẾ MÔN HỌC: Nguyễn Huy Hoàng
- MCU Leader tại Công ty Cổ phần Lumi Việt Nam
- Kĩ sư ngành Kỹ thuật điều khiển và tự động hoá, Đại học Bách Khoa Hà Nội
- 6 năm kinh nghiệm nghiên cứu và phát triển các thiết bị trong lĩnh vực IoT
- Chuyên gia lập trình ngôn ngữ C, C++, C#, Java, Python
- Online profile: https://www.linkedin.com/in/hoang-nguyen-huy-3b89551b2/
PHẢN BIỆN MÔN HỌC: Nguyễn Bình Minh
- Nghiên cứu viên, Viện công nghệ Toyota (Toyota Technological Institute)
- Tiến sỹ chuyên ngành Năng lượng tiên tiến, Đại học Tokyo
- Thạc sĩ chuyên ngành Kỹ thuật điện, Đại học Tokyo
- Lĩnh vực nghiên cứu: Lý thuyết điều khiển, điều khiển chuyển động, hệ thống đa tác tử, ô-tô điện
- Dự án chính: Điều khiển chuyển động ô-tô điện, Điều khiển máy cắm chip sử dụng camera, Điều khiển chuỗi cung ứng,....
PHẢN BIỆN MÔN HỌC: Khuất Đức Anh
- Quản lý và giảng viên khoa Điện cơ điện tử - Đại học Phương Đông
- Giảng viên học viện Mạng phần cứng FPT Jetking Hà Nội
- Bộ môn chuyên trách: Thực hành điện, điện tử, cơ điện tử, tự động hóa, robot và lập trình gia công chính xác trên máy CNC
- Lĩnh vực chuyên môn: Lập trình C/C++ cho vi điều khiển AVR 8051 ARM ARDUINO, Java Desktop; các phần mềm hỗ thiết kế mạch, giả lập mạch điện tử số vi điều khiển, phần mềm hỗ trợ chuyên ngành cơ khí
NGUỒN HỌC LIỆU
Trong thời đại hiện nay, mỗi môn học đều có nhiều nguồn tài liệu liên quan kể cả sách in và online, FUNiX Way không quy định một nguồn học liệu cụ thể mà khuyến cáo để học viên chọn được nguồn phù hợp nhất cho mình. Trong quá trình học từ nhiều nguồn khác nhau theo lựa chọn cá nhân đó, khi sinh viên phát sinh câu hỏi thì sẽ được kết nối nhanh nhất với mentor để được giải đáp. Toàn bộ phần đánh giá bao gồm các câu hỏi trắc nghiệm, bài tập, dự án và thi vấn đáp do FUNiX thiết kế, xây dựng và thực hiện.
Các môn học của FUNiX không quy định bắt buộc tài liệu học tập, sinh viên có thể chủ động tìm và học từ bất kỳ nguồn nào phù hợp, kể cả sách in hay nguồn học liệu online (MOOC) hay các website. Việc sử dụng các nguồn đó do học viên chịu trách nghiệm và đảm bảo tuân thủ các chính sách của chủ sở hữu nguồn, trừ trường hợp họ có sự hợp tác chính thức với FUNiX. Nếu cần hỗ trợ, học viên có thể liên hệ phòng đào tạo FUNiX để được hướng dẫn.
Dưới đây là một số nguồn học liệu của môn học mà học viên có thể tham khảo sử dụng. Việc liệt kê nguồn dưới đây không nhất thiết hàm ý rằng FUNiX có sự hợp tác chính thức với chủ sở hữu của nguồn: Coursera, tutorialspoint, edX Training, or Udemy.
KÊNH PHẢN HỒI
FUNiX sẵn sàng đón nhận và trao đổi về mọi ý kiến góp ý, phản hồi liên quan đến học liệu qua email program@funix.edu.vn