
急求一份编译原理的课程设计报告。
在线等,好的话有追加
1.开自我介绍, 简单讲述我大学的学习的,成果和。
(1分钟)我一直都感慨本年级许多同大一时因为缺乏好指引,在一开始就对编程很害怕,对计算机的学习没有开好头,动手能力长期跟不上,空会理论,不会实践,一直拖累到大四,最终选择忍痛考研或者抱怨找工作难。
我也帮助过不少在这方面比较弱的同学,但是总是因为基础没打好导致难以提高。
我也一直希望学校能在大一的时候就让同学们明白学习的重要性,打好扎实的专业基础。
现在终于有一次这样的机会站在这里,为指引大家如何在大学专业技术学习的道路上开好头做点贡献。
今天我将结合我自身的经历和我对计算机的理解,我对编程的感悟,我对大学学习的认识,给大家做报告。
首先问三个问题:1) qq聊天软件是用什么语言写的(第二天要换个问题)答对的演讲结束后留下来,我要亲自给他传授宝贵经验,没人答的话,很遗憾2) 谁玩电脑游戏比较牛恩,人很多,大家很踊跃,很好展示下我写的人工智能黑白棋游戏,声明真正的编程高手基本从来不玩游戏(结合大四同学长期沉迷游戏最后找不到工作的例子,说明一个严肃的问题,只会玩游戏没有用,会做游戏才牛,鼓励大家努力学习,让会玩游戏的同学也热爱编程,最后也能自己写游戏)请大家记住:只会玩游戏没有用,会做游戏才牛3) 有没有人对计算机特别感兴趣 (为什么感兴趣)如果有兴趣,对学习计算机有巨大的帮助兴趣是最好的老师,鼓励他们,勉励其他人,兴趣是可以培养的,要学会培养兴趣2.概述计算机科学与技术 包含两个层面 科学 指计算机硬件、软件与应用的理论知识 理论的学习技术 指软件开发、工程实践等技能与方法 能力的培养我主要讲的是如何学习技术(计算机技术) 讲之前 澄清一个观点 计算机技术 不等于 编程技术编程只是一个工具,编程没学好不代表你技术就学不好计算机技术应该是与计算机软件、硬件和网络三个部分相关的各种科技成果和应用的综合,包括了多媒体,数据库,操作系统,嵌入式系统,计算机安全,计算机网络,计算机管理和维护,计算机应用,人工智能,模式识别,管理信息系统等,在我们生活的方方面面计算机技术几乎无处不在。
(举几个例子)在现在社会,它几乎与我们的生活息息相关。
(大学和高中的学习方式的区别)(学好技术的重要性)在大学,学习的方式与高中或小学是有很大的区别的,大学更大,大学更自由,不再是完全跟着老师,不再是只要吃透了老师教授的内容就万事大吉了,从我这一届的情况看,许多同学特别是女生在大学还沿袭着高中的学习方式,勤奋刻苦,天天自习,非常认真,上课笔记做得秘密麻麻,把理论学得非常扎实,但是却严重地忽略了实践能力的培养,理论考试分数很高,但课程设计做不出东西来,显然这种学习方式是不对的,这和高中的偏科又有什么本质区别呢。
我觉得理论的学习和技术的学习是同等重要的,二者都不应该轻视,没有侧重点是不可能的,至于如何侧重,如何在二者之间找到平衡点就取决于你自己的人生目标了。
如果你喜欢研究理论,以后想继续读研深造可以稍微偏向理论,把理论基础打得扎实一些,毕业以后可以留校任教或到科研院所去发展。
如果你想走技术路线,那么你就可以稍稍偏向技术,在不落下理论学习的情况下,把技术学好学精,毕业以后可以去IT企业发展,也可以自己创业,有了一身技术不怕没饭吃。
切莫完全忽视技术最后变成书呆子或完全不顾理论最后只是个代码搬运工。
大家每个人,从现在开始就要下决心学好技术,那么,如何学好技术呢。
3.如何学好技术3.1制定好的学习计划3.1.1大一大二:打好基础3.1.1.1计算机方面的基本技能的学习包括计算机众多的应用技术的学习 和 常见的硬件维护(大家应该尽量多多掌握计算机方面的基本技能,如word excel ppt access* photoshop* flash* dreamveaver* 结合我的经历讲讲,我大一在自己没有电脑的情况下把这些基本全学了 举一个考研的同学不会在excel里找自己的名字的例子,如果这些最基本的技能都不会,只能说计算机还没入门)大二有电脑之后,终于有机会整自己的电脑了,要学习常见的常见的硬件维护(系统崩溃了怎么办,如何安装操作系统,如何分区等)3.1.1.2专业理论基础和编程基础的学习技术是将理论运用到实践中去,不能轻视理论,没有理论何来应用。
计算机科学与技术 中的科学和技术应该是相互依赖和促进的。
先学好《高级语言程序设计》《数据结构》等专业课,理论基础扎实了,学应用性技术就更容易了编程基础:学精C++(为什么),可以考虑过渡到 java 或 C# (最好只学一个,为什么)(编程的学习会在后面再详细讲)3.1.1.3珍惜这两年大学自由学习的黄金时间 (曾经和一家公司的经理开玩笑,总经理感慨的说现在在大学里找一个又能力的学生来帮忙做项目真是很难啊,我说是呀,大学四年,大一的刚进校还在打基础没法做,大二的还刚起步没足够的能力做,大三的课程会很紧没时间做,大四的找工作的找工作去了,考研的考研去了,没人做了),大学四年,实则三年,希望大家不要把最宝贵的时间荒废在游戏和娱乐上3.1.2大三:深入学习,确定方向(技术方向,职业规划)+多多实践到了大三,各种专业课会非常多,包括很重要的操作系统,汇编,组成原理,编译原理,数据库,计算机网络,软件工程等等,大家将深入学习计算机的各大核心课程。
这时大家的基础打得也差不多了,可以选择一门自己比较感兴趣的技术并确定自己的技术的一个方向,比如选择j2ee, .NET,WEB技术,数据库技术,嵌入式,linux内核开发等等。
当然也会有非常丰富多彩的专业选修课可以选择学习。
这段时间大家可以利用课程设计的机会好好锻炼自己。
3.1.3大四:实践和进步大四,如果不打算考研的同学,工作有了着落之后,可以试着做项目,大四基本没什么课,相对轻松,这段时间是获得经验,银子和巨大的进步黄金时期。
3.2重视专业课的学习要把数据结构、算法、数据库、操作系统原理、计算机体系结构、计算机网络,离散数学等基础课程学好除非你足够牛,请务必认真听专业课,有些课像《数据结构》,《编译原理》,《组成原理》,《操作系统》等等,这种课老师讲一分钟能让你明白的内容,你自己看要看好几个月3.3培养好的思维能力数学是锻炼是思维的最好的东西了,他是你思考问题的最得力的工具,他体现着你的思想,在编程中会思考才能编出好的程序。
此外还要注重离散数学,数值分析,线性代数,数字逻辑等等课程的学习,他们对培养好的思维能力大有裨益3.4激励创新意识创新太重要了,不管在哪个学科都重要,计算机同样需要3.5培养独立分析问题和解决问题的能力 遇到问题,要先学会独立思考,不能凡事依赖他人,尽量自己解决,在独立解决问题过程中能获得更大的进步,实在不能解决再请教别人也不迟3.6培养自学能力和快速获取知识的能力自学能力之重要(大学和高中的学习方式的区别)可以说高中是靠老师,大学是靠自己,要做到严格自律,自我约束,必须要学会自学学习的过程也是学会学习的过程要充分利用图书馆和网络上的丰富学习资源, 要培养计算机新知识,新技术方面的自学习能力,要学会如何通过网络,书籍,文献,独立地快速获取自己需要的知识和信息3.7培养团队协作精神在一个大型项目中,往往要求各种参与者密切配合才能取得成功。
大家要从现在就开始注重团队协作精神的培养,要学会与人沟通,善于表达,要注意提高自己的综合素质,成为综合型人才。
3.8学好英语包括现在的大学英语和日后的专业英语。
也许有人会问,英语和技术有什么大的关系吗。
大家是否知道,计算机的发展飞速,国际上新技术不断涌现,如果今天国外出现了一门新的技术,或者国外某本技术书籍出了新版本,相关资料的中文的翻译不知道要等到什么猴年马月才会出来,现在的许多出版也有了越来越多的英文原版书。
大家要学好英语,培养阅读专业外语资料的能力,开始会看不懂,看多了自然熟练了。
(讲下四六级,四级最好一次就过,六级在大二下结束前最好过)3.9适时关注新技术了解学科发展动态,跟上时代步法3.10勤学苦练,持之以恒学好技术不是一蹴而就的,要长期坚持。
4.无5.无6.关于编程的学习6.1为什么要学习编程编程是软件开发的基础,学习计算机,只会编程是千万不行的,但是开发软件,不会编程是万万不行的(结合本年级的情况将一下现状,学习的重要性等)6.2编程真的那么难学吗(讲讲编程的苦与乐)编程真的那么可怕,那么枯燥,那么没意思吗
假如真是这样,为什么世界上还有那么多优秀的人乐此不疲。
其实编程并不可怕,可怕的是你的心态。
编程固然很苦,编程时长时间对着屏幕,对身体不好,而且,经常因为考虑不周,会遇到各种各样的错误和麻烦,初学者处处容易受挫。
但是其实编程是很有趣的,编程中充满着无穷的快乐首先,你通过编程得到了想要的成果的过程是一种创造的快乐(编出了有用的东西的那一刻会有一股美好的成就感)其次,你开发了有用的软件可以方便自己或他人,方便自己,是一种享受的快乐,方便他人,是一种奉献的快乐再次,假如你开发的软件得到了用户的认可或好评,会有一种欣慰和满足感还有,你可以根据自己的意愿写你想要的东西,经过自己的努力亲自实现你心中的愿望然后,编程也是一个挑战自我的过程,遇到困难想办法解决的过程是思考的过程,思维能得到锻炼最后,在代码中有一种看不见的美,就像诗一样,美景全是你的,你可以随心所欲编程真的非常有趣,它不仅满足了我们内心深处进行创造的渴望,让人头脑变得灵活,而且还愉悦了每个人内在的情感。
6.3学好编程的建议6.3.1请热爱编程如果想成为编程牛人的话,请热爱编程。
有兴趣是最好了,没兴趣也没关系,可以慢慢培养,当你感受到了编程的乐趣的时候你会爱上它。
6.3.2不要畏难很多初学者往往都在遇到许多困难,遭受多次挫折后,自信心受到打击从而对编程丧失兴趣这些困难每个人都会遇到,我在初学编程时也遇到过,关键是看你用什么心态对待,是想办法解决困难还是选择逃避。
很多问题其实是有很多解决方法的。
譬如看书,遇到看不懂的部分,可以暂时跳过,先往后看,看完后面的之后,再回头看前面跳过的部分往往会有一种豁然开朗的感觉。
再比如,编程调试时死活找不到错误会很郁闷,这个时候很多同学会束手无策,其实只要在程序不同的地方加上输出语句,然后运行看有哪些输出,这样一步步缩小错误的范围从而确定错误发生的位置。
等等。
。
。
不要畏惧困难,要用你的智慧战胜它。
6.3.3多实践,多交流学习编程的秘诀是:编程,编程,再编程;(讲讲如何动手实践)在学校的实验室就算你做错一万次程序都不会有人骂你,如果在公司你试试看
所以多去实验室上机,现在错得多了,毕业后就错得少了。
多实践,多从失败中吸取教训,积累经验。
要勤奋,三天打鱼两天晒网是学不好的,学会了的东西一段时间不用就容易忘记,实践得越多才能记得越牢。
现在大家是大一,可能有人会说没有电脑不方便,其实实验室不是只有在老师安排的实验时间才可以去的,它是是面向计算机专业的学生免费开放的,大家有时间就去实验机房练习,只要拿着学生证,或者干脆直接跟那个阿姨说你是计算机的就行了。
航海楼7楼的机房和图书馆电子阅览室也是可以的。
我大一的时候甚至还到阳光网吧编程呢。
到大二大三的时候课程设计就会多起来,大家一定要自己动手做,不要去网上搜一个就完事了。
与人交流,分享自己编程中的乐趣和经验,共同进步。
6.3.4多阅读书籍和代码编程不是非要在电脑上才能学的,阅读书籍和书中的代码也是一种学习方式,自己还可以尝试着改进那些代码,最后可以把自己的成果拿到电脑上调试千万不要忽视书后面的习题6.3.5养成良好习惯细节很重要要细心,沉下心来编程,戒骄戒躁养成良好习惯,注重编程风格,尽量写代码注释,把写过的代码保留下来,以后会有用6.3.6善于思考遇到问题动脑筋解决6.3.7注重基础打好编程基础,除了熟悉基本的语法之外,要深刻理解指针,引用,面向过程思想,类,模板,标准库,接口,继承机制,面向对象思想等等,课后习题尽量全做一下 刚才说了,有精力的可以学学 photoshop图像处理, flash动画制作,3dmax或maya三维建模,dreamveaver网页设计,但是不要因为他们花费过多的时间而影响了你基础的学习,那些都是些应用技术,你学会了更好,不会也没什么丢人的,基础打好了,以后学啥都轻松。
在基础没打好的情况下,不要觉得你编的程序只能在黑白的DOS窗口了运行就去学VC做漂亮的窗口,3d程序很有意思就去看OpenGL或DirectX,那些都属于高级应用,没有基础学起来会很吃力。
基础要扎实,不要觉得C#中没有指针就扔掉C++, 不要今天看C#,明天搞java要有明确的方向,计算机技术的发展实在太快,新技术不断涌现,了解一下就可以了,不要随波逐流,要沉得住气6.3.8选好开发环境选择一种适当的开发环境并熟悉它就可以了,不要今天摆弄Visual Studio,明天钻研Eclipse,后天来个netbeans,在工具的使用的学习上白白浪费时间。
6.3.9选好编程语言我在选择语言时,走过一些弯路,浪费了一些精力,我在这里选出一些主流编程语言,对语言特性与环境稍作介绍,希望可以帮助大家,让大家尽早了解与选择,少走弯路C(多用在性能要求较高的场合,如操作系统,嵌入式等)C++(应用最广泛、成熟,强大而复杂,兼有性能高和易于构建大型程序的优点,基本是衡量一个国家软件产业发达程度的核心基础)Java(著名的SUN公司推出的,面向对象、安全、跨平台、强大稳健,需要java虚拟机的支持)C#(微软推出的完全面向对象,运行在 .NET Framework 环境中新兴、易学、强大语言)Python(新兴的面向对象脚本语言,跨平台,语法清新易于使用,代码优美得像数学一样,非常容易学)PHP (目前最流行、强大、稳健的动态网站开发脚本语言,语法类似C++)ActionScript (Flash的编程脚本,最新版支持面向对象,能基于Flex开发RIA应用)除此之外,还有vb, vb.net, asp.net, jsp, asp, ruby, Javascript等这么多五花八门的语言,大家可能都会觉得眼花缭乱了。
其实各种语言之间只是语法不同,编程思想都是相通的,学精一门,了解多门是上策。
程序=算法+数据结构 其中并没有编程语言,说明语言只是程序员与计算机的编译器沟通的一种工具,程序员用某种语言来表达程序的逻辑结构,计算机中相应的编译器或解释器理解这种语言,编译得到二进制程序或者直接解释执行。
以上这些语言我在大学前三年全部学过了,有的学得很深,有的很浅。
因为人的精力毕竟有限,很多语言学过了之后根本就很少用到,几乎是白学了,现在我深深的体会到,语言并不是学得越多越好,与其泛而不精不如有针对性的先精通一门,其他的触类旁通。
就大家现在的情况,希望大家把当前正在学习的C++学好,学到一定程度的时候,可以继续深入的研究C++的各种库,也可以从上面选择感兴趣的新语言学习,如果把C++基础打好了,后面的学习就会容易得多。
最流行的语言不一定是最好的语言,用的人最多的语言也不一定是最好的语言。
请大家记住,没有最好的语言,只有最适合某个领域的语言, 在不同的环境下选择不同的语言就可以了。
6.3.10重视数据结构和算法 理论上,计算机的任何编程语言都有可能会被淘汰,随着时间的推移和计算机软硬件的飞速发展,不断会有新的语言产生和和旧的语言过时,但不会过时的是数据结构和优秀的算法。
真正的高手应该是善于设计优秀的数据结构和算法的,应该是具有独立分析和解决问题的能力并利用计算机程序来实现的,他的思想应该是超脱语言、在更高处的一种升华。
如果某一天,你深切的体会到,真正重要的不是什么语言而是思想的时候,说明你可以出师了。
关于学习的课程
专业培养目标: 创新型,复合型人才 基础扎实(面向系统),知识面宽(软硬兼施),适应发展 具有分析问题,解决问题能力和创新能力 知识,能力,素质共同提高 通才(可从事研究,教学,开发和管理工作) 专业培养方案 加强理论,增强和增加数学类课程 面向系统,软硬并重 兼顾应用,增加设计类课程 根据特色,加强网络类课程 根据发展,增强前沿类课程 知识,能力与素质 较好的数学基础知识 系统地掌握计算机科学技术专业基本理论,基本知识和基本技能与方法 了解计算机科学技术学科的理论前沿,应用背景和发展方向 知识,能力与素质 应用数学解决问题的能力 一定的计算思维能力 算法设计与分析能力和程序设计能力 计算机系统的认知,分析,设计和应用的能力 外语应用能力,能熟练阅读专业科技文献资料 知识,能力与素质 主动学习,概括总结和信息获取能力 团队合作能力 良好的文字和口头表达能力 强烈的创新意识,良好的创新思维能力 知识,能力与素质 思想道德素质 文化素质 心理素质 身体素质 课程体系设计原则 面向系统,兼顾应用 加强计算机科学基础 硬件,,理论,实践四条线贯彻始终 本硕课程体系贯通与共享 具有适应性 课程体系结构 电路与信号处理基础 程序设计与数据结构基础 离散数学基础 大类学科主干 微机与接口技术 操作系统 数据库原理 计算机网络 专业主干 计算机组织与结构 政治德育文化素质课 大学英语课 数学类课 物理<>课 通识基础 工程 编译原理 数学类和物理<>课程 作用 提供科学思维训练 作为计算机学科基础 数学---计算的本质与数学相关 物理<>---电子线路技术 数学类课程 高等数学(数学分析) 几何与代数 概率论与数理统计 数学建模与数学实验 专业课程群 八个课程群 计算机科学理论 计算机硬件 基础 技术 计算机网络 数据库 人工智能 图形图像处理 计算机科学理论课程群 离散数学 可计算性理论 组合数学 运筹学 模糊数学 计算机硬件课程群 模拟与数字逻辑电路 计算机组织与结构 微型机系统与接口技术 计算机系统结构 单片机原理及应用 硬件相关实验,实践 数字电路实验 ,硬件实验 计算机系统综合课程设计 基础课程群 程序设计基础及语言 数据结构 编译原理 操作系统 程序设计语言原理 高级数据结构 基础相关课程设计 程序设计语言课程设计 编译原理,操作系统课程设计 技术课程群 工程 体系结构 测试 技术相关课程设计 实践 计算机网络课程群 计算机网络概论 信息及网络安全 TCP\\\/IP协议 分布式系统设计 数据库课程群 数据库系统原理 MIS与数据库设计 Web技术及其应用 人工智能课程群 人工智能 Agent技术及其应用 模式识别 图形图像处理课程群 多媒体技术 计算机图形学 跨学科课程 自动控制原理 通信原理 本科教学与研究生教学的衔接模式 高年级专业课,特别是专业选修课与研究生课程贯通,知识点协调 相似课程,本科偏重基本概念,研究生课程偏重原理方法与最新发展前沿 高级数据结构—算法设计与分析 计算机网络概论—网络体系结构,局域网与分布式处理,网络安全 工程导论—开发技术 计算机体系结构—高级计算机体系结构 鼓励高年级学生,特别是优秀生,选修研究生课程 双语教学 通过学院的双语教学课程建设推动计算机系的双语教学 双语教学计划: 数据结构:已通过调整任课教师落实重新使用英文原版教材和英文课件<>计划 操作系统:已使用原版教材 工程:已使用原版教材 编译原理:已做计划 Java程序设计:一直使用原版教材 人工智能:已使用原版教材,编写了相应英文课件<> 实践教学环节 语言课程设计 数据结构课程实验 实践(Java) 编译课程设计 操作系统课程设计 工程课程实验 毕业设计 数据库课程实验 科研实践 实践教学环节 数字逻辑电路实验 硬件实验 计算机系统综合课程设计 毕业设计 微型机与接口技术课程实验 科研实践满意。
懂编译原理的请进! 听说编译原理涉及很多有意思的算法,有没有看过的人总结一下,我一一到网上搜,只是
计算机科学与技术专业本专业培养具有良好的科学素养,系统地、较好地掌握计算机科学与技术包括计算机硬件、软件与应用的基本理论、基本知识和基本技能与方法,能在科研部门、教育单位、企业、事业、技术和行政管理部门等单位从事计算机教学、科学研究和应用的计算机科学与技术学科的高级专门科学技术人才。
业务培养要求:本专业学生主要学习计算机科学与技术方面的基本理论和基本知识,接受从事研究与应用计算机的基本训练,具有研究和开发计算机系统的基本能力。
本科毕业生应获得以下几方面的知识和能力: 1.掌握计算机科学与技术的基本理论、基本知识; 2.掌握计算机系统的分析和设计的基本方法; 3.具有研究开发计算机软、硬件的基本能力; 4.了解与计算机有关的法规; 5.了解计算机科学与技术的发展动态; 6.掌握文献检索、资料查询的基本方法,具有获取信息的能力。
主干学科:计算机科学与技术 主要课程:电路原理、模拟电子技术、数字逻辑、数字分析、计算机原理、微型计算机技术、计算机系统结构、计算机网络、高级语言、汇编语言、数据结构、操作系统、计算方法、离散数学、概率统计、线性代数以及算法设计与分析等。
主要实践性教学环节:包括电子工艺实习、硬件部件设计及调试、计算机基础训练、课程设计、计算机工程实践、生产实习、毕业设计(论文)。
计算机导论 C&C++程序设计 C&C++程序设计实践 电路原理 电路实验 数字电路实验 Java程序设计 电子技术基础 Java程序设计实践 计算机组成与体系结构 离散数学 算法与数据结构课程设计 数值计算方法 计算机组成与体系结构实验 软件工程 操作系统课程设计 软件工程课程设计 算法与数据结构 操作系统 创新项目 微机原理与接口技术 微机原理与接口技术实验 形势与政策实践 形势与政策 数学建模 嵌入式系统 密码编码学 计算机图形学 软件开发环境 程序设计方法学 数据库系统原理 人工智能 软件过程与管理 编译原理课程设计 数据库系统原理课程设计 算法导论 编译原理 UML基础与Rose建模 水利工程概论 网络安全 信息检索系统 人工神经网络 数字图像处理 模式识别 认识实习 人机交互技术 Linux操作系统与作用 数据库应用技术 计算机网络与互联网课程设计 计算机网络与互联网 软件体系结构 软件质量保证与测试 综合选修课程组实践 CS方向选修课程组实践 SE方向选修课程组实践 多媒体概论 毕业论文(设计) 以上是课程



