Khóa học cấu trúc dữ liệu và giải thuật Thực chiến với LeetCode

Khóa học cấu trúc dữ liệu và giải thuật Thực chiến với LeetCode

Khóa học cấu trúc dữ liệu và giải thuật Thực chiến với LeetCode – Giảng viên Hoàng Văn Công giúp các bạn ôn lại toàn bộ kiến thức về các cấu trúc dữ liệu và giải thuật đã học một cách bài bản, giải quyết hàng chục bài LeetCode để cải thiện kỹ năng lập trình, từ đó bạn có thể tối ưu code của mình hơn.

Giới thiệu khóa học cấu trúc dữ liệu và giải thuật Thực chiến với LeetCode

Hiện nay ngành Công nghệ thông tin nói chung và ngành Lập trình viên nói riêng ở nước ta ngày càng phát triển! Chính vì vậy mà quy trình tuyển chọn của một số công ty cũng ngày càng cao.

Những công ty lớn như: Viettel, VinGroup, Samsung,… tất cả các vòng phỏng vấn của họ đều có vòng thi test kỹ thuật đầu vào, và cụ thể là những bài thi dạng lập trình thi đấu, liên quan đến cấu trúc dữ liệu và giải thuật là chính.

Tại nước ngoài hầu hết những kiểu thi như thế này đều rất là phổ biến và hầu như công ty nào cũng áp dụng.
Nhưng gần đây cách test này mới được áp dụng một cách chuyên nghiệp tại Việt Nam.
Có những công ty cung cấp cho ứng viên một bài test online tại một nền tảng thứ 3 (như HackerRank, LeetCode) và yêu cầu họ hoàn thành bài test trong 2-3 tiếng.

Chính vì những lý do trên mà khoá học “Cấu trúc dữ liệu và giải thuật Thực chiến với Java và LeetCode” được ra đời.

Khoá học sẽ giúp các bạn ôn lại toàn bộ kiến thức về các cấu trúc dữ liệu và giải thuật đã học, ví dụ:

Cấu trúc dữ liệu:

  • Array,
  • String,
  • Stack (Ngăn xếp),
  • Queue (Hàng đợi),
  • Linked List (Danh sách liên kết),
  • Tree (Cây), Binary Tree (Cây Nhị phân),
  • Graph (Đồ thị),…

Thuật toán:

  • Sorting (Sắp xếp),
  • Searching (Tìm kiếm),
  • Recursion (Đệ quy),
  • Depth First Search (Tìm kiếm theo chiều sâu),
  • Breadth First Search (Tìm kiếm theo chiều rộng),…

Tất cả các kiến thức đó sẽ được tổng hợp và ôn tập lại một cách bài bản.
Sau đó chúng ta sẽ đi giải quyết hàng chục bài LeetCode để cải thiện kỹ năng lập trình của bạn.
Như vậy bạn vừa được ôn tập lại kiến thức lý thuyết lại vừa được thực hành và luyện tập lại những gì mình vừa được học!

LeetCode cùng với HackerRank đang trở thành 2 nền tảng giúp lập trình viên học thuật toán và cấu trúc dữ liệu tốt nhất hiện nay.
Tất cả bài học đều được thiết kế theo module Learn trên LeetCode nên nội dung kiến thức sẽ rất sát với thực tế.

LeetCode còn cung cấp cho ta những đánh giá về thời gian cũng như không gian bộ nhớ.

Từ đó ta có thể tối ưu code của mình hơn.

Với hàng trăm bộ test, chắc chắn ta không còn lăn về bài code của mình chỉ bằng cách đọc code một cách thuần tuý nữa.

Đối tượng đào tạo khóa học cấu trúc dữ liệu và giải thuật Thực chiến với LeetCode

  • Sinh viên
  • Đam mê lập trình

Nội dung khóa học cấu trúc dữ liệu và giải thuật Thực chiến với LeetCode

Phần 1: Giới thiệu

  • Bài 1: Giới thiệu khoá học
  • Bài 2: Nội dung của khoá học
  • Bài 3: Cách học của khoá học
  • Bài 4: Một số chú ý khác
  • Bài 5: Hướng dẫn chạy và debug với Visual Studio Code
  • Bài 6: Hướng dẫn chạy và debug với IntelliJ
  • Bài 7: Cách làm bài và nộp bài trên LeetCode

