CS50X Harvard
CS50's Introduction to Computer Science
200+ Learners
|
Học trực tiếp cùng với Minh
Một cộng đồng lớn và liên tục phát triển
Học cùng với
200+
học viên trực tuyến
Thực hành tất cả mọi lúc với sự hỗ trợ liên tục
Bài tập thực hành
Tham gia các bài tập thực hành tương tác, được thiết kế để củng cố và áp dụng kiến thức của bạn để hoàn thành chứng chỉ CS50
Mentor 1 kèm 1
Ngoài các lớp học trực tiếp hàng tuần do Minh và Thầy Hải dẫn dắt, bạn sẽ có các buổi học 1 kèm 1 với các chuyên gia ngành tech để nhận được sự hướng dẫn cá nhân hóa và giúp bạn đạt được các mục tiêu học tập của mình.
Trợ giảng 1 kèm 1
Một đội ngũ trợ giảng chuyên nghiệp sẽ giải đáp câu hỏi của bạn, cung cấp phản hồi cho các bài tập, và giúp bạn luôn duy trì đúng tiến độ học tập.
Question Center
Đội ngũ TA hỗ trợ từ Q&A center trên Discord, từ 10h sáng tới 10h tối và bên Coder đảm bảo sẽ phản hồi trong vòng 15 phút.
Các lớp dạy live mỗi tuần
Chinh phục ngành lập trình và nhận được chứng chỉ CS50 danh giá từ Harvard với sự hướng dẫn từ các chuyên gia nổi tiếng như Minh Hodler và Hải Đặng (từ AWS và Microsoft). Đồng thời, các bạn còn có session 1-kèm-1 với Mentor riêng, người sẽ hỗ trợ bạn từng bước một. Với sự kết hợp hoàn hảo này, bạn sẽ phát triển kỹ năng lập trình thần tốc và đạt được mục tiêu chỉ trong 16 tuần.
Week 1+2: Khởi đầu với Scratch và khám phá Ngôn ngữ C
- Hiểu được tầm quan trọng của cách giải quyết vấn đề (problem solving) để giải quyết các vấn đề không đơn giản là về lập trình, mà có thể áp dụng cho hầu hết mọi lĩnh vực của cuộc sống.
- Problem Set: Hoàn thành dự án đầu tiên trên Scratch (ngôn ngữ lập trình đồ họa). Thông qua dự án này, bạn sẽ được tiếp cận các khối xây dựng cơ bản của lập trình, ví dụ: functions, conditionals, loops, and variables
- Bạn sẽ từng bước hiểu được cách chuyển logic lập trình từ các khối mã trong Scratch sang các dòng code trong C.
- Problem Set: Với Mario, bạn sẽ biết cách làm sao để tạo ra các bức tường kim tự tháp như mong đợi chỉ thông qua các câu lệnh đơn giản for loop.
Week 3: Arrays - Mảng lưu trữ dữ liệu
- Bạn sẽ được tìm hiểu chi tiết hơn về cách biên dịch và cách lưu trữ dữ liệu trong máy tính
- Bạn có thấy bối rối khi một chương trình trả về kết quả không chính xác, nhưng mình lại không biết liệu nó đang sai ở đâu, hãy cùng xem hiệu quả của debugger trong việc gỡ lỗi nhé!
- Problem Set: Giới thiệu một trong những thuật toán kinh điển về mật mã crypto, cách mã hóa và giải mã một tin nhắn bằng Caesar thông qua array, và string
Week 4: Algorithms - Hiệu quả của việc phân tích thuật toán
- Hiểu được cách thuật toán xử lý một vấn đề, thời gian cần thiết để giải quyết vấn đề. Thông qua phân tích Big O, xác định và đo lường được tính hiệu quả của chúng
- Tiếp cận với hai kiểu tìm kiếm cơ bản là: binary search và linear search, cũng như làm quen với ba thuật toán sắp xếp: bubble sort, selection sort, và merge sort.
- Problem Set: Plurality và Runoff sẽ là một trong những bài thử thách nhất trong khóa CS50, nơi bạn thể hiện được khả năng suy nghĩ algorithm một cách hiệu quả để tìm ra kết quả chính xác cho các cuộc bầu cử
Week 5 & Week 6: Memory - Các truy cập dữ liệu cơ bản được lưu trữ trong bộ nhớ máy tính
- Bạn sẽ được học về các con trỏ (pointers) cung cấp khả năng truy cập và thao tác dữ liệu tại các vị trí bộ nhớ cụ thể
- Bạn sẽ được làm quen với các thuật ngữ: Pointer Arithmetic, malloc và Valgrind, giá trị Garbage, Swapping, Overflow, scanf, file I/O...
- Problem Set: Vận dụng kiến thức về Memory và các tính chất của Pointers, giải quyết các bài toán liên quan tới âm thanh, hình ảnh. Cụ thể, bạn sẽ viết các chương trình giúp tăng giảm âm lượng (Volume), thay đổi bộ lọc cho hình ảnh (Filter) và khôi phục các hình ảnh đã bị xóa (Recover)
Week 7 & Week 8: Data Structures - Cách triển khai các cấu trúc dữ liệu hiệu quả
- Trong tuần cuối cùng của ngôn ngữ lập trình C, bạn sẽ được hiểu rõ hơn về việc tổ chức dữ liệu trong bộ nhớ và các khả năng thiết kế cấu trúc dữ liệu phức tạp hơn
- Bạn sẽ được học về cách sử dụng con trỏ (pointers) để xây dựng cấu trúc dữ liệu mới, ví dụ: Stacks và queues, Linked lists, Hash Table, Tries
- Problem Set: Thử thách với chương trình (Inheritance) tìm ra tính kế thừa trong phả hệ 3 đời thông qua việc phân tích các nhóm máu. Ngoài ra, chương trình kiểm tra chính tả (Speller) cũng là một thách thức cho việc nghiên cứu kỹ các tệp mẫu đã được cung cấp trước khi bắt đầu
Week 9: Python - Ngôn ngữ lập trình linh hoạt và mạnh mẽ
- Khi bạn đã có nền tảng vững chắc trong ngôn ngữ C, việc chuyển sang các ngôn ngữ cấp cao hơn như Python sẽ trở nên dễ dàng hơn. Bạn sẽ không còn lo lắng về việc kỹ năng lập trình của mình bị giới hạn ở một ngôn ngữ duy nhất và có thể học cách khám phá các ngôn ngữ khác theo ý muốn của mình
- Nhờ nguồn thư viện phong phú và cú pháp dễ hiểu, bạn sẽ nhận ra sự tiện lợi và hiệu quả của Python - một trong những ngôn ngữ phổ biến nhất hiện nay
- Problem Set: Bạn sẽ được yêu cầu chuyển đổi các chương trình đã thực hiện bằng ngôn ngữ C sang Python
Week 10: SQL - Lưu trữ và xử lý thông tin trong cơ sở dữ liệu quan hệ
- Khi bạn đã có nền tảng vững chắc trong ngôn ngữ C, việc chuyển sang các ngôn ngữ cấp cao hơn như Python sẽ trở nên dễ dàng hơn. Bạn sẽ không còn lo lắng về việc kỹ năng lập trình của mình bị giới hạn ở một ngôn ngữ duy nhất và có thể học cách khám phá các ngôn ngữ khác theo ý muốn của mình
- Nhờ nguồn thư viện phong phú và cú pháp dễ hiểu, bạn sẽ nhận ra sự tiện lợi và hiệu quả của Python - một trong những ngôn ngữ phổ biến nhất hiện nay
- Problem Set: Bạn sẽ được yêu cầu chuyển đổi các chương trình đã thực hiện bằng ngôn ngữ C sang Python
Week 11: HTML, CSS và JavaScript - Thiết kế và phát triển web
- Đây là tuần giúp bạn hiểu khái quát về Internet, các phương thức giúp dữ liệu di chuyển trong mạng lưới Internet
- Tạo trang web đa năng sử dụng ba công nghệ cốt lõi của phát triển web: HTML: Cấu trúc trang web, phần tử, và thuộc tính .CSS: Stylizing và positioning elements để tạo layout và design đẹp mắt. JavaScript: Thêm logic và tương tác vào trang web
- Problem Set: Xây dựng một trang web cá nhân giới thiệu về bản thân.
Week 12: Flask - Tạo ứng dụng web động với Python
- Trong tuần này, học viên sẽ khám phá Flask, một microframework phổ biến cho Python, được sử dụng để xây dựng các ứng dụng web
- Giới thiệu về Flask: Tìm hiểu về cấu trúc cơ bản và các thành phần của Flask để khởi đầu phát triển ứng dụng web.
- Tương tác với HTML và CSS: Học cách Flask kết nối với HTML và CSS để tạo các trang web động
- Xử lý dữ liệu: Phương pháp sử dụng Flask để nhận, xử lý và phản hồi dữ liệu từ người dùng thông qua forms và URL
- Problem Set: Xây dựng một ứng dụng web Tài Chính bằng Flask, tận dụng các kỹ năng đã học để tạo một giao diện người dùng tương tác và xử lý dữ liệu hiệu quả
Week 13: An ninh Mạng - Bảo vệ thông tin và hệ thống
- Trong tuần này, khóa học sẽ đi sâu vào các khái niệm cơ bản và cối lõi của an ninh mạng
- Nguyên tắc An Ninh Cơ Bản: Khám phá các nguyên tắc cơ bản của bảo vệ thông tin, bao gồm sự an toàn của bảo dữ liệu cá nhân và tổ chức
- Mối Đe Dọa và phương pháp Phòng Vệ: Đánh giá các kiểu mối đe dọa khác nhau và các biện pháp phòng vệ hiệu quả để bảo vệ hệ thống và dữ liệu
- Ứng Dụng Thực Tế: Sử dụng các công cụ và kỹ thuật để phát hiện và ngăn chặn các cuộc tấn công mạng
Week 14, 15 & 16: Hướng dẫn làm Final Project (từ Mentor tại CoderSchool)
- Mentor tại CoderSchool hướng dẫn làm dự án cuối khoá để tốt nghiệp và nhận chứng chỉ CS50 từ đai học Harvard
Thời gian khai giảng
Start soon
CS50X Harvard
CS50's Introduction to Computer ScienceHọc trực tiếp với Minh & Hải mỗi tuần
Bài tập về nhà trong quá trình học
Trợ giảng hỗ trợ trực tiếp trên Discord
Mentor 1 kèm 1 hằng tuần
Thông tin về Minh
Minh Hodler
Software Engineer @Amazon | Content Creator 58k followers
Software Engineer @Amazon Thạc sĩ (MS) ngành Computer Science tại Northeastern University, Mỹ. Minh Hodler sẽ tập trung vào việc tuyển chọn những Mentor có năng lực nhất và đảm bảo chất lượng của khóa học, cũng như đưa ra lời khuyên khi xin việc và làm việc ở Big tech.