CS

大一上

计算机导论与程序设计基础

某老师在上课时不会用Dev C++ debug的场景依然记忆尤新。。。

所以在上完课你不会编程很正常。学校会通过一个 OJ 定期的布置作业,并且测试(会计入总成绩),一定要把OJ中的每一个题目完全自己的写出来。尝试着加入 ACM 的大家庭,学校的ACM总群:116225686。(本人从ACM竞赛的训练中收获颇丰,极大的锻炼了自己的编程能力)

一些入门级的OJ:百练、PAT等等,善用自己的搜索能力。

多看相关的书籍,多动手敲代码。

@16-babydragon

自己多敲代码!自己多敲代码!自己多敲代码!不能光听老师讲课,编程语言语法什么的学个大概,关键是实践巩固。 没有基础的同学通常会在这门课上感到吃力,这是很正常的,摆正心态,多刷OJ题就好。

@16-wkf

高数

很重要。尤其是对于在本专业发展的同学来讲,有一个良好的数学基础能走得更远。

@16-wkf

其他公共学科

主要是刷题为主,个人感觉大物之类的学过之后就再也没有用到了。。

推荐微信公众号 今日西电

维护者:西电小花坊(校内学生团队,QQ群号 347372179 / 819195739)

公众号里面有西电各种公共学科的电子教材,练习册答案等

@16-larry6799

大一下

Python 、java程序语言学习

IDE选择

建议使用IDEA(Java)和PyCharm(Python) , 两者都是JetBrains公司的产品,使用西电学生邮箱注册可以免费使用。 @16-larry6799

课程选择

根据自己的喜好来进行选择吧。

在2016级是第一次开Python语言课程,李光夏的Python感觉还不错,对刚学习编程语言的同学很友善,课程难度不高,无介绍经验。

@16-babydragon

教Java的王煦老师人不错,可是我听的课程感觉听的稀里糊涂,直到大三学了C++。

Java中重点在于面向对象编程的思想,建议先花点时间看看C++的面向对象程序设计,这样就能很快适应从C编程到Java编程。

@16-larry6799

程序设计基础课程设计实习

我当初选择的图书管理系统:源码

@16-babydragon

线性代数

之后机器学习会用到很多,但是这门课好像学得很浅,而且考察很水,建议找MIT的线性代数课程看一看。中英双语,老师语速很友好,顺便可以练一下听力。

@16-wkf

线性代数还有两次考试应该,如果想需要使用matlab但是又不想装(是在太大了),可以使用线上matlab环境。例如免费的 User.me , 相当于一台装了matlab的私人云主机,能满足计科学生学习matlab的基础需求。

@16-larry6799

大二上

数据结构

这个时候不知道你有没有参加大一下暑假的ACM集训,养成刷OJ的习惯,如果有的话这门课应该是很轻松的。当初我很划水的过了。

@16-babydragon

机试占30%,笔试占50%。好好学的话笔试我感觉基本可以考满分。机试一共四个题,两个满分,多做一个总分加五分,所以这门课很多100分的;四个题一定都要看,做不出来也要骗分。

[@20-semikonductor]

数字电路与逻辑设计

是一门进入计算机世界的一门硬件基础课。除了要学好软件,对于一些基本的硬件知识也要清楚。这门课相对简单,但是很重要。在大二下和大三上都需要用到这些知识。

@16-wym6912

电路分析基础

也是一门相对简单的课程。这门课是西电传统课,它能帮助你理解低压电路上的工作原理,为以后的课程打下基础。

@16-wym6912

概率论

这可能是大多数同学的最后一门数学课了。这里面的有些东西很有趣,建议认真听,如果以后往机器学习方向发展,可能会有用到。

@16-wkf

非常重要,概率论和线性代数知识在保研面试/考研复试中出现率非常高,好好学,做好笔记,大三的时候能够快速回忆拾起知识。

@16-larry6799

学校考试很简单,基本都是同一个套路,这门课学好要自己花时间理解,理解了就会豁然贯通。 @20-semikonductor

大二下

最难顶的一学期来了

计算机组织与体系结构

这个课非常的重要,也主要是理论的讲解,不会涉及到太多的编程,但是与计算机有紧密的联系,比如冯诺依曼结构,数字的表示,内存的映射,磁盘如何存储数据和寻找数据,CPU流水线等等。

上课好好听,认真完成老师布置的作业。

