6/28/2021

Tổng quan ngành khoa học máy tính - Đại học Bách Khoa Hà Nội


Chào các bạn,hôm nay dựa trên hiểu biết sơ bộ của một sinh viên cuối năm 3, mình xin phép viết một bài review qua về ngành khoa học máy tính nói chung và ngành khoa học máy tính ở trường đại học bách khoa hà nội nói riêng.

Bài viết mang tính chất giới thiệu là chính, sẽ không mang tính học thuật, phù hợp với những bạn đang có ý định thi tuyển vào ngành,hình dung xem mình sẽ được học gì, hoặc một số bạn năm nhất, năm hai của ngành có thêm định hướng cho tương lai sắp tới. Về phần chi tiết môn học, tài liệu đã có blog viết riêng, các bạn search trong trang nhé.

Tổng quan chương trình đào tạo 

Sau đây là hình minh họa cho các khối kiến thức lớn mà bạn phải học( bao gồm B1: cơ bản B2: sâu hơn vào ngành). Trong đó TC- tín chỉ là đơn vị tính gần như tương đương với thời gian(số tiết, số giờ tự học) để hoàn thiện môn học. 



Khối kiến thức cơ bản

Giống như tất cả các ngành học khác, bạn vẫn phải trải qua 1-2 năm để học các khối kiến kiến thức cơ bản, bao gồm khối toán và khoa học cơ bản: mình sẽ viết một số thứ mình còn đọng lại và đôi khi gặp lại tới bây giờ , đừng chê ít nhé :))

Tin học đại cương

dậy bạn biết viết “hello world” về lập trình C 

Toán rời rạc

thuật toán tìm đường đi ngắn nhất, đồ thị, tư duy logic.

Giải tích I,II,III

cung cấp kiến thức cơ bản về đạo hàm, tích phân, gradient,.. 

Đại số

cung cấp kiến thức về ma trận, sau này dùng nhiều trong tính toán deep learning.

Xác suất thống kê

phân phối gauss, xác suất có điều kiện.

Nhập môn các phương pháp tối ưu

tìm nghiệm tối ưu của một hệ các ràng buộc. trước kia bạn học bất phương trình 2 ẩn 2 phương trình thì giờ nó phức tạp hơn, mở rộng hơn  

Vật lý đại cương I.II

ý nghĩa của entropy, kiểu cách đo độ biến động của một hệ.


sau đó là một số môn khác cũng khá là bổ ích mà bạn sẽ quan tâm nếu cần học bổng :

Lý luận chính trị 

Giáo dục thể chất 

Giáo dục Quốc phòng - An ninh

Tiếng Anh (khi đầu vào tiếng anh gà mờ )

Pháp luật đại cương

Lý luận TDTT

Đường lối quân sự

Tiếng Anh 1

Tư tưởng HCM

Bơi lội

Công tác quốc phòng-An ninh

Tiếng Anh 2

Những NLCB của CNML I

3 môn tự chọn nào đó(bóng bàn, bóng rổ, chạy, nhảy , cầu lông, bóng đá...)

QS chung và KCT bắn súng AK

 

Những NLCB của CNML II

     

Đường lối CM của ĐCSVN

     


Đi vào cốt lõi ngành 

Cũng như phân trước, mình sẽ đưa ra một số nhận định của mình về những môn mình đã học:


Nhập môn CNTT và TT

bản nâng cấp của tin đại cương với một phần tìm hiểu về ngành công nghệ thông tin 

Technical Writing and Presentation

dạy bạn cách viết report, mail 

Cấu trúc dữ liệu và thuật toán

không phải ngẫu nhiên mà môn học này được dạy từ khá sớm. mình nhấn mạnh tầm quan trọng của nó. môn học cung cấp kiến thức về cấu trúc dữ liệu (hàng đợi, ngăn xếp, cây, danh sách liên kết  ), thuật toán đệ quy, duyệt cây, các thuật toán sắp xếp đi cùng với đó là độ phức tạp thuật toán . môn học cho bạn  nền tảng cơ bản về lập trình cho bạn .

Kiến trúc máy tính

dậy bạn thực sự cpu nó làm gì ? tại sao dùng cache lại nhanh ? và lí do tại sao bạn phải lắp 2 thanh ram giống nhau 

Kỹ thuật lập trình

kỹ thuật viết code sao cho không bị mắng, khi gặp lỗi thì tìm cách debug ra sao ?  test một chương trình thế nào để biết nó đúng 

Nguyên lý hệ điều hành

cách mà máy tính có thể hoạt động một cách trơn tru khi bạn bắt nó làm cả tá thứ sẽ được một phần trả lời trong câu hỏi này. bên cạnh đó cũng sẽ giúp bạn backup nghề cài win dạo.

Mạng máy tính

cách mà dữ liệu có thể truyền đi lại trong mạng, cơ chế làm sao mà nó có thể chịu lỗi khi mất dữ liệu, cách bảo mật tin khi truyền đi 

Cơ sở dữ liệu

dậy bạn truy vấn sql

Lập trình hướng đối tượng

