1、大赛的目标,背景:软件人才培养局面,我国信息化建设迫切需求 建设难度: 软 硬 用人单位: 人才缺口大,项目急,不惜代价留存人才,挖? 高校: 毕业生就业问题企业、高校接轨? 高校培训、实习 培训机构 企业入职培训,2,3,竞赛目标(1),突出“实战”能力 全程机考,无纸质试卷(发草稿纸) 目标明确,手段宽松 有别于:期末考试1 不直接考语法,概念等背诵内容 有API帮助文档 不会出答案宽泛的问题 有别于:ACM 并非是团队形式 题目难度有梯度,跨度很大,4,竞赛目标(2),以赛促学 注重知识性、趣味性。 让更多学生体会程序魅力,踏上开发之路。 必须的知识点很少,但需要熟练运用,需要创造性地解
2、决问题 创新型人才最急需 没有完全可套用的工程方法,创新是软件永远的需求!题目注重了启发性(看似简单,又无从下手),5,竞赛目标(3),校企联合 校企合作平台 设置了一些具有工程价值的题目 学院派 vs 现实派 抓到耗子是好猫 现实可能复杂得多,6,竞赛目标(4),选拔人才 难度题目类似ACM 知名企业面试问题4 更注重创造性,编程”内力” 并非死板的算法知识,比赛形式,8,竞赛物理环境,全程机考,二级Web环境,中心服务器,本地服务器,学生机,学生机以web方式访问本地服务器 本地服务器与中心服务器自动协同,9,参赛选手注意,一定要认真阅读考生须知 开考前的时间可利用:阅读说明,测试环境 不
3、要着急按回车x1 使用浏览器与考试服务器交互 默认使用Chrome 理论上,其它浏览器也可以。试题的解压密码在开考后就公开了 同一组别密码相同 注意大小写 注意numlock, capslock 看键盘指示灯 注意输入法,10,参赛选手注意,通过浏览器提交。本机答案无效。但不要删除。 浏览器不必一直开着,可随用随开。 同一机器可多次登录。 长时间无交互会引起系统要求重新登录。 可以多次提交同一个题目的答案。 以最后一次提交为准。 不必等到考试结束再提交,中间提交最适宜。 换机器需要申请,题目形式,12,题目形式,A 结果填空 只要结果,不计手段,可以不编程 可以使用Excel,计算器或其它的工
4、具5 答案唯一,13,题目形式,B 代码填空 考察选手阅读他人代码的能力 有时,改程序比写程序还困难(甚至是痛苦!),14,题目形式,C 编程大题 要求源代码 必须编译通过、运行出正确结果才有机会得分 每个测试用例单独计分,15,决赛特点,题目难度相对提高一些 题目数量少 5 或 6 题 编程大题的某些测试用例规模较大,FAQ,17,FAQ,与ACM异同? 题目的精神类似。 算法相关题目居多。 数学相关题目居多。 有些题目,难度较低,考虑到普及性问题。 难度的趋势似乎逐年提高 目前还没有实现在线提交与评分。会逐渐引用。 今年将继续全部机器阅卷。 不是团队参赛方式。 各组别,赛区单独评奖。,18
5、,FAQ,编程大题如何评分? 分值较高 有一定难度 首先,代码必须能编译通过 环境差异问题,注意选择自己的编译环境。 程序必须能运行通过 以特定用例测试程序 性能的衡量,19,FAQ,是否要精通数据结构 了解经典算法对解题有帮助 并非是考察经典算法 总是需要一些创造性 ”发明算法“是经验与智慧的”合力“,20,FAQ,如何检测“雷同卷”? 机器筛选 + 工复核 不是机械性比对,正在逐步完善逻辑相似度匹配。,历届大赛的变化,22,组别,软件大赛与电子大赛合并 软件方面仍然是6个组别 Java 本科A组 Java语言A组 Java 本科B组 Java语言B组 Java 高职高专组 Java语言C组
6、 c/c+ 本科A组 c/c+语言A组 c/c+ 本科B组 c/c+语言B组 c/c+ 高职高专组 c/c+语言C组 报名限低不限高 个人报名?,23,组别2,本届允许研究生参赛 不单设组别 可报A组,24,轮次,增加了:校内选拔赛 目的是帮助一些院校选拔参赛选手 非强制性 难度略低 有熟悉考试系统特性的作用 预选赛 全国统一进行,各组别同时 4小时 总决赛 分上下午两个场次 4小时 具体安排以组委会官方消息为准,25,考生机环境变化,c/c+ 组只支持唯一的工具:dev-cpp 5.4 Java组只支持eclipse两个IDE都不需要安装,解包后,配置一下就可以用。选手在线下要加强IDE的使
7、用与配置练习 尤其高职院校,26,c与c+的选择,题面上不会考核c+或面向对象的具体知识 仅仅是编程大题允许使用c+解答 其它题目中不会出现c+知识Dev-cpp 很好地支持ANSI c+ 标准 提交题目时,注意选择用哪个编译器 c 或 c+,27,C+涵盖范围,不会在给出的代码中含有类、对象等c+知识 不会在题目的描述中强制使用c+ 对大题的解答允许使用c+编码允许范围:ANSI C+标准 类,继承,多态. 允许使用STL类库 不允许使用 操作系统特定的API 不允许使用 中断调用等直接硬件API操作,28,java环境,只允许JDK6.0 API,不支持7.0以上特性IDE: Eclips
8、e helios release2 (不含JavaEE特性) 请检查IDE连接的JDK是否符合要求 检查eclipse是否开启了泛型功能 无论用何种工具,提交的结果: 只有一个文件 不包含任何工程配置文件,29,c/c+环境,C语言IDE: Dev-cpp 5.4.0 Dev-cpp 类似 linux下的gcc不再支持TurboC 或Borland c+ 不再支持VC+支持ANSI C+ 支持STL类库,30,必须的基础知识范围,大赛题目的设计本着尽可能需要最少的基础知识的原则 比的是组织逻辑的能力,不是对某个偏僻特性的记忆 所需的基础知识是绝大多数学校教材内容的交集A组的少量题目可能会超越课
9、本范围,31,必须的领域知识,大赛题目的设计本着需要尽可能少的领域知识的原则 所有特殊领域知识,一定会在题目中详细描述,一定会有例如的说明语句,以免选手误解。 例外:数学领域 数学常识性知识不在题目中详述! 理工低年级以内的数学知识 算数:素数,整除,余数,求模,不定方程 代数:函数,方程,多项式, 解析几何:笛卡尔坐标系,点到直线的距离,极坐标, 复数:模,夹角,矢量的合成和分解,32,Java组别基本,基础 变量,操作符,选择,循环,递归 面向对象 类,对象,引用,构造方法,参数传递,this引用,static,继承,多态,接口,内部类,匿名类 异常与保护 I/O:读写文件,File类,文
10、本操作与二进制操作(字节流,字符流) 多线程:线程的排斥(synchronized),协作(wait, notify) 网络:只限于Socket通信,33,Java组别基本,不会出现: AWT,Swing界面类的编程或填空问题 JSP, Servlet, HTML, CSS,XML, JavaScript 等web编程相关 Struts, Spring等开源框架 JavaEE 规范,容器(例如: JNDI, javaBean等) JDBC, SQL 等数据库编程相关内容,34,Java组,Java语言B组增加 对多种数据结构的灵活运用Java语言A组增加 设计模式,反射,XML,多核与并发,测
11、试理论,Swing界面 仅限于少量题目中可能涉及 涉及内容可能会超出本科教材。 参考ACM赛事,35,c/c+组基本,基本 变量,运算符,选择,循环,数组,指针,递归 I/O 读写文件,标准输入输出,文件属性,36,c/c+组基本,不会出现: 含有窗口的Windows界面编程 多线程 网络编程、Web应用 数据库编程 调用底层中断或硬件相关的编程 其它一定需要非ANSI C标准调用的编程,37,c/c+组,c/c+语言B组增加数据结构、函数指针、位运算 c/c+语言A组增加 函数模板、复杂宏、汇编知识 仅限于少量题目中可能涉及 可能超出本科教材 参考ACM赛,重点关注,39,数据结构,本科组数
12、据结构教材为准 可能直接引用其中的术语,不再做解释 比如:题面中可能出现:这是一个平衡二叉树,至于什么是平衡二叉树可以不解释,当作是选手清楚的基础知识。 专科组,不会在题面中出现数据结构课程中才有的特定术语 如实在无法避开,会给出那个概念的详细解释。,40,数据结构,允许选手使用任何数据结构中的技巧或实现。 C+ 允许使用 STL Java 允许使用 JDK1.6范围内的API,41,基本算法,穷举法(暴力破解) 回溯法(试探,返回,试探,返回) 分治法 动态规划,42,基本算法,算法不是死的,可以有各种灵活的“杂合”或“变种” 程序填空题中可能含有某个算法的思想,需要能读懂。 专科组除了“穷
13、举法”,也可能题面代码中出现“递归”,43,图论算法,图的深度优先、广度优先遍历 求割点或桥 极大强连通分量 拓扑排序 最短路径 欧拉回路 最小生成树 最大流,费用流 二部图,44,计算几何算法,圆,椭圆,凸多边形,线段 相交点 交集面积,并集面积,45,关于递归,递归是解决复杂问题的重要手段 需要掌握递归与循环的转化关系有些结果填空题或大题完全放弃递归会很吃力 排列问题举例 n次取字母,46,评分方法,阅卷方式:程序自动 + 微量人工理论上可以完全自动 人工抽验,防止系统误差 由于考生没有按照要求的格式提交数据,发现后不做处理。 编程题目 特殊情形,需评审代码,47,评分方法(1),结果填空
14、题与标准答案一致,则得分 比对时会去掉前后多余的空白字符不要填写无关的说明文字 注意大小写,中西文符号区分,48,评分方法(2),代码填空题与标准答案一致,得分 不一致的带入测试程序,结果正确得分选手理解错误:不需要填写其它,只填写缺少的部分 选手粗心:分号已经存在了,中西文符号问题 全自动机器阅卷,粗心 = 0分,49,评分方法(3),编程大题 主要依据程序自动测试运行结果 编译不通过的直接按0分记 多个测试用例,每个用例单独测试,单独计分 最后求累计分数,50,评分方法(4),编程大题 存在问题 测试用例与题面举例不同,不能用printf System.out.println 蒙混 使用标
15、准输入、输出。 便于重定向测试。 严格按题目要求,不要画蛇添足。输出的内容不要有多余的东西。 全自动机器阅卷会判负 思维要严密。边界条件判断不足,引发异常,可能损失部分分数。 大数据规模。算法设计不当会导致溢出或超时(内存和时间限制),51,评分标准(5),人工辅助的环节(小于题目分值的2%)大题测试完全通过,如何比拼? 依运行时间的加分(体现算法的效率) 如果运行时间相仿? 依代码的规范性、可读性、可维护性加分,52,题目难度,坚持原创性,押题不容易。 平均难度低于ACM 有些题目受NOI, IOI, POJ, ACM, TopCode等知名赛事题目的启发 注重普及性,让尽可能多的选手参赛本
16、身可以获得启发或收获 大赛的目标之一:传播知识,53,题目难度,难度高于期末考试,更重要的是注重了趣味性。 举例-魔方问题 不同于纯粹的语法考试,注重在工程应用领域的意义。 有些题目原型是高校或研究单位的论文成果。 举例-图像面积计数问题,54,如何备战,基础知识扎实 真正理解,彻底理解,不是一知半解!主要是培养逻辑能力,可以通过各种题目练习 数学练习很重要,最有成效! 例如:欧拉计划 网站 国外教材的习题很有挑战性、开放性 java大学教程 c+大学教程 国外教材算法导论 扎实基础的:具体数学 北大,浙大,杭电等大学的ACM训练的OJ网站,55,题目素材或背景,数学素材,最普遍,奥数? 串的各种变换 java允许使用正则,可能会事半功倍 文件内容的处理(本次可能性不大,可能会变化形式) 文本文件转换格式,比较,搜索等 二进制文件提取某种信息,某种映射 仿真问题 类似电梯调用,餐厅调用等。 各种概率问题,56,题目素材或背景,各种求最优解问题(解空间中搜索) 博弈问题 图论问题 加权最短路径 最大流量,