Nền tảng Lập trình với C#
24 học viên đã ghi danh
Khóa học "Nền tảng Lập trình với C#" giúp bạn xây dựng tư duy lập trình vững chắc và làm chủ ngôn ngữ C# từ con số 0 — nền tảng bắt buộc trước khi bước vào các lĩnh vực nâng cao như phát triển game, ứng dụng hay web.
Qua khóa học, bạn sẽ:
Hình thành tư duy lập trình và làm quen cú pháp C# căn bản: biến, kiểu dữ liệu, toán tử
Sử dụng thành thạo câu lệnh điều kiện, câu lệnh lặp để xử lý logic chương trình
Thao tác với mảng, xây dựng hàm và phương thức tái sử dụng
Nắm vững lập trình hướng đối tượng (OOP): Lớp, Đối tượng, Kế thừa, Composition, Polymorphism
Sử dụng thành thạo List và Dictionary để quản lý tập hợp dữ liệu
Xử lý ngoại lệ và debug chương trình chuyên nghiệp
Đọc/ghi file và Serialization dữ liệu
Kết thúc khóa học, bạn thực hành dự án cá nhân để áp dụng toàn bộ kiến thức đã học vào một chương trình hoàn chỉnh.
Nội dung khóa học
Default Module
14 bài học · 277 hoạt động-
Đề cương môn học
-
[Bài giảng] Cài Visual Studio
-
[Bài giảng] Cài Visual Studio Code
-
[Bài giảng] Cài dặt Unity Hub
-
[Bài giảng] Game demo
-
[Bài đọc] Các bước lập trình để giải quyết vấn đề
-
[Bài đọc] Pseudo-code và flowchart
-
[File] Hướng dẫn sử dụng draw.io để vẽ flowchart
-
[Thực hành] Thuật toán chuyển đổi nhiệt độ
-
[Thực hành] Thuật toán game đoán số
-
[Bài tập] Mô tả thuật toán tính điểm trung bình
-
[Bài tập] Mô tả thuật toán có cấu trúc điều kiện
-
[Bài tập] Mô tả thuật toán tìm giá trị lớn nhất trong một dãy số
-
[Quiz] Nhập môn tư duy lập trình
-
[Bài giảng] Khái niệm biến
-
[Bài giảng] Khái niệm Hằng số
-
[Bài giảng] Kiểu dữ liệu
-
[Bài giảng] Toán tử số học
-
[Bài giảng] Toán tử so sánh
-
[Bài giảng] Toán tử gán
-
[Bài giảng] Bài thực hành 1 - Chuyển đôi tiền tệ
-
[Bài giảng] Bài thưc hành 2 - Tính tổng 2 số
-
[Bài giảng] Bài thực hành 3 - Tính chu vi và diện tích HCN
-
[Bài giảng] Bài thực hành 4 - Tính tuổi
-
[Bài giảng] Bài thực hành 5 - Tìm số lớn nhất
-
[Bài đọc] Giới thiệu ngôn ngữ lập trình C#
-
[Bài đọc] Kiểu dữ liệu
-
[Bài đọc] Các toán tử (phép toán)
-
[Thực hành] Hiển thị thời gian của hệ thống
-
[Thực hành] Sử dụng toán tử
-
[Thực hành] Khai báo và sử dụng biến
-
[Bài tập] Hiển thị lời chào
-
[Bài tập] Ứng dụng chuyển đổi tiền tệ
-
[Quiz] Biến, kiểu dữ liệu và toán tử
-
[Dialogue] Giới thiệu ngôn ngữ lập trình C#
-
[Dialogue] Biến và kiểu dữ liệu cơ bản trong C#, và từ khóa var
-
[Code Inspection] Phát hiện lỗi chọn sai kiểu dữ liệu và hiểu sai bản chất var
-
[Dialogue] Kiểu decimal cho tính toán tiền tệ, và các toán tử cơ bản
-
[Code Inspection] Soát lỗi ứng dụng chuyển đổi tiền tệ
-
[Bài giảng] Lý thuyết cấu trúc điều kiện if...else
-
[Bài giảng] Lý thuyết if lồng nhau
-
[Bài giảng] Lý thuyết if bậc thang
-
[Bài giảng] Lý thuyết switch case
-
[Bài giảng] So sánh if và switch case
-
[Bài giảng] Thực hành giải phương trình bậc 1
-
[Bài giảng] Thực hành giải phương trình bậc 2
-
[Bài giảng] Thực hành tính chỉ số BMI
-
[Bài đọc] Câu lệnh điều kiện if
-
[Bài đọc] Câu lệnh điều kiện switch-case
-
[Thực hành] Giải phương trình bậc nhất
-
[Thực hành] Tính chỉ số cân nặng của cơ thể
-
[Thực hành] Kiểm tra năm nhuận
-
[Thực hành] Tính số ngày trong tháng
-
[Thực hành] Debug ứng dụng C#
-
[Bài tập] Ứng dụng đọc số thành chữ
-
[Bài giảng] Bài tập kiểm tra số nguyên tố
-
[Bài giảng] Bài tập tìm ước chung lớn nhất
-
[Bài giảng] Bài tập hiển thị 20 số nguyên tố đầu tiên
-
[Bài giảng] chương trình hiển thị số nguyên tố trong Unity
-
[Bài giảng] Bài tập hiển thị thời gian bằng Unity (Phần 1)
-
[Bài giảng] Bài tập hiển thị thời gian bằng Unity (Phần 2)
-
[Bài giảng] Bài tập đếm ngược thời gian bằng Unity (Phần 1)
-
[Bài giảng] Bài tập đếm ngược thời gian bằng Unity (Phần 2)
-
[Bài giảng] Bài tập đếm ngược thời gian bằng Unity (Phần 3)
-
[Quiz] Câu lệnh điều kiện
-
[Dialogue] Câu lệnh if, if-else, if-else if-else trong C#
-
[Code Inspection] Phát hiện lỗi thứ tự điều kiện BMI và lỗi chia cho 0 khi giải phương trình bậc nhất
-
[Dialogue] Switch-case trong C# - điểm khác biệt quan trọng với C++
-
[Code Inspection] Phát hiện lỗi cố tình bỏ Break và đối chiếu Case rỗng gộp chung hợp lệ
-
[Code Inspection] Debug ứng dụng C# tổng hợp If và Switch-Case
-
[Bài giảng] Lý thuyết vòng lặp for
-
[Bài giảng] Lý thuyết vòng lặp while
-
[Bài giảng] Lý thuyết vòng lặp do...while
-
[Bài giảng] Lý thuyết vòng lặp foreach
-
[Bài giảng] Câu lệnh break
-
[Bài giảng] Câu lệnh continue
-
[Bài giảng] Thực hành vòng lặp for - Tính tổng từ 1 - 100
-
[Bài giảng] Thực hành vòng lặp for - in ra sỗ chẵn từ 2-40
-
[Bài giảng] Thực hành vòng lặp while - In số từ 1 - 30
-
[Bài giảng] Thưc hành vòng lặp while - In tổng từ số 1-100
-
[Bài giảng] Thực hành vòng lặp while - Nhập số từ bàn phím
-
[Bài giảng] Thực hành vòng lặp do...while - Tính tổng từ 1-100
-
[Bài giảng] Thực hành vòng lặp do...while - In ra số chẵn từ 2-40
-
[Bài giảng] Thực hành duyệt mảng dữ liệu bằng foreach
-
[Bài đọc] Các câu lệnh lặp trong C#
-
[Thực hành] Ứng dụng tính tiền lãi cho vay
-
[Bài tập] Hiển thị các loại hình
-
[Bài tập] Hiển thị các số nguyên tố nhỏ hơn 100
-
[Thực hành] Thiết kế menu cho ứng dụng
-
[Thực hành] Kiểm tra số nguyên tố
-
[Thực hành] Tìm ước số chung lớn nhất
-
[Thực hành] Debug ứng dụng C#
-
[Bài tập] Hiển thị 20 số nguyên tố đầu tiên
-
[Quiz] Câu lệnh lặp
-
[Dialogue] For, While, Do-While trong C#
-
[Code Inspection] Phát hiện lỗi Off-by-one khi tính lãi vay và lỗi lặp vô hạn
-
[Dialogue] Foreach - duyệt Collection không cần chỉ số
-
[Code Inspection] Phát hiện lỗi cố sửa đổi biến lặp trong Foreach
-
[Code Inspection] Kiểm tra số nguyên tố: vòng lặp lồng nhau, Break, và phân biệt For với While
-
[Bài giảng] Mảng
-
[Bài giảng] Phần tử và chỉ số của mảng
-
[Bài giảng] Truy xuất phần tử trong Mảng
-
[Bài giảng] Vòng lặp foreach
-
[Bài giảng] Duyệt mảng bằng vòng lặp for
-
[Bài giảng] Sự khác nhau giữa for và foreach
-
[Bài giảng] Các hàm có sẵn trong C# khi làm việc với Mảng
-
[Bài giảng] List
-
[Bài giảng] Thực hành tính tổng các phần tử trong Mảng
-
[Bài giảng] Thực hành nhập và in ra mảng vừa nhập
-
[Bài đọc] Mảng một chiều
-
[Thực hành] Tính tổng các phần tử của mảng
-
[Thực hành] Tìm giá trị trong mảng
-
[Thực hành] Tìm giá trị lớn nhất trong mảng
-
[Bài tập] Thêm phần tử vào mảng
-
[Bài giảng] Mảng hai chiều và mảng đa chiều
-
[Bài giảng] Phần tử và chỉ số mảng hai chiều
-
[Bài giảng] Duyệt mảng đa chiều
-
[Bài giảng] Khởi tạo giá trị ngẫu nhiên cho mảng đa chiều
-
[Bài giảng] Thực hành tạo trò chơi Mind Sweeper
-
[Bài giảng] Thực hành tạo ma trận và tính tổng
-
[Bài giảng] Thực hành tính tổng hàng của ma trận
-
[Bài đọc] Mảng nhiều chiều
-
[*Thực hành] Mảng hai chiều – tạo bản đồ trò chơi MineSweeper
-
[Bài tập] Tìm phần tử lớn nhất trong mảng hai chiều
-
[Bài tập] Mảng hai chiều - tính tổng các số ở đường chéo chính của ma trận vuông
-
[Quiz] Mảng trong C#
-
[Dialogue] Khai báo và khởi tạo mảng 1 chiều trong C#
-
[Code Inspection] Phát hiện lỗi cú pháp khai báo kiểu C++ và lỗi tìm Max khởi tạo sai
-
[Dialogue] Mảng có kích thước cố định - vì sao "thêm phần tử vào mảng" cần tạo mảng mới
-
[Dialogue] Mảng đa chiều - Rectangular Array và Jagged Array
-
[Code Inspection] Tính tổng đường chéo chính của ma trận vuông, và bẫy lỗi cú pháp mảng đa chiều
-
[Bài giảng] Khái niệm và cấu trúc của phương thức
-
[Bài giảng] Ví dụ về phương thức
-
[Bài giảng] Kiểu dữ liệu trả về của hàm
-
[Bài giảng] Tham trị và tham chiếu
-
[Bài giảng] Tham số và đối số
-
[Bài giảng] Sử dụng Github Copilot để tạo hàm
-
[Bài giảng] Dictionary trong Unity
-
[Bài giảng] List trong Unity
-
[Bài giảng] Thực hành viết hàm trong Unity
-
[Bài giảng] Ví dụ về C# trong Unity
-
[Bài giảng] Kỹ thuật set thời gian chạy trong C#
-
[Bài đọc] Phương thức
-
[Bài đọc] Định nghĩa phương thức
-
[Bài đọc] Gọi phương thức
-
[Bài đọc] Phương thức không có kiểu dữ liệu trả về (void method)
-
[Bài đọc] Truyền tham trị và tham chiếu trong C#
-
[Thực hành] Chương trình chuyển đổi nhiệt độ
-
[Thực hành] Tìm giá trị nhỏ nhất trong mảng sử dụng phương thức
-
[Bài tập] Viết phương thức xoá phần tử khỏi mảng
-
[Bài tập] Viết phương thức đếm số lần xuất hiện của ký tự trong chuỗi
-
[Quiz] Hàm và Phương thức trong C#
-
[Dialogue] Định nghĩa và gọi phương thức trong C#
-
[Code Inspection] Phát hiện lỗi cố gán kết quả của Void Method vào biến
-
[Dialogue] Truyền tham trị (mặc định) trong C# - vì sao Swap không đổi được biến gốc
-
[Code Inspection] Phát hiện lỗi quên viết ref ở Lời gọi phương thức
-
[Code Inspection] Viết phương thức xóa phần tử khỏi mảng
-
[Bài giảng] Lớp, thuộc tính và phương thức
-
[Bài giảng] Khái niệm về lập trình hướng đối tượng
-
[Bài giảng] Lớp và đối tượng
-
[Bài giảng] Ví dụ tạo lớp hình tròn
-
[Bài giảng] Phương thức
-
[Bài giảng] Từ khoá this
-
[Bài giảng] Thực hành tạo lớp và đối tượng
-
[Bài giảng] Hàm constructor
-
[Bài giảng] Namespace
-
[Bài giảng] Đặc tả truy xuất
-
[Bài giảng] Tính chất đóng gói
-
[Bài giảng] Truyền tham trị và tham chiếu
-
[Bài giảng] Thực hành tạo lớp trong C#
-
[Bài giảng] Từ khoá static
-
[Bài giảng] Ví dụ về từ khoá static
-
[Bài giảng] Thực hành tạo lớp Animal
-
[Bài đọc] Lập trình hướng đối tượng với C#
-
[Bài đọc] Định nghĩa lớp
-
[Bài đọc] Ví dụ về định nghĩa lớp và tạo đối tượng
-
[Bài đọc] Truy cập đối tượng qua biến tham chiếu
-
[Bài đọc] Access modifier
-
[Bài đọc] Từ khóa this
-
[Bài đọc] Property & Các phương thức getter/setter
-
[Bài đọc] Từ khoá static trong C#
-
[Thực hành] Lớp hình chữ nhật
-
[Thực hành] Xây dựng class Animal
-
[Thực hành] Static Method
-
[Bài tập] Xây dựng lớp Fan
-
[Bài tập] Xây dựng lớp StopWatch
-
[Quiz] Lớp và Đối tượng
-
[Dialogue] Biến tham chiếu - Object là Reference Type
-
[Code Inspection] Phát hiện lỗi tưởng gán Object là Copy giá trị, thực chất Copy tham chiếu
-
[Dialogue] Property và getter/setter kiểu C#
-
[Code Inspection] Phát hiện lỗi Property có Set nhưng không kiểm tra điều kiện hợp lệ
-
[Code Inspection] Static Field đếm số lượng Object đã tạo (bài StopWatch)
-
[Bài giảng] Ví dụ về kế thừa
-
[Bài giảng] Ghi đè - overriding
-
[Bài giảng] Từ khoá base
-
[Bài giảng] Từ khoá super
-
[Bài giảng] Phương thức toString()
-
[Bài đọc] Kế thừa
-
[Bài đọc] Kế thừa ngầm định
-
[Bài đọc] Kế thừa và quan hệ “is a”
-
[Bài đọc] Thiết kế lớp cơ sở (base class) và lớp dẫn xuất (derived classes)
-
[Bài đọc] Overriding và Overloading
-
[Bài đọc] Đa hình
-
[Thực hành] Hệ các đối tượng hình học
-
[Bài tập] Lớp Circle và lớp Cylinder
-
[Bài tập] lớp Point2D và lớp Point3D
-
[Quiz] Interritance & Composition
-
[Dialogue] Abstract Class và Interface - điểm giống, khác, và khi nào dùng cái nào
-
[Code Inspection] Phát hiện lỗi new Abstract Class và thiếu triển khai đủ Method của Interface
-
[Dialogue] IComparable<T> - tự định nghĩa cách so sánh với chính nó
-
[Code Inspection] Phát hiện lỗi quên Implement IComparable gây lỗi Runtime khi gọi Sort()
-
[Code Inspection] Phân biệt IComparable và IComparer khi cần sắp xếp theo nhiều tiêu chí
-
[Bài giảng] Đa hình
-
[Bài đọc] Lớp trừu tượng và phương thức trừu tượng
-
[Bài đọc] Interface trong C#
-
[Thực hành] lớp Animal và interface Edible
-
[Thực hành] triển khai interface ‘IComparable’ cho các lớp hình học
-
[Thực hành] triển khai interface ‘IComparer’ để so sánh cách lớp hình học
-
[Bài tập ] Triển khai interface ‘Resizeable’ cho các lớp hình học
-
[Bài tập] Triển khai interface ‘IColorable’ cho các lớp hình học
-
[Quiz] Abstract Class & Interface
-
[Dialogue] Abstract Class và Interface - điểm giống, khác, và khi nào dùng cái nào
-
[Code Inspection] Phát hiện lỗi new Abstract Class và thiếu triển khai đủ Method của Interface
-
[Dialogue] IComparable<T> - tự định nghĩa cách so sánh với chính nó
-
[Code Inspection] Phát hiện lỗi quên Implement IComparable gây lỗi Runtime khi gọi Sort()
-
[Code Inspection] Phân biệt IComparable và IComparer khi cần sắp xếp theo nhiều tiêu chí
-
[Bài đọc] List<T> - Khái niệm và cú pháp khai báo
-
[Dialogue] Thảo luận/vấn đáp về List<T>
-
[Bài đọc] Dictionary<K,V> – Khái niệm và cú pháp khai báo
-
[Dialogue] Thảo luận/vấn đáp về Dictionary<K,V>
-
[Thực hành] Xử lý tập hợp dữ liệu với List
-
[Thực hành] Lưu trữ và truy xuất dữ liệu theo khóa với Dictionary
-
[Code Inspection] Review code List
-
[Code Inspection] Review code Dictionary
-
[Bài giảng] Xử lý ngoại lệ
-
[Bài giảng] try/ catch
-
[Bài giảng] Ví dụ vể try - catch
-
[Bài giảng] Lớp IndexOutOfRangeException
-
[Bài giảng] Xử lý đa ngoại lệ
-
[Bài đọc] Khối Try/catch
-
[Bài đọc] Errors và exceptions
-
[Bài đọc] Errors và exceptions
-
[Bài đọc] Khối Try/catch
-
[Thực hành] Sử dụng lớp IndexOutOfRangeException
-
[Quiz] Xử lý ngoại lệ & Debug
-
[Dialogue] Exception là gì và cú pháp try/catch cơ bản
-
[Code Inspection] Phát hiện lỗi thiếu Try/Catch cho input người dùng, gây crash IndexOutOfRangeException
-
[Dialogue] Xử lý đa ngoại lệ - nhiều khối Catch cho nhiều loại Exception
-
[Code Inspection] Bẫy lỗi quan trọng nhất - Đặt sai thứ tự Catch (Tổng quát trước Cụ thể)
-
[Code Inspection] Chương trình đọc điểm theo Input, tổng hợp Try/Catch đa lớp và Finally
-
[Bài giảng] Xử lý File (Phần 1)
-
[Bài giảng] Xử lý File (Phần 2)
-
[Bài giảng] Lớp system.io
-
[Bài giảng] Serialization và Deserialization
-
[Bài giảng] Tính tổng các số trong file text
-
[Bài giảng] Tuần tự hoá trong Unity
-
[Bài giảng] Chương trình save game và load game trong Unity
-
[Bài đọc] Sử dụng lớp File và FileInfo để xử lý file
-
[Bài đọc] Sử dụng lớp Directory và DirectoryInfo để xử lý thư mục
-
[Bài đọc] System.IO Namespace
-
[Bài đọc] Serialization và Deserialization trong C#
-
[Thực hành] Tính tổng các số trong file text
-
[Thực hành] Copy các file có dung lượng lớn
-
[Thực hành] Đọc ghi file XML
-
[Bài tập] Đọc file .csv
-
[Bài tập] Quản lý sản phẩm lưu ra file nhị phân
-
[Quiz] File & Serialization
-
[Dialogue] File và FileInfo - khi nào dùng Static Class, khi nào dùng Instance Class
-
[Code Inspection] Phát hiện lỗi dùng File (static) lặp lại thay vì FileInfo khi Copy File lớn
-
[Dialogue] Đọc/ghi File Text - StreamReader/StreamWriter và vì sao phải đóng Stream
-
[Code Inspection] Bẫy lỗi quan trọng nhất - Quên đóng Stream gây khóa File
-
[Code Inspection] Quản lý sản phẩm lưu ra File nhị phân, bẫy lỗi quên [Serializable]
-
[Bài giảng] Xây dựng game Rắn săn mồi (Phần 1)
-
[Bài giảng] Xây dựng game Rắn săn mồi (Phần 2)
-
[Bài giảng] Xây dựng game Rắn săn mồi (Phần 3)
-
[Bài giảng] Xây dựng game Rắn săn mồi (Phần 4)
-
[Bài giảng] Xây dựng game Rắn săn mồi (Phần 5)