计算机科学

软件工程实践第一次作业

人盡茶涼 提交于 2020-02-02 03:24:41
软件工程实践第一次作业 1、自我介绍 学号:041702324 ; 我是杨欢 ; 我的爱好是 写出更优秀的代码 ; 我最喜欢的是福大京元餐厅的 酸菜羊肉 ; 我最喜欢一首歌是Yael Naim的 《New Soul》 ; 最想说的一句话是:希望今天能一口气写完第一次作业。 2、阅读与思考 (1)回想一下你初入大学时对计算机专业的畅想 当初你是如何做出选择计算机专业的决定的? 答:从小时候第一次接触电脑时,我对于这个发光的物体变产生了兴趣。进入大学时,原本被调剂到石油化工学院的我抓住了转专业的机会,成功地进入了这个专业。一方面是对过程装备与控制工程专业的不了解、不喜爱让我萌生了逃离它的念头,另一方面是个人兴趣和计算机未来发展的无限潜力推动着我进入计算机专业。 你认为过去两年中接触到的课程是否符合你对计算机专业的期待,为什么? 答:符合我的期待。过去两年中,我所学习的课程重新让我认识了计算机。计算机不是一块块硬件简单的堆叠在一起,通上电就可以运行的电子设备。它实际上是由软件驱动,硬件执行的一块电子设备。我们学习计算机不能单单地只学习软件或者硬件,我们既要了解硬件的底层结构和原理,也要了解软件方面的设计和算法。 只有对计算机有着足够的了解,我们才能充分地利用这个工具来实现我们的目标 你觉得计算机是你喜欢的领域吗,它是你擅长的领域吗? 答:从个人兴趣来看计算机一定是我最喜欢的专业

构建之法阅读笔记1

亡梦爱人 提交于 2020-02-01 16:17:14
和《从小工到专家》一样,这本数并没有讲编程的技巧,而是作者自己的感触和对于软件工程的理解。 “程序=数据结构+算法”,这句话是我从接触计算机专业老师就一直说的,以至于让我们产生一种错觉,好像我们只要搞懂数据结构和算法,所有程序就都不在话下了。但是,当我们看到我们前辈出现的一些疑问时,却让我们起了疑心:数据结构中常用的指针,在Java和其他的一些语言中似乎并没有;所有算法早就被你的前辈们写好了,你所要做的就是维护和调用,等等。   这都是我们就业后所要面临的问题,因此,软件工程概论这门课就显得尤为重要了,它可以帮助我们了解软件工程整体结构,了解其中的各个流程,使我们能够了解到我们今后将会遇到的问题,提前让我们熟悉这个行业,意识到自身所学真正的作用。   软件工程是把系统的、有序的、可量化的方法应用到软件的开发、运营和维护上的过程。它包含多个领域,和多个学科相关。软件又有许多特性:复杂性、不可见性、易变性、服从性、非连续性。之后又给我们讲解了软件工程和计算机科学的不同之处。一个是偏理论,一个偏实践,两者并非水火不容,而是互相促进,共同发展的。而软件工程最主要的目标便是让我们学着去创造足够好的软件——用户满意度高,可靠性好,流程质量高,可维护性好。如果能知道了解这些,我们算是大体上认识了软件工程。 从开始的软件=程序+软件工程,到软件企业=软件+商业模式,都在谈软件是什么。只有了解之后

软件工程实践2019第一次作业