@16-babydragon

这个课与大三上《微机原理与系统设计》课程紧密联系,偏向于理论上的研究。

在西电学堂上有一套完整的视频讲解,搜索”计算机组织与体系结构”(其实也是上课回放),如果有上课听不懂的地方可以去听。

这门课关键是需要多想,想想为什么要这么设计?与其他方法相比好在哪里?

这门课还有一个重要思想,在很多时候设计中有 A 方案,也有 B 方案,但是他们都不是最完美的方案,就需要取一个折中的 AB 方案,既有 A 和 B 的优点,在某种程度上也克服了 A 和 B 的缺点。

@16-wym6912

赞刘博老师坚持用板书不用ppt~

@16-wkf

考研的核心课程,要好好听,不管是保研还是考研都很重要。

@16-larry6799

计算机通信与网络

这个课我还专门的写过一个帖子吐槽

建议看另外一本书籍《计算机网络:自顶向下方法》。建议关注一个知乎用户:车小胖。学习的时候多去问几个为什么,然后把里面得帖子文章都浏览一遍,还是相对而言比较的通俗易懂。因为教科书里面的话比较的严谨,并且经过了字斟句酌,导致经常不说人话。

另外期末考试的题目直接上考研难度,建议买一本考研相关的计算机网络的书籍,一是这些书比较系统和全面,二是多做做里面的题目。当时一些同学考完直接傻了。。。

@16-babydragon

也是一门自闭的课程,书都没有上完,最后一节课上完三章,如行云流水。最后考试背书都感觉背不完,但是最后老师捞了我们一手,还行,不用过于担心不及格。

@16-larry6799

操作系统

也是让人自闭的一门课,原因是当时讲的老师自己她就不懂操作系统。。。

建议自己学,推荐6.828课程及里面的实验部分,实在一个人推不动,建议参考JOS

@16-babydragon

真是自闭,考的也很难,我是按照b站北大陈向群老师的课程来学习的,老师语速有些慢但是很清楚,可以考虑倍速播放。(ps:中途发现清华的学生这门课的实验是自己做一个小操作系统,orz,具体是什么忘记了。。。)

@16-wkf

考试分数贼低,还不到80,不说了,贼自闭,复习的和考的基本没关系。。

@16-larry6799

信号与系统

这个我本来是不想提的,但是建议学好FFT相关原理。

@16-babydragon

关于《信号与系统》,可以在中国大学 MOOC 上搜索 “郭宝龙 信号与系统”,讲解的比较细致,习题也设置合理。课程本来就很难,但是这门课为后续做图像处理、机器学习打下了很好的数学基础。

@16-wym6912

学习者需要有电路分析的基础,也是大三开设的数字信号处理的基础课程。

这里推荐一个 西电老师的微信公众号:信号与系统的结构与解释

里面有各种考试,习题等的分析,受益匪浅。

@16-larry6799

模拟电子技术基础

关于《模拟电子技术基础》,可以在中国大学 MOOC 上搜索”孙肖子 模拟电子技术基础”,讲解的比较细致,可以帮助你理解很多基本概念。请按照上课的课程顺序学习。

这门课难度较大,但是学好了可以更好的理解计算机设备的制造上的某些细节问题,例如晶体管。

@16-wym6912

数理逻辑(拔尖班)

20 级是刘西洋老师上的,因为是第一年给本科生开这课所以卷子出的很水而且大作业占比60%(阅读 Trustworthy AI 论文写总结)

网上可以搜到研究生做的笔记和往年题

笔记:https://www.jianshu.com/p/2e3552f1d06a

@20-yjmstr

数理方程(拔尖班)

信号与系统删减版,主要讲偏微分方程和傅里叶变换,拉普拉斯变换

同样可能是由于第一年给计科开所以卷子出的比较简单,都是 ppt 里的板题

@20-yjmstr

课程补充知识

大二到大三 计科 的大部分的课程的PPT,课后习题答案,考试相关资料等 都可以在QQ群 512043533 (过气课件共享群)里面找到,希望学弟学妹积极扩充资料 QQ 群 创建者:保研P大的朱大佬,现在是18级的学弟在管理

@16-larry6799

大三上

又是一个身心俱疲并且几乎没有自己的周末的学期。。

必修

数据库系统

关系型数据库。

如果对这个非常的感兴趣的话,可以去做做pingcap社区做的talent plan。

我当时做的大作业:database

@16-babydragon

好好做一下大作业,团队合作,挺好玩。学好SQL语言(以后有用,和考试倒是关系不太大)。

@16-wkf

王小兵老师验收大作业贼严格,他也会叫研究生帮忙验收。但是小兵老师刀子嘴,豆腐心。小兵老师人还是非常好的,现在还记得他的76行sql语句吧。比较建议大家选赵亮老师的课程,因为长的帅,颜值即正义。

@16-larry6799

微机原理与系统设计

这个课还是比较难的,建议直接去旁听车向泉的课。

好像西电学堂上也有录播。

@16-babydragon

这个课与大二下《计算机组织与体系结构》紧密联系,偏向于具体的实现,例如 8086 、8088。

要与上学期学的课程联想一下,这样有助于理解。

同时也要回忆起《数字电路与逻辑设计》中的各种电路的设计方法,这样有助于理解这学期的一些系统设计。

汇编语言也需要深刻的理解。

推荐一个电院老师讲的《微机原理与系统设计》:去 bilibili 搜索 “周佳社 微机原理与系统设计”。

@16-wym6912

直接翘课去听车向泉老师的课,如果不放心可以借个账号看回放。回放不是在西电学堂,而是在教务系统,上完这节课后,不到一天就会有录播传上去,所以可以借个车向泉老师班上学生的账号登录教务系统看回放。(看来这个功能推广不够呀,知道的人不算多)另外配套实验做的东西都挺有趣的!

@16-wkf

能选车老师的课程就选车老师的,选不了建议借选到的同学的账号看录播,尤其是车老师最后一节课的总结内容,会说考试内容形式,而不会像XX老师。

@16-larry6799

方向必修

计算机视觉(大数据方向必修)

苗院长讲了几课中途跑路了,新的老师没有能力把这门课讲好。。。

ppt直接照搬的康奈尔大学的课程,我当时做的大作业:计算机视觉

建议自求多福。考试前把ppt里面的每个原理自己推一遍,实在不会推找大佬帮你推,找不到就死记硬背吧2333

考试点琐碎无比,所以要推理的一定自己手动推一遍,该死记硬背死记硬背。

反正上完这个课我是再也不想去碰计算计视觉了,直接当场劝退。

@16-babydragon

感觉这个课程其实是按照4个大作业来走的。提前说:大作业都能在网上找到答案,但不建议去抄。 大作业的形式就是让你去补充未填写完成的函数,也就是对前几次知识点的考核,建议自己写。 考试的话,基本死记吧,有一些些线代的东西。

@16-wkf

计算机安全导论(网络、大数据方向必修)

通识课,考试难得要死,跟学的完全不一样,建议好好做最后的大作业。

当时我在课上做的演示主题:堆栈溢出攻击

演讲ppt:堆栈溢出攻击

@16-babydragon

会让挑选做两个大作业,可水也可好好做。ps:老师画的重点一个都没考。。。。

@16-wkf

考试大部分都是概念性的东西,依稀记得有https和http,加密算法, 防火墙。。。沈院长看完我们考试的试卷可能觉得我们都是垃圾吧,监考的时候走出考场就很生气。

@16-larry6799

离散数学(二)(网络方向必修)

抽象代数,很难,但是考试很水,全是原题。水过

@16-babydragon

组网与运维(网络方向必修)

开卷考试,重视实验

@16-larry6799

面向对象程序设计(C++, 软件方向必修)

这个课比较简单,建议先学这个再学Java。

大作业是一个比较简单的小小的系统设计,比如员工管理系统,数据存储可以写在文件或者数据库中。

最后的考试内容以PPT为准,重点是对封装,继承,多态,虚函数,生命周期等的理解。

@16-larry6799

算法分析与设计(双语)(软件方向必修)

挺水的,感觉之前都学过。

@16-wkf

建议没有打过ACM的修读,主要内容是算法复杂度分析,排序,并查集,字符串,堆,图论相关算法知识。

一共有几次大作业,算法实现语言不限,不过建议使用Java语言,因为这本书配套了学习资料,以及官方封装的Jar包,可以在此基础上进行编程。最后一次的大作业是dijskra算法的改造,A*算法相关。

考试需要计算和思考的内容还是非常大的,一定要把课后习题全部弄懂。

@16-larry6799

