1. 软件工程和程序设计大作业的调查
请同学们做一个调查,到相关的软件学院或计算机学院采访学长或学弟学妹,调查一下程序设计大作业的完成情况:程序花多少时间完成?程序量是多少(多少行代码)?开发过程中使用了源代码管理等工具么? 完全独立完成的同学有多少个?程序解决实际问题么?
【调查前发现自己并不知道什么是源代码管理工具,查了一下资料,资料来源:http://www.cnblogs.com/mindsbook/archive/2009/11/28/do_you_use_scm.html】
源码管理工具是一种 记录代码更改历史, 可以无限回溯, 用于代码管理,多个程序员开发协作的工具.
常见的功能有:
- 更新到任意一个版本(不用担心代码的修改错误,和丢失等)
- 日志记录(说明修改目的)
- 分支,标签(用于协作开发, 和便于阶段性产品发布)
- 合并,比较(用于多人,多分支之间的代码合并,比对等)
问题 学生 |
花费时间 | 程序量(行数) | 完全独立完成的同学 | 是否解决实际问题 | 源代码管理等工具 | |||||
15计本 | 6h-8h | 500-600 | 0% | 是 | 使用 | |||||
16计本 | 0.5h-1h | 100-200 | 20% | 是 | 使用 | |||||
16计专 | 0.5h-1h | 100-200 | 30% | 否 | 不使用 | |||||
17计专 | 0.25h-0.5h | 10-50 | 50% | 否 | 不使用 |
简单的采访了4位同学(17级计专的同学并没有完成过程序设计大作业,表中数据为17级计专同学完成日常作业的情况)
发现1.日常能够独立完成大作业的人数比例较低;2.从15-17级的同学,年级越高,编写程序的行数就会越多,同样花费时间也更多;
说明:学习过程中有很大一部分同学并不能自己独立完成程序大作业,还是需要靠组内成员的共同努力以及老师的帮助;
【注:由于表中数据的收集并没有覆盖到15-17级每个专业,所以并不能完全说明问题】
·在一些学校里,全班50 个同学,交上来的作业只有 4 到 5 种版本。这说明了什么?
1.说明很大一部分同学并不能独立完成作业,班内的4到5名同学代表了4到5种版本,他们往往进行了独立的思考也有自己的想法,属于“领军人物”,同学在完成作业时之间互相学习借鉴,导致了作业的千篇一律;从另一方面来说可能是老师布置的作业本身就只能几种有固定的解题思路,从而导致同学们的作业的答案也就这几种版本。
2.编程是一门理论,也可以是一门工程,还可以是一门手艺,这些年来程序员们玩出了不少好手艺,你有什么编程相关的手艺?
很遗憾的是在这过去的一个半学期中,完成课堂老师布置的作业等内容之外并没有自己去深入研究过有趣的编程手艺,所以也没有什么可以拿的出手的编程手艺,硬说的话在创意编程这方面,仅仅是对processing语言进行了非常非常简单的了解。
3.Coder, and Hacker 的区别:
coder:coder只是为了写代码而写代码,他们并不关心写的程序的目的和作用,只是为了完成属于自己的任务,因为这关系这自己的工资、奖金,而且他们希望自己的工作量最少,所以不会主动做会让自己增加工作量的事,比如对团队开发项目中发现的问题不会提出来,也不会想完善开发的项目。
hacker:写程序都有自己的目的,为了达到自己的目标,会对程序进行反复的修改,直到达到自己的要求。而且,他们有很强烈的探索欲,当接触到新事物时,他们会用尽全力去探索其原理,并付诸实践,而且乐在其中;此外,hacker会将程序做到自己觉得最好的状态,并且提出会让项目更好的建议或者提出项目的问题并提出自己的解决办法。
4.分析开发工具的优缺点
Visual Studio Code
在作者给的官网中下载了这款软件
下载了这个软件后,立马就尝试了一下,之前在eclipse上编写的java程序能否运行,直接将文件拖到了界面中,好处是它不用导入,支持拖拽,不知道是环境没有配置好还是什么原因,无法识别汉字。
经过查找资料,知道 了原来进入这个软件中是无法直接运行java或者是c的程序的,需要安装相应的拓展包和环境,Language Support for Java(TM) by Red Hat 和 Java Debugger for Visual Studio Code以及Code Runner,下载了这三个拓展包,发现程序还是无法进行调试,可能需要进行安装git,但是电脑点击下载后并没有反应,于是就暂时结束了这个试验,以阶段性失败告终。
由于并没有使用这个软件完成正常编写编译的操作,所以并不能十分客观的评价这个软件,更不能谈这个软件的优缺点了,下面是我在短暂的使用这款软件的中感受到的方便点与不便点
方便点:1.支持多种语言只要安装了相应的拓展包java,c等都可以编译,)
2.免费下载(这已经是很大的优点了)
3.代码对齐虚线,增强可读性(在进入界面时候编译了一个简单的java程序,有了虚线拯救了强迫症)
4.不小心关闭该软件后,即使没有保存,下次再次打开时还是可以看到前编辑的代码。
不便点:1.下载软件后需要自己安装相应的插件,才可以进行某种语言的编译和调试,(这个安装插件的过程对于初学者来说这个过程是十分崩溃的,网络上现有的教程并不简洁明了,需要自己慢慢摸索尝试)
2.无法识别汉字,会显示乱码(在我失败体验的过程中是这样的,那样的话注释只能写英文,有些令人崩溃)
3.只要选择相应的环境,就会弹出用户设置窗口,且必须用代码进行设置,初学者再次崩溃