ECNU 计科软工数据学院复试相关

ECNU 计科软工数据学院复试相关

机试相关

市面上关于机试的参考书目也相当多。王道系列《计算机考研:机试指南》内容非常详细,可惜针对此书的OJ已经关闭,王道论坛官方便将此书pdf发布出来供大家下载(http://www.cskaoyan.com/thread-647811-1-1.html)。不过,这类基础算法和上机考试书的内容都大同小异,胡凡、曾磊主编的《算法笔记》以PAT甲级和乙级的题目为实例,同样详细地讲解了各类基础算法。书上还提到C++ STL的简单使用方法,如果你只会用基本的C语言,没有接触过C++,那这本书可能会非常适合你,学着利用C++的STL提高做题效率,许多函数能省去自己编写的麻烦。百练OJ也有相应的参考书《算法基础与在线实践》。还有诸如《挑战程序设计竞赛》《算法竞赛入门经典》等,当中有些内容针对ACM竞赛,其难度超过考研机试的水平,凡所种种不再列举。大家可以根据自己情况进行相应书目的参考和阅读。

建议学习一下标准模板库STL
18年软工机试与计科机试支持的语言有C, C++, Java, python3。最建议使用C++。大家在准备初试考试时可能还是主要用的C语言。C++比C语言难的地方主要在于面向对象的特性,但这部分内容在比赛时是可以不用的,所以掌握入门的C++知识的难度与C语言相比并没有太大区别。由于C语言在一些语法细节上不如C++用起来方便,建议比赛时用C++写,可以理解成用的是经过稍许改进的C语言。更重要的是,C++有STL这个使用非常方便的库是C语言没有的,例如,用STL写个整数的排序操作只要1行,而用C语言的写法,则需要六七行才能完成,而且还需要理解函数指针等复杂概念才可以。
还可以学习一下简单的python,遇到大数处理时,python可能对非常大的整数计算,如果是几十位几百位的整数的运算,在python中就当普通的运算就可以正确。大数处理用C或C++会比较麻烦。

华罗庚说“勤能补拙是良剂,一分辛苦一分才”。要做好上机考试,足量的训练是必不可少的。初学之时,PTA (https://pintia.cn/problem-sets)上的“基础编程题目集”与“数据结构与算法题目集(中文)”都是非常好的,它的测试点会有提示,看你对程序测试中出现的各种情况是否能考虑周全。PAT-B级题目难度也不大,大部分题目的数据要求不高,有时用O(N2)的算法都能过,并且PAT评分标准也是按测试点给分,对于学习编程的初期是非常有用的.所以第一步可以先从PAT-Basic的15分题开始练,然后20分和25分题,再逐渐练习PAT-Advanced级的题目。

熟练之后可以在华东师大的EOJ (https://acm.ecnu.edu.cn/)练习,EOJ能根据题目类型的标签筛选题目,以针对某一类的题做专项训练。 EOJ上还会根据过题人数的多少而给不同数额的奖励分,可以依据此初步判断题目的难度。初期也可以选分数低的EOJ的题进行练习。

要在OJ上训练,必须首先在OJ上注册账号,而使用Virtual Judge (https://vjudge.net/)就不用在每个OJ平台都注册一遍,它将许多知名的OJ通过爬虫将题目数据抓取出来,还能够随时进行自定义比赛,或者邀请伙伴们一起比赛。

历年机试真题

热身赛

我在2019和2020年搞了两年的寒假机试热身赛。2019线下考试时,机试占到复试的40%,并且机试是客观的分数加在总成绩中。2020年和2021年复试方案一直悬而未决,也同样先把热身赛办下来了。每次5题或6题,时间在3小时左右。题目难度尽量控制在常规(这不好把握,难度是很主观的,主要是进行练手,所以每组都有基础题也有中档题)。

和机试的流程一样,你需要在本地使用本题支持的并且你会使用的程序语言设计出程序,认为测试无误再提交到测试平台上。测试平台会根据你的程序输出以及运行时间与占用内存判断程序是否正确。请尽可能使程序能够考虑足够全面的数据,能正确应对各类边界条件,才能完全得到分数。在比赛时间内,你可以对每个题不限次数的提交,直到提交到你满意为止,本题的最终分数等于你本题所有提交的最高分。上机考试的模式也是如此。由于不是竞赛,所以没有提交错误的罚时机制。

2020~2022年线上复试时,机试成绩仅作为主观的参考,不直接计入复试成绩。虽然机试同样是复试中重要的一个环节,但组织寒假热身赛的必要性显得相对小了一些,并且我可能并没有充足的时间组织并管理以后的热身赛。如果需要练习可以继续在历次热身赛的题目上练习,每题均有相应题解。

面试