数字信号处理(嵌入式方向必修)

个人感觉难度大于《信号与系统》。教学上围绕DFT、FFT展开,讨论针对序列的不同方式的傅立叶变换的特性及联系,其次教学内容是针对IIR、FIR滤波器的设计方法。上机作业也是在matlab上设计几种不同的滤波器,现场解释设计方法及对信号的处理结果分析。平时也会布置课后作业。

考试为闭卷考试,占60%以上,不过题目基本源于课后习题。

平时认真对待课后习题,这门课还是很轻松能过的。

@16-zlmh

单片机电路设计与开发(嵌入式方向必修)

这是一门综合工程设计,需要2-3人合作完成项目,我是和我的两个舍友组的队。会有一个负责老师在开学后的几周内对选课的人开一次课,讲解课程的一些相关问题,提供几个可选题目也可自己设计题目。之后便是组内成员自己在宿舍或者实验室完成。我这里是前期买了一块C51开发板,调试好程序,之后在面包板上完成元件的焊接。

学习资料的话可以在51单片机论坛查找。

@16-zlmh

机器学习(双语)(拔尖-智能技术方向必修)

和智能院的图灵班一起上,所使用的教材是 PR&ML

实验疑似是祖传的,网上能搜到一堆西电的

@20-yjmstr

人工智能概论(拔尖)

教材是西电21年自己编的新书,ISBN:9787302584681

@20-yjmstr

计算理论复杂性(拔尖)

请的康奈尔的老师上全英网课

建议结合《计算理论导引》这本教材食用

@20-yjmstr

算法分析与设计(拔尖)

讲算法导论,但是老师发在学在西电的教材不太完整,建议找原版书看看

@20-yjmstr

学院选修

组合数学

打ACM的一定要学一下,Polya和burnside自学,而且这门课没有考试是考察,就交一个小paper就行了。

我当年纯自己写的小paper:[Burnside引理和Polya定理之间的联系]

@16-babydragon

补充:课程最后有个开卷几道题的随堂测试,不是很难,反正这是一门性价比非常高的选修课。

@16-larry6799

移动互联网导论

性价比也还非常高,这门课一共有3个老师上课,点名不多。

大作业是组队做一个微信小程序,然后答辩即可,非常容易通过。

@16-larry6799

大数据时代的软件开发模式与技术

是中途开的课程,请的外教(中国人)

所有作业均为组队,上课之前会点名

中间有几次编程作业,最后是英文PPT答辩展示。

2个学分,只要作业交了就能通过,最低档次的分数由老师的心情来定,

16级最低分好像是70左右,每个组的组长比组员高2分

@16-larry6799

云计算与大数据

依托亚马逊的免费的云服务器,最后的使用基于亚马逊的Alex智能音响(老师会发)

课程使用很多,考验动手能力,建议对这个感兴趣的同学选修。

@16-larry6799

补充

大二到大三 计科 的大部分的课程的PPT,课后习题答案,考试相关资料等 都可以在QQ群 512043533 (过气课件共享群)里面找到,希望学弟学妹积极扩充资料 QQ 群 创建者:保研P大的朱大佬,现在是18级的学弟在管理

@16-larry6799

大三下

必修

人工智能

水过

@16-babydragon

比较简单,人工智能的发展史~

@16-wkf

有一个遗传算法的实验,验收会给定一个不同位数的基因型,再给不同函数的优化,所以整理成模版以便方便修改各个参数和目标函数F(x,y)。可以参考我的博客:遗传算法求解模版(两元)@18-Vsingeryh

软件工程

自己做一个软件

我自己写的一个游戏:GNG

记住自己的idea一定要fancy,不要太过的务实,因为答辩不看代码,有些功能自己吹也是完全没有问题的。

@16-babydragon

团队合作做个软件,做什么可能并不重要,主要是感受一下做软件整个的流程。最后答辩挺正式的,印象深刻。 考试不难,基本是复习到的原题

@16-wkf

大作业占50%分数,答辩评分是我们班级内部评分,每个组都可以给其他组高一点的分数,大家互相操作一波你懂的,这时候就看大家团结不团结了。考试内容也不能,按照软件生命周期来的。

@16-larry6799

方向必修

数据挖掘(双语)(大数据方向必修)

水过,不喜欢

@16-babydragon

