ADVANCED ALGORITHMS

Thuật Toán nâng cao

ĐĂNG KÝ HỌC

BIG-O ORANGE: ADVANCED ALGORITHMS

Bạn muốn học lập trình Thuật Toán nâng cao để tham gia các vòng phỏng vấn các công ty công nghệ lớn Google, Facebook, Amazon, Apple… Bạn muốn tìm kiếm một cơ hội thực tập hoặc làm việc toàn thời gian cho các công ty đòi hỏi đầu vào là kiến thức Thuật Toán. Bạn muốn xây dựng đội ngủ làm việc với những Thuật Toán cao cấp để tối ưu hóa sản phẩm của mình.

Khóa học Big-O Orange: ADVANCED ALGORITHMS (Thuật Toán nâng cao) sẽ phù hợp với bạn, giúp bạn nâng cao kỹ thuật lập trình Thuật Toán với các kiến thức về Toán học, Quy hoạch động, Cây phân đoạn. Giải quyết các bài toán trên các trang lập trình Thuật Toán nổi tiếng Leetcode, Interviewbit, Topcoder. Ngôn ngữ lập trình minh họa khóa học C++, Python, Java.

Học phí khóa học: 8.500.000 VNĐ Ưu đãi đặc biệt 5 bạn đăng ký sớm giảm học phí còn 7.000.000 VNĐ.

Ưu tiên giảm thêm học viên đã học tại Big-O khóa Green và Blue. Ngoài ra chúng tôi có chương trình hổ trợ đóng học phí nhiều lần cho các bạn Học Sinh, Sinh Viên các bạn vui lòng liên hệ qua Email: bigocoding@gmail.com để được hỗ trợ.

Thời gian khai giảng:

– Khóa 03: Khai giảng ngày 20/11/2019.

– Thời gian học: Tối thứ 4 (18h30 -> 21h00) và Sáng thứ 7 (09h00 -> 11h30)

– Đăng ký tại: http://bigocoding.com/dang-ky-hoc-orange/

ĐỐI TƯỢNG HỌC PHÙ HỢP

  • Tiên quyết: Học viên đã học qua lớp học Blue tại Big-O, hoặc làm bài kiểm tra đầu vào để xác định lớp học phù hợp.

  • Tùy chọn: Đã học xong và nắm vững 2 môn học Cấu Trúc Dữ Liệu & Lý Thuyết Đồ Thị.

  • Nếu bạn chưa thuộc đối tượng học phù hợp của lớp học Big-O này vui lòng gọi cho chúng tôi qua số điện thoại: 0937.401.483 để được tư vấn học các lớp sẽ mở tiếp theo trong thời gian tới.

BÀI TẬP MINH HỌA KHÓA HỌC

  • Bài tập 100% bằng Tiếng Anh (được hướng dẫn chi tiết lại bằng Tiếng Việt).
  • Trích từ những câu hỏi phỏng vấn tuyển dụng Intern hoặc Fulltime của: Google, Facebook, Amazon, Microsoft
  • Trích từ các chức năng thực tế của các dự án của các công ty.
  • Trích từ những kỳ thi nổi tiếng như ACM-ICPC, International Olympiad in Informatics (IOI).

THỜI GIAN VÀ ĐỊA ĐIỂM HỌC

  • Thời gian: 2 tháng (8 tuần)
  • Địa điểm học: Tòa Nhà Happy Tower, Số 75 Huỳnh Tịnh Của, phường 8, Quận 3, Hồ Chí Minh.
  • Số lượng học viên mỗi lớp: Tối đa Từ 22 đến 25 học viên.
  • Mỗi lớp có 1 Giảng Viên chính5  trợ giảng.

SỰ KHÁC BIỆT CỦA CÁC KHÓA HỌC TẠI BIG-O CODING

1. CHƯƠNG TRÌNH GIẢNG DẠY:

  • Được giảng dạy bởi chuyên gia về Thuật Toán với nhiều năm kinh nghiệm (xem thêm phần “đội ngũ giảng dạy“).
  • Làm việc trên các hệ thống chấm bài nổi tiếng trên thế giới Leetcode, Codeforces, Topcoder, UVA, Big-O Coder.
  • Được gặp gỡ và trao đổi với những bạn thành công đi trước chia sẻ kinh nghiệm học tập Thuật Toán và kinh nghiệm làm việc.
  • Mỗi lớp học ngoài Giảng Viên chính đều có 5 trợ giảng: Trợ giảng phụ trách tại lớp và trợ giảng phụ trách diễn đàn riêng của lớp đảm bảo mọi thắc mắc của học viên sẽ được trả lời nhanh chóng mọi lúc mọi nơi.

2. MỤC TIÊU ĐẠT ĐƯỢC SAU KHÓA HỌC:

  •  Tự xây dựng thuật toán để giải quyết riêng từng vấn đề gặp phải.
  • Nếu bạn là Software Engineer bạn có thể tham dự các kỳ thi thuật toán của các công ty công nghệ Samsung Challenge, Facebook Hacker Cup (Round 2), Google Codejam (Round 2).
  • Nếu bạn là Học Sinh, Sinh viên bạn có thể tham dự các kỳ thi Olympic Tin, IOI (International Olympiad in Informatics), ACM-ICPC, Codeforces (Div 1).
  • Có thể ứng dụng và xây dựng Thuật Toán vào dự án thực tế.
  • Chuẩn bị kiến thức để đạt mục tiêu xa hơn là Internship, fulltime các công ty công nghệ hàng đầu.

ĐỀ CƯƠNG CHI  TIẾT KHÓA HỌC

TUẦN 1

