哈工大计算机本科学习(踩坑)经验帖
哈工大计算机本科学习(踩坑)经验帖
这个帖子的主要目的就是记录一下在哈工大计算机学院本科学习的一些经验和踩过的一些坑。我只是一个特别普通的本科生,成绩不算很好,所以大佬可以略过这篇经验帖。同时因为一些个人原因,这篇帖子的经验从大二开始,不涉及大一内容。一些课程作业、PPT、实验整理可以看我的github项目:哈工大计算机学院课程整理
大二
大二秋季
在课程学习方面,大二秋季开了数字逻辑、算法、数理逻辑、数据结构、概率论、毛概等课程。接下来详细讲一下我学习的感受和经验。
首先数字逻辑感觉就是数电的简化版,采用的是mooc+课堂教学(事实上课堂教学内容就是mooc内容),使用的课本是逻辑设计基础(第7版),但是这本书对于学习和考试用处并不大,其实只需要学会PPT上的内容和MOOC里的题基本上考试问题并不大。考试采用一纸开卷,个人感觉我们那一年难度不大,但是也不算特别简单,基本上平时认真学没啥大问题。
数据结构可以说是计算机专业很重要的一门课程,无论是对于考试来说还是对于未来的学习和就业来说,使用的教材是本校出的一本课本(个人感觉质量一般),如果对于基础不是很好的人(比如我)来说,可以学习知识点之后去leetcode或者牛客刷一些题,这些对于考试和未来都是有一定好处的。考试的时候有选择、简答、算法题。选择就是考一些简单的(或者不简单的)概念,简答的时候我记得我们那一届考了一些概念题,因此一定要重视一些基础的概念。算法就是手写代码,这个就看平时的积累了,基本也就是讲的那些算法的转换。
概率论个人认为属于学起来有的部分难度有点大,但是考试难度真不大,特别是数理统计部分,虽然认为学起来难度比较大,但是考试涉及这一部分的时候会非常简单,并不需要太担心。课本使用的是学校出的一本书,个人感觉质量不错。学习这门课的时候基本上课本的内容学好,然后作业认真做,考试之前刷几套往年题,基本上问题不大。还有简单说一下概率论对于计算机来说有啥用,对我来说,目前看来概率论对于机器学习非常重要,可以算是基础,,如果想要认真深入学习的话,推荐MIT的概率导论和对应的课程视频(B站上有)。
毛概我们那时候还是开卷,但是听说现在闭卷了,所以我的经验仅供参考。基本上我觉得如果背一背和做一做肖秀荣考研的政治对应的部分应该可以解决,不用太担心。
算法我们这一届是考查课,不知道后续怎么安排,使用的教材是黑皮的算法导论。这门课虽然是考查课,但是事实上非常重要,难度也不小。由于我们那一届没有考试,所以不知道考试考什么。最后的大作业会是一个论文,让找一篇和算法相关的顶会论文,然后找到其中的不足修改。其实做的时候感觉很难,那一篇论文也算是我正式读的第一篇英文论文。其实认真写的话老师给分并不低,所以不用太担心论文这一部分分数特别低。同时,如果真的看不懂论文的话,可以去YouTube搜论文题目,一般会有发论文的会议上的作者的讲解论文视频,配合YouTube字幕观看,基本上看一遍视频,再看一下论文原文就可以理解的八九不离十了。
数理逻辑基本上照着书学,然后课后习题认真做,考前把作业题和课后习题认真回顾一下,再看一遍或者做一遍分数绝对不会低。
大二春季
大二春季学期开了计算机系统、软件构造、形式语言与自动机、马原等课程。其中计算机系统对我们这一届是5分课程,听说马上要改成3分了,感觉还是挺可惜的。
计算机系统和课程的介绍一样,其实简单来说学的就是编写好代码之后,按下“编译并执行”按钮之后一整个过程的每一个中间过程的讲解。这门课采用的课本和教学方式都是经典的CSAPP黑皮书,这本书质量个人感觉相当高。学习的过程中可以参考CMU的课程录像(B站有),做实验的时候个人感觉可以在一定程度上参考往届的实验,但是一定注意要自己独立完成实验,不要大范围借鉴。虽然大范围借鉴并不一定会被抓住,但是为了学的更扎实尽量自己完成。最后考试采用一纸开卷的形式,个人感觉难度偏大,有一些选择题可能并不是那么常规,但是有些题比较固定,做一做往年题发现比较固定的题型考前好好准备一下就行。
软件构造是一门以java为课程设计语言,讲软件构造过程中的各种模式和设计方式等等内容。由于我选的不是软工方向,因此这门课可能会是我本科过程中唯一一门涉及这一方面的课。我觉得这门课相当重要,提供了和别的课程不一样的角度。课程没有课本,主要参考资料就是PPT,PPT是英文的,如果复习嫌慢可以在网上找有几位学长翻译的中文版。学习过程紧跟老师就行,这门课的主要难度在实验,尤其是最后一个实验,会遇到考试和实验重叠的情况,因此建议尽早开始实验。学习过程中对于没学过java的同学来说可以提前预习一些语法,但是说实话和c++差别不大,所以第一节实验课之前现学其实问题也不大(比如我)。考试有选择和大题,选择考一些基本概念(注意要看一看java一些语法,不要觉得不重要就不看了),大题有一部分是需要设计的,如果实验和习题课都有认真做基本上问题不大。
形式语言与自动机考试难度并不大,课本就是自动机理论、语言和计算导论黑皮书,建议如果要看书不要买中文版,翻译相当拉胯,可以去图书馆借英文版看。这门课对于后续一些课程也是相当重要的,基本上跟紧老师上课节奏,做好作业,考试难度并不会很大。
马原同样可以参考肖秀荣考研政治。
夏季学期
好像夏季学期要改革了,不太知道会改成什么样。我们这一届这个夏天要选的是领导力、独立学习、一门外教课程、企业实训。
领导力就是小组(基本上二十多人)邀请一名老师或以其他形式展开一场会议,然后根据参会人数以及一些别的参考标准给小组打分,然后小组分配分数。
独立学习事实上就是听课,然后好像会组织一次讲PPT的活动算是考试,比较常规。
外教课程自己选就好,我选的和我听同学说的都没有很难通过的课程。
企业实训可以自己找企业、学校给几个企业待选、实验室实训,由于我选的是实验室实训,所以对其他几个不是很了解,不讲太多。
和课程无关的
大二可以开始考虑加入一个实验室的项目或者参加一些比赛,这样简历上的内容会比较丰富一点,对未来读研或者找工作都有好处。如果想读研推荐尽早找到实验室然后跟着做项目,对能力也是比较大的提升。
同时大二要面临选专业的问题,这一点我觉得需要慎重再慎重,可能一个专业保研边缘人就是另一个专业前几名(大概率不会这么夸张,但是专业之间存在分数差异是必然的),需要认真考虑。有些专业会有拉学分的专业课,具体可以看下面大三的整理,慎重考虑。
大三
大三秋季
大三我选择的专业是计算机科学与技术学院的智能信息处理专业,所以接下来主要介绍这一专业课程,结合我听别的专业的同学说的别的专业课程整理一下。
首先声明一点,如果从成绩角度,也就是纯从保研角度出发,建议不要选智能信息处理专业,这学期有会拉学分的课程。
同时这个学期开始还会有专业选修要选,后面也会推荐一些比较轻松的课程供大家选择,当然我推荐的都是基于好通过,如果想学某些知识就自行选择课程。
接下来开始正题,这学期我们专业开了NLP、机器学习、计算机网络、近世代数等课程。
NLP:成绩没出,不敢妄议。出成绩更新
机器学习:这门课对于未来有志于做机器学习或者深度学习相关的同学来说很重要,这门课从算法原理开始讲了几个最基础的机器学习算法,是机器学习领域的基础。这门课和概率论以及线代相关性很大,如果忘记了可以学习一下,都可以参考MIT的对应课程。实验比较固定,网上参考也比较多,但是建议还是自主完成(虽然查重压力不大),这些实验在最后考试是会涉及的,所以最好独立完成一遍实验,工作量也不是很大。考试的时候主要考一些机器学习概念和公式推导,公式推导基本上就是4个实验中的公式推导,考前推一两遍考试就无压力了。
计网:计网是一门考试课,也是一门考研课,面试也会涉及,相当重要。但是很迷惑的是学校居然采用MOOC+翻转课堂。我只能说还是靠自学吧,课本使用的是黑皮的自顶向下那本书,教材很好,但是有些部分不考,具体考试内容可以参考MOOC,网上参考资料也挺多的。实验查重压力也不大,但是还是建议自己做一遍。考试和考研题型挺像的,考前可以刷一刷王道考研题,基本上大题都是考研题改的。
近世代数:近世代数跟着老师节奏走,做好作业和课后题就行,学起来有点抽象,考试难度不大。
专业选修:等后续更新。
由于目前还在大三秋季结束的寒假,后面的课程在上完后会持续更新。