Phần 2: Array and String | Mảng và Chuỗi

  • Bài 8: Duyệt mảng
  • Bài 9: Thêm/Chèn phần tử vào mảng
  • Bài 10: Xoá phần tử trong mảng
  • Bài 11: Kỹ thuật 2 con trỏ: Xoá phần tử trong mảng
  • Bài 12: Kỹ thuật 2 con trỏ: Thêm phần tử vào mảng
  • Bài 13: List và Array List trong Java
  • Bài 14: Làm việc với mảng 2 chiều
  • Bài 15: Giới thiệu về String, Character và char
  • Bài 16: Thực hành với String và Character
  • Bài 17: Làm quen với StringBuilder

Phần 3: Sorting (1) | Các thuật toán sắp xếp (Phần 1)

  • Bài 18: Giới thiệu
  • Bài 19: Bubble Sort | Sắp xếp nỏi bọt
  • Bài 20: Selection Sort | Sắp xếp chọn
  • Bài 21: Insertion Sort | Sắp xếp chèn
  • Bài 22: Bài toán tìm số lớn thứ 3

Phần 4: Recursion | Đệ quy

  • Bài 23: Giới thiệu về đệ quy | Định nghĩa đệ quy
  • Bài 24: Đặc điểm của đệ quy
  • Bài 25: Thực hành 1: Tính giai thừa (phần 1)
  • Bài 26: Thực hành 1: Tính giai thừa (phần 2)
  • Bài 27: Thực hành 2: Tính số Fibonacy (phần 1)
  • Bài 28: Thực hành 2: Tính số Fibonacy (phần 2)
  • Bài 29: Một số bài toán khác
  • Bài 30: Phân loại đệ quy (phần 1)
  • Bài 31: Phân loại đệ quy (phần 2)
  • Bài 32: Ưu điểm và nhược điểm của đệ quy
  • Bài 33: Tối ưu hoá đệ quy
  • Bài 34: Khử đệ quy
  • Bài 35: Nên sử dụng đệ quy khi nào?

Phần 5: Binary Search | Tìm kiếm nhị phân

  • Bài 36: Giới thiệu về Binary Search
  • Bài 37: Cài đặt Binary Search bằng vòng lặp
  • Bài 38: Cài đặt Binary Search bằng đệ quy
  • Bài 39: Đánh giá thuật toán

Phần 6: Sorting (2) | Các thuật toán sắp xếp (phần 2)

  • Bài 40: Merge Sort: Ý tưởng
  • Bài 41: Merge Sort: Cài đặt
  • Bài 42: Merge Sort: Testing
  • Bài 43: Quick Sort: Ý tưởng
  • Bài 44: Quick Sort: Cài đặt
  • Bài 45: Sử dụng thư viện sắp xếp trong Java

Phần 7: Độ phức tạp của thuật toán

  • Bài 46: Giới thiệu về Space Complexity
  • Bài 47: Giới thiệu về Time Complexity
  • Bài 48: Big O notation
  • Bài 49: Các độ phức tạp cơ bản
  • Bài 50: Thực hành 1: Giải thuật tìm kiếm tuần tự
  • Bài 51: Thực hành 2: Giải thuật Sắp xếp nổi bọt
  • Bài 52: Thực hành 3: Giải thuật Fibonaci
  • Bài 53: Thực hành 4: Giải thuật tìm kiếm nhị phân
  • Bài 54: Thực hành 5: Thuật toán Merge Sort
  • Bài 55: Thực hành 6: Thuật toán Quick Sort

Phần 8: Linked List | Danh sách liên kết

  • Bài 56: Giới thiệu Linked List
  • Bài 57: Cài đặt Linked List
  • Bài 58: Thêm phần tử vào đầu
  • Bài 59: Thêm phần tử vào cuối
  • Bài 60: Thêm phần tử vào giữa
  • Bài 61: Xoá phần tử ở đầu
  • Bài 62: Xoá phần tử ở cuối
  • Bài 63: Xoá phần tử ở giữa
  • Bài 64: Bài toán đảo ngược một Linked List (Sử dụng vòng lặp)
  • Bài 65: Bài toán đảo ngược một Linked List (Sử dụng đệ quy)

Phần 9: Stack and Queue | Ngăn xếp và Hàng đợi

  • Bài 66: Giới thiệu Stack & Queue
  • Bài 67: Các thao tác cơ bản với Stack & Queue
  • Bài 68: Tạo interface cho Stack và Queue
  • Bài 69: Cài đặt Stack với Mảng
  • Bài 70: Cài đặt Queue với Mảng
  • Bài 71: Cài đặt Stack với Linked List
  • Bài 72: Cài đặt Queue với Linked List
  • Bài 73: Stack trong Java
  • Bài 74: Queue trong Java

