计算机考研的调查和改进建议

几星期前, 我在微博上讨论考研的事, 有专家建议不如把意见整理出来, 说不定可以转告给相关方面。 我没有考过研, 问了公司的同事们, 绝大多数都是保研的, 也没考过。  我从网上下了一份模拟题, 好像还挺难,有一种要翻书的冲动。 Smile 

 

全国有多少学生为了考研而奋斗?  据说考计算机专业的研究生每年有七千到一万左右。 我以前接触到清华软件学院的一个研究生, 他为了考研, 在北京漂了两年时间, 租陋室每天学习十多小时, 逐步复习各个科目最后终于考上了。  我当时在感动之余不禁想 - 如果他用这些时间做点实际的软件开发, 那该多好啊。。。   他的身后还有很多复习之后没有考上的同学, 他们努力准备的考研对他们以后的工作有用处么?  考研试卷是专家出的, 水平应该不错,但是我想总有提高的空间吧? 能不能让考研试题更好地甄别优劣, 让考上的同学真正有做科研的能力, 让考不上的同学也没白白浪费时间, 学到的知识还能在以后的工作中有些用处? 

 

批评建议总是容易的, 一拍脑袋就可以来好多,不过我想先调查调查。 我前几天刚好为 微软“编程之美全国挑战赛”颁奖大会做讲座。 听众是来自北京各高校 IEEE 分会的学生会员, 和一些微软俱乐部的学生。 我事先设计了一份调查问卷, 请他们填写。 大约有60多听众, 回收了54 份答卷,有效答卷49 份。 数据如下:

 

第一页: 背景

2011年 计算机专业考研的考查目标

计算机学科专业基础综合考试涵盖数据机构、计算机组成原理、操作系统和计算机网络等学科专业基础课程。要求考生比较系统地掌握上述专业基础课程的概念、基本原理和方法,能够运用所学的基本原理和基本方法分析、判断和解决有关理论问题和实际问题。

数据结构【考查目标】

    1. 理解数据结构的基本概念;掌握数据的逻辑结构、存储结构及其差异,以及各种基本操作的实现。

    2. 掌握基本的数据处理原理和方法的基础上,能够对算法进行设计与分析。

    3. 能够选择合适的数据结构和方法进行问题求解。

     一、线性表   二、栈、队列和数组   三、树与二叉树   三、图 四、查找  五、内部排序

 

计算机组成原理 【考查目标】

            1.理解单处理器计算机系统中各部件的内部工作原理、组成结构以及相互连接方式,具有完整的计算机系统的整机概念。

            2.理解计算机系统层次化结构概念,熟悉硬件与软件之间的界面,掌握指令集体系结构的基本知识和基本实现方法。

            3.能够运用计算机组成的基本原理和基本方法,对有关计算机硬件系统中的理论和实际问题进行计算、分析,并能对一些基本部件进行简单设计。

             一、计算机系统概述   二、数据的表示和运算   三、存储器层次机构

             四、指令系统   五、中央处理器(CPU) 六、总线  七、输入输出(I/O)系统

 

操作系统 【考查目标】

            1.了解操作系统在计算机系统中的作用、地位、发展和特点。

            2.理解操作系统的基本概念、原理,掌握操作系统设计方法与实现技术。

            3.能够运用所学的操作系统原理、方法与技术分析问题和解决问题。

               一、操作系统概述  二、进程管理   三、内存管理

               四、文件管理   五、输入输出(I/O)管理

 

计算机网络 【考查目标】

1.掌握计算机网络的基本概念、基本原理和基本方法。

2.掌握计算机网络的体系结构和典型网络协议,了解典型网络设备的组成和特点,理解典型网络设备的工作原理

3.能够运用计算机网络的基本概念、基本原理和基本方法进行网络系统的分析、设计和应用

        一、计算机网络体系结构  二、物理层  三、数据链路层   四、网络层   五、传输层

        六、应用层

 

第二页: 调查

(括号内是统计结果)

 

1)    你是本科生 (  8 )  研究生   41  

2)    你如果是研究生,  你是考研 (  23    )    还是保送/推送   (   18     )

3)    你如果是研究生,  你本科是计算机专业 (     )

或是其他专业, 请填写专业名__专业相当分散, 很多通信电子类的学生。________________________

 

