Showing posts with label longpt. Show all posts
Showing posts with label longpt. Show all posts

9/12/2021

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


Trong seri bài này mình sẽ tóm tắt các phần liên quan tới học máy và khai phá dữ liệu dựa trên slide và bài giảng môn học được thầy Thân Quang Khoát giảng dậy https://bkai.ai/ (facebook BK AI fb.com/bk.ai ). Bài viết gạch ra một số ý mà theo mình thì nên trọng tâm, tuy nhiên mình khuyên các bạn nên học bài bản và xem video vì cá nhân mình xem 1-2 lần thì vẫn hơi mông lung :(  . Đây là môn học nên tảng, cung cấp kiến thức cơ bản nhất cho các bạn theo định hướng data scientis (hiểu sơ sơ  là sử dụng các kĩ thuật học máy (cluster analysis, decision trees, random forest, neural networks, logistics regression, ...) để xây dựng các mô hình toán học phục vụ các bài toán kinh doanh ), còn cụ thể data scientis, data engineer, data analysis như nào các bạn có thể tham khảo yt.com/dataGuyStory và theo mình tìm hiểu data scientis thường là người có mức lương cao nhất.

Bài này mình sẽ tóm tắt 2 phần giới thiệu chung và Hồi quy (Regression) , còn lại một số khác như -Phân cụm(Kmean) , Học dựa trên láng giềng KNN, Cây quyết định, ... có lẽ (chỉ là có lẽ :D ) mình sẽ ra ở bài sau. Tài liệu môn học này sẽ được đăng sau nha :D 

Giới thiệu chung

  • Học máy : xây dựng hệ thống tự cải thiện bản thân bằng cách học từ dữ liệu

  • Khai phá dữ liệu : tìm ra tri thức

  • Học : improve Performance at Task, following Experience.
    ví dụ với bài toán phân loại thư rác :
    • P : độ chính xác của phân loại thư đó là rác 

    • T : phân loại

    • E : tập thư thường/ rác đã có từ trước thời điểm phân loại 

  • Bản chất của việc học : học hàm f : x -> y. f còn gọi là model (dữ liệu theo 1 mô hình nào đó ). học model là học tham số của model đó.

  • Dữ liệu học : tập học (training set, tập quan sát ) gồm X, Y (tập các x và y tương ứng). x là dữ liệu đầu vào và y là đầu ra của dữ liệu đó 

  • Phân loại: 

    • Học có giám sát ( supervised learning): 

      • Classification : Multiclass (phân loại nó vào 1 lớp), Multilabel(phân nó vào nhiều lớp - gán nhiều nhãn)

      • Regression : khác với classification là đây đầu ra liên tục.

    • Unsupervised learning (không có y, dữ liệu không có nhãn)

      • Phân cụm

      • Phát hiện xu hướng

    • Học bán giám sát :  Semi-Supervised Learning

    • Học tăng cường : Reinforcement Learning

  • Vấn đề: 

    • Giải thuật học ( chủ yếu là lặp để tối ưu) không hội tụ : No-free-lunch. không có thuận toán luôn hiệu quả trên mọi ứng dụng. mỗi bài toán cần thử nghiệm nhiều thuật toán xem cái nào tốt nhất.

    • Lựa chọn dữ liệu : nhiễu, lỗi

    • Khả năng học: khả năng khái quát hóa ( generalization) tập học để có thể  phân loại tốt trên tập thực tế(tập dữ liệu mới, tập dữ liệu tương lại  ), tránh vấn đề overfitting.

    • Overfitting (xảy ra khi khái quát hóa tốt khi học nhưng với tập dữ liệu tương lai, cái cần thì lại rất tệ ) : mô hình quá phức tạp, dữ liệu lỗi, quá bé.

    • Mong muốn tổng quát hóa cao , tương đương với việc không dính overfitting

    • Giải quyết : 1 trong số đó là kĩ thuật Regularization