mình cảm thấy môn này và cấu trúc dữ liệu là 2 môn khó và rất quan trọng. trả lời cho câu hỏi gần như chắc chắn bạn phải trả lời khi phỏng vấn job liên quan java: hãy trình bày 4 tính chất của lập trình hướng đối tượng. mà dù trong môn này không được học, nhưng mình đề xuất khi học môn này nên đọc thêm về design pattern, sẽ cực kì thực tế và cho bạn một nguồn cảm hứng học lập trình .

Phân tích và thiết kế hệ thống

để cho chuẩn thì công việc trước khi code của một coder thì phải viết tay sơ đồ luồng thực thi, đoạn code này xử lí gì, nó mang trách nhiệm gì, nso chuyển data tới những đâu,... tất cả sẽ được thiết kế trong một bản thiết kế riêng mà chưa cần thiết phải code. 

Nhập môn Trí tuệ nhân tạo

kiến thức nền tảng cho học máy và học sâu, nói qua về thuật toán “thông minh” hơn mấy thuật toán trong cấu trúc dữ liệu và giải thuật

Project I,II,III

hên xui 

Thuật toán ứng dụng

môn học của tư duy, còn đối với mình là một phần may mắn nữa.

Nhập môn công nghệ phần mềm

là sự kết hợp Lập trình hướng đối tượng, Phân tích và thiết kế hệ thống. nơi mà bạn hoàn thành cho mình được một project hoàn chỉnh đầu tiên.

Nhập môn Học máy và khai phá dữ liệu

Nhập môn Trí tuệ nhân tạo nhưng ở một lĩnh vực sâu hơn.

Nhập môn an toàn thông tin

cho bạn cái nhìn bao quát nhất về an toàn thông tin. trả lời cho câu hỏi : bạn là ai trong không gian mạng 

Quản trị dự án CNTT

môn học cho các quản trị dự án tương lai, dạy về cách đàm phán với khách hàng, hợp đồng, lập lịch cho nhân viên. có rủi ro thì phải làm thế nào .

Làm việc nhóm và kỹ năng giao tiếp

kỹ năng trong giao tiếp ứng xử trong nhóm 


Tự chọn theo modun 


bạn có thể đi theo các hướng như : xử lí dữ liệu lớn (kiểu đề xuất quảng cáo), học sâu(mấy cái nguy hiểm như xử lí ngôn ngữ tự nhiên ), hoặc code web. thôi bài đã dài. mình xin phép hẹn buổi sau :v


Tổng kết 

  • lời khuyên cho các bạn nếu muốn học ngành này mà không nản thì nên đăng ký học sớm các môn code nhiều như Cấu trúc dữ liệu và thuật toán,Lập trình hướng đối tượng, Kỹ thuật lập trình, Thuật toán ứng dụng.

  • sẽ có một số môn liên quan tới nhau, nếu thật sự tryhard thì nên học cùng một kì, áp lực sẽ giúp bạn phải học một cách thật chăm chỉ để đáp ứng yêu cầu môn học. nếu làm được điều này, bạn sẽ ít rơi vào tình trạng: “? học cái này để làm gì ”

  • trong quá trình học khối kiến thức cơ bản, thường là 1-2 năm đầu, mình có một vài lời khuyên cho các bạn về một số hướng bổ trợ để đỡ nản cũng như giải trí quá nhiều :v 

    • Một là, bạn có thể đăng ký trước môn học kỳ sau, những môn chính trị, thể chất gối vào những kì sau. ưu điểm là sẽ định hướng được mình hóc j, còn nhược điểm là thường các bạn sẽ coi thường những môn phụ.
    • Hai là, bạn xác định cho mình một hướng học trước mà không cần quá nhiều kiến thức chuyên ngành, mình nghĩ là học web, hoắc là học học máy( liên quan nhiều tới toán cơ bản, sẽ có hứng thú hơn khi biết kiến thức toán mà mình học được dùng cho việc gì )
    • Ba là, có thế học tiếng anh, nó rất cần thiết cho việc học sau này của bạn, không chỉ những có thể thăng tiến mà nó cũng giúp bạn tiếp xúc với nguồn tài liệu chất lượng bằng tiếng anh.

Good Luck,

longpt


6/25/2021

Đề thi đầu vào MDC | Share


Khi tham gia phỏng vấn thực tập, đa số công ty chọn việc phỏng vấn trực tiếp để họ có thể hiểu sâu được hơn năng lực của các ứng viên. Nhưng trong thời điểm này do dịch mà nhiều cuộc phỏng vấn phải thực hiện online thì việc hỏi trực tiếp mà qua các nền tảng như Google Meet hay Zoom nó mang tính khách quan thì một số công ty sẽ đưa ra một số bài kiểm tra để ứng viên làm.


Trong các công ty liên kết với viện CNTT&TT thì MDC chọn cách phỏng vấn ứng viên bằng một bài test nhỏ. Thường khi các công ty test ứng viên bằng bài test thì sẽ là thuật toán là chủ yếu nha, là những thứ như cấu trúc dữ liệu & thuật toán, thuật toán ứng dụng, những kiến thức về đồ thị,...