4)    你了解周围的同学计算机专业考研(通过正式笔试) 和保送的人数各是多少? 考研有  (     ) ,  保研有 (    )人。

      各种比率都有,  大致是一半一半。

 

请浏览 计算机考研大纲“的各个知识点, 回答以下问题:  

5)    你认为在科研和工作中最有价值,同时最合适出现在笔试试卷上的知识点是:

______________________________________

数据结构 21,      算法 11,     操作系统 4,    体系结构  3,  网络 3,  框架设计  1,  编程 1

 

 

6)    有些知识点,  平时了解即可, 使用时可以很快查到, 没必要死记硬背。 你认为在大纲中的知识点, 最不应该出现在笔试试卷上的是:

______________________________________

各种概念 8,    网络 8,  计算机组成 7,  计算机语言的细节 2,  数学公式 1, 操作系统 1, 体系结构 1。 

 

 

7)    你认为考研应该考一些具体的编程语言么?

请从下列选项中选 _________

 

A. 不应该 (7)  B.汇编语言 (4)   C. C 语言 (18)  D. 面向对象的语言 (C++ Java,  C# ) (15)  

E. 函数式语言 (LISP (5)

 

 

8)    如果大纲中开列“最新进展”,每年考研前发布若干篇参考公开论文, 可能从中出题,你能接受吗? 同意 ( 33 )   不同意 ( 12 )

 

9)    如果考研改为开卷, 题目更灵活, 更考查真实能力, 你支持 ( 38  )  或 反对 (  6  )?

 

10)你考研是最主要用那些资料复习? 国内自编教材 ( 18 )  国外经典/翻译教材(6) 考试真题 (17  其它资料 (2

 

      11) 你希望计算机考研大纲如何改进,  以更好地选拔出基础扎实, 有动手能力, 有创新精神的学生? 

 

同学的反馈: 

实地动手考核
引入最新计算机研究发展
引入机考,不要考那些死记硬背的东西,现场写程序
像ACM 竞赛那样现场做题
算法不要总考那几个经典图论算法,要考察学生设计新算法的能力
附加几道算法题以供选择,考察动手能力
像ACM 那样
笔试初选;有较长时间 (如 1 天) 的上机考试
要考知识点的应用而不是知识点本身
上机部分要加强, 不拘泥于标准答案
上机应占更多比重
不仅限于笔试
开放式命题,减少死记硬背的东西
考察知识点和现实的关联
分数占一半,参考CV
取消考研
应增加编程环节
与实际应用相关的编程题目
加机考
加简单的编程题
考编程
基础+想法

 

看到这些数据, 我还是有些感想的。。。 [待续]

 

分析和改进

a) 用户和目的.  计算机考研试题的用户是谁?  

有两个: 

能够招计算机专业研究生的机构。 例如各大学的计算机系研究生院。他们的需求是什么? 试题有甄别能力, 招到好学生 - 能做科研, 能干活的学生。 

来考研的学生们。 他们的需求是什么? 公平, 可预见性 (考卷上的就是大纲里写有的), 复习的东西最好在实际中也有些用处。

谁来考研? 我们研究院的实习生大部分是保研的, 员工似乎也是大部分保研的。 谁要考研?  似乎有这样的说法, 最厉害的出国读研, 其次保研, 其次推荐到其它学校, 再其次考研。 也有很多学生出于种种原因想换到计算机专业,  那这样的话, 考研的试卷是为了 “第三档的其次” 和 转换专业的同学准备的。

 

一件事通常有许多利益干系人.  考研这事的最大干系人是教育部。 利益干系人最希望什么?  别出乱子; 降低成本。

 

有了目标用户干系人就好办了。计算机考研试题的目的是在保证利益干系人的期望值的情况下, 让用户满意。 具体地说, 就是在别出乱子, 成本不高的情况下, 出一套能甄别好学生试题, 试题尽量公平, 知识点实用。 

 

b)  考研试卷要考啥? 同学们 (大部分是考过研的同学) 写得很清楚:

希望考: 数据结构 21, 算法 11, 操作系统 4, 体系结构 3, 网络 3,

不希望考:   各种概念 8, 网络 8, 计算机组成 7, 计算机语言的细节 2

 

c) 考研应该考一些具体的编程语言么?

    计算机科学有很多分支,  微软学术搜索把它分成 22 个子领域。  有些领域的研究不写或不写很多程序,  老科学家可能写得也不多。  但是对于“其次”和转换专业的同学来说,  写程序应该是基本功。  我认为要考, 但是考哪些?  下面是投票结果:

 

                  A. 不应该 (7) B.汇编语言 (4) C. C 语言 (18) D. 面向对象的语言 (C++ Java,C# ) (15)

E. 函数式语言 (LISP ) (5)

 

    我认为应该轮流考各种语言 {底层语言(汇编), 面向过程(C), 面向对象(C++/Java/C#), 函数式(LISP) } 只要事先公布, 学生能有足够时间准备就可以。 这符合可预见性的需求。 另外, 这类题目不一定非考“写程序”不可 (写程序判卷成本较大), 可以考察 “读程序”, “改程序”, 更考验真功夫。 听说解放军某部三个月就写了90万行程序, 我们不妨每年从中拿一万行来让考生读一读, 改一改。这样可以搞它 90 年。

 

d) 考研试卷能考科研能力么?  孙志岗老师建议我问同学这个问题:

     如果大纲中开列“最新进展”,每年考研前发布若干篇参考公开论文, 可能从中出题,你能接受吗? 同意 ( 33 )不同意 ( 12 )

   由于时间限制, 我没有问同学们不同意的理由是什么。 我认为, 在保证可预见性和公开的情况下, 是可以实验一下的。 学生考研是为了做科学研究,不是为了找个老板打工 (这句话有点冷)! 应该在考试中增加对科研能力的考察。

 

e) 考试形式

    如果考研改为开卷, 题目更灵活, 更考查真实能力, 你支持 ( 38 )或 反对 ( 6 )?

    回头看看这个问题, 其实设计得不好. 看不出来反馈到底针对哪一个具体措施 (开卷,  题目更灵活, 更考查真实能力)。 开卷考试的成本较大,  利益干系人可能不干。 听说一些机构在复试的时候采用开卷, 这是很合适的做法。

 

f) 复习资料

   你考研是最主要用那些资料复习? 国内自编教材 ( 18)国外经典/翻译教材(6) 考试真题 (17其它资料 (2

 

   这是潘爱民老师让我问的。 我很诧异为什么很少的人用 国外经典/翻译教材,难道是学校要求用自己编的教材? 为什么? 是不是有一个 “考研指定教材” 的因素? 

 

 

总结

计算机考研大纲和其它的“大纲”类似, 在中国的教育系统中有强大的影响力, 纲举目张,哪怕是一点点改良, 都会对众多教师/学生有长久的影响力。  目前大纲精神的具体体现就是  “考试范围”和“考研试卷”。 在我们充分肯定计算机考研试卷的意义 [略去对它的赞美 250 字] 之后,  我觉得它有不少提升的空间。  这些空间早就存在, 不是今天才发现.  但是在天朝这个大家都喊 “深化改革, 锐意创新”的年代,  别说颠覆式的创新,  就是改良式的创新,  或者就是纠正一个众所周知的错误, 都是很困难的。 改进也有一个成本和投入产出比的问题。 我们不妨从成本低, 见效快, 利益干系人容易接受的改进方法入手。

 

下面是我列出来的从易到难的改进方案 (我曾经设计过微软中国校招笔试题目, 也相当于一种考研试卷)。  就像青年有三种,  这些改进方案也有三个档次:

 

减少各种概念题目,

增加和实践相关的题目,

增加数据结构/算法的内容。

增加阅读程序并写出程序输出结果的题目

增加阅读程序并改正程序错误的题目 (这些错误不是语法错, 而是设计/逻辑错误)

增加为程序设计测试用例并找出错误的题目

 

每年大纲提前公布要考的计算机语言, 并出一道用此种语言写程序的题目。

每年出5-6 题编程题目, 同学自选 2 题, 用不同的语言完成

每年大纲中开列“最新研究进展”论文列表, 并从中出题。 (最近 5 年引用数最高的论文)

 

鲁迅先生曾说过,  国人善于折衷, 如果你说要开一个窗子, 则有关人士断然不同意; 如果你说要把屋顶掀了, 那大家都折衷, 觉得开窗也是可以接受的。 下面的建议类似于 “掀开屋顶”,属于颠覆式的创新:

 

全部改为上机考试         //成本, 公平, 泄密, 管理问题, 干系人未必同意。

废除考研, 学生可以提交 TopCoder/RobotCup/ImagineCup 比赛结果, 论文, 程序 (GitHub), 技术博客, 老师推荐信, 各获奖证书等,由学校学术委员会决定是否招收。   //美国很多年前有 GRE CS Subject 考试, 后来也没有了, 我们为啥一定要笔试考研?

 

问题:

这篇文章出来后, 有老师说:

教育部规定:计算机科学与技术专业考研的专业课实行全国统一考试,各校计算机专业怨声载道。因为统一考试分数普遍低,而国家却统一划分数线,所以许多同学过不了总分线而不能录取。浙江一所排前几名的学校去年上线居然是0。现在我们招的大多数学生都是从外专业调剂过来的,对计算机专业发展很不利。  。。。 听说有许多人提[意见]了,但说这样是改革。而其他相近专业不统考,所以考计算机专业的人就少了许多,能够上线的就更少。我们现在的主要任务是把其他专业的本科生培养成计算机专业的研究生。这倒真是学科交叉了,呵呵!

 

这个有意思, 在现有游戏规则下, 如果计算机考卷比别的专业难, 那过总分线的学生会少。 反而不利于本专业吸引学生…  所以我们试卷要达到高水平, 同时拉开不同水平学生的分数距离, 同时要保证得高分的同学比率不少于别的专业… Sad smile 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/500413.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

2012 夏季高校微软俱乐部活动 - 开门创新

创新啊创新, 大家都在讲创新。 一般的理解, 创新就是公司内部关起门来想, 实验, 内部评审, 然后申请专利什么的, 其实也有开门创新的办法: http://www.innovationexcellence.com/blog/2012/08/13/40-examples-of-open-innovation-crowdsourcing/ it is about bringing extern…

笔记 - 高等教育的创新

教育是一个社会发展的支柱, 你和我能看到并理解这个博客, 教育功不可没。 高等教育的形式并不是一成不变的, 高等教育一直在演进, 变革中, 最近一股“online higher education” 的浪潮在美国兴起, 貌似突兀, 其实有规律可循。 在关注最近的在线教育浪潮之前, 我们看看美国高等…

现代软件工程讲义4 Scrum/Sprint

Advanced Software Engineering, Development Process, Scrum/Sprint 软件开发的流程有很多 (看 各种方法论概述), 我也写过一篇博客 (酒后的敏捷) 谈了谈最近比较时髦的开发流程。 今天我们不喝酒, 正襟危坐地说说敏捷这一路 Scrum/Sprint 开发方法. 从理论上看, 这个方法真…

现代软件工程讲义 7 设计阶段 Spec

在前一个博客里 (典型用户), 我们讲了怎么收集, 分析和验证用户的需求。 这里我们讲 spec – specification Specification, 又叫spec, 有两种: a) functional spec, 软件功能说明书, 主要用来说明软件的外部功能, 和用户的交互情况 (把软件当作一个黑盒子) b) technical spec…

现代软件工程 2012 北航 项目复审模板

这是现代软件工程课在北航的项目复审要求。 这次我们有下列 10 个团队, 他们做了一些有意思的项目: 有七个小组合作,携手打造一个叫 学霸 的网站: 100Years 网页收集和归类工具76er 网页收集和归类工具FightingSnail 网页元数据抽…

现代软件工程讲义 8 软件的血型

[这是 现代软件工程讲义 的一篇] 一个软件团队经历了计划/设计/开发等阶段, 达成代码完成 (Code Complete) 这一目标,似乎后面的事情就水到渠成了. 其实不然, 软件生命周期的最后阶段往往是最考验团队的,不但考验团队项目管理水平,应变能力…

现代软件工程讲义 6 用户调研

[现代软件工程讲义 的一部分] 软件开发的过程, 就是 “用户最需要的东西” 在下面这一链条中传送,转换,实现,扭曲或丢失的过程。 用户最需要的 > 用户表达出来的 > 软件团队能理解的 (老板/PM) 团队的商业目标 > 软件团队成员具…

软件工程讲义 0 微博上的软件工程

[现代软件工程讲义] 有舌尖上的美味, 也有微博上的软工。舌尖上的美味各有千秋, 而微博上对软工的抱怨都是相似的。 下面是我在新浪微博收集到大学生对软件工程教学的反馈: 师生关系(不限于软件工程) 教材 上课 & 老师 实践 & 作业 考试 考完…

现代程序设计 作业 2

