刚入大学学习计算机两年,感觉这两年学习到的东西确实不多,很多都是学完考完试就忘了。现在大致回顾一下,大学以来学习的经历,也为以后留下一点参考。
大一上:电工学(目前已经忘的差不多了,大概记得是讲一些电子管、NP结、放大电路之类的东西)
大一下:数字逻辑(我当时学的还挺认真,讲了同(异)步时序电路、大规模集成电路这些东西,当时还挺感兴趣的,这学期要做一个彩灯实验,个人觉得都一年了,又要重学,比较麻烦)
数字逻辑实验,我们组做的是四花样小彩灯,当时用的Protel,Multisim仿真,以为很难的。。后来做完之后觉得很有成就感,也很有趣。
离散数学(讲了逻辑推理、图论这些吧)
数据结构
线性表(链表、顺序表)、
队列(求解迷宫问题,类似层次遍历)、
栈(求解迷宫问题,回溯法、回文)、
串(BF,KMP算法进行子串模式匹配)、
数组和广义表(稀疏矩阵的三元组和十字链表存储、广义表的递归特性(GetHead取第一个元素,GetTail取后面的子表))、
树(数的基本概念、性质,二叉树(完全二叉树、二叉排序树、平衡二叉树、B- B+ 树、堆、遍历算法))、
图(邻接矩阵和邻接表表示法,图的遍历,生成树,求最小生成树(普里姆、克鲁斯卡尔算法),求每两个点间最短距离(弗洛伊德、DJ),求拓扑排序、关键路径)、
排序和查找(八种排序算法,时间空间分析)
数据结构真的很有用,需要好好学,目前我正在重新复习。
大二上: 计算机组成原理(感觉有点坑,老师飘在空中讲,自己看的书,没学到太多,实验也很水,但是重要)
微机接口与汇编(我们汇编还没学就开始讲接口,后来老师补了几次汇编课,上课完全听不懂,考试前借参考书,发现自己学的比老师讲的还多,不过现在忘得也差不多了,大概有中断之类的东西。汇编很重要,结果老师不给实验课,布置题目也比较少,所以掌握的不是很好)
操作系统(老师讲的很好,照的PPT看也能大致看懂,从文件管理、内存管理、设备管理、处理机调度四个方面讲,还是不错的)
算法设计与分析(老师上课无表情、一动不动,但是讲的还是可以,跟数据结构有密切相关,学会一个算法后直接实现的感觉很爽,有成就感,但是直接设计算法有些难)
信安数学基础(我大二上最喜欢的一门课,老师讲的挺认真,里面介绍一些模运算、定理、群环域这些概念及运算,跟密码学关联比较大,自己课下照着书上的实现过几个小算法,比如求模、模重复平方算法等)
软件工程(没太认真听,写了几次文档,从需求分析到软件计划、概要设计、详细设计、编码、测试、维护的过程心中大概有个概念)
大二下:感觉就是一下子跟不上了,开始接触计算机比较难的部分
数据库原理(老师交的不错,就是上课想睡觉,听着觉得没什么太大意思,但是还是挺有用的,目前学到数据库设计)
编译原理(很喜欢的一门课,老师用他自己的讲义,我们有书但是看讲义更方便,词法分析、语法分析(自顶向下:LL(1) 自底向上:LR、 LALR 等等分析方法)、目前要讲语义分析了,就是作业有点难,编程不太会)
软件设计实践(跟软件工程结合的课,感觉有点坑,没学过面向对象、没学完数据库,怎么写带界面带数据库的软件,目前距离deadline还有3个星期,当务之急是编码和测试阶段了。其实上完之后,觉得应该是在JAVA之后学的,这样我们去编写程序的时候会方便很多。担任组长,让我学到很多。)
软件安全(深入讲计算机系统结构,讲了文件系统、PE结构、栈溢出、堆溢出等等,个人学的很吃力)
网络安全(前几次课讲工具使用,动手能力差不会,自信心也受打击,后面开始讲防火墙、VPN等等理论时觉得轻松些了。老师很好,亲自指导我编程,这个另一篇在写)
计算机图形学(听了3次课,再也没去,觉得有些坑,讲的听不懂,对这个都没什么兴趣了)
大三上:
JAVA程序设计(老师讲的很好,还给我们推荐了其他书,如 大话设计模式等,感觉为我们打开了一扇门,教会我们去自学)
信息系统安全
虚拟现实
生物信息学 以上三门均是水课。
总的来说:目前我觉得自己还是对计算机不太了解,没有找到很感兴趣的地方,所以门门学的不精。如果有人愿意推荐计算机比较好的方向,供我参考,不甚感激。