Mình có một đề test của công ty MDC cho các ứng viên, mọi người có thể tham khảo và cũng như là cơ hội để rèn luyện thuật toán trước những kì thi giữa kì hay cuối kì của môn toán rời rạc, cấu trúc dữ liệu & thuật toán hay thuât toán ứng dụng : TẢI VỀ ĐỀ THI ĐẦU VÀO MDC

Mình có giải qua bài toán 2 ( cây và rừng) bằng ngôn ngữ C++, mọi người có thể tham khảo qua : tree&forest

6/21/2021

Nguyên lý hệ điều hành | Tài liệu, cơ sở ngành CNTT


Rõ ràng hệ điều hành là một thứ không thể thiếu trong máy tính cá nhân hiện nay. Hệ điều hành điều khiển mọi hoạt động của máy tính từ những công việc đơn giản cho tới phức tạp. Hệ điều hành là môi trường để các phần mềm có thể hoạt động và chạy trên đó. Hệ điều hành sẽ tính toán để phân bổ tài nguyên cho các tiến trình cho hợp lí để cho mọi thứ có thể hoạt động một cách hoàn hảo nhất.

Chung quy lại thì hệ điều hành chỉ là một phần mềm hệ thống, nó tạo ra một môi trường mà các phần mềm có thể hoạt động trên nó. Hệ điều hành đóng vai trò chung gian giữa người sử dụng và máy tính, che giấu đi những phần phức tạp để việc sử dụng máy tính trở lên đơn giản và hiệu quả hơn.

Phải nói là học môn này bạn sẽ biết được là những lập trình viên hệ điều hành họ giỏi và tỉ mỉ như thế nào. Từng chi tiết nhỏ cũng sẽ ảnh hưởng phần nào tới năng suất làm việc của máy tính vì thế lập trình viên hệ điều hành phải tỉ mỉ từng tí để có thể có được một hệ điều hành hoạt động trơn chu. Học xong môn học các bạn cũng có thể biết về nguyên lý để thiết kế một hê điều hành và biêt đâu sau này một trong mọi người lại thiết kế ra một hệ điều hành có thể đánh bật Windows hay Linux.

Dĩ nhiên là chỉ một môn học không thể nào học hết được mọi thứ về hệ điều hành, nhưng môn học cung cấp cho bạn cái nhìn tổng quan nhất về : 

  • Khái niệm về hệ điều hành 
  • Quản lý tiến trình 
  • Quản lý bộ nhớ
  • Quản lý hệ thống file
  • Quản lý vào ra

Giới thiệu hoành tránh như vậy tuy nhiên môn học này tại HUST thì cũng khá khô khan vì nặng lý thuyết rất nhiều, học khá buồn ngủ, vẫn có bài tập nha và bài tập cũng thuộc loại đơn giản thôi, không phức tạp như đại số, giải tích hay toán tối ưu đâu.

Môn này cũng có bài tập lớn nha, các thầy khác thì mình không nắm rõ, mình học thầy Đỗ Quốc Huy thì mọi người sẽ được làm về một số đề tài ( link đề tài mình có chia sẻ bên dưới) như là làm App quản lý tài nguyên máy tính, làm App quản lý thư mục, ... kiểu như mô phỏng hay chính xác là nhái lại Task Manager hay Window explorer, tuy nhiên những cái này trên Google cũng có hết rồi, mọi người cũng không cân lo lắng quá nha.

Thi cuối kì thì cũng khó quá đâu, bạn mua tập đề ở sau thư viện nha, nếu có thi trắc nghiệm thì cũng chỉ có các câu hỏi ở trong đó thôi, mỗi năm thì sẽ có một cấu trúc ra đề khác nhau, có thể được mang tài liệu hoặc không tùy theo từng năm do bộ môn họp và quyết định, cái này không nói trước được.

Một số tài liệu về môn học mà mình sưu tầm được chia sẻ tới mọi người để học tập nha : 

  • SLIDE môn học nguyên lý hệ điều hành & đề tài bài tập lớn : TẢI VỀ SLIDE

  • Tóm tắt môn học ngắn gọn từng chương bằng file text : TẢI VỀ TXT

6/08/2021

Template Powerpoint HUST | Share


Việc thuyết trình trên đại học kiểu như là cơm bữa vậy và việc làm slide để thuyết trình cũng như vậy. Không giống như hồi học cấp 3 có thể cả kì mới có môn bắt thuyết trình, mọi người có thể bỏ thời gian ra trau chuốt cho nó, làm các hiệu ứng, chuyển trang tuyệt đẹp, chuẩn bị mấy tuần để có một buổi thuyết trình, nhưng trên đại học có thể sẽ rất khác nhất là tại Bách Khoa. Mình thấy mọi người làm slide đơn giản và đủ ý chứ không màu mè (tuy nhiên có 1 số thầy cô theo như mình biết là khá thích màu mè, làm slide rất thích animation, nhưng không nhiều hầu hết các thầy/cô chỉ yêu cầu slide đơn giản, đủ ý thuyết trình và chỉ là công cụ minh họa cho bài thuyết trình của mình). 

Khi học môn Technical Writing and Presentation mọi người sẽ được học thêm về 1 số cách trình bày slide, làm slide sao cho chuẩn chỉ, cách đặt tiêu đề, số chữ tối đa trong 1 trang slide,... mà nó như là quy định được đặt ra chung cho mọi người.

