計算機科學方向的教學內容比較偏向理論,其培養目的,是教會學生基於數學和哲學,利用計算機作為工具,對一些問題進行建模求解。所以這也要求學生具備紮實的線性代數、離散數學、形式邏輯、統計學等紮實的數學基礎。這些問題有可能是生活中可以見到的應用型問題,比如研究如何準確地使用計算機演算法對人臉進行識別,或使用計算機演算法與人類棋手對弈,對這類問題的研究稱為應用型基礎研究;被研究的問題也有可能是純理論問題,比如研究基如何通過蒙特卡洛方法對深度學習網路進行剪枝優化等等,這類研究的方向比較抽象,通常被稱為理論型基礎研究。我們一般認為,理論型研究是應用型研究的基礎和工具。
計算機工程通常是計算機系本科生和部分碩士研究生的培養方向學習範疇。而部分碩士研究生(尤其是M.Phil)和絕大多數博士研究生(Ph.D)都在從事計算機科學方面的研究。
通常在碩士階段,學生開始接觸到比較實際的計算機科學專業方向,這通常取決於導師自己的方向。但由於碩士培養周期較短,對專業方向的涉及也常常比較淺顯,碩士畢業生通常的狀態是「具備比較紮實的計算機工程基礎,已經開始接觸計算機科學問題。
到了博士階段,學生的主要任務就是挑選一個計算機科學的細分方向進行深入研究,直至斬獲該細分方向的突破性進展才能夠畢業。計算機科學的研究方向互相交叉,很難給出一個科學的分類圖譜,我們這裡列出一些常見的研究方向及組合: