Khóa học nâng cao về lập trình Java
và cấu trúc dữ liệu + giải thuật

Thông báo: chuyển phòng học sang 207-G2

Tài liệu đọc

  • Giáo trình Lập trình hướng đối tượng với Java
  • Clean Code
  • Effective Java
  • Head First Design Patterns

    Sáng 20/3, Ứng dụng web (tiếp). Chiều nghỉ

    18/3 nghỉ, lùi hết các buổi thứ Sáu còn lại vào chủ nhật

    11, 13/3 Kết thúc bài tập lớn, Ứng dụng web với SpringBoot+MongoDB

    26, 29/2 - Predicate, Function, đa luồng với executor, Bài tập lớn

  • Bài giảng + Bài tập
  • Bài tập lớn: Cừu ăn cỏ để tích lũy năng lượng, refactor cỏ và cừu để chuyển màu ra Board

    21/2 - Lambda (tiếp), S/C

  • Bài giảng + Bài tập
  • Bài tập lớn 1 (50% điểm) Bước 1, tạo cỏ.

    19/2/2016 - Java 8: Biểu thức lambda

  • slide
  • Code mẫu
  • Bài tập

    11/12, 13/12(S) Ứng dụng GUI (thầy Ngọc).

    6/12(S/C) Đa luồng (thầy Ngọc)

    4/12 - Lập trình đa luồng

    code

    27/11, 29/11(S/C) thầy Ngọc.

    22/11 - Java collection và Iterator; Thư viện Java (S/C)

    1. Cài cấu trúc Stack generic có thể chứa dữ liệu đủ loại. Có thể bắt đầu từ cài đặt bằng danh sách liên kết
    2. Sửa cấu trúc Stack đã viết để nó implement interface Iterable, sao cho client có thể duyệt stack mà không quan tâm nó là dạng mảng hay danh sách liên kết.
    3. Cài cấu trúc hàng đợi ưu tiên với heap bằng cây nhị phân trong mảng. Xem gợi ý tại đây
      Hãy viết chương trình client đọc các số nguyên từ input chuẩn, in ra top M số nhỏ nhất (lớn nhất). M là tham số dòng lệnh.
      Dữ liệu chạy thử: largeW.txt, largeT.txt.
    4. Tìm hiểu các cấu trúc Map, HashMap trong thư viện Java. Làm bài Đếm từ

    20/11 - Nghỉ

    15/11 - Đệ quy - cắt nhánh sớm (S/C)

  • Sudoku. Bạn thử bắt chước code vẽ hình trong RandomWalk để vẽ lời giải mà bạn tìm được?
  • Con mã đi tuần (viết chương trình để chạy được, sau đó lắp ghép vào RandomWalk để xem quá trình mã đi tuần hoặc xem quá trình đệ quy quay lui)

    13/11 - Luyện tập về đệ quy

  • Bài toán tám con hậu (đã có gợi ý lời giải)
  • Một chút GUI: lấy chương trình RandomWalk về chạy thử (cần lấy thêm các file thư viện tại đây). Sau đó sửa chiến lược Walk để (1)cứ đi 10 bước thì mới rẽ; (2)đi thành đường xoắn ốc.

    6/11 - Kĩ năng lập trình + thuật toán

  • Chữa bài buổi trước.
  • Đệ quy - Chiến lược top-down
  • PK and interesting language - Chiến lược bottom-up so sánh với top-down.

    1/11 (S/C) - Kĩ năng lập trình

    Viết các chương trình dưới đây, nộp bài tại hackerearth.com Eat-Sleep-Code, Palindrome, Password

    Bài nâng cao: PK and interesting language

    Nộp bài:
    Tất cả các bài làm đều đặt trong cùng một project, up lên repository tên ss2015 tại bitbucket.org.
    Cách làm:

  • Mở tài khoản tại bitbucket.org (có thể đăng nhập bằng account Google)
  • Tạo một repository tại bitbucket.org (Create repository) với giao thức Git
  • Share quyền Read (Access Management) cho uet-oop
  • Cài git
  • Học dùng git để đẩy bài vào repo: mẫu

    Hướng dẫn chi tiết Git (về nhà đọc sau).