Trong những buổi bảo vệ bài tập lớn mọi người có thể thây một vài template được sử dụng khá nhiều và cũng được các thầy/ cô sử dụng trên lớp khá nhiều luôn thì đó là những template chung của trường hoặc viện, nếu không biết tải tại đâu thì các bạn có thể tải ở đây nha : TEMPLATE HUST POWERPOINT

Mọi người có thể tham khảo 1 bộ template khác ở đây nha : TEMPLATE KHÁC

5/28/2021

Technical Writing and Presentation | Tài liệu, cơ sở ngành CNTT


Cũng như tên gọi của nó, môn học này học về cách viết và cách thuyết trình. Nhưng cách viết ở đây không phải là viết bài trên lớp hay là cách ghi chép mà là cách viết một bài báo khoa học. Môn này những năm trước là môn tự chọn, tuy nhiên bây giờ nó đã trở thành môn bắt buộc và ai cũng phải học. Từ kì này trở đi thậm chí môn này sẽ được giảng dạy bằng tiếng anh, thi bằng tiếng anh và làm bài tập lớn trên lớp cũng bằng tiếng anh.

Môn này mỗi viện sẽ có một chương trình khác nhau và mã môn học khác nhau nên khi đăng kí môn các bạn nhớ để ý không sẽ đăng kí nhầm. Như là Technical Writing and Presentation ở viện CNTT sẽ khác với Technical Writing and Presentation ở viện Điện... Và môn Technical mình nói tới ở bài viết này là của viện CNTT nha.

Như tên gọi của nó, môn học sẽ có 2 phần rõ ràng là Writing và Presentation. Nên bài tập lớn môn này cũng chia làm 2 phần là thuyết trình và viết. Phần thuyết trình mình nghĩ là giống nhau giữa các thầy thôi, mọi người sẽ chọn tìm hiểu về 1 chủ đề và thuyết trình. Còn phần Writing có thể mọi người sẽ phải viết 1 bài mini paper về một chủ đề nào đó ( mini paper bằng tiếng anh nha). 

Môn này mình biết một số thầy dạy như là thầy Vũ Văn Thiệu, thầy Lê Đức Trung, thầy Nguyễn Khanh Văn ( hình như học thầy Trung là bằng tiếng Việt thì phải). Thi cuối kì là mỗi thầy cô sẽ có một đề riêng, chấm riêng ( tính tới thời điểm bây giờ là thế, còn về sau có thể sẽ khác để đảm bảo tính công bằng). Các bạn muốn điểm cao hãy học thầy Trung nha, thầy như là trùm của mấy môn như Làm việc nhóm, Technical hay Quản trị dự án CNTT rồi, học thầy hơi chán chán một tí nhưng điểm khá cao. Các bạn có thể học thầy Thiệu, thầy dạy cũng khá thú vị, điểm thì chấm khá đúng, thầy chấm cũng lỏng tay thôi. Còn thầy Văn thì hơi khắt khe một chút.

Mình có một số tài liệu ôn thi ( mặc dù thi riêng nhưng hình như là đề phần trắc nghiệm thì cũng giống nhau thôi thì phải, mình có gửi cho bạn mình để ôn tập một số đề mà mình ôn khi học thầy Thiệu mà nó học thầy Trung thi cũng giống khá nhiều nên các bạn có thể tham khảo nha) : 

5/18/2021

Javafx | Share


JavaFX là bộ công cụ tạo và triển khai các ứng dụng Desktop cho máy tính chạy trên nhiều nền tảng khác nhau. Theo Oracle thì JavaFX sẽ thay thế Swing để trở thành thư viện UI chuẩn cho bộ công cụ Java. 

JavaFX là một thư viện Java bao gồm các lớp và các giao diện được viết bằng mã Java nguyên gốc.

JavaFX có một số cải tiến so với Java Swing, ngoài tạo giao diện bằng những dòng code, lập trình viên có thể sử dụng FXML để tạo giao diện và làm chúng bắt mắt hơn với CSS.

JavaFX rất thân thiện với MVC, nó giúp tách biệt hoàn toàn các phần ra khỏi nhau một cách rõ ràng hơn.

JavaFX còn có WebView dựa trên trình duyệt WebKit, vì vậy bạn có thể nhúng các trang web hoặc các ứng dụng web bên trong JavaFX.


Tại Bách Khoa thì có rất nhiều các bài tập lớn mà mọi người phải xây dựng những ứng dụng Desktop cho một yêu câu nào đó, JavaFX sẽ là một lựa chọn hoàn hảo thay thế cho Swing trong những bài tập lớn này vì những lợi ích mình đã nêu trên.

Để có thể tạo những file FXML đơn giản thì mọi người có thể sử dụng công cụ Scene Builder để có thể thực hiện các thao tác kéo thả dễ dàng hơn.

Nếu bạn mới bắt đầu với JavaFX thì có thể tham khảo tutorials của xemacscode hoặc tutorials Lập trình JavaFX căn bản của HowKteam.

5/07/2021

Mail edu của trường làm được gì ? | Share


