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ánthuật toán ứng dụngnhữ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ạccấ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