我感觉还挺好玩的,做两个实验,不难。马小科老师讲的挺好,上课比较严格。 同学说实验是三选二,但我记得我当时是二选二了,可能因为某些原因没看到题? 选的是电影推荐和聚类技术——复杂网络社团检测。这类型的实验自主性还是比较大的,做完有一丝丝成就感。

@16-wkf

媒体数据管理(大数据方向必修)

好好做平时的作业,期末考试只占20%,开卷。最后考试全是主观题,相当于当场写小论文。

崔老师讲的还是比较好的。

@16-babydragon

水过,上课折服于崔院长的颜值。

@16-wkf

这节课基本每年实验都会不一样,实验比较混杂,可以说什么方向实验都会来一个,可以部分参考:Media_xdu@18-Vsingeryh

编译原理(软件工程方向必修)

这个是我本科写过最硬核的作业了。

老师讲的很一般,建议看SICP。

认真完成大作业,我当时不分昼夜的肝了两个星期:sql parser

@16-babydragon

这门课张南老师给分还挺高的,个人感觉。老师还会给夏令营的同学签推荐信,爱了爱了❤️

@16-larry6799

网络应用程序设计 (软件工程方向必修)

课程所以的实验都在Linux下完成的,很硬核这个课程。

感觉老师讲课讲的也不是太好,基本到课率在30%左右。

第四次实验是写个手机作为电脑鼠标的程序,老师给的程序我都没有跑通,我枯了,所以只交了前三次实验报告。

考试更是究极纯粹,就四道大题,写思路+代码。

建议非方向必修不要选择这么课程,体验不是很好。

@16-larry6799

分布式计算(软件/网络方向必修)

李龙海老师讲的很仔细认真,但是我当年结课了还是没有入门分布式计算。

建议直接上6.824 2018。

当时的大作业:dis_lab

@16-babydragon

2016级因为时间的关系,所以实验只进行到hadoop那块,缺少 Paxos 分布式一致性算法的实验,希望2017级以后的同学补充上。

@16-larry6799

机器学习(大数据方向必修)

建议直接搜优质学习教程。。。老师水平有限。。。这个课全程划水。。。(求求未来从事这方面研究的同学可以来补充一些)

建议通过优质公开课自学。

@16-babydragon

实验都不难,难的都可以调库,当然也有大佬不掉库自己写svm的smo算法等等,如果真的想以后做这方面科研可以深入学习,不然直接水过不香吗?同样实验每年都不完全一样,可以部分参考:mlexp@18-Vsingeryh

嵌入式系统(嵌入式方向必修)

我是其他方向选修的,考试轻松水过,平时也有实验。

@16-larry6799

没有教材,课程和考试全都基于PPT,实验也有对应的实验手册。课程内容则是针对ARM汇编程序、ARM下C编程、uCOS-II操作系统、部分外设等。

@16-zlmh

嵌入式程序设计(嵌入式方向必修)

课程和考试也全都基于PPT,有四次实验,会在一天全部完成,指导老师和研究生学长都在实验室,遇到问题可以及时询问他们。课程的主要内容是Linux操作系统(部分)及Linux下的C编程。与《网络应用程序设计》这门课有部分重合点。

建议在学《操作系统》这门课的时候,充分了解Linux操作系统。

有兴趣的话可以尝试在树莓派、Arduino等平台进行DIY,树莓派实验室

@16-zlmh

SOC微体系结构设计(嵌入式方向必修)

无教材,课程基于PPT。课程的主要内容是使用VHDL语言编写CPU的主要功能模块,如寄存器、ROM、RAM、ALU、微程序控制器等。最终目的是将编写的各功能模块组成一个8位的CPU。课程伴随实验进行,共有20次实验,即对各功能模块的程序编写及FPGA验证。实验占比60%,期末考试占比较少,并且考试内容分别来自PPT及实验内容(手写实验代码)。

实验时间没有达到规定学时,导致当时未完成全部实验内容的实现及验收。课程体验不是很好。

课程偏向硬件,建议对计算机组织与体系结构及FPGA有兴趣的同学选课。

@16-zlmh

选修

云计算与虚拟化

非常的水,最后就交了一个小论文,没有平时点名和随堂测验。

@16-larry6799

人机交互设计

用Unity做游戏,还挺好玩的

@16-larry6799

大四

基本上有下面几种选择:工作、保研、考研、出国。

当然还有最重要的毕业设计。

毕业设计