Với mức học phí đắt đỏ của trường thì mỗi sinh viên chúng ta đều được cấp 1 email edu được cung cấp bới Microsoft. Và dĩ nhiên là thứ hữu ích nhất chính là kho lưu trữ One Drive 5TB cho mỗi tài khoản mà chắc có lẽ lưu hết cả 5 năm học tại Bách Khoa cũng không thể nào hết được. Ngoài ra chúng ta sẽ được dùng miễn phí bộ Office 365 bản có thể dùng offline và vô vàn sản phẩm khác nằm trong bộ công cụ Office 365 này, tiêu biểu nhất trong thời kì dịch bệnh này là Microsoft Teams.

Nhưng không chỉ có thế, những thứ sau đây mình nói tới mới thực sự là những thứ gì thú vị nhất khi sử dụng email edu được cung cấp bởi Microsoft.


Microsoft đã tạo ra một hệ sinh thái tuyệt vời cho sinh viên, dĩ nhiên là những người có sử dụng email edu. Mình không rõ là email edu được cung cấp bởi Google có sử dụng được những dịch vụ này hay không, tuy nhiên chúng ta cũng không cần biết vì Bách Khoa đã không còn sử dụng dịch vụ của Google nữa mà chuyển sang sử dụng dịch vụ Cloud của Microsoft đã mấy năm rồi và email chúng ta sử dụng hoàn toàn đủ điều kiện để nhận các lợi ích này tới từ Microsoft, mình đã thử và mọi thứ thật tuyệt vời.

Trước hết mình liệt kê một số lợi ích để tạo sự hấp dẫn trước nha : 

  • Đầu tiên, là Github Pro trong suốt thời gian là sinh viên ( mail trường cung cấp là có hạn nha, khi các bạn ra trường, email sẽ được thu hồi, trong thời gian là sinh viên là nói tới việc bạn còn được cung cấp và sử dụng email edu của trường)
  • Tên miền .me miễn phí và 1 số tên miền khác giá rẻ bất ngờ trong thời hạn 1 năm tại namecheap.com
  • Sử dụng các sản phẩm bản mất phí của JetBrains hoàn toàn miễn phí
  • Tên miền miễn phí và bảo mật tại name.com trong thời gian 1 năm
  • Một số khóa học ( tuy nhiên lại bằng tiếng anh) tại một số trang web nổi tiếng hoàn toàn miễn phí
  • Sử dụng một số dịch vụ như gửi email hàng loạt, ứng dụng tích hợp thanh toán, ... hoàn toàn free.
  • Nhận ngay 100$ trong tài khoản Microsoft Azure
  • Sử dụng sản phẩm của JetBrains miễn phí
  • và phải nói là nhiều nhiều lợi ích nữa mà mình không thể sài hết trong quãng thời gian sinh viên này được

Bây giờ mình sẽ hướng dẫn mọi người để có thể sử dụng các lợi ích này nha.

Trước hết là các bạn phải có tài khoản github, bạn nào chưa có thì có thể đăng kí tại github.com nha. Các bạn có thể đăng kí bằng bất cứ mail nào cũng được, không nhất thiết là cần đăng kí bằng mail edu. Tuy nhiên, các bạn phải add mail edu vào trong tài khoản. Để add mail edu vào tài khoản github của các bạn thì vào phần setting và chọn email rồi add email address: 


Sau khi đã có tài khoản github, mọi người vào đây để đăng kí nhận lợi ích dành cho sinh viên : https://education.github.com/benefits (sau khi vào trang web bấm vô Get student benefits nha)

Các bạn sẽ được chuyển hướng tới giao diện sau, chọn đúng thông tin và nhấn tiếp tục: 



Xong bước này các bạn sẽ nhận được một email, sau khi nhận được email thì về cơ bản mọi thứ đã xong, bây giờ để xem các benefit của mình các bạn truy cập vào https://education.github.com/pack/offers để xem nha. Giao diện của nó sẽ như sau : 


Các bạn có thể thấy ngay là có rất nhiều benefit dành cho các bạn, tiêu biểu ngay đầu ta có thể nhìn thấy như được $100 vào tài khoản cho thành viên mới tại DigitalOcean (những nền tảng này là gì thì bạn có thể Google là biết ngay nha hoặc xem mô tả đơn giản bên dưới kia ta có thể thấy ngay đây là nền tảng cung cấp Cloud Hosting), hoặc nhìn sang bên phải cùng kia chúng ta có thể thấy ngay được là sẽ được miễn phí 1 năm sử dụng tên miền .me và SSL tại namecheap.com (tuy nhiên với trường hợp này chúng ta không đăng nhập qua namecheap.com mà phải vào qua nc.me nha). Tất cả các tài khoản ở đây, các bạn tham gia và đăng nhập với tài khoản github mà bạn vừa đăng kí lấy benefit (yên tâm là tất cả các trang web đây đều có đăng nhập, đăng kí với Github).

Về cơ bản thì có rất nhiều benefit và mình cũng chưa có sử dụng hết nên mình sẽ hướng dẫn mọi người nhận 1 số benefit nha. 

Nhận tên miền .me free từ namecheap

