Lộ Trình Học Tập & Theo Dõi Tiến Độ

Bảng điều khiển học tập cá nhân (Dữ liệu tiến độ được lưu trực tiếp trên trình duyệt của bạn)

WEB101x_2.2-A_VN
Xây dựng Website đầu tiên

Resume Course

Mở đầu

  • Giới thiệu môn học
  • Hình thức đánh giá
  • Chuẩn bị học tập

Phần 1. HTML cơ bản

  • Giới thiệu phần 1
  • Bài 1. Giới thiệu về lập trình web Video (3) Lab (1) Quiz 1 📝
  • Bài 2. Giới thiệu về HTML Quiz 📝
  • Bài 3. Các thẻ HTML phổ biến Quiz 📝
  • Tổng kết phần 1
  • Chia sẻ của học viên về nội dung phần 1
  • Slide tổng kết: Lập trình web với HTML

Phần 2. CSS cơ bản

  • Giới thiệu phần 2
  • Bài 4. Giới thiệu về CSS (Phần 1) Quiz 📝
  • Bài 5. Giới thiệu về CSS (Phần 2) Quiz 📝
  • Bài 6. Giới thiệu về CSS (Phần 3) Quiz 📝
  • Bài 7. Giới thiệu về CSS (Phần 4) & các kỹ năng quan trọng của một Developer Quiz 📝
  • Tổng kết phần 2
  • Assignment 01: Xây dựng trang Digital CV Assignment 💻
  • Slide tổng kết: Làm chủ giao diện Web với CSS: Styling, Box Model & Positioning
  • Chia sẻ của học viên về nội dung phần 2

Phần 3. Layout (sắp đặt) cho website của bạn

  • Giới thiệu phần 3
  • Bài 8. Layout cơ bản Quiz 📝
  • Bài 9. Xây dựng layout với CSS Flex-box Quiz 📝
  • Bài 10. Xây dựng layout với CSS Grid Quiz 📝
  • Tổng kết phần 3
  • Assignment 02: Xây dựng website cá nhân Assignment 💻
  • Slide tổng kết: Làm chủ Layout: Từ Float truyền thống đến Flexbox & CSS Grid hiện đại
  • Chia sẻ của học viên về nội dung phần 3

Phần 4. Xây dựng web responsive - Đưa website lên mạng

  • Giới thiệu phần 4
  • Bài 11. Responsive Web Design Quiz 📝
  • Bài 12. Thư viện Bootstrap Quiz 📝
  • Bài 13. Đưa trang web lên mạng Quiz 📝
  • Slide tổng kết: CSS Responsive, Thư viện Bootstrap và Triển khai Website
  • Tổng kết phần 4
  • Chia sẻ của học viên về nội dung phần 4

Phần 5. JavaScript cơ bản

  • Giới thiệu phần 5
  • Bài 14. Làm quen với JavaScript Quiz 📝
  • Bài 15. Toán tử Quiz 📝
  • Bài 16. Boolean và câu lệnh có điều kiện Quiz 📝
  • Bài 17. Hàm và mảng Quiz 📝
  • Bài 18. Object và vòng lặp Quiz 📝
  • Slide tổng kết: JavaScript Fundamentals: Từ biến đến cấu trúc dữ liệu
  • Bài 19. DOM and Event - Phần 1 Quiz 📝
  • Bài 20. DOM and Event - Phần 2 Quiz 📝
  • Tổng kết phần 5
  • Assignment 03: Thiết kế và triển khai một website hoàn chỉnh Assignment 💻
  • Slide tổng kết: Thao tác DOM và Xử lý Sự kiện (Events)
  • Chia sẻ của học viên về nội dung phần 5

Kết thúc khóa học

  • Nội dung chia sẻ từ học viên
  • Nguồn học liệu và tài liệu đọc thêm
  • Khảo sát đánh giá môn học dành cho học viên
🎉 Chúc mừng hoàn thành khóa học! 🎉

Mục tiêu môn học & Course Learning Outcomes (CLO)