我们上节课讲了 返回整数数组中最大子数组的和 这个问题。 我们第二次作业在这个基础上扩展。 程序要使用的数组放在一个叫 input.txt 的文件中, 文件格式是: 数组的行数, 数组的列数, 每一行的元素, (用逗号分开) 每一个数字都是有符号32位整数, 见 MSDN 的定义. 当然, 行…

现代程序设计 作业 3

这个作业是采取结对编程的方式完成。 在上一个作业中, 我们尝试了各种命令行的处理,以及各种数组的处理。 现在, 我们要把 现代程序设计 作业 2 的各个结果转换成图形界面显示。这个问题看起来很难, 实际上大部分难的工作都在上一个作业完成了 (数组计…

现代程序设计 作业4

英语国家的小孩们经常玩 Word Search 的游戏, 就是在一个填满字母的矩阵中把单词找出来。 这是一个简单的例子: (来自 wikipedia) 这是一个比较复杂的例子: 这是答案: 美国的商店里还有不少 word search books 卖, 两三块钱一本。 让我们把这个有趣的…

现代程序设计 作业6 - 简单而有意义的题目

这是这个课件的一部分: 现代程序设计 (课程设计中, 征求意见稿) 好多同学们都说题目难,这回我们来一个简单而很有意义的。 :) 写代码爽还是读代码爽? 往一堆乱麻中再加上一些线索,似乎比较容易;然而从…

现代程序设计 作业7 - 更加简单的题目

在网上,当用户发现一个新东西 (海洋里捞出来的新物种,奇怪颜色的飞鸟,某种新的植物等), 大家会问下面的问题: 能吃么 好吃么 怎么吃 这三个振聋发聩的问题被吃货们简称为能好怎, 大家可以打开链接看看&…

现代软件工程 第三章 【软件工程师的成长】练习与讨论

1. 选哪一种医生? 作为一个软件工程师, 你觉得自己表现如何? 有没有这样的体会: 看书的时候觉得“技止此耳”,开发项目的时候才觉得实际情况和书上讲的都有一些出入,一些重要的细节书上没有提。我们很多人是边看Asp.net的书, 边开发Asp.ne…

现代软件工程 课件 软件工程师能力自我评价表

这是《构建之法》和软件工程教学的一部分,用于学生/工程师自我评价。 软件工程师如何评价自己的能力? 有人写Java,有人用C,还有人用1980年代就出现的 Object-C, 有人写前端,有人写后端,有人偏于行业应用&a…

现代软件工程 第四章 【结对编程】练习与讨论

4.7.0 结对编程的练习题 地铁导航和遍历 4.7.1 结对项目的案例和论文 在现代软件工程教学的过程中,同学们已经总结了不少切身体会。例如: 总结1[i]:那是project到了比较关键的创造阶段,整整一天,我们俩椅子靠椅子的坐在电脑前&am…

现代软件工程 第八章 【需求分析】练习与讨论

1 扩展阅读下面两篇文章也说明了软件估计的难度: Steve McConnell 软件估计的 10 种罪:http://www.ewh.ieee.org/r5/central_texas/austin_cs/presentations/2004.08.26.pdf Quora精选: 为什么软件开发周期总是预估的2~3倍http://jandan.net/201…

现代软件工程 第九章 【项目经理】练习与讨论

9.5.1 PM们的故事 讲了这么多条条框框,我们还是来讲几个故事吧。 A)是不是所有的好功能都是由PM主导,一步一步根据用户需求,按照用户场景设计,然后进行可用性测试等等步骤之后得来的呢? 功能本天成,妙手偶…

现代软件工程 第十章 【典型用户和场景】 练习与讨论

1. 讨论:下面的老板犯了什么错误? 只看用户的表面语言或行动还是不够的。我们还要找到用户语言行动背后的动机! (图像来源: http://www.weibo.com/funnyshoelace) 2. 是否要文档 有人说,我们敏捷的团队,就喜欢直接的面对面的交流&#xff0…

现代软件工程 第十七章 【人、绩效和职业道德】 练习与讨论

0. 为啥要讲人、绩效、和职业道德? 学好专业不就行了么,为啥要扯这么多? 用专业知识教育人是不够的。通过专业教育,他可以成为一种有用的机器,但是不能成为一个和谐发展的人。要使学生对价值有所理解并且产生热烈的感情…