Để nhận tên miền .me từ namecheap các bạn truy cập vào website sau : https://nc.me/, nếu bạn đăng nhập vào github rồi thì website sẽ tự động đăng nhập qua github, còn nếu chưa thì hãy chọn đăng nhập qua github nha. Chọn tên miền bạn muốn mua và bạn có thể thấy ngay, giá của nó là 0$ : 


Ngoài ra 1 số tên miền khác được giảm giá như bên dưới kia.

Nâng cấp lên tài khoản Github Pro

Thường thì sau khi add mail trường và đăng kí sử dụng benefit thì Github sẽ tự động cập nhật huy hiệu Github pro cho tài khoản của bạn, nó sẽ được hiên thị ở phần profile của bạn như này : 



Nhận ngay 100$ vào tài khoản Microsoft Azure để sử dụng các dịch vụ tại Azure

Azure là gì thì các bạn có thể Google để tìm hiểu về nó nha, nói chung nó tuyệt vời, ta có thể thuê máy ảo, sử dụng các dịch vụ Cloud, ... nói chung là vô vàn.
Sau khi đăng ki các bạn sẽ nhận được 100$ vào tài khoản để sử dụng như này : 


Sử dụng miễn phí sản phẩm của JetBrains

Hãy đăng kí một tài khoản JetBrains bất kì. Bạn sẽ có 1 giao diện như sau sau khi đăng kí: 


Chọn "Apply for a free student or teacher license", ban sẽ được chuyển tới giao diện: 

Chọn "Apply Now", giao diện sẽ chuyển tới: 

Các bạn không điền thông tin trường học nha, chuyển sang tab github sau đó liên kết với tài khoản github education của bạn, JetBrains sẽ tự nhận tài khoản github education. Sau khi liên kết điền nốt thông tin, vào mail xác nhận là các bạn đã có một tài khoản JetBrains với license student để dùng: 


Thành quả của chúng ta là bộ công cụ JetBrains mạnh mẽ sử dụng free cho sinh viên, phải nói là bộ công cụ của JetBrains dùng rất sướng, mỗi tội hơi nặng: 

Những thứ còn lại các bạn có thể tự tìm hiểu và sử dụng nha vì mọi thứ đều đã có hướng dẫn ở bên dưới hết rồi, và mọi việc khá đơn giản là chỉ cần đăng nhập bằng tài khản github mà bạn đã add mail edu là hệ thống của từng nền tảng sẽ nhận được bạn.

Có nhiều người nói là tại Việt Nam không nhận được các benefit trên nhưng mình xin đính chính là hoàn toàn nhận được nha, mình đã lấy và đang sử dụng. Như vừa mình nói ở đầu, có thể trường hoc của các bạn sử dụng dịch vụ của Google hay vì nhiều lý do gì đó, nhưng ít nhất với email edu của trường Bách Khoa Hà Nội là các bạn có thể đăng kí để nhận các lợi ích này từ Microsoft nha.

4/06/2021

Tài liệu luyện thi TOEIC nội bộ đại học Bách Khoa | Tài liệu, tiếng anh, TOEIC


Tài liệu được chia sẻ gốc Tài liệu Bách Khoa, tailieubkhn.com tổng hợp lại để mọi người có thể dễ dàng tìm kiếm hơn vì bài viết mình thấy là hữu ích và bài viết trên Facebook sẽ dễ trôi đi.

Trang web chính thức của trung tâm ngoại ngữ Bách Khoa : https://cfl.edu.vn/
Fanpage chính thức của trung tâm ngoại ngữ Bách Khoa : https://www.facebook.com/clc.hust.edu.vn

Cách tính điểm thi TOEIC nội bộ tại Bách Khoa : 


Các khóa khác thì mình không nắm được rõ cho nắm nhưng với sinh viên năm 2 thì các bạn phải trả đủ 350 điểm TOEIC, năm 3 là 450 và ra trường là 500 ( hình như mấy khóa mới cao hơn thì phải). Thi TOEIC nội bộ Bách Khoa là 2 kĩ năng và đề thi là dễ hơn so với thi TOEIC quốc tế, phí thi là 200K/ lần thi ( rẻ hơn rất nhiêu so với thi quốc tế) và thời gian thi giữa 2 lần phải là 50 ngày, vì thế các bạn phải căn chỉnh thời gian thi cho tốt để nhỡ đâu không đạt yêu cầu thì còn có thời gian để thi lại lần nữa trước khi giới hạn tin chỉ ( nếu không chỉ có con đường thi quốc tế mà thi quốc tế thì rất mắc, mình nghĩ nếu như không thực sự cần thiết thì hãy cứ thi nội bộ sau khi ra trường làm một cái bằng quốc tế là ổn rồi, dĩ nhiên là những ai không cần thiết thôi còn những người thực sự cần những bằng quốc tế để xin việc, đi du hoc thì vẫn phải thi rồi).

3/29/2021

Cài đặt và triển khai Hadoop Single Node | Share