Hồi quy

  • Học hàm, đầu ra liên tục

  • Linear model

  • x là đầu vào(các x i là các thuộc tính của 1 dữ liệu đầu vào / trong tập dữ liệu đầu vào ), w là trọng số, là cái cần đi học, tương đương với việc xác định đầu vào x đóng góp bao nhiêu phần vào việc quyết định đầu ra cho mô hình 

  • Cách học :

    • Hàm lỗi(lost, cost function) : với tập w hiện tại , ta sẽ tính được đầu ra, đầu ra đó là đầu ra của model (linear model ), nó hoàn toàn có thể khác với thực tế. đại loại lấy sai khác 2 cái này (đầu ra dự đoán của model với thực tế) 

    • Mong muốn lỗi này trên tất cả dữ đầu vào mà mình sở hữu trung bình thấp nhất

    • Thuật toán học : 

      • Cực tiểu hóa lỗi ordinary least squares: dùng gradient descent(từ từ cập nhật trọng số cho phù hợp )  có thể giải bằng toán học : chuyển vị gì đấy …(cho đạo hàm bằng 0 tìm luôn w cho nhanh ), vấn đề không có ma trận chuyển vị ?

      • phương pháp trên quá tập trung vào dữ liệu,không có bất cứ gì để điều chỉnh  khả năng tổng quát hóa cho tương lai =>sinh ra Ridge regression  bằng cách thêm lamda nhân bộ w(một đại lượng hiệu chỉnh mà mình đã nhắc trong bài 1 -Regularization ), hiểu là sau khi cho vào thì bạn sẽ cố gắng ép bọn w vê càng 0 càng tốt => kéo theo mỗi thuộc tính sẽ đóng góp rất ít vào việc quyết định đầu ra, tổng quát hơn (đoán thế :D). Nói chung turning lamda sẽ điều chỉnh đc độ overfitting. lamda càng lớn w càng nhỏ, lỗi tập train tăng, độ tổng quát tăng. (đánh đổi). lamda > 0 thì ma trận luôn khả nghịch

      • Lasso : cái lamda nhân bộ w ở trên cụ thể là nhân với L2 bộ w. ở đây thay L2 bằng L1. điểm hay của L1 là giảm miền tìm kiếm, lựa chọn thuộc tính(sẽ có 1 số thuộc tính không tác dụng cho w của nó = 0 ). dùng cho các bài toán nghiệm thưa . mất tính chất luôn  khả nghịch.