Mục tiêu môn học CLO
Nắm bắt và vận dụng các thẻ HTML cơ bản WEB101x_o1: Hiểu được tổng quan về lập trình Web
WEB101x_o2: Cài đặt và thiết lập được các công cụ để lập trình Web
WEB101x_o3: Hiểu được khái niệm về HTML, cách viết các đoạn mã HTML
WEB101x_o4: Vận dụng được các thẻ HTML cơ bản về Text, List, Image, ...
WEB101x_o5: Biết cách thay đổi các thuộc tính cho thẻ HTML
Nắm bắt và vận dụng các thuộc tính CSS cơ bản WEB101x_o6: Hiểu được khái niệm về CSS, cách viết các đoạn mã CSS
WEB101x_o7: Phân biệt được Inline CSS, Internal CSS và External CSS
WEB101x_o8: Vận dụng được các CSS Selector khác nhau
WEB101x_o9: Phân biệt được Class và ID
WEB101x_o10: Sử dụng được các thuộc tính CSS cơ bản về text, color, ...
WEB101x_o11: Nắm được cơ chế ghi đè và kế thừa trong CSS
WEB101x_o12: Vận dụng được các thuộc tính CSS liên quan đến Box Model
WEB101x_o13: Hiểu được cách sử dụng Relative Position bằng CSS
Xây dựng được layout cho Website WEB101x_o14: Nắm được về Layout, một số cách để tạo Layout
WEB101x_o15: Sử dụng được thuộc tính float và clear để tạo Layout cơ bản
WEB101x_o16: Tạo được Flex Box Layout
WEB101x_o17: Tạo được Grid Layout
Nắm bắt và vận dụng cơ bản JavaScript trong xây dựng Website WEB101x_o22: Hiểu khái niệm tổng quan, vai trò của ngôn ngữ Javascript
WEB101x_o23: Hiểu khái niệm về biến và các kiểu dữ liệu trong JavaScript. Các kiểu dữ liệu gồm: number, string, boolean, undefined, null, symbol, bigint
WEB101x_o24: Biết cách khai báo biến, phân biệt giữa let, const và var
WEB101x_o25: Vận dụng được các toán tử cơ bản, độ ưu tiên giữa các toán tử
WEB101x_o26: Nắm cơ bản về các toán tử, biểu thức điều kiện, toán tử ba ngôi, logic
WEB101x_o27: Nắm được cơ bản về vòng lặp, câu lệnh điều kiện
WEB101x_o28: Hiểu được cơ bản về mảng, đối tượng. Các phép toán với mảng
WEB101x_o29: Hiểu được hàm, tạo hàm với cú pháp thường và với cú pháp arrow function
WEB101x_o30: Nắm được kiến thức cơ bản về DOM, thao tác cơ bản với DOM
WEB101x_o31: Nắm được cách sử dụng DOM event
Xây dựng được Website Responsive WEB101x_o18: Hiểu được khái niệm và ý nghĩa của việc xây dựng Responsive Website
WEB101x_o19: Sử dụng @media query để xây dựng Responsive Website
WEB101x_o20: Hiểu và vận dụng được các thành phần trong Bootstrap để xây dựng Website
Đưa được Website lên online WEB101x_o21: Đưa được Website lên Online

Phân tích Backward Design (UbD) ứng dụng AI

Từ Market-driven Skills đến Learning Plan

Triết lý thiết kế (Market-driven Backward Design)

Bản chất của toàn bộ quy trình này dựa trên Understanding by Design (UbD) kết hợp với sức mạnh của AI trong bối cảnh kinh tế lao động hiện đại:

  • Giai đoạn 1 (Desired Results): AI quét thị trường tuyển dụng (Skill Taxonomies) -> Định hình CLOs sát với nhu cầu doanh nghiệp.
  • Giai đoạn 2 (Assessment Evidence): Thiết kế các Task/Mini-project để đánh giá chính xác các Skill Gaps đó trước khi viết bài giảng.
  • Giai đoạn 3 (Learning Plan): Cung cấp Nội dung học (Just-in-time learning) và nhận diện Bẫy kiến thức để sinh viên vượt qua task thành công.
