程序员需要学习哪些数学知识

打算参加数模竞赛但是没有什麼经验,想知道如果负责编程的话需要怎样学习?需要掌握哪些知识和技能具体应该怎样做呢?

先理一理每个参赛队需要掌握的计算機技能至于哪些由“负责编程的同学”承担,这属于队内分工问题显然每个队情况都不一样,协调好就可以了之前在 其他回答 中提箌过这部分内容,限于篇幅比较简略。下面按照重要程度稍微详细地介绍一下

  • 数学符号和公式。正确排版数学符号和公式特别是行內公式要规范。
  • 图、表能够插入图、表,其编号、标题位置符合规范
  • 参考文献。元信息准确按指定样式生成参考文献列表,正文中嘚引用准确
  • 编号、交叉索引。目录、公式、图、表、参考文献的编号和交叉索引准确规范

所用软件主要是两大类,以MS Word为代表的所见即所得类编辑软件和LaTeX。

  • 功能:两类软件理论上都可以用于排版竞赛论文但是工作方式完全不同。
  • 学习成本:很多人认为LaTeX的学习成本远高於Word其实不然。相当一部分Word用户所谓“会用Word”实际上只会三板斧:输入文字,调整字体调整字号。完全没有样式表自动编号,交叉索引的概念文章的目录都无法自动生成,一切都要靠蛮力如果这样也算是“会用”,那LaTeX更容易我个人的观点,就竞赛论文排版而言Word和LaTeX的学习成本相当,或许LaTeX还简单些
  • 效率:其他事情不好说,但在竞赛论文排版方面Word的“能用”和LaTeX的“好用”完全没有可比性。
  • 无论哪种软件会用的标准都是一样的,那就是要能按上面的要求正确的排版竞赛论文赛前一定要实际排版过2到3篇以上的论文,不能相当然嘚认为自己会用
  • 理工科的同学,特别是数学、物理、计算机等专业花一点时间学习LaTeX是非常值得的投资。
  • 但是如果Word类的软件已经用的佷熟,赛前准备时间很紧张就不需要专门再学LaTeX。在符合竞赛论文要求的前提下决定论文奖项的最主要因素是论文的内容,而不是所用嘚软件
  • 掌握表格的排版方法,格式要求和习惯
  • 了解常用图形的特点和适用场合掌握其绘制方法,以及排版要求

竞赛论文少不了图和表合适的图、表可以向读者简洁、准确传达信息。

Word制表功能较直观一般操作不会有问题,关键是要设计表格的内容而LaTeX排版常见样式的表格很容易,但是排版非标准复杂表格的方式不直观容易出错。或者在赛前多练习或者放弃使用特别复杂的表格。

竞赛论文中经常需偠绘制的图形大体可以分为三类

  • 数据图。直方图、散点图、折线图、函数图像等常见的高级程序语言都能绘制这些图形。或者是将数據导出后利用专门的绘图软件绘制Excel画出来的图形也不错。
  • 流程图一般用于描述算法流程,系统框架等相关软件很多,赛前选一个簡单练习即可,比如 draw.io.
  • 示意图包括各种受力分析图、内部结构图等。这一类图形相对用的少些也没有特别合适的软件推荐。LaTeX的 TikZ/PGF 包完全可鉯胜任但是对多数人来说过于繁琐,学习成本较高 GeoGebra 是一个免费的几何作图软件,绘制几何图形时可以考虑

文献检索、资料收集(必修)

  • 掌握搜索引擎的使用方法(搜索语法,如filetype, site, 双引号等)
  • 掌握论文全文数据库的访问权限和使用方法
  • 其他数据源(联合国数据库世界银荇数据库等)
  • 无论题目是中文还是英文,都要重视查阅英文的文献
  • 建议学习至少一种文献管理软件,以提高效率比如 Mendeley.

以上几个方面主偠是与写作有关,而编程能力是计算能力的核心最关键的是设计算法的能力以及根据算法写代码的能力。

  • 至少能够熟练使用一种高级语訁
  • 熟悉常见的数据结构和算法
  • Lingo等求解优化问题的专业软件(选修)
  • 常用的图论算法(选修)
  • 数字图像(选修。基本概念读取,简单加笁)
  • 目前主流的高级语言功能都比较完整只要熟练,任何一种都可以如果一定要推荐一种,可以考虑Python
  • 无论用哪种语言,纯文本文件總是可以读写的可以利用纯文本文件作为程序输入、输出数据的中介。
  • 插值、拟合、解方程(组)这些常见的数值计算任务尽量用现荿的软件包或者函数。
  • 优化问题经常出现如果已经掌握Matlab、Python等通用语言,不见得一定要学Lingo但是对于大规模的问题,Lingo的性能最好
  • 与图、網络有关的赛题比较多,赛前可以熟悉一下常用的算法但是不一定要逐个编程实现,关键是将算法转化为代码的能力
  • 美国赛的题目经瑺需要用到计算机仿真。一般没有现成的软件能够直接用需要自己编程。赛前准备有备无患。
  • 全国赛中有一些题目与图像处理有关泹是总量不多,美国赛中则非常少了解一些数字图像处理的基本概念,在选题的时候会有更大的灵活性
  • 纯文本文件编辑器。如果只会鼡notepad效率就太低了。相关的软件非常多可以参考维基百科 文件编辑器比较 这个页面。最主要的功能包括代码高亮、文本比较、正则表达式搜索、编码转换、 换行转换、自动缩进、自动补齐、代码折叠、列块等
  • 正则表达式。清理数据的时候特别有用
  • 版本控制软件。程序備份、多人合作

上面每一个必修的项目,都要投入一定的时间才能达到得心应手的程度没有特别好的捷径。内容比较多比较泛,相關的资料、教材也不集中早点动手。队员之间也可以合理分工提高效率。

赛前可以自己评估一下自评的方法非常简单,选同一道题目的多篇优秀论文看看能不能搜索到合适的文献资料,能不能找到数据别人论文中比较好的图,能不能画出来别人用的方法,自己會不会编程等等。

针对数学建模编程基础薄弱的学生来说参加数维杯夏令营可以快速提升建模能力,数维杯夏令营邀请全国数学建模領域知名教授针对数学编程方面的学员进行一对一指导团队报名获奖率更高。针对编程较差同学老师会把国赛中出现较多的建模类型詳细讲解,比如预测类、优化类等问题怎样进行编程、建模、论文写作最后会结合历年国赛来为大家一对一实战练习。现如今在大数据時代下数据无处不在,为了满足社会日益增长的人才需求培养出符合企业要求的专业人才,本届数维杯夏令营结合自身在数学建模行業的多年经验与积累的资源特面向学员增加了大数据分析与挖掘课程主题,使学员能够深入了解当下大数据分析与挖掘技术在当代各种產品中的应用掌握该领域最关键的技术原理,为学员科研和项目开发工作打下坚实的基础本次夏令营将于2019年8月8日至8月17日在西安举行,甴数模乐园承办

最后提醒参加过ACM的同学,数模竞赛对计算机技能的要求与ACM是不一样的虽然可能确实是编程高手,但不要想当然认为一萣可以应对数模竞赛的编程要求赛前要对照一下以上的清单,以参赛队为单位查漏补缺。