Mong nhận được bình luận cảm nhận, góp ý từ các bạn :(

7/24/2021

Tổng quan cơ sở ngành khoa học máy tính - Viện CNTT&TT (Phần 3)


Chào các bạn, sau khoảng 2 tuần mình trầm cảm, rồi ốm, rồi lại trầm cảm thì nay mình lại tiếp tục lên đây xàm xí với các bạn chút. Ở bài viết này, mình sẽ nói về khối cơ bản về trí tuệ nhân tạo, là một xu hướng lớn hiện nay. Sắp tới mình sẽ có một số bài viết thêm, chi tiết về mảng này, hy vọng tạo động lực, hướng đi cho các bạn mới học( trong đó có mình :v ). Vì cũng chỉ là một newbie, mình sẽ cố hết sức viết đúng kiến thức trong tầm hiểu biết :D, mong nhận được ý kiến góp ý của mọi người.

Sau đây là hình minh họa cho 3 môn học tương ứng với mức độ bao quát trí tuệ nhân tạo(artificial intelligence ) > học máy(machine learning) > học sâu (deep learning)


1. Trí tuệ nhân tạo

Ở mức độ khái quát nhất, môn học cung cấp kiến thức nền tảng, thế nào là một trí tuệ nhân tạo, cần những yêu cầu như nào thì được gọi là một trí tuệ nhân tạo. Theo mình khái quát được, một trí tuệ nhân tạo sẽ cần đảm bảo được Hành động một cách hợp lý, tức là bên ngoài tác động vào chương trình trí tuệ nhân tạo (gửi request chẳng hạn, tác động làm thay đổi trạng thái bất kì ) thì nó phải tác động lại(gửi lại thông tin, hoặc hành động gì đó ), và quan trọng tác động đó phải hợp lí(đúng mục tiêu, đúng lợi ích...)
Trong một phần môn học bạn sẽ được học về các chiến luwcocj tìm kiếm. tại một thời điểm , ứng với một môi trường bên ngoài bất kì, trí tuệ nhân tạo (AI) có thể có nhiều lựa chọn hành động, và sau khi lựa chon theo một/rất nhiều hành động đó, môi trường ngoài lại có thể thay đổi, rồi lại hành động, rồi thay đổi,... tạo nên một đồ thị (từ trạng thái này sang trạng thái kia ). vì vậy, ta cần hcoj cách tìm kiếm để sao cho có thể đạt được mục tiêu (ít nhất là đạt được mục tiêu, rộng hơn thì có thể là thỏa mãn ràng buộc, chi phí tối ưu,...)

Ví dụ về bài toán hút bụi trong slide của thầy Khoát:



Cụ thể các Phương pháp thì có:


Phần còn lại các bạn sẽ được học về Logic, suy diễn , biểu diễn tri thức và cuối cùng là giới thiệu qua một số phần nhỏ của học máy (Bayes, KNN )

2. Học máy

Thay vì đi đưa ra quyết định hành động thì ở đây mình thấy thông thường là có tập data rồi tiến hành dự đoán.

Điều thực sự mà máy cần làm là từ tập x là tập data đã có, y là dự đoán cho từng data/ data đã có, tìm một cách nào đó tổng quan quy luật thành hàm f (model ) để khi cho vào một data mới ta có thể output được dự đoán từ data đó sao cho chính xác nhất .


Trong môn học bạn sẽ đi lần lượt về các khái niệm cơ bản, các vấn đề của học máy , các thành phần của học máy, về tiền xử lý dữ liệu, đánh giá hiệu năng hệ thống. Sau đó sẽ được đi sâu dần vào các thuật toán:


Hồi quy (hồi quy tuyến tính,.. )



Phân lớp (KNN - cái mà đã từng được học phần cuối môn AI , Naive-Bayes, cây quyết định ) 

Ví dụ về KNN:



Học về ANN (nền tảng cho học sâu )




Phân cụm (Kmean )


Trong môn này mình nghĩ cái bạn lãi nhất đó là những tiết học bảo vệ bài tập lớn vì khi đó các thầy sẽ chỉ ra vấn đề tồn đọng trong mô hình mà các bạn sử dụng, cách thức xử lí với data…

3. Học sâu

Như đã nói ở trên thì ANN là cơ sở cho các mô hình trong Deep learning, trong môn này các bạn sẽ được học cơ bản về các mô hình, tuy không phải là cập nhật mới nhất và chi tiết nhưng sẽ cho bạn nền tảng phát triển theo định hướng học sâu.

Đây là môn học không bắt buộc, không có trong các môn cơ sở cốt lõi ngành, thuộc module phân tích ứng dụng thông minh.


7/06/2021

Tổng quan cơ sở ngành khoa học máy tính - Viện CNTT&TT (Phần 2)


Trong bài viết này mình sẽ tiếp tục giới thiệu về một số phần nhỏ trong khối cơ sở ngành khoa học máy tính tại đại học bách khoa hà nội . link bài phần 1.

Sau đây mình sẽ điểm qua một số nội dung, keyword mà bạn sẽ được học mà theo mình là nên nắm chắc, các bạn có thể google để tìm hiểu. Những kiến thức cụ thể mình sẽ nói trong seri bài viết riêng về từng môn học, hy vọng được các bạn đón nhận trong tương lai.


Khối liên quan hệ thống máy tính 


Trong môn nguyên lý hệ điều hành bạn sẽ được học về các phần

    1. Tổng quan

  • Các khái niệm : Tiến trình(process), Luồng (thread), tài nguyên của máy tính, shell, system call

  • phân loại hệ điều hành : xử lý theo lô, theo thời gian, phân tán,..

  • tính chất mà một hệ điều hành cần có: tin cậy, an toàn, tổng quát theo thời gian,..

  • Cấu trúc, thành phần hệ thống : vấn đề về quản lý tiến trình, bộ nhớ, input/ output, quản lý file

    2. Quản lý tiến trình

  • về tiến trình: bài toán điều phối(dùng hàng đợi), thao tác, hợp tác(bài toán sản xuất, tiêu thụ), truyền thông(đệm, socket)

  • về luồng

  • về điều phối CPU: khái niệm trưng dụng tài nguyên, các thuật toán điều phối (SJF, FCFS, RR, )

  • tài nguyên găng và điều độ tiến trình- khái niệm và công cụ xử lý(khóa trong, test and set, đèn báo, monitor )

  • bế tắc và xử lí bế tắc :khái niệm, 4 điều kiện, phương pháp phòng ngừa(tác động 1 trên 4 điều kiện), phòng tránh(chuỗi an toàn), nhận biết và khắc phục(chỉ ra bế tắc và xử lý)

    3. Quản lí bộ nhớ

  • Tổng quan : bộ nhớ, chương trình, liến kết địa chỉ (logic- vật lí) 

  • Chiến lược tuản lí bộ nhớ: phân chương cố định, phân chương động, phân đoạn chương trình, phân trang

  • Bộ nhớ ảo, đổi trang 

    4. Quản lí file 

  • các khải niệm tổng quan , cách tổ chức tài nguyên trên đĩa(vật lí- logic )

  • các khái niệm FAT,NTFS, EXT3,..


Tiếp đến là trong môn Kiến trúc máy tính 

    1. Giới thiệu 

  • CPI

  • time CPU

  • bài tập so sánh thời gian time CPU

    2. logic số, mạch cộng 

    3. Thanh ghi, bus

  • bus address

  • databus

  • bài tập xác định bus đánh địa chỉ tối thiểu

    4. Số học máy tính

  • bài tập : biểu diễn -77 dưới dạng 8bit ?

    5. MISP

  • yêu cầu hiểu lệnh mips

  • bài tập viết chương trình bằng mips

    6. Bộ xử lí 

  • chu trình load lệnh

  • hazard

    7. Bộ nhớ máy tính

  • sự liên quan thanh ghi- bộ nhớ chính- cache- bộ nhớ ngoài

  • tổ chức bộ nhớ cache, chiến lược thay thế bộ nhớ trong cache

  • bài tập tính số bit trên địa chỉ, nằm ở băng nhớ nào,..

    8. .. mấy chương cuối hình như không thi.

Bài cung cấp cho các bạn khá nhiều keyword và khá hoa mắt rồi, các bạn có thể ghé trang Kiến trúc máy tính hoặc Nguyên lý hệ điều hành để lấy tài liệu về tự đọc nhé, tương lai thì mình sẽ có bài chi tiết viết về những môn này (cụ thể hơn là hướng dẫn giải bài tập ) nhưng bao giờ viết thì mình chưa biết :>



7/04/2021

Tổng quan cơ sở ngành khoa học máy tính - Viện CNTT&TT (Phần 1)


Tiếp theo chủ đề review tổng quan về ngành khoa học máy tính đại học bách khoa, trong bài viết này, mình sẽ đi sâu hơn về một khía cạnh là cơ sở cốt lõi ngành. Trong chủ đề này, mình sẽ dùng hướng tiếp cận top down, đi từ tổng quát nhất tới cụ thể từng môn học, giúp các bạn có định hướng, bức tranh tổng quan  về những phần kiến thức mình đã, đang và sẽ được học. 


Như đã viết trong phần trước, cơ sở cốt lõi ngành bao gồm 20 môn với khoảng 50 tín chỉ, chiếm từ ½ tới ⅓ toàn bộ khối lượng học tập, sau đây là sơ đồ biểu diễn một số liên quan tới các môn học. đây được lây từ chương trình học của mình, sẽ có thể thay đổi qua các khóa. bạn có thể lấy đây làm cơ sở đề điều chỉnh chương trình học cho cân đối (một số lời khuyên mình đã có đề cập trong bài đầu tiên ), theo ý bạn muốn( sinh viên vào  năm 2 trường đã cho đăng kí học phần và đăng kí môn học).




Khối giao tiếp cơ bản



Bao gồm các môn như Làm việc nhóm và kỹ năng giao tiếp, Technical Writing and Presentation,Quản trị dự án CNTT. Giống như tên của nó, các môn này  chủ yếu đề cập tới các vấn đề liên quan làm việc nhóm, viết báo cáo, lập kế hoạch, quản trị 


Khối liên quan tới lập trình, tư duy lập trình, tư duy logic



Các môn học ở đây là cơ sở đề các bạn biết code và rèn luyện kỹ năng tư duy giải quyết vấn đề bằng lập trình. Ở cảm nhận cá nhân, những môn này khá khó và cần luyện tập rất nhiều để có thể thành thạo. ở bài viết này mình sẽ liệt kê các keyword mà các môn học có liên quan tới nhau (cùng một hàng là các keyword liên quan tới nhau giữa các môn )


Toán Rời Rạc 

Cấu trúc dữ liệu và giải thuật 

Kỹ thuật lập trình 

Thuật toán ứng dụng 

Đồ thị, các khái niệm liên quan 

   

thuật toán liên quan đồ thị, biểu diễn đồ thị bằng danh sách kề, ma trận khoảng cách...

thuật toán duyệt đồ thị BFS,DFS

cấu trúc dữ liệu: ngăn xếp (stack), hàng đợi (queue )

 

lập trình các bài toán liên quan duyệt đồ thị

thuật toán tìm đường đi ngắn nhất trên đồ thị, tìm kiếm trên đồ thị 

   

dạng toán khá khó trong các bài test của môn học 

đồ thị 

cấu trúc dữ liệu : cây.các thuật toán liên quan duyệt cây. Cây bản chất dược định nghĩa đệ quy ( liên quan stack )

   

2 môn này có phần này chung nên bạn có thể nên chuẩn bị tâm lý là thầy cô sẽ bảo là “chắc là môn kia dạy rồi nhỉ :D ” và bỏ qua mặc dù có thể môn kia các bạn không được học hoặc học qua loa :v

   
 

Độ phức tạp thuật toán, định lý thợ 

đánh giá tối ưu thuật toán 

đánh giá tối ưu thuật toán, thường thì một bài có thể có nhiều cách giải, nhưng sẽ tính điểm dựa theo độ phức tạp

 

Giải thuật liến quan tìm kiếm, sắp sếp

Giải thuật liến quan tìm kiếm, sắp sếp

Giải thuật liến quan tìm kiếm, sắp sếp

   

những tiết thực hành ở môn này là bước đệm cho tư duy giải bài lập trình trong môn thuật toán ứng dụng để bạn đỡ bỡ ngỡ. 

 
 

cấu trúc dữ liệu: ngăn xếp (stack), giải thích đệ quy. 

giải thích của đệ quy, cách đệ quy hoạt động,

lập trình các thuật toán : duyệt toàn bộ, chia để trị, nhánh cận, quay lui 

   

Tối ưu code  (tối ưu vòng lặp , các kĩ thuật liên quan biến)

giảm độ phức tạp=> tăng điểm 

   

kỹ năng debug, phát hiện lỗi sai, gỡ lỗi, test  

debug chương trình

(thật sự đây là một phần stress nhất nếu bạn có í định học môn này một cách nghiêm túc ) 

Thuật toán tham lam 

   

thuật toán tham lam.. mặc dù có thể không cho bạn được full điểm nhưng có ít nhất thì không bị mất hết điểm câu đó. trong môn này chỉ cần hơn nhau 1 điểm/ 400 điểm  là thứ hạng của bạn có thể up lên vài chục trên tổng số vài trăm sinh viên.

 

cấp phát bộ nhớ , con trỏ 

con trỏ , con trỏ hàm 

tối ưu code (tránh bị tràn bộ nhớ )

 

HASH => sau này dùng cho môn An toàn thông tin 

   
 

Cấu trúc dữ liệu cây(Btree) => sau này nhắc đến trong môn hệ điều hành , database 

   


Trên là một số liệt kê của mình về các phần liên quan, những phần sau mình xin phép cắt đi vì nếu viết thì sẽ khá dài cho một bài blog. Mình sẽ viết từng khối  trong một bài riêng. Sau loạt bài tổng quan về từng khối này, mình sẽ viết loạt về cụ thể từng môn, ủng hộ mình nhá <3, like fanpage chẳng hạn, để lại cho mình bình luận góp ý, mình hứa sẽ tiếp thu và thay đổi. 


Khối liên quan tới hệ thống máy tính


bao gồm 2 môn nguyên lý hệ điều hành và kiến trúc máy tính. 



Khối liên quan lập trình phần mềm 



Cơ sở dữ liệu(thực chất thì cái này dùng rất nhiều trong  mảng khác chứ không phải mỗi công nghệ phần mềm ),Nhập môn công nghệ phần mềm,Phân tích và thiết kế hệ thống(có thể liên quan tới cả  môn quản trị dự án công nghệ thông tin), Lập trình hướng đối tượng(là một nguyên lí, quy tắc,... để bạn lập trình nhiều mảng khác )


Khối liên quan trí tuệ nhân tạo , phát triển ứng dụng thông minh



Đây có thể nói là trend hiện nay, phổ cập trí tuệ nhân tạo :D. rất khó, thằng bạn mình (dẫu biết là trong chúng ta ai cũng có thằng bạn, ông anh,... để mỗi lần khó lại lôi ra :D nhưng đây là bạn mình thật) đã nghiên cứu về nó trong thời gian rất lâu và mình cảm thấy bạn là một người cực kì giỏi về mảng này(đặc biệt là giỏi về toán cơ bản, linh vực này cần thật sự nhiều toán cơ bản ) nhưng cuối cùng vẫn không qua được phỏng vấn lab DSLab( lab uy tín nhất của trường về Machine Learning), khá đáng tiếc :(. vì vậy nếu xác định theo hướng này thì bạn cần nghiêm túc ngay từ năm nhất với các môn toán cơ bản, có thể liên hệ vào lab qua thầy chủ nhiệm khoattq@soict.hust.edu.vn nếu lab có tuyên thành viên. 


Khối liên quan bảo mật thông tin, logic mạng



Ngoài review ra thì mục đính cao hơn  của trang là cung cấp cho các bạn nguồn cảm hứng, tạo động lực học tập, định hướng cho các bạn con đường lập trình với sinh viên khoa học máy tính đại học bách khoa nói riêng và tổng quan ngành lập trình nói chung(đối với các bạn bên ngoài trường), trả lời cho các bạn câu hỏi : tôi cần gì để có thể trở thành một lập trình viên ?

Cuối cùng, với mỗi nội dung mình viết hiện tại đang chỉ là một số keyword cơ bản nhất, các bạn có thể tự tìm hiểu bằng cách tra google với từ khóa đó + viblo. đay là một trang blog mình thấy đọc khá dễ hiểu. 


Good Luck, 

longpt


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