Mỗi ngành công nghiệp lớn đang triển khai Apache Hadoop là khung tiêu chuẩn để xử lý và lưu trữ dữ liệu lớn. Hadoop được thiết kế để được triển khai trên một mạng lưới hàng trăm hoặc thậm chí hàng ngàn máy chủ chuyên dụng. Tất cả các máy này làm việc cùng nhau để đối phó với khối lượng lớn và nhiều bộ dữ liệu khổng lồ.

Xem thêm : Cài đặt và triển khai Spark standalone



Hadoop mạnh mẽ và hữu dụng chỉ khi được cài đặt và khai thác nó trên nhiều node, tuy nhiên với người bắt đầu thì Hadoop Single node là sự khởi đầu tuyệt vời để làm quen với hadoop. Bài viết này mình sẽ hướng dẫn các bạn triển khai Hadoop trên 1 node ( Hadoop Single node).

Điều kiện trước khi cài : 

  • Máy bạn phải có Openjdk ( bản 8, 11 hay 15 đều được), nếu chưa có thì bạn có thể cài theo câu lệnh sau : 
sudo apt-get install openjdk-11-jdk -y
  • Máy có SSH client và SSH server, nếu chưa có thì bạn có thể cài theo câu lệnh sau : 
sudo apt-get install openssh-server openssh-client -y

Thiết lập User cho Hadoop

Thường mình thấy một nhiều trang hướng dẫn các bạn tạo một user mới trên Ubuntu và cài Hadoop trên đó nhưng qua trải nhiệm của mình thì cài Single Node chúng ta có thể cài trên bất cứ tài khoản nào, bạn có thể cài đặt ngay trên tài khoản admin mà bạn đang dùng hiện tại.

Tạo cặp khóa SSH và xác định vị trí sẽ được lưu trữ : 

ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa

Hệ thống sẽ tiến hành tạo và lưu cặp khóa SSH : 

Sử dụng lệnh cat để lưu public key vào authorized_keys trong thư mục của SSH:

cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys

Phân quyền cho người dùng với lệnh chmod :

chmod 0600 ~/.ssh/authorized_keys

Xác minh mọi thứ được thiết lập chính xác bằng cách ssh đến localhost: 

ssh localhost

Download và Cài đặt Hadoop trên Ubuntu

Tải về một phiên bản Hadoop trên trang phân phối chính thức của Hadoop tại : https://hadoop.apache.org/releases.html

Ấn vào phần binary trong Binary download

Bây giờ để file nén mà bạn vừa tải về vào bất kì chỗ nào và giải nén nó ra bằng lệnh : 

tar xvzf hadoop-3.2.2.tar.gz 

Cấu hình và triển khai Hadoop Single Node (Pseudo-Distributed Mode)

Để cấu hình Hadoop cho chế độ phân phối giả chúng ta sẽ chỉnh sửa các tập file cấu hình của Hadoop trong đường dẫn etc/hadoop và trong file cấu hình môi trường gồm các file sau : 

  • .bashrc
  • hadoop-env.sh
  • core-site.xml
  • hdfs-site.xml
  • mapred-site.xml
  • yarn-site.xml

Cấu hình biến môi trường Hadoop ( file .bashrc)

Mở file của .bashrc của bạn bằng trình soạn thảo nano : 

sudo nano ~/.bashrc 

Xác định biến mỗi trường Hadoop bằng cách thêm các biến sau vào cuối file ( nhớ chỉnh sửa đường dẫn $HADOOP_HOME cho đúng với đường dẫn mà bạn đã đặt hadoop)

#Hadoop Related Options

JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64

export HADOOP_HOME=/opt/myapp/hadoop-3.2.2

export HADOOP_INSTALL=$HADOOP_HOME

export HADOOP_MAPRED_HOME=$HADOOP_HOME

export HADOOP_COMMON_HOME=$HADOOP_HOME

export HADOOP_HDFS_HOME=$HADOOP_HOME

export HADOOP_YARN_HOME=$HADOOP_HOME

export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native

export PATH=$PATH:$HADOOP_HOME/sbin:$HADOOP_HOME/bin

export HADOOP_OPTS="-Djava.library.path=$HADOOP_HOME/lib/native" 

Áp dụng các thay đổi trên bằng cách thực hiện lệnh sau : 

source ~/.bashrc 

 

Chỉnh sửa file hadoop-env.sh

Mở file hadoop-env.sh bằng trình soạn thảo nano : 

sudo nano $HADOOP_HOME/etc/hadoop/hadoop-env.sh 

