川大复试还是十分公平的!但是曾有刷掉一半人的历史!所以特别提醒各位同学,不论初试分数多高,一定要重视复试的复习!
一、复试内容
总成绩=(初试成绩/5)×50% +(复试成绩/2)×50%
四川大学复试内容较多,分为:笔试+机试+面试。总分两百分。
其中笔试为C语言和综合测试。
机试为现场OJ,
面试为个人展示+专业问答+自由问答(专业面试(60分),外语能力测试(40分))。
二、参考书目
复试无官方参考书籍,可参照初试:
计算机科学专业基础综合:数据结构与算法分析、操作系统、计算机网络。
计算机网络——自顶向下方法(第5版 影印版)-[美] James F. Kurose等 高等教育出版社;
计算机网络 谢希仁 (第七版) 电子工业出版社;
数据结构与算法分析(C++版) 电子工业出版社;
《计算机操作系统》(第四版)西安电子科技大学出版社;
《操作系统教程》(第五版)高等教育出版社。
关于上机:推荐 Leetcode:这是一个刷题网站,上面大家选择最经典的题目开始敲, 慢慢加难度
三、面试真题分享
1.什么是软件危机?
软件危机是指在计算机软件的开发和维护过程中所遇到的一系列严重问题。这些问题表现在以下几个方面:
(1)用户对开发出的软件很难满意。
(2)软件产品的质量往往靠不住。
(3)一般软件很难维护、
(4)软件生产效率很低。
(5)软件开发成本越来越大。
(6)软件成本与开发进度难以估计。
(7)软件技术的发展远远满足不了计算机应用的普及与深入的需要
2.为什么会产生软件危机?
(1)开发人员方面,对软件产品缺乏正确认识,没有真正理解软件产品是一个完整的配置组成.造成开发中制定计划盲目、编程草率,不考虑维护工作的必要性。
(2)软件本身方面,对于计算机系统来说,软件是逻辑部件,软件开发过程没有统一的、公认的方法论和规范指导,造成软件维护困难.
(3) 尤其是随着软件规模越来越大,复杂程度越来越高,原有软件开发方式效率不高质量不能保证、成本过高、研制周期不易估计、维护困难等一系列问题更为突出,技术的发展已经远远不能适应社会需求。
3、怎样克服软件危机?
(1)充分吸收和借鉴人类长期以来从事各种工程项目中积累的行之有效的有效原理、概念、技术与方法,特别是吸取几十年来人类从事计算机硬件研究和开发的经验教训。在开发软件的过程中努力作到良好的组织,严格的管理,相互友好的协作。
(2)推广在实践中总结出来的开发软件的成功的技术和方法,并研究更好、更有效的技术和方法,尽快克服在计算机系统早期发展阶段形成的一些错误概念和作法。
(3)根据不同的应用领域,开发更好的软件工具并使用这些工具。将软件开发各个阶段使用的软件工具集合成一个整体,形成一个很好的软件开发支环环境。总之为了解决软件危机,既要有技术措施(方法和工具),又要有必要的组织管理措施
4、构成软件项目的最终产品:
应用程序、系统程序、面向用户的文档资料和面向开发者的文档资料
5.什么是软件生存周期?
软件生存周期是指从软件定义、开发、使用、维护到淘汰的全过程
6.软件生存周期为什么划分成阶段?
(1)任何一个阶段的具体任务不仅独立,而且简单,便于不同人员分工协作,从而降低整个软件开发工作的困难程度。
(2)可以降低每个阶段任务的复杂程度,简化不同阶段的联系,有利于工程的组织管理,也便于采用良好的技术方法。
(3)使软件开发的全过程以一种有条不素的方式进行,保证软件的质量,特别是提高了软件的可维护性
7.应该怎样来划分阶段?
(1)每一个阶段的任务尽可能独立:
(2)同一阶段内的任务性质尽可能相同;(3)每一个阶段任务的开始和结束有严格的标准。
软件开发模型有几种?它们的开发方法有可特点?
8、软件开发模型有瀑布型、渐增型和变换型.
瀑布型开发方法是按照软件生存周期的划分依次实施,每一个阶段有明确规定的任务。它的特点:
(1)各个阶段的顺序性和依赖性;
(2)划分逻辑设计与物理设计,尽可能推迟程序的物理实现:
(3)每个阶段必须完成规定的文档,对其中问题通过复审及早发现,及早解决
渐增型开发方法及特点:(1)从部分需求出发,先建立一个不完全的系统,通过测试运行该系统取得经验和信息反馈,加深对软件需求的理解,进一步使系统扩充和完善,如此反复,直至软件人员和用户对所设计完成的软件系统满意为止
(2)在渐增型开发下的软件是随软件开发的过程而逐渐形成的。(3)渐增型开发方法适合于知识型软件的开发,设计系统时对用户需求的认识开始不是很清楚的,需要在开发过程中不断认识、不断获得新的知识去丰富和完善系统。多数研究性质的试验软件,一般采用此方法。
变换型开发方法及特点:
(1)从软件需求的形式化说明出发,经过一系列的程序变换,得到最终的程序系统。
(2)该方法必须有严格的数学理论和形式化技术的支持。
9.什么是软件工程?
软件工程是指导计算机软件开发和维护的工程学科。
(1)它采用工程的概念、原理、技术和方法来开发和维护软件:(2)它将管理技术与当前经过时间考验的而证明是正确的技术方法结合起来:(3)它强调使用生存周期方法学和结构分析和结构技术:
(4)经过人们长期的努力和探索,围绕着实现软件优质高产这个目标,从技术到管理两个方面做了大量的努力,逐渐形成了”软件工程学”这一新的学科.
10.什么是软件工程环境:
方法与工具的结合,加上配套的软、硬件支持称为软件工程环境。它能支持开发者按照软件工程的方法,全面完成生存周期中的各项任务
四、面试经验分享
复试考2天,笔试+上机和面试。
第一天上午--做卷子考C语言(30分)和综合题(20分),C语言考5道选择题,看程序写运行结果3道手写编程题,都比较简单,是谭浩强书的原题或者改编题。综合题就真的非常综合了,考了简答题,类似GPT的简述一下,然后两道看不全程是什么,懂的简答题,不会做,但写了一堆,最后是一大段英语翻译,难度不大。
第一天下午--上机,上机做3道编程题,1道简单,1道中等
1道难题(八皇后相关的问题),分值分别是20,40,40,困难的点在于考试时间只有一个小时,我花了半个小时把20分的调出来了,中等难度做了一半,但没有分数,难题都没来得及看,就结束了。需要注意的是,答题系统不能调试还好电脑上装了 c++的IDE(名字我忘了,别人说是devc++,我没用过,但不难上手,直接就可以调试),我估计好多人不知道有这玩意儿,导致得了0分
第二天--面试
第二天的面试是规定的10分钟,有秒表计时,到了就结束。其中3分钟自我介绍,是之前填的学校的 PPT,有规定模板。
然后是抽一段英语翻译,首先读一遍再翻译,我觉得自己英语还可以,但是还是读不懂,是从一篇论文里摘录的一段话,然后电脑随机抽一道英语问题,我的是:What qualities do software development engineers need?
专业课问题是电脑随机抽一道,可以自己选择3个专业课中的其中两个,然后再选择1道作答,我先抽了操作系统的题:进程的特点有哪些?然后我说看看数据结构的题:已知一个哈夫曼编码是011,请说明哪些编码不合法?我选择的数据结构的题。
最后针对自己写的项目问问题,大概问了我4个问题,但我觉得他们问的比较粗略,准备的回答都没用上。老师还是比较和蔼的,所以不用怕!
以上就是本期的分享啦!
希望C哥的文章能够帮到大家更清晰明了计算机软件的考研院校选择解决考研相关问题;
需计软考研院校选择规划及备考指南,欢迎找C哥唠嗑儿~
也祝大家都能金榜题名,一战上岸!