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


3 comments: