小学生计算机程序设计竞赛活动
一、指导思想和目标
1、掌据计算机软件、硬件基本常识;
2、计算机信息存储的基本原理;
3、计算机程序设计相关数学知识及应用;
4、程序设计语言、程序设计三种基本结构;
5、分析和解决问题的基本思维方法;
6、排序、查找、归并算法的实现;
7、枚举、递推、归纳、模拟、贪心算法在程序设计中的应用。
二、竞赛的形式和内容范围
竞赛分初赛和决赛两轮进行,初赛全市统一试题、统一时间,由各镇区组织实施,目的是选出各镇区参加市决赛的选手;决赛由市教育局教研室组织实施。初赛和决赛为笔试,题型包括:一、选择题;二、填空题;三、写程序结果;四、完善程序。
三、初赛的知识范围
(一)、 计算机基本常识:(10%)
1、计算机硬件基础知识
计算机的组成、中央处理器、存储器、输入输出设备、计算机网络等方面常识。
2、计算机软件基本知识
常用软件的使用、分类,计算机网络的简单知识等。
3、相信编码有关知识ASCII码、位、字节的概念,二进制、十进制之间的转换等。
(二)、与程序设计相关的数学知识:(15%)
(1)、二进制、十进制之间的转换等;
(2)、逻辑判断问题;
(3)、加法原理、乘法原理的应用;
(4)、简单的排列、组合;
(三)、pascal程序设计:(75%)
1、基本数据类型。
整型、实型、字符型、字符串型、长整型、布尔型。
2、基本运算。
算术运算:加、减、乘、除、乘方、开平方、整除、求余;
关系运算:>、<、>=、<=、<>(不等于);
逻辑运算:AND、OR、NOT。
3、常用语句的使用。
const var begin end read(readln) write(writeln) if…then case;
.. .for…do repeat…until while…do。
4、常用内部函数、过程的使用。
(1)、算术函数。
abs int odd ord pred succ random(random(n) ) round trunc sqrt
(2)、字符串函数。
copy length chr pos upcase
(3)、字符串处理过程的使用。
delete insert str val
5、一维、二维数组的定义和应用。
6、程序设计的基本方法:
(1)、最大公约数、最小公倍数的求法;
(2)、质数、分解质因数的方法;
(3)、数字的拆分方法;
(4)、简单的排序算法:如冒泡法、插入法;
(5)、数据的查找算法:顺序查找、二分查找;
(6)、数据的归并算法;
(7)、枚举算法;
(8)、归纳、递推算法;
(9)、字符串处理有关问题;
(10)、高精度加、减运算算法;
(11)、简单的贪心算法。
注:Basic程序设计初赛的知识范围与往年要求一样。
举办一次程序设计大赛 需要准备什么
不知道你大赛的规模,我们这里一般都有如下步骤: 1、成立大赛会务组(负责组织、协调、出题等工作) 2、由会务组组织专家制定比赛内容(考试大纲,比如有什么语言、比赛范围、比赛时间安排等) 3、确定比赛地点,安装相关的比赛环境(在比赛前3天准备) 4、由会务组随即抽取专家制定比赛题目(考试前一天准备) 5、组织比赛 6、由专家组对比赛结果进行评定 7、公布比赛结果
关于高中计算机竞赛:高中生学习计算机的全面计划
建议你从C学起,打好基础。教材嘛,当然是经典的:《C语言程序设计(第二版)》 谭浩强著
学习过程中要注意:
1.明确学习目的
学习编程对大多数IT业人员来说都是非常有用的。学编程,做一名编程人员,从个人角度讲,可以解决在软件使用中所遇到的问题,改进现有软件,可以为自己找到一份理想的工作添加重要得砝码,有利于在求职道路上谋得一个好的职位;从国家的角度,可以为中国的软件产业做出应有的贡献,一名优秀的程序员永远是被争夺的对象。学习编程还能 锻炼思维,使我们的逻辑思维更加严密;能够不断享受到创新的乐趣,将一直有机会走在高科技的前沿,因为程序设计本身是一种创造性的工作。知识经济时代给我们带来了无限的机会,要想真正掌握计算机技术,并在IT行业里干出一番事业来,有所作为,具有一定的编程能力是一个基本条件和要求。
2.打好基础
学编程要具备一定的基础,总结之有以下几方面:
(1)数学基础 从计算机发展和应用的历史来看计算机的数学模型和体系结构等都是有数学家提出的,最早的计算机也是为数值计算而设计的。因此,要学好计算机就要有一定的数学基础,出学者有高中水平就差不多了。
(2)逻辑思维能力的培养 学程序设计要有一定的逻辑思维能力,“逻思力”的培养要长时间的实践锻炼。要想成为一名优秀的程序员,最重要的是掌握编程思想。要做到这一点必须在反复的实践、观察、分析、比较、总结中逐渐地积累。因此在学习编程过程中,我们不必等到什么都完全明白了才去动手实践,只要明白了大概,就要敢于自己动手去体验。谁都有第一次。有些问题只有通过实践后才能明白,也只有实践才能把老师和书上的知识变成自己的,高手都是这样成材的。
(3)选择一种合适的入门语言 面对各种各样的语言,应按什么样的顺序学呢?程序设计工具不外乎如下几类: 1)本地开发 应用软件开发的工具有:Visual Basic 、Delphi 、VC++ ( C++ Builder ) 等;数据库开发工具有:Visual Foxpro 、Oracle Developer 、Power Builder 等。 2)跨平台开发 开发工具如 Java 等。 3)网络开发 对客户端开发工具如:Java Script 等;对服务器开发工具如:PHP 、ASP 、JSP 、ISAPI 、NSAPI 、CGI 等。 以上不同的环境下几种开发工具中 VB 法简单并容易理解,界面设计是可设化的,易学、易用。选 VB 作为入门的方向对出学者是较为适合的。
3. 注意理解一些重要概念
一本程序设计的书看到的无非就是变量、函数、条件语句、循环语句等概念,但要真正能进行编程应用,需要深入理解这些概念,在理解的基础上应用,不要只简单地学习语法、结构,而要吃透针对这些语法、结构的应用例子,做到举一反三,触类旁通。
4.掌握编程思想
学习一门语言或开发工具,语法结构、功能调用是次要的,最主要是学习它的思想。例如学习 VC 就要学习 Windows 的内在机理、什么是线程……;学习 COM 就要知道 VTALBE 、类厂、接口、idl……,关键是学一种思想,有了思想,那么我们就可以触类旁通。
5.多实践、多交流
掌握编程思想必须在编程实际工作中去实践和体会。编程起步阶段要经常自己动手设计程序,具体设计时不要拘泥于固定的思维方式,遇到问题要多想几种解决的方案。这就要多交流,各人的思维方式不同、角度各异,各有高招,通过交流可不断吸收别人的长处,丰富编程实践,帮助自己提高水平。亲自动手进行程序设计是创造性思维应用的体现,也是培养逻辑思维的好方法。
6.养成良好的编程习惯
编程入门不难,但入门后不断学习是十分重要的,相对来说较为漫长。在此期间要注意养成一些良好的编程习惯。编程风格的好坏很大程度影响程序质量。良好的编程风格可以使程序结构清晰合理,且使程序代码便于维护。如代码的缩进编排、变量命令规则的一致性、代码的注释等。
7.上网学编程
在网上可以学到很多不同的编程思想、方法、经验和技巧,有大量的工具和作品及相关的辅导材料供下载。例如网站“编程课堂”(http://best.yeah.net/)主要以 VB 和 Delph;教学和交流为主,提供大量实用技巧;网站“现在时编程学园”(http://pshool.yeah.net/)是专门介绍C、VC、VB、Delphi 等的综合编程网站;网站“ VB 编程乐园 ”(http://www.vbeden.com/)提供内容丰富而且实用的编程技术文章、精选控件、源代码下载、计算机考试、相关软件以及编程书籍推荐等等。
8.加强计算机理论知识的再学习
学编程是符合“理论→实践→再理论→再实践”的一个认识过程。一开始要具有一定的计算机理论基础知识,包括编程所需的数学基础知识,具备了入门的条件,就可以开始编程的实践,从实践中可以发现问题需要加强计算机理论知识的再学习。程序人人皆可编,但当你发现编到一定程度很难再提高的时候,就要回头来学习一些计算机科学和数学基础理论。学过之后,很多以前遇到的问题都会迎刃而解,使人有豁然开朗之感。因此在学习编程的过程中要不断地针对应用中的困惑和问题深入学习数据结构、算法、计算机原理、编译原理、操作系统原理、软件工程等计算机科学的理论基础和数理逻辑、代数系统、图论、离散数学等数学理论基础知识。这样经过不断的学习,再努力地实践,编程水平一定会不断提高到一个新高度。
关于“软件设计师”的职业规划。我的分不多!还请大家多帮忙!
首先说,软件设计师是一个从事IT行业的中级职称;
我不知道你只是为了参加比赛还是给自己做一个职业规划,既然你选了它,我就认为你是学软件的或是对软件感兴趣吧;
做软件,关键是看技术,看经验,而非学历,看如今社会,本科学历应该是最起码的了,如果你是在读的软件专业的本科生,劝你多做一些提高软件开发技术方面的事情,作为一个技术性学科而非自然学科,软件是人的智慧的结晶,它所有的标准都是企业制定的,从最初的机器语言到如今流行的java,c++,.net,进而基于web的项目开发,著名的MVC模式和struts框架,当今流行的ajax,ssh框架等,不管是编程语言还是开发模式和框架及技术,都是企业在推动它的发展,软件越做越大,功能越做越全,进而影响各个行业,就在昨天,我们打算做一个智能公交系统,到公交调度室去做需求分析的时候,看到的工作人员正在用的软件,跟我们想象中的一样。
你也可以追求高学历,毕竟在中国,高学历总是有好处的;计算机专业也可以考研,而且是国家统考,但你要知道,考研科目中不涉及编程语言和编程思想,也就是说对技术没什么高要求,理解的东西多:专业课的四科是计算机组织与结构,要求你懂计算机硬件,如果你想做研究,精通的了解是必要的;计算机网络,是很有发展前途的一个方向;数据结构,是算法的思想;操作系统,要求你了解支撑计算机运行的最基本最底层最重要的软件部分和软件与硬件的交互;
研究生吗,目的是做研究,但是现在多数人是为了追求高学历进而就更好一点的业,这就是学历在中国的作用,如果你正的向做研究,就去考研,软件设计师,是开发软件,做项目的;其实计算机行业,不管你是做研究还是搞技术,都是技术型的,是带有技术的研究,或是带有研究的技术,它不像物理是一个自然学科,注重新事物发现和自然的规律的探索,也不像化学那样是一个自然性学科;软件是一个很cool的行业,不管是做技术还是做研究,都是一个很有激情的行业,每个人都有可能成为行业的领导者,每个人都有可能成为标准的制定者;
回到你的“职业规划”上来,软件设计师,说实话,作为一个职称,它很好考,要达到软件设计师的水平,不那么容易,既然是“职业”规划,就是说,你像把它作为你工作的身份和资本,其实软件行业只有这么一个职称是谁都不会认可的,你要有技术,要会外语,要会沟通,要懂得团队合作。你可以这样,35岁之前做技术,做程序员,技术做的好,才有可能升职,转型做管理。如果有头脑和机遇和先进的技术,还可以创业。软件行业大部分都这样,不是做技术就是做管理,没有一个清晰的发展路程,因为从事软件行业是很累很辛苦的,软件行业是转行最多的行业,也是工资相对较高的行业。
所以说,软件设计师,确切说它不是一个职业,你可以说“老师”是一个职业,但“软件设计师”不一定是。
怎么准备ACM程序大赛?
原创哦~
我的观点:
第一阶段:先刷水题,水题,就是几乎不牵扯算法。需要自己想方法解决。
这样的题,一是锻炼 逻辑思维和思维的严谨,二是锻炼代码能力(写的代码越来越长而错误越来越少,看别人很长的代码很快就能看明白对方的思路,这些都是代码能力)
代码能力不够直接学习算法 会非常吃力了。。
在各大OJ刷200道水题,这样算是入门了吧。。:(推荐去HDOJ因为这上面的水题比较多,适合新手入门,第11页,第16很多中文水题)。越到实在是做不出来的题就放放。。
第二阶段:渐渐的学一些简单的算法。。
HDOJ的论坛上有的课件,水题刷的差不多了,看着课件(课件有些得放写的不是很详细,可以去百度 这方面的资料),学一些基础算法,继续刷题。。。。。
第二阶段刷到400.。
第三阶段: 在第二阶段的基础上继续纠结算法。 这时候可以看算法导论了。学习数据结构。继续刷题。。
刷到600.。
算法导论看完之后楼主可以去看看 刘汝佳的黑书(算法艺术与信息学竞赛)。
如果楼主能坚持到这时候,那算是一个牛了。。
之后楼主应该就知道该怎么走了。。
电气工程专业学生求职问题
我也这专业,刚毕业一年。那要看你往哪个方向了。建议往电力系统,次点也自动化,千万别去电机方向,千万。增加筹码的多了,一是学习成绩,奖学金之类,因为到时会看你的成绩单,上面有四年的各科成绩,所以千万不要挂科,然后就是一些专业课的成绩,数电模电啊,电机学啊,电力系统分析啊,电力电子技术啊balabala。这些要学好,有的面试官会当场问你问题,或者笔试考。二是你的一些活动经历,这个有一些即可,用来说明你是一个善于沟通的人。三是实习经历,有分量的写上,没有就算了。四是参加的比赛,获得什么名次,比如数学建模大赛,机器人设计大赛,自能车设计大赛,越多越好,有奖更好。五是会的软件,CAD啦,MATLAB啦,soliderwork啦,pro-e,仿真啦等等,越多越好,最好还能精通几门仿真软件。六,英语,四级是基础,六级是升华。
如果你这6样都有了,相信不是公司挑你,而是你挑公司了。
有这么多,我就说下重要性吧,专业课的掌握,不是指成绩而是指实实在在掌握的,是第一位。软件和比赛是升华,精通几个软件,比如cad画图必备的,matlab仿真上课也会学的。比赛也不在多,而在拿到奖。再就英语。再是一些七七八八的证。
数学建模需要用到哪些软件,比赛主要用到哪些?
数学建模比赛必备 1 matlab(矩阵实验室) 2 lingo和lingo(线性规划) 3 SPSS<统计) 其中MATLAB是最重要的也是最常用的 4 还有就是最好学好c语言 这个软件和有很多的相似之处 其中统计软件:SPSS,SAS,STATA. 解决运筹学的模型:lingo 5 PS:SAS很强大的,如果没有接触过还是不要学的好. 其实SPSS解决一下就可以了,只是SAS画出来的图很好看. 6 另外还有时间可以看看另两个软件 SMARTDRAW LATELX
ACM 关于ACM程序设计竞赛,需要掌握哪些知识点,最好能详细一点,谢谢高手们了。
训练过ACM等程序设计竞赛的人在算法上有较大的优势,这就说明当你编程能力提高之后,主要时间是花在思考算法上,不是花在写程序与debug上。
下面给个计划你练练:
第一阶段:练经典常用算法,下面的每个算法给我打上十到二十遍,同时自己精简代码,因为太常用,所以要练到写时不用想,10-15分钟内打完,甚至关掉显示器都可以把程序打出来。
1.最短路(Floyd、Dijstra,BellmanFord)
2.最小生成树(先写个prim,kruscal要用并查集,不好写)
3.大数(高精度)加减乘除
4.二分查找. (代码可在五行以内)
5.叉乘、判线段相交、然后写个凸包.
6.BFS、DFS,同时熟练hash表(要熟,要灵活,代码要简)
7.数学上的有:辗转相除(两行内),线段交点、多角形面积公式.
8. 调用系统的qsort, 技巧很多,慢慢掌握.
9. 任意进制间的转换
第二阶段:练习复杂一点,但也较常用的算法。
如:
1. 二分图匹配(匈牙利),最小路径覆盖
2. 网络流,最小费用流。
3. 线段树.
4. 并查集。
5. 熟悉动态规划的各个典型:LCS、最长递增子串、三角剖分、记忆化dp
6.博弈类算法。博弈树,二进制法等。
7.最大团,最大独立集。
8.判断点在多边形内。
9. 差分约束系统.
10. 双向广度搜索、A*算法,最小耗散优先.
第三阶段:
前两个阶段是打基础,第三阶段是锻炼在比赛中可以快速建立模型、想新算法。这就要平时多做做综合的题型了。
1. 把oibh上的论文看看(大概几百篇的,我只看了一点点,呵呵)。
2. 平时扫扫zoj上的难题啦,别老做那些不用想的题.(中大acm的版主经常说我挑简单的来做:-P )
3. 多参加网上的比赛,感受一下比赛的气氛,评估自己的实力.
4. 一道题不要过了就算,问一下人,有更好的算法也打一下。
5. 做过的题要记好 🙂
下面转自:http://hi.baidu.com/wilworld/blog/item/88b1b844d37e4049500ffe6a.html
ACMer必备知识(任重而道远……)
图论
路径问题
0/1边权最短路径
BFS
非负边权最短路径(Dijkstra)
可以用Dijkstra解决问题的特征
负边权最短路径
Bellman-Ford
Bellman-Ford的Yen-氏优化
差分约束系统
Floyd
广义路径问题
传递闭包
极小极大距离 / 极大极小距离
Euler Path / Tour
圈套圈算法
混合图的 Euler Path / Tour
Hamilton Path / Tour
特殊图的Hamilton Path / Tour 构造
生成树问题
最小生成树
第k小生成树
最优比率生成树
0/1分数规划
度限制生成树
连通性问题
强大的DFS算法
无向图连通性
割点
割边
二连通分支
有向图连通性
强连通分支
2-SAT
最小点基
有向无环图
拓扑排序
有向无环图与动态规划的关系
二分图匹配问题
一般图问题与二分图问题的转换思路
最大匹配
有向图的最小路径覆盖
0 / 1矩阵的最小覆盖
完备匹配
最优匹配
稳定婚姻
网络流问题
网络流模型的简单特征和与线性规划的关系
最大流最小割定理
最大流问题
有上下界的最大流问题
循环流
最小费用最大流 / 最大费用最大流
弦图的性质和判定
组合数学
解决组合数学问题时常用的思想
逼近
递推 / 动态规划
概率问题
Polya定理
计算几何 / 解析几何
计算几何的核心:叉积 / 面积
解析几何的主力:复数
基本形
点
直线,线段
多边形
凸多边形 / 凸包
凸包算法的引进,卷包裹法
Graham扫描法
水平序的引进,共线凸包的补丁
完美凸包算法
相关判定
两直线相交
两线段相交
点在任意多边形内的判定
点在凸多边形内的判定
经典问题
最小外接圆
近似O(n)的最小外接圆算法
点集直径
旋转卡壳,对踵点
多边形的三角剖分
数学 / 数论
最大公约数
Euclid算法
扩展的Euclid算法
同余方程 / 二元一次不定方程
同余方程组
线性方程组
高斯消元法
解mod 2域上的线性方程组
整系数方程组的精确解法
矩阵
行列式的计算
利用矩阵乘法快速计算递推关系
分数
分数树
连分数逼近
数论计算
求N的约数个数
求phi(N)
求约数和
快速数论变换
……
素数问题
概率判素算法
概率因子分解
数据结构
组织结构
二叉堆
左偏树
二项树
胜者树
跳跃表
样式图标
斜堆
reap
统计结构
树状数组
虚二叉树
线段树
矩形面积并
圆形面积并
关系结构
Hash表
并查集
路径压缩思想的应用
STL中的数据结构
vector
deque
set / map
动态规划 / 记忆化搜索
动态规划和记忆化搜索在思考方式上的区别
最长子序列系列问题
最长不下降子序列
最长公共子序列
最长公共不下降子序列
一类NP问题的动态规划解法
树型动态规划
背包问题
动态规划的优化
四边形不等式
函数的凸凹性
状态设计
规划方向
线性规划
常用思想
二分
最小表示法
串
KMP
Trie结构
后缀树/后缀数组
LCA/RMQ
有限状态自动机理论
排序
选择/冒泡
快速排序
堆排序
归并排序
基数排序
拓扑排序
排序网络
平面设计的基本是什么
给点建议:
1、提高自己的美学鉴赏能力(知道什么是美的东西,才能创作出好的作品)
2、提高自己美术基础知识(有个基本功才能提高自己,色彩构成、字体设计)
3、搞设计的人不是多看多品,多看别人的设计就OK的事,要学的东西有很多,提升自己的内涵与文化底蕴,设计出的东西才能打动人,才能让人欣赏
4、掌握基本设计软件是必须的,软件是笔,用它才能表达(表现)自己的想法和艺术气息,不是光靠美术效果折服人的,好作品需要别人能读懂的
5、站在别的角度看自己的设计,多向有资历的人学习,求教,进步会快些
6、多模仿作品,自己的东西是靠多模仿才能创作出来的,模仿是体会设计内涵的最快捷的方式
7、多参加各种平面设计比赛,从比赛中能或许更多的知识
8、定义规划好自己的目标和事业道路,不能半途而废
最后我祝你成功,学有所成!
平面设计需要学什么
平面设计是要有市场价值的.建议只是建议….Photoshop(必学最常用)CorelDAW(偏色严重,,但交互式工具很好有)、Illustrator(放大不会出现马赛克,Photoshop会出现).