Topological Sort: là thuật toán sắp xếp các đỉnh trên đồ thị theo một thứ tự có trước sau dựa vào các hướng của đồ thị. Đây là thuật toán được ứng dụng nhiều trong đời sống thực tế hàng ngày trong các lĩnh vực: sắp xếp công việc, sắp xếp học phần của trường Đại Học…

Bit Manipulation: ngoài các thao các cơ bản AND, OR, XOR, NOT bạn cần phải nắm được các phương pháp xử lý Bit khác như get, clear, flip, shift thành thạo để giải quyết các bài toán phức tạp trong nén dữ liệu (data compression), mã hóa (encryption) và tối ưu hóa (optimization).

Bài tập thực tế:

– Chia cấp bậc quản lý trong công ty giúp công ty quản lý tốt hơn.
– Bài toán thay đổi thứ tự từ điển.
– Giải bài toán Dynamic Programming bằng Bit Manipulation
– Đặt món ăn theo sở thích cá nhân.

TUẦN 2

Backtracking: dựa trên ý tưởng chính từ phương pháp đệ quy, quay lui đưa ra các chiến lược tìm kiếm lời giải để thỏa mãn ràng buộc nào đó của bài toán. Các bước thử và sai lần lượt đưa ra để làm lời giải tạm ban đầu cho đến khi tìm được lời giải cuối cùng.

Divide and Conquer: Cũng lấy tư tưởng từ Đệ quy nhưng chia để trị mang màu sắc khác hẳn so với Backtracking. Phương pháp chia để trị phân tích bài toán ra nhiều bài toán con cùng cấp, buổi học sẽ không minh họa lại những bài toán kinh điển của chia để trị như Quicksort, Merge Sort…mà bạn sẽ giải quyết những bài toán mang nặng tính thiết kế hơn.

Bài tập thực tế:

– Tìm ra cơ hội chiến thắng trong trò chơi Lotto của Đức.
– Giải bài toán tìm từ trong trò chơi Boggle.

– Sơn hàng rào sao cho tiết kiệm nước sơn nhất.
– Centroid decomposition kỹ thuật biến đổi cây thành một cây “cân bằng”.

TUẦN 3

Greedy: Tham lam là một trong những phương pháp phổ biến nhất để thiết kế giải thuật, nhằm tìm ra giải pháp hiệu quả cho các bài toán tối ưu.

Number Theory: Nghiên cứu số học trên phương diện thuật toán luôn là một đề tài thách thức của Toán học và Thuật Toán. Số học là một trong những ngành toán học cổ nhất ngược lại thuật toán là một khái niệm ra đời từ trong thế kỉ XX. Number Theory sẽ là sự kết hợp từ các thành tựu của lý thuyết về số học với Thuật Toán, mang đến thêm nhiều giải pháp để giải các bài toán kinh điển trong lập trình.

Bài toán thực tế:

– Tối ưu bài toán buôn bán “rượu” trong các ngôi nhà của thị trấn Gergovia .

– Giải phương trình Diophantine để chia các Marbles và đúng hộp quy định.

TUẦN 4

Review lại các kiến thức đã học, đánh giá của Giảng Viên đối với từng học viên sau giai đoạn đầu học tập.

Tổ chức một Kỳ Thi Giữa Khóa nhằm giúp học viên ôn tập lại những kiến thức đã học.

    TUẦN 5

    Hash table: Một cấu trúc dữ liệu quan trọng được ứng dụng rộng rãi trong các ứng dụng và các bài toán lập trình như Hash indexed trong database, xây dựng từ điển, spell correction…Không chỉ giúp bạn xây dựng một Hash table phù hợp với bài toán đưa ra, buổi học còn giúp bạn giải quyết các vấn đề đụng độ khi gặp các loại dữ liệu khó để băm vào các table.

    Dynamic Programming: Kỹ thuật thiết kế lời giải cho bài toán bằng phương pháp Quy Hoạch Động (part I) làm quen và làm việc với các bài toán liên quan đến overlapping subproblem.

    Bài tập thực tế:
    – Xây dựng căn phòng bí mật của Hogwarts.
    – Đổi tiền ở xứ Bytelandian.

    – Tìm quy luật đường đi của nhà vua trên bàn cờ.
    – Tìm hậu tố của chuỗi trong làng Noapara.

    TUẦN 6

    Dynamic Programming: Kỹ thuật thiết kế lời giải cho bài toán bằng phương pháp Quy Hoạch Động (part II), đi sâu hơn vào các bài toán về chuỗi, tìm không gian lưu trữ lời giải các bài toán con để tìm cách phối hợp chúng lại với nhau trên bảng phương án của quy hoạch động.

    Bài toán thực tế:

    – Xây dựng tháp đôi Twin Towers.
    – Nền văn minh của người Babylon.
    – Bài toán tối ưu hóa chi tiêu cá nhân.
    – Welcome to Google code jam.

    TUẦN 7

    Knuth-Morris-Pratt: Là thuật toán dùng để đối sánh các chuỗi ký tự với nhau. Với thời gian chạy tuyến tính KMP được ứng dụng rộng rãi trong các ứng dụng tìm kiếm văn bản.

    Segment Tree: xây dựng cách tổ chức dữ liệu khác dữ liệu tuyết tính thông thường bằng cách tạo ra loại cây nhị phân theo đoạn để lưu giá trị, từ cách cài đặt cơ bản đến cách cài đặt bằng phương pháp Lazy Propagation.

    Bài tập thực tế:

    – Chuẩn hóa chuỗi trong văn bản.
    – Chia bao tiền cho người nghèo cùng Robin Hood.
    – Tìm hiệu lớn nhất.

     

    TUẦN 8

    Buổi cuối sẽ tổ chức Kỳ Thi Cuối Khóa nhằm đánh giá lại cả quá trình học của học viên, trao giấy chứng nhận hoàn thành khóa học.

      Free WordPress Themes, Free Android Games