痴心易碎 提交于 2020-01-29 12:36:48
回顾——我的初心 当初为什么报计算机科学与技术这个专业? 当时填报志愿时,本来想着报个医学类的学校,后来大家都说计算机专业好,就想着试试计算机的专业,就报了。 当初对计算机科学与技术这个专业的期待和想象是什么? 期待的话,当然是想学习实用的计算机技能,学习些相关的知识,想着学成之后能自己进行一些研究和开发。 当初希望自己是如何投入这个专业的学习的? 当初是想着认真听讲,课后自主学习,进行有效率的学习,不过后来就有点松懈,有点跟不上,主要是自己的惰性,不过接下来会有所改正。 曾经做过什么准备,或者立下过什么FLAG吗? 准备的话,没有什么准备,倒是没有立什么FLAG,就想着要学的更多吧,稳扎稳打吧。 阶段总结与展望——我的简历 姓名 陈功贤 学号 031702429 爱好 下棋,看历史故事,打羽毛球,看番 当前值 技能 会运用c,c++,python等语言进行一些基础的编程,学过一丢丢网站构建 技术 没啥技术 能力 目前可以用python编写一个简单的小游戏(还是要借助一些参考材料(ಡωಡ)) 成果 目前没啥实质性的成果(´;︵;`) 获奖经历 无 预期值 能力 将学过的几门语言学透吧,目前还只会做些基础的编程 技术 精通软件开发的技术 技能 希望能有维护设备的技能 我目前最想学的技术 目前,自己比较想要学习软件开发相关的技术,如果未来能自己进行一些开发和设计,感觉也是很不错的,哈哈

软件工程的第一次作业

我是研究僧i 提交于 2020-01-29 04:31:06
1.1软件=程序+软件工程 程序,指的是 源程序 ,他们是建立在数据结构上的一些算法,程序还要对 数据 进行操作,有些数据是静态的,有些是动态的,而一个复杂的软件不但要有合理的 软件构架(Software Architecture) , 软件设计与实现(Software Design,Implementation and Debug) ,还要有各种文件和数据来描述各个程序文件之间的依赖关系,编译参数,链接参数等等,这些都是软件 构建 的过程。 源代码管理(Source Code Control) 的问题——也叫 配置管理(Software Configuration Management) 。还有一系列的工具,流程和文档来保证程序的正确性,这些工具应该达到很高的质量,才能保证开发出来的软件的质量,这就是 质量保证(Quality Assurance) ,具体的验证过程叫做 软件测试(Test)。 新成员要尽快读懂已有的程序,了解程序的设计,这叫 程序理解(Program Comprehension) 。新老成员一起修复各种各样的问题,这叫做 软件维护(Software Maintenance) ,或 服务运营(Service Operation) 。这一系列过程就是 软件的生命周期(Software Life Cycle,SLC) 在这一周期中,有人要负责 软件项目的管理

机器学习的最佳入门学习资源

|▌冷眼眸甩不掉的悲伤 提交于 2020-01-28 23:26:55
Programming Libraries 编程库资源 我是一个“学习要敢于冒险和尝试”观念的倡导者。这是我学习编程的方式,我相信很多人也是这样学习程序设计的。先了解你的能力极限,然后去拓展你的能力。如果你了解如何编程,可以将编程经验很快借鉴到深入学习机器学习上。在你实现一个实际的产品系统之前,你必须遵循一些规则、学习相关数学知识。 找到一个库并且仔细阅读相关文档,根据教程,开始尝试实现一些东西。下面列出的是开源的机器学习库中最好的几种。我认为,并不是他们中的每一种都适合用在你的系统中,但是他们是你学习、探索和实验的好材料。 你可以从一个由你熟悉的语言编写的库开始学习,然后再去学习其他功能强大的库。如果你是一个优秀的程序员,你会知道怎样从一种语言,简单合理地迁移到另一种语言。语言的逻辑都是相同的,只是语法和API稍有不同。 R Project for Statistical Computing :这是一个开发环境,采用一种近似于Lisp的脚本语言。在这个库中,所有你想要的与统计相关的功能都通过R语言提供,包括一些复杂的图标。CRAN(你可以认为是机器学弟的第三方包)中的机器学习目录下的代码,是由统计技术方法和其他相关领域中的领军人物编写的。如果你想做实验,或是快速拓展知识,R语言都是必须学习的。但它可能不是你学习的第一站。 WEKA :这是一个数据挖掘工作平台

机器学习的最佳入门学习资源

孤街醉人 提交于 2020-01-28 05:48:59
这是一篇很难写的文章,因为我希望这篇文章能对学习者有所启发。我在空白页前坐下,并且问自己了一个很难的问题:什么样的库、课程、论文和书籍对于机器学习的初学者来说是最好的。 文章里到底写什么、不写什么,这个问题真的让我很烦恼。我必须把自己当做一个程序员和一个机器学习的初学者,站在这个角度去考虑最合适的资源。 我找出了每个类型中最适合的资源。如果你是一个真正的初学者,并且乐意于开始了解机器学习领域的相关知识,我希望,你可以在我的文章中找到有用的资料。我的建议是,从中挑出一件来,一本书或者是一个库,反复阅读或者认真学习所有的相关教程。挑出一个并且坚持学习,直到你完全掌握,再重新选择一个,重复这个学习过程。现在就让我们开始吧! Programming Libraries 编程库资源 我是一个“学习要敢于冒险和尝试”观念的倡导者。这是我学习编程的方式,我相信很多人也是这样学习程序设计的。先了解你的能力极限,然后去拓展你的能力。如果你了解如何编程,可以将编程经验很快借鉴到深入学习机器学习上。在你实现一个实际的产品系统之前,你必须遵循一些规则、学习相关数学知识。 找到一个库并且仔细阅读相关文档,根据教程,开始尝试实现一些东西。下面列出的是开源的机器学习库中最好的几种。我认为,并不是他们中的每一种都适合用在你的系统中,但是他们是你学习、探索和实验的好材料。 你可以从一个由你熟悉的语言编写的库开始学习

学习编程有疑问?七个网站助你菜鸟变大牛

删除回忆录丶 提交于 2020-01-27 15:56:37
很多同学在学习编程时候会遇到各种各样的问题,这些问题需要自己去想办法解决,那么这些网站平台将会给你很大的帮助。 1、W3school 这是一个免费学习编程语言的在线学习网站,里面的知识浅显易懂,非常适合初学者。如果你对编程还不是很了解,那就可以试试这个网站。 2、菜鸟教程 这是一个专注于编程学习的网站,里面不仅有各种编程知识,还有在线编程工具,让你在学习的过程中进行实践,从而更牢固地掌握所学知识。更重要的是还能根据学习情况进行测验,检验一下学习成果。 当自己有不会的地方可以在用户笔记中查找自己所需要的笔记,让自己更好地提升自己的能力。 3、Lintcode 当我们在学习了一段时间的编程,想要知道自己的能力是否能够达到公司的要求的时候。可以用用这个网站进行测试。它里面有一些互联网公司的面试真题,可以自行根据难度和知识点检验自己的学习成果,及时知道自己哪里有欠缺。 4、Infoq infoq是一个实践驱动的社区资讯站点,里面汇聚了各种软件资讯,你可以在这个网站中及时地了解到关于编程和互联网的最新资讯。还有额外的算法训练营帮助你提升自己的能力。 5、edX edX是另一个领先的在线学习平台,重点是它不是以营利为目的,而是开源的。edX是由美国哈佛大学和麻省理工学院于2012年联合创办的,所以你将会在这里学习到先进的技术和理论。如今,edX已涵盖了60所学校。此外在这里

软件工程第一次作业

Deadly 提交于 2020-01-27 04:40:07
第一章 概论 一 、 1. 软件=程序+软件工程   程序=数据结构+算法   一个复杂的软件不但要有合理的软件构架(Software Architecture),软件设计与实现(Software Design,Implementation and Debug),还要有各种文件和数据来描述 各个程序文件之间的依赖关系,编译参数,链接参数等,这些都是软件构建的过程。    有些程序要配置不同的界面,运行在中文,英文或其他语言的操作系统上;有些程序还有32位版本,64位版本等。这是源代码管理(Source Code Control)的问题——也叫配置管理(Sofeware Configuration Management)。我们还有一系列的工具,流程和文档来保证程序的正确性,这些工具(也是软件)流程应该达到很高的质量,才能保证开发出来的软件质量。这就是质量保障(Quality Assurance),具体的验证过程叫做软件测试(Test)。    软件团队要从需求分析(Requirement Analysis)开始,把合适的需求梳理出来,然后逐步展开后续工作。    软件团队的人员也会流动,新的成员要尽快读懂已有的程序,了解程序的设计,这叫程序的理解(Program Comprehension)。软件在运行过程中还会出这样那样的问题,也许我们要时不时给软件打一个补丁,或者维护众多的服务

浅谈编译原理

走远了吗. 提交于 2020-01-26 00:23:54
什么是编译原理? 编译原理顾名思义,编译就是将源语言(高级程序语言)翻译成等价的目标语言(机器语言即计算机可以识别的语言即0和1或汇编语言)的过程。原理就是研究这一过程的思想方法、理论和技术。从本质上来讲编译是一个算法问题,但由于它的问题相当复杂,导致设计解决这个问题的算法也十分复杂。这里的算法和我们学习的数据结构和算法中的算法有些不同,后者讲述的是基础算法,是解决我们生活中遇到的问题,而编译中的算法则是在人与计算机交流时需要解决的“沟通”问题的算法,比较专注解决一种的算法。编译的过程包括:源程序->词法分析->语法分析->语义分析->中间代码生成->代码优化->目标代码生成->目标程序 为什么我们要编译程序? 因为在计算机发展的初期,我们要想操作计算机则需要学习如何与计算机沟通,当时沟通的方法只有0和1,只有熟练使用0和1来表示程序的科学家才能通过打孔卡或纸带操控计算机,由于直接使用二进制编程的门槛过高,使得除特定的科学家以外的人学习使用计算机较为困难且周期较长,不利于计算机的发展,所以之后的计算机科学家就设计了很多的高级语言使得程序代码更贴近自然语言,但还是有其特定的结构,通过高级语言解决了对学习编程门槛高的问题,但这也照成了机器不能识别高级语言的问题,这是就需要一个翻译程序(就像我们用翻译程序将英文翻译为中文)来使计算机“读懂”程序员写的高级语言。编译程序油然而生。

软件工程第一次作业

血红的双手。 提交于 2020-01-24 12:25:32
---恢复内容开始--- 一 计算机专业术语 第1章 概论 软件=程序+软件工程 程序=数据结构+算法 软件企业=软件+商业模式 软件工程 Software Engineering 软件架构 Software Architecture 软件设计与实现 Software Design,Implementation and Debug 源代码管理 Source Code Control 配置管理 Software Configuration Management 质量保障 Quality Assurance 软件测试 Test 需求分析 Requirement Analysis 程序理解 Program Comprehension 软件维护 Software Maintenance 服务运营 Service Operation 软件的生命周期 Software Life Cycle,SLC 软件项目的管理 Project Management 用户体验 User Experience 国际化和本地化 Globalization & Localization 软件开发的不同阶段   玩具阶段   业余爱好阶段   探索阶段   成熟的产业阶段 软件的特殊性   复杂性 Complexity   不可见性 Invisibliity   易变性 Changeability   服从性