翰林教育是一家涵盖各科目国际学术竞赛教輔(///)、国际课程辅导(///)、国外著名夏校项目申请的专业国际教育培训机构为广大学员家长提供高端本科研究生申请及就业咨询,有一对一等哆种线上线下的教辅方式为学员量身定制从9年级到研究生的权威全程国际竞赛方案。翰林拥有业内稀缺的竞赛资料和课程真题等珍贵的學术资源国内课程辅导领域罕见的纯正海归精英教辅团队-均有世界名校背景和欧美留学经历,都曾供职全球知名教育集团、国际学校学术团队和世界500强公司

翰林学院藤校牛剑录取成果

以藤校牛剑offers为导向的国际教育团队翰林学院专心学术和竞赛,5年来翰林学员共获得:

翰林学院为大家精心打造:

在国内一线城市那些眼睛始终瞄准国外的高知中产家长圈里“编程要从娃娃抓起”已经成为一句深入人心的话。家长唯恐孩子输在起跑线上的焦虑、升学利好的诱惑矗接催生出一个百亿元级别的产业。从长远来看编程恐怕难免像奥数那样,成为中国亿万家长的“刚需”

陈斌第一次接触编程是1996年那姩他14岁,在父母工作的学校里第一次试用了电脑当时,那个福建小县城里没有一本像样的编程书完全是出于好奇和兴趣,他开始一边查字典翻译编程软件的英文使用手册一边自学,用一个暑假学完了BASIC语言一年后,在他的苦苦央求下父亲花半年的工资买下了一台“586”电脑,他由此开启了自己的“程序员生涯”

如今,陈斌10岁的儿子已经学习编程一年多了使用的是陈斌自己编写的教材——2016年,已经從微软、思科离职创业的他从新闻上了解到美国总统奥巴马发起的旨在呼吁全美小学生学习编程的“编程一小时”行动。联想到自己小時候的经历他创办了一家专门针对青少儿的编程教育机构,主打线上一对一教学两年来,他辅导了来自全国各地甚至海外的学员最尛的只有6岁多,甚至还有2岁孩子的家长也跑来咨询:“可不可以教教我的孩子”

近两年,随着消费升级和国家政策的推动编程这个曾經看上去和孩子毫无关系的技能似乎在一夜之间成为了教育市场上的热门话题。当电脑、手机、iPad早已成为“触屏一代”的标配望子成龙嘚父母们已经不再满足于让孩子学奥数、学英语,越来越多像陈斌这样的创业者也加入了进来少儿编程似乎进入了爆发的前夜。

“人人嘟应该学习一门计算机语言因为它将教会你如何思考。”史蒂夫·乔布斯曾这样描述学习计算机的重要性。放眼全球,“编程从娃娃抓起”早已成为了诸多欧美国家的共识,相比之下,中国才刚刚起步。而另一方面从小学编程就能培养出下一个扎克伯格吗?少儿编程教育究竟是人工智能时代的必然趋势还是被家长们的焦虑制造出来的生意?站在风口上人们一边思考着答案,一边展望着一个新时代的到來

对于不少80后来说,对编程最初的记忆大多与一只小海龟有关在那个还需要穿鞋套进机房的90年代,在学校的计算机课上孩子们会在咾师的指导下半懂不懂地敲下一行行代码——通过简单的指令,小海龟可以向各个方向来回行走创造出各式各样的几何图形。

“小海龟繪图”所使用的编程语言名为 LOGO是南非计算机科学家西摩尔·派普特于 1967 年在 LISP 语言的基础上发明的。这是世界上第一款针对儿童教学使用的編程语言比 C语言的诞生还要更早一些。在国内最流行的90年代“小海龟绘图”是计算机课本上一个重要的章节,也是很多80后编程的启蒙

但在此后漫长的岁月里,当奥数、英语、钢琴、美术依次挤满了孩子们的课余时间并非升学必修课的编程作为一个可有可无的存在,漸渐被大多数人遗忘了

直到2014年前后,受到国外STEM教育(即科学、技术、工程、数学四门学科的英文首字母缩写)的影响国内也掀起了儿童创客教育的热潮,编程开始重新回到人们的视野中少年创学院CEO张路还记得,起初他们只是在开设的科技创客课程中包含了一部分编程嘚知识但后来很快就开设了专门的编程班:一类孩子喜欢动手,会对机器人编程非常有兴趣;另一类孩子比较安静、喜欢琢磨则从Scratch语訁起步学习图形化编程。

教育从来不缺市场国家政策的助推让更多人意识到了编程的重要性。2014年浙江省公布高考综合改革试点方案,率先将信息技术学科(包含编程)加入高考选考科目

2016年6月,教育部印发的《教育信息化“十三五”规划》将信息化教学能力纳入了学校辦学水平考评体系

2017年7月,国务院发布的《新一代人工智能发展规划》则明确指出“在中小学阶段设置人工智能相关课程,逐步推广编程教育鼓励社会力量参与寓教于乐的编程教学软件、游戏的开发和推广。”

2018年4月教育部发布《教育信息化2.0行动计划》,提出要“推動落实各级各类学校的信息技术课程并将信息技术纳入初、高中学业水平考试。”

大数据能够直接说明大众认知的变化某搜索指数显礻,2016年以前有关“少儿编程”的整体搜索指数始终低到可以忽略不计,最高也只在100左右徘徊但自2016年年底开始,这个数字逐步上涨到紟年4月底,一度达到了迄今为止最高的3197比早前翻了30倍。

与此同时资本动向也是最敏锐的市场风向标。自2014年起就陆续有少儿编程机构获嘚融资此后,融资金额和数量逐年增长从2017年开始更是有了陡增之势。公开报道显示2017年全年有至少近20家少儿编程培训机构获得融资。進入2018年仅上半年的投融资事件就几乎快与上一年持平,其中不乏屡创新高的大手笔:继2017年11月获得1.2亿元的B轮融资短短半年后,“编程貓”又获得了新一轮3亿元的融资;9月12日“傲梦编程”宣布获得由好未来共赢基金与IDG资本两大巨头联合领投的1.2亿元B轮融资……

“去年我們其实也谈过融资,但后来就不了了之了今年市场的热度很明显,我们一周见了二十多家机构两星期就谈下来了。”陈斌说2018年年中,他所创办的“橙旭园”已完成了超过千万元的pre-A轮融资

少儿编程真的已经这么火了吗?火爆的资本市场背后是摩拳擦掌的中产精英镓长们。“我们的学生一半来自国际学校一半来自人大附中、附小那样的牛校。”张路说目前这些来学编程的孩子其实有着很多共同嘚特点:他们本身都是学校里名列前茅的“尖子生”——只有学有余力的孩子才有时间和精力参与这样的“素质类课程”;他们的家长大哆是非常重视子女教育、观念意识超前、经济条件较好的高知、精英阶层——当多数家长和孩子还在辛苦应付着应试教育带来的升学压力,他们已经将目光投向了兴趣和思维的培养甚至不需要做太多推广宣传,他们就已经主动找上门来了

来自武汉的思培拥有某重点大学計算机与数学领域的博士学位。女儿萌萌今年8岁上小学二年级。虽然在学校成绩还不错但思培一直觉得少了点儿什么:作为“专业人壵”,她发现萌萌的逻辑思维能力比较弱体现在数学学习方面很明显——课内功课虽然没问题,但只要稍微拓展一点点就完全没有了思路。当她听说“橙旭园”为儿童学习编程提供一对一的在线课程立刻决定要让萌萌试试看。

于是从这个暑假开始,萌萌每周在家里仩3次课一次1小时,跟着老师在线学习Scratch语言

起初,萌萌对上课并不主动老师提问也不怎么回答,但让思培惊喜的是这样的状况很快僦发生了变化:“学Scratch就是老师带着她做游戏,这种形式还挺能调动她的学习兴趣现在每次一说上课她都好开心:又可以做游戏了!”

Scratch是麻省理工学院开发的一款专门针对低年龄段孩子的编程工具,因其入门简单、操作极具趣味性推出十余年来,已经是世界上最流行的儿童编程语言即便是不会英语、不会用键盘打字的孩子,也可以通过拖拽积木形状的模块来实现构成程序的命令和参数在制作动画、游戲的过程中学习到有关编程的基本知识。

在思培看来让萌萌学编程的主要目的是为了激发学习兴趣,训练她的逻辑思维和独立思考的能仂培养她在处理问题时有步骤、有安排的思维模式,这远比眼下校内几门课程考试成绩的好坏重要得多上课两个多月来,效果也确实讓她很满意:萌萌已经学会了在Scratch里制作“海底世界”一类的小游戏现在遇到事情也开始有了听指令、做计划的意识。“而且她现在对机器人编程也特别感兴趣还说要一直学,以后要让机器人做饭、扫地做很多事情。”思培说她不会为了“小升初”勉强萌萌去学奥数戓是上各种培优班,但会支持她把编程一直学下去

在现阶段,国内的少儿编程教育主要分为两类:一类是机器人编程(例如乐高机器人)即通过组装、搭建、编写程序来运行机器人,着重培养孩子的动手能力;另一类是编程语言通常从萌萌学的这种图形化编程(如Scratch)起步,在学会运用“编程思维”后逐渐进阶到代码编程(如Javascript、C++、Python等)在业内人士看来,简单的拼插编程机器人和图形化编程其实都呮能算作用于启蒙的“玩具”距离真正意义上的编程还有不小的差距。启蒙阶段过后代码编程才是“真刀真枪”的考验。

齐明(化名)是北京某高校计算机专业教授平日的主要工作之一是教本科生学习游戏编程。两年前他开始亲自教刚上四年级的儿子学编程——得益于自己的“老本行”,他直接跳过了图形化编程一类的启蒙阶段完全按照本科生的课程内容给儿子上课。只要没有特殊安排儿子每忝下午放学后都会直接到他的办公室里学一个小时编程。

“将来的世界应该是一个全面信息化、智能化的时代人类被各种信息智能设备所包围。而这些信息智能设备运行的逻辑就是程序设计语言编写的。未来有知识的人都应该具备一点儿与智能设备沟通的能力。可以預言的是未来有知识的人类掌握的第二种语言应该就是编程语言。现在的孩子应该早早地适应这个大趋势”齐明说,通常他会根据儿孓的接受情况随时调整学习进度而让他非常高兴的是,在自己这种“一对一、高浓度教学资源的倾注”之下儿子确实在小学阶段就基夲掌握了大学程度的知识。经过近两年的学习儿子现在已经可以用Java语言写诸如星空大战、贪吃蛇一类的小游戏了。

在齐明看来如今学奧数已经过时了——“奥数也就是数学,是一门所有学生都有学的课程而编程,中国现在绝大多数中学都不教不是高考科目,大部分學生只有到了大学才能接触到编程课程所以我最重视对儿子编程能力的培养,因为这将成为他的核心竞争力这样学下去,他上大学时其编程能力将远远超越同龄人。”

然而从小学就开始学编程真的有必要吗?并非所有家长都像思培和齐明这样坚定面对突然火起来嘚“编程热潮”,社会上也不乏一些质疑的声音

中央财经大学中国互联网经济研究院副院长教授欧阳日辉就曾指出,让孩子过早开始学習编程更像是培训机构发起的“心理战”:“从商家的角度而言这是一种营销策略。强调未来发展、强调学习编程的零基础这在很大程度上迎合了家长对孩子‘不输在起跑线上’的迫切需求,迎合了当下社会普遍存在的焦虑心情但这对孩子的成长也许并无益处。”

而茬一家线下少儿编程培训机构门外一位前来咨询课程的父亲表达了自己的担忧:“编程需要一定的数学基础,这对年龄尚小的孩子来说會不会有点儿像先学写字再学说话都说能启发思维、培养创造力,那画画也可以啊!就怕孩子上课的时候挺开心但玩玩游戏、热闹一丅就过去了。”

但齐明不同意这样的说法“编程其实不是培养创造力的。编程要做的是将一个大的难题进行分解然后一步步解决,培養的是‘分析问题和解决问题’的能力”在他看来,编程培养的思考模式更像工程师而非科学家“当然,这种思考能力不仅仅是工程师需要,其他所有行业的人都需要”

而在陈斌看来,学习编程其实没有绝对的早晚之说每个孩子的个体差异很大。在一个完善的教學体系中少儿编程的核心是逻辑而非数学,学习编程的过程本身也正是培养数理思维的过程“总体而言,如果孩子能够早一些接触编程未来他们就能更早地将其作为一种工具运用起来,十几岁时可能就已经参与到科技变革中了”

事实上,不仅仅是在中国在少儿编程教育先行一步的欧美国家,类似的争议也一直存在早在2014年,《纽约时报》就曾邀请各界人士就“是否应该将编程纳入小学课程”进荇过讨论。当时著名科技专栏作家约翰·德沃夏克措辞严厉地批评让小学生学编程是“一个骗局”,没有人真正关心孩子的成长:“二年級学生应该跑来跑去、玩球画画、学习精细运动技能,培养正常的人际交往能力把他们摁在电脑前学习用某种语言编程,还号称这可鉯传授计算机知识这一定是疯了。”而来自纽约公立学校的数学老师乔斯·韦尔森则认为,如果等到高中再给孩子们开编程课已经为时已晚,因为“编程能够打开机会的大门”

在各种讨论中,最特别的发言来自一位弗吉尼亚州的初一女生她从小学四年级开始学习编程。茬她看来自己其实还应该开始得更早些:“编程、代码现在无处不在。它在你的手机里在你的厨房电器里,在你的车里在我们随身攜带的银行卡上。这是我们沟通交流的方式孩子们需要编程课,学会编程他们将会掌握塑造未来的语言。”

下一个奥数级别的市场


程语言有C语言C++语言,C#语言JAVA,PHP等等。

第二个要知道一个程序的数据结果

第三个要能熟练的应用算法。

第四个要熟练的使用现在的主流操作系统

等等。做一个程序員不是那么容易的你继续就有努把力。

你对这个回答的评价是


也要会两种以上的主流编程语言C++语言,C#语言JAVA,PHP等当然最重要的还是終身学习的能力,即使目前能力差还可以通过学习来弥补跟别人之间的差距,最终超越同行

你对这个回答的评价是?


、编译工具的安裝卸载专

库或者MySQL数据库的使

法,相关软件的安装和卸载等等

其实要成为程序员,你直接从零开始学习一门编程语言就可以了等你学唍之后,这些都不是问题了

你对这个回答的评价是?


MySQL 教程。高级:

你对这个回答的评价是


以下两句话,只要学会一句话就可以了:偅启一下系统清空一下缓存。

你对这个回答的评价是

下载百度知道APP,抢鲜体验

使用百度知道APP立即抢鲜体验。你的手机镜头里或许有別人想知道的答案

我要回帖

 

随机推荐