Nhóm CLO (Desired Results) Task Đánh Giá (Assessment Evidence) Skill Taxonomy (Thị trường việc làm) Nội dung học & Bẫy kiến thức (Learning Plan)
1. Khung xương HTML
(CLO 1-5: Thẻ HTML, Text, List, Image)
Xây dựng bộ khung xương (wireframe markup) cho trang CV cá nhân, đảm bảo tính cấu trúc và Semantic. HTML5 Semantic Structuring

Web Accessibility (a11y)
Nội dung: Phân biệt block vs inline, các thẻ cơ bản.
🚨 Bẫy: Lạm dụng thẻ <div> thay vì dùng các thẻ ngữ nghĩa (Semantic tags như <header>, <main>). Quên thuộc tính alt cho ảnh gây lỗi Accessibility.
2. Trang điểm bằng CSS
(CLO 6-13: CSS Selectors, Box Model, Position)
Tạo file CSS chuyên biệt để "trang điểm" cho trang CV: thiết lập khoảng cách, định dạng text, màu sắc. CSS3 Styling

Box Model Architecture

CSS Specificity
Nội dung: Margin/Padding, Box-sizing, Selector Specificity.
🚨 Bẫy: Không hiểu cơ chế box-sizing (content-box vs border-box) dẫn đến vỡ layout khi thêm padding. Lạm dụng !important để ghi đè style khiến code khó maintain.
3. Kiến trúc Layout
(CLO 14-17: Float, Flexbox, Grid)
Dàn trang hoàn chỉnh cho website thành nhiều cột, header/footer cố định và nội dung chia mảng rõ ràng. CSS Flexbox

CSS Grid Layout

UI Structuring
Nội dung: Flexbox (dàn trang 1D) vs Grid (dàn trang 2D).
🚨 Bẫy: Cố gắng dùng Flexbox ép để giải quyết bài toán Grid (layout 2D phức tạp). Hoặc lạm dụng Float (công nghệ cũ) để chia cột thay vì dùng các Layout hệ mới.
4. Thổi hồn với JavaScript
(CLO 22-31: DOM, Events, Variables, Loops)
Viết script xử lý logic form liên hệ, tạo hiệu ứng accordion/tab động, validate dữ liệu đầu vào. Vanilla JavaScript

DOM Manipulation

Event Handling
Nội dung: let/const/var, vòng lặp, tương tác cây DOM, Arrow functions.
🚨 Bẫy: Không hiểu scope của var dẫn đến lỗi rò rỉ biến (hoisting). Quên preventDefault() khi submit form. Gắn quá nhiều Event Listener rời rạc gây phình bộ nhớ.
5. Website Responsive
(CLO 18-20: Media Query, Bootstrap)
Tối ưu hóa hiển thị website hoàn hảo trên mọi kích thước màn hình (Mobile, Tablet, PC) dùng hệ thống lưới Bootstrap. Mobile-First Design

Responsive Web Design

CSS Frameworks
Nội dung: Triết lý Mobile-first, Hệ thống lưới 12 cột, Breakpoints.
🚨 Bẫy: Code theo tư duy Desktop-first rồi mới vá lỗi cho mobile. Ghi đè class mặc định của Bootstrap thủ công phá vỡ tính nhất quán của framework.
6. Đưa sản phẩm lên Online
(CLO 21: Online Deployment)
Đẩy mã nguồn lên GitHub Repository và cấu hình GitHub Pages để xuất bản website lên Internet. Git & GitHub Basics

Static Site Hosting

Deployment
Nội dung: Vòng đời Git (add, commit, push), cấu hình branch cho Pages.
🚨 Bẫy: Đặt sai tên file trang chủ (vd: Index.html, INDEX.HTML) khiến server từ chối hiển thị. Push các thông tin nhạy cảm lên repository công khai.