Phần 10: Hash Table | Set and Map

  • Bài 75: Giới thiệu về Hash Table
  • Bài 76: Design a Hash Function
  • Bài 77: Collision và cách xử lý
  • Bài 78: Ứng dụng của Hash Table
  • Bài 79: Design a Hash Set
  • Bài 80: Implement a HashSet (phần 1)
  • Bài 81: Implement a HashSet (phần 2)
  • Bài 82: Design a Hash Map
  • Bài 83: Implement a HashMap (phần 1)
  • Bài 84: Implement a HashMap (phần 2)
  • Bài 85: HashSet in Java
  • Bài 86: HashMap in Java

Phần 11: Tree | Cây

  • Bài 87: Giới thiệu về Tree, Binary Tree, Binary Search Tree
  • Bài 88: Xây dựng cây BST
  • Bài 89: Thêm một node vào cây BST (Vòng lặp)
  • Bài 90: Thêm một node vào cây BST (Đệ quy)
  • Bài 91: Xoá một node khỏi cây BST
  • Bài 92: Tìm kiếm trên cây BST
  • Bài 93: Duyệt cây theo 3 thứ tự (Lý thuyết)
  • Bài 94: Duyệt cây theo 3 thứ tự (Implement)
  • Bài 95: Bài toán tính chiều cao cây
  • Bài 96: Bài toán tính tổng trên cây

Phần 12: Graph | Đồ thị

  • Bài 97: Giới thiệu về Đồ thị
  • Bài 98: Giới thiệu về DFS – Tìm kiếm theo chiều sâu
  • Bài 99: Cài đặt DFS với Stack
  • Bài 100: Cài đặt DFS với đệ quy
  • Bài 101: Cài đặt BFS với Queue
  • Bài 102: Ứng dụng DFS: Tính số miền liên thông
  • Bài 103: Thuật toán Dijkstra (Tìm đường đi ngắn nhất): Lý thuyết
  • Bài 104: Thuật toán Dijkstra (Tìm đường đi ngắn nhất): Cài đặt
  • Bài 105: Tổng kết

Phần 13: Bổ sung

  • Bài 106: Dynamic Programming | Quy Hoạch Động
  • Bài 107: External Sort

Giảng viên khóa học cấu trúc dữ liệu và giải thuật Thực chiến với LeetCode

Hoàng Văn Công
Hoàng Văn Công
  • Hoàng Văn Công – Giảng viên
  • Giảng viên Hoàng Văn Công – Lập trình viên, giảng viên tin học
  • Trình độ chuyên môn:
  • Tốt nghiệp loại giỏi chuyên ngành Khoa học máy tính từ Học viện Kỹ thuật Quân sự
  • Đang theo học chương trình Thạc sĩ Khoa học dữ liệu tại trường Đại học Bách khoa Hà Nội
  • Một số giải thưởng đã đạt được:
  • Hai lần tham dự kỳ thi Olimpic tin học Sinh viên Việt Nam và kỳ thi Lập trình quốc tế ACM-ICPC.
  • Đạt các giải Nhất, Nhì, Ba tại các cuộc thi Olimpic tin học và Software Contest tại Học viện Kỹ thuật Quân sự.
  • Top 5 cuộc thi Gameloft Game Jam 2015.
  • Giải nhì cuộc thi viết phần mềm Hackathon của Microsoft 2014.
  • Giảng viên Hoàng Văn Công có kinh nghiệm làm việc với các công nghệ: Lập trình viên Windows Phone và Windows Store App đời đầu, Lập trình di động Android native với Java, Lập trình game 2D và 3D với game engine Unity và Cocos2d-x, lập trình phân tích dữ liệu và AI với Python.
  • Hiện anh đang tập trung vào nghiên cứu lĩnh vực Khoa học dữ liệu và trí tuệ nhân tạo (Data Science & Artificial Intelligence) tại đại học Bách Khoa Hà Nội, đồng thời làm giảng viên cho khoá học “Cấu trúc dữ liệu và giải thuật” tại trung tâm Techmaster Việt Nam. Bên cách đó anh còn là chủ nhân của kênh youtube The Brown Box, nơi mà anh làm các video hướng dẫn cho mọi người các kiến thức lập trình.
  • Tất cả các video và khoá học của anh tập trung vào việc truyền tải kiến thức một cách trực quan và dễ hiểu nhất cho học viên. Đồng thời các khoá học đều mang tính chất có ứng dụng thực tế cao trong công việc hàng ngày của một Lập trình viên, cũng như là một yếu tố quan trọng trong các buổi phỏng vấn xin việc.