Tìm tới vị trí như hình bên dưới, bỏ comment ( bỏ dấu #) phần JAVA_HOME và thêm vào đầy đủ đường dẫn Openjdk trên máy của bạn : 



Chỉnh sửa file core-site.xml

Mở file core-site.xml bằng trình soạn thảo nano : 

sudo nano $HADOOP_HOME/etc/hadoop/core-site.xml

Thêm vào giữa 2 thẻ configuration để được nội dung đầy đủ như sau : 

<configuration>
<property>
  <name>hadoop.tmp.dir</name>
  <value>/opt/myapp/hadoop-3.2.2/tmpdata</value>
</property>
<property>
  <name>fs.default.name</name>
  <value>hdfs://localhost:9001</value>
</property>
</configuration>

 

Chỉnh sửa file hdfs-site.xml

Mở file core-site.xml bằng trình soạn thảo nano : 

sudo nano $HADOOP_HOME/etc/hadoop/core-site.xml 

Thêm vào giữa 2 thẻ configuration để được nội dung đầy đủ như sau : 

<configuration>
<property>
  <name>dfs.data.dir</name>
  <value>/opt/myapp/hadoop-3.2.2/dfsdata/namenode</value>
</property>
<property>
  <name>dfs.data.dir</name>
  <value>/opt/myapp/hadoop-3.2.2/dfsdata/datanode</value>
</property>
<property>
  <name>dfs.replication</name>
  <value>2</value>
</property>
</configuration>

 

Chỉnh sửa file mapred-site.xml

Mở file core-site.xml bằng trình soạn thảo nano : 

sudo nano $HADOOP_HOME/etc/hadoop/mapred-site.xml

Thêm vào giữa 2 thẻ configuration để được nội dung đầy đủ như sau : 

<configuration>
<property>
  <name>mapreduce.framework.name</name>
  <value>yarn</value>
</property>
</configuration>

 

Chỉnh sửa file yarn-site.xml

Mở file core-site.xml bằng trình soạn thảo nano : 

sudo nano $HADOOP_HOME/etc/hadoop/yarn-site.xml  

Thêm vào giữa 2 thẻ configuration để được nội dung đầy đủ như sau : 

<configuration>
<property>
  <name>yarn.nodemanager.aux-services</name>
  <value>mapreduce_shuffle</value>
</property>
<property>
  <name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name>
  <value>org.apache.hadoop.mapred.ShuffleHandler</value>
</property>
<property>
  <name>yarn.resourcemanager.hostname</name>
  <value>127.0.0.1</value>
</property>
<property>
  <name>yarn.acl.enable</name>
  <value>0</value>
</property>
<property>
  <name>yarn.nodemanager.env-whitelist</name>   
  <value>JAVA_HOME,HADOOP_COMMON_HOME,HADOOP_HDFS_HOME,HADOOP_CONF_DIR,CLASSPATH_PERPEND_DISTCACHE,HADOOP_YARN_HOME,HADOOP_MAPRED_HOME</value>
</property>
</configuration>

 

Format HDFS namenode

Các bạn phải định dạng lại namenode trước khi bắt đầu các dịch vụ đầu tiên : 

hdfs namenode -format

 

Start Hadoop Cluster

Tại thư mục sbin, thực hiện các lệnh sau để chạy và khởi động Hadoop : 

./start-all.sh

Chạy lệnh jsp để kiểm tra các trình daemon đang chạy : 

jps

Nếu kết quả ra 6 trình daemon như sau thì bạn đã cấu hình đúng : 



Truy cập Hadoop UI từ trình duyệt 

Các bạn có thể kiểm tra Hadoop đã được cài đặt thành công hay chưa tại cổng mặc định của namenode là 9870 : 

localhost:9870



Kiểm tra datanode tại cổng mặc định 9864 : 

localhost:9864

Kiểm tra Yarn resource manager tại cổng 8088 : 

locahost:8088


Tham khảo : https://phoenixnap.com/

3/27/2021

Nhập môn phương pháp tối ưu | Tài liệu, đại cương


Môn này phải nói là cực kì trìu tượng luôn, cũng học lâu lắm rồi nên mình cũng không nhớ rõ lắm. Môn này là nhập môn nhưng kiến thức sẽ được dạy trong cuốn giáo trình tối ưu của cô Bạch Kim, dĩ nhiên là mình chỉ học một số chương trong cuốn này thôi vì nhập môn mà. Mình học thầy Tạ Anh Sơn thầy dạy trực tiếp trong cuốn giáo trình này luôn, bài tập và ví dụ cũng lấy từ đây ra. Môn này trước chỉ là môn tự chọn, sinh viên có thể học hoặc không nhưng từ K62 hay K63 trở đi gì gì đó đã là môn bắt buộc cho sinh viên Khoa học máy tính, còn kĩ thuật máy tính thì không học môn này nha và thay vào đó là môn Phương pháp tính. Vì môn học trìu tượng nên các bạn cố gắng để ý và học từ đầu nha không là mất gốc thì khó lấy lại gốc lắm.


Tuy nhiên mình thấy những lý thuyết tối ưu được học ở trong môn này sau này sẽ được nhắc lại và sử dụng khá nhiều ( hình như ở trong các lĩnh vực như là học sâu, tối ưu,...).

Mình có một số tài liệu và đề thi môn này chia sẻ tới mọi người do mình sưu tầm lại trong quá trình học

GIÁO TRÌNH TỐI ƯU - CÔ BẠCH KIM (về khoản giáo trình thì mình khuyên mọi người nên mua một cuốn để học cho dễ, các bạn có thể mua giáo trình phô-tô ở đằng sau thư viện giá cả khá là hợp lí) : PHẦN 1   PHẦN 2

ĐỀ CƯƠNG MÔN HỌC : TẢI VỀ ĐỀ CƯƠNG

ĐỀ THI THAM KHẢO : ĐỀ THI GIỮA KÌ 20183 | ĐỀ THI CUỐI KÌ 20181