Nội dung

Video 1: Tổng quan về Web Development

Xem video bài giảng trên Udemy

Nội dung bài học (Learning Plan)

  • Cơ chế Web: Trình duyệt (Client) gửi Request, Máy chủ (Server) trả về Response (chứa file HTML, CSS, JS).
  • Phân biệt Front-end (hiển thị, UI) và Back-end (xử lý logic, database).
  • Phân biệt Static Web (trang tĩnh, file có sẵn) vs Dynamic Web (trang động, server sinh ra mỗi lần truy cập).
  • Vai trò cốt lõi: HTML (Danh từ - Cấu trúc), CSS (Tính từ - Trang trí), JS (Động từ - Tương tác).

Bẫy kiến thức (Cognitive Traps)

  • 🚨 Hiểu sai về "Web động": Người mới thường nghĩ web có hiệu ứng bay lượn (animation) là web động. Thực chất, tính "động" (Dynamic) ở đây nói về kiến trúc Server (dữ liệu lấy từ Database) chứ không phải hiệu ứng hình ảnh (dùng CSS/JS ở Front-end).
  • 🚨 Ảo tưởng sức mạnh Front-end: Nghĩ rằng chỉ cần học HTML/CSS là có thể xây dựng được các hệ thống lớn như Udemy, Shopee (thiếu back-end/database).

Suy ngược UbD (Backward Design Mapping)

Mục tiêu (CLO):
WEB101x_o1: Hiểu được tổng quan về lập trình Web (Cấu trúc Client/Server, Static/Dynamic).
Skill Taxonomy:
Web Architecture Client-Server Communication
Task Đánh Giá:
  • Bài tập tình huống: Khách hàng muốn làm một trang Portfolio cá nhân, bạn tư vấn làm Web tĩnh hay Web động? Tại sao?
  • Bài tập phân loại: Kéo thả các công nghệ (HTML, Python, CSS, Node.js, JS) vào 2 nhóm Front-end và Back-end.

Nội dung

Video 1: Giới thiệu về HTML

Xem video bài giảng trên Udemy

Chú giải của giáo viên

  • (0:00) Giới thiệu về HTML
  • (2:00) Cấu trúc 1 block của HTML với tags và contents
    • Trong tài liệu HTML, mỗi phần tử hay mỗi tag được gọi là một element.
    • Cấu trúc chung cơ bản của một element gồm phần nội dung (content) được đặt trong khối thẻ bắt đầu (opening tag) và thẻ kết thúc (closing tag).

Nội dung bài học (Learning Plan)

  • Khái niệm HTML: HyperText Markup Language (Ngôn ngữ đánh dấu siêu văn bản).
  • Vai trò: Dùng để cấu trúc và mô tả toàn bộ nội dung của trang web.
  • Cấu trúc Element: Thẻ mở (Opening tag), Nội dung (Content), Thẻ đóng (Closing tag).
  • Đặc lệ: Một số thẻ không có nội dung (như ảnh) thì bỏ qua thẻ đóng.

Bẫy kiến thức (Cognitive Traps)

  • 🚨 Nhầm lẫn khái niệm lập trình: Người mới thường gọi HTML là ngôn ngữ lập trình. Thực chất, nó chỉ là ngôn ngữ đánh dấu, không có tính logic (như vòng lặp for, if/else).
  • 🚨 Quên thẻ đóng: Lỗi kinh điển nhất là mở thẻ (VD: <p>) nhưng quên đóng lại, khiến trình duyệt hiểu lầm toàn bộ phần tử phía sau đều thuộc về đoạn văn đó.

Suy ngược UbD (Backward Design Mapping)

Mục tiêu (CLO):
WEB101x_o1: Hiểu được cấu trúc cơ bản của một tài liệu HTML và một phần tử HTML.
Bài tập (Task):
Trắc nghiệm xác định đúng cấu trúc và bản chất của một phần tử HTML.
Phân loại Bloom:
HIỂU (UNDERSTAND)