Kiến thức nhận được sau khóa học cấu trúc dữ liệu và giải thuật Thực chiến với LeetCode

  • Hệ thống lại toàn bộ cấu trúc dữ liệu và thuật toán đã được học.
  • Tự mình cài đặt lại các cấu trúc dữ liệu cũng như thuật toán đó.
  • Biết cách đánh giá một thuật toán dựa trên độ phức tạp (không gian và thời gian).
  • Học cách sử dụng cách thư viện của Java để thực thi các thuật toán.
  • Được làm và chữa hàng chục bài tập trên trang lập trình online rất nổi tiếng LeetCode.

Học viên đánh giá khóa học cấu trúc dữ liệu và giải thuật Thực chiến với LeetCode

Học viên đánh giá khóa học cấu trúc dữ liệu và giải thuật Thực chiến với LeetCode
Học viên đánh giá khóa học cấu trúc dữ liệu và giải thuật Thực chiến với LeetCode

Quyền lợi của học viên trong khóa học cấu trúc dữ liệu và giải thuật Thực chiến với LeetCode

  • Được học đi học lại, học mọi lúc mọi nơi.
  • Được đặt câu hỏi cho giảng viên, trao đổi cùng các học viên khác trong phần “thảo luận” khóa.
  • Được giảng viên hỗ trợ trực tiếp thông qua nhóm Facebook, giao lưu cùng những học viên khác trên nhóm.
  • Giảng viên có thể tổ chức các buổi giao lưu trực tuyến hoặc trực tiếp.
  • Được hoàn trả 100% học phí nếu nội dung khóa học không như mong đợi.
  • Đã có hơn 500 học viên đăng ký cấu trúc dữ liệu và giải thuật Thực chiến với LeetCode trên toàn hệ thống.

Cách đăng ký khóa học cấu trúc dữ liệu và giải thuật Thực chiến với LeetCode

Rất nhiều bạn phản hồi không biết đăng ký khóa này ra sao, sử dụng mã giảm giá như thế nào? Chính vì vậy Timkiemkhoinghiep sẽ hướng dẫn cụ thể lại. Để nhận được khuyến mãi 40% giá trị khóa học bạn cần chỉ cần click vào đăng ký khóa học (dưới đây), sau khi tham khảo và học thử thấy ưng ý và phù hợp đăng ký và nhập mã giảm giá 71680 hệ thống sẽ tự động giảm 40% giá trị khóa học cho bạn.

Lưu ý: Trong những đợt khuyễn mãi nếu hệ thống tự động khuyến mãi 40% rồi thì khi sử dụng mã giảm giá không được hưởng nữa.

Giải đáp những vấn đề liên quan đến khóa học cấu trúc dữ liệu và giải thuật Thực chiến với LeetCode

1. Tôi đến chỗ nào để học khóa học này?

Như đã trình bày ở trên khóa học cấu trúc dữ liệu và giải thuật Thực chiến với LeetCode là khóa học online, bạn có thể học ở các trang đào tạo trực tuyến lớn như Topica, Edumaill, Unica mà không cần đến bất kỳ một nơi nào để học mà sẽ học qua các thiết bị được kết nối Internet mà thôi. Chính vì vậy bạn có thể học được ở bât kể nơi nào, thời gian rảnh nào cũng được.

Yêu cầu khoá học

  • Có laptop/ smart phone + kết nối Internet.
  • Môi trường học tập yên tĩnh.
  • Cần thiết bị có khả năng truy cập Internet.
  • Nên sử dụng tai nghe trong quá trình học.

2. Tôi không có máy tính PC có học được không?

Có bạn nhé. Bạn chỉ cần có thiết bị kết nối Internet không nhất thiết phải là máy tính mới học được. Bạn hoàn toàn có thể học qua các thiết bị khác như: Điện thoại, máy tính bảng, Laptop.

3. Muốn trao đổi với giảng viên thì làm thế nào?

Trong khóa học giảng viên sẽ cung cấp cho bạn một kênh kết nối trực tiếp, có vấn đề gì thì bạn có thể trao đổi trực tiếp với giảng viên.

Lời kết

Hy vọng Khóa học “cấu trúc dữ liệu và giải thuật Thực chiến với LeetCode” hữu ích đối với bạn

Xem thêm



Bài viết liên quan

Trả lời