学号20172328 2017-2018-2《程序设计与数据结构》课程总结(第一学期课程回顾和总结)
学号20172328 2017-2018-2《程序设计与数据结构》课程总结
目录(戳我就可以跳转哦)
1.每周作业链接汇总
2.实验报告链接汇总
3.团队项目报告链接汇总
4.代码托管链接
5.课堂项目实践
6.课程收获与不足
7.给出你的总结中涉及到的链接的二维码
(按顺序)每周作业链接汇总
- 预备作业1
- 简要内容:对上学期的总结和对本专业的认识和期望,还有我期望的师生关系,谈了一下从小到大对你帮助/影响最大的老师和原因,最后回答老师的10000行代码问题。
- 预备作业2
- 简要内容:回答了一些有关学习经验和自己小爱好的问题。还给自己立下了可爱的四个Flag,现在看来,上半学期基本实现,下半学期要继续落实。
- 预备作业3
- 简要内容:安装的虚拟机和Ubuntu系统,在实验楼学习有关linux的内容,现在还记得当时每小节后面的小放松,眼睛、黑客代码流、动物形状当时觉得特别有趣。
- 第一周作业
- 简要内容:回忆并巩固了上学期学习的计算机基础构架,因特网和万维网Web的区别,了解统一资源资源定位器(URM),标识符和保留字的重要认识以及感受了良好的敲代码风格,留白(即空白符)和注释的重大意义,编辑器、编译器、解释器的了解。
- 第二周作业
- 简要内容:首先是String类定义的字符串,然后是print和println的区别、转义字符的学习;了解变量、常量、赋值语句、基本数据类型、运算符优先级、数据类型转换及其三种转换技术、学习交互式程序。
- 第三周作业
- 简要内容:学习使用new运算符建立对象(即实例化),了解null空引用。具体体悟 :类和对象的关系;对象引用变量的声明和初始化、了解String类的一些基本方法和标准类库java API,了解和使用Random类和Math类,理解格式化输出中NumberFormat类和DecimalFormat类和printf方法,.特殊的枚举型数据类型,枚举型是一种特殊的类,枚举型变量是对象变量。
- 第四周作业
- 简要内容:学习了编写类和面向对象设计两章内容,尝试编写不在java类库中的预定义类,定义对象可以实现的方法函数,了解UML这种统一建模语言,学习类名、属性(数据)、操作(方法)之间的关系,学习封装以及实现封装的修饰符,学习了访问器和修改器方法,方法的返回值类型必须与方法声明首部规定的返回值类型一致;了解软件开发活动的四个基础过程,即确定软件需求,软件设计,实现软件设计,软件测试。了解伪代码、产品代码、测试语句,静态变量和静态方法,静态变量由所有实例共享。静态方法可以通过类名称来调用,类间关系有最基本的三种——依赖、聚合、继承,this引用等。
- 第五周作业
- 简要内容:学习了条件循环和判断以及其他条件判断和循环两章内容。学习了条件语句中的if语句、if-else语句、switch语句。 学习了循环语句中的while语句、do语句、for语句。
- 第六周作业
- 简要内容:学习了数组一章,学习声明和使用数组,边界检查,数组声明方式,数组初始值表,数组作为参数,二维数组和多维数组。
- 第七周作业
- 简要内容:学习了继承这一章,protected修饰符,.super引用,重写方法,影子变量,类层次结构,抽象类和接口的区别等。
- 第八周作业
- 简要内容:学习多态一章内容,学习了绑定和后绑定、排序以及继承和接口等内容。
- 第九周作业
- 简要内容:学习了异常和递归这两章,在异常这一章学习了异常处理、解决异常的三种常用办法、未捕获的异常、try-catch语句、finally子句、异常的传递、异常类参次结构、自定义异常、可检测异常和不可检测异常、 I/O(输入/输出)异常;在递归这一章学习了递归思想、无穷递归和有穷递归、递归编程、直接递归和间接递归、有趣的迷宫问题和汉诺塔问题。
- 第十周作业
- 简要内容:学习了集合这一章,包括集合与数据结构,数据结构的动态表示,线性数据结构,非线性数据结构,Java集合类API。
- 第十一周作业
- 简要内容:学习《Java和Anroid开发学习指导》的几章内容,了解studio中的应用程序结构,活动,UI组件,Toast气泡,通知等等。在这周刚开始接触小型APP,刚开始非常艰辛,后面才比较快乐一点。
自认为写得最好一篇博客是?为什么?
回答:其实很每周总结我都有很认真的再写,从刚开始不会用Markdown格式,到后来学习用代码块高亮、色彩文字、色彩块背景还是能明显看到一点一滴的过程的;期间看到同学们特别好看的背景和博客园设置也是心动过的,尝试了一点点发现这样一设置以后,每篇博客都会姊妹篇,以前那种前期很拙劣的东西被遮盖了,所以也是为自己懒找了小借口,没有自己去学习布置好看的博客园.(假装有情怀假装很有情怀假装特别有情怀ヾ(๑╹◡╹)ノ")
哈哈,上面这段都不是重点。我认为最好的一篇博客是第九周学习总结啦,因为这是我中途瓶颈期制造的最好的一篇啦,错题是自己很认真的翻译,查找的,总结教材内容也算是很详细了。
作业中阅读量最高的一篇博客是?谈谈经验
回答:作业中阅读量最高的是第一周学习总结啦,阅读量高(′へ`、)只是相对我自己而言啦,达到了59次,瑟瑟发抖嗯,经验就是第一周博客就要写的像最后一篇博客一样,基本把自己如何写博客的套路给固定了!捂脸!
实验报告链接汇总
- 实验一: Java开发环境的熟悉(Linux + Eclipse)
- 简要内容:第一次使用interjIDEA,非常搞笑的小总结,总之是自己使用不熟练的一次总结。
- 实验二:Java面向对象程序设计
- 简要内容:初步掌握单元测试和TDD,理解并掌握面向对象三要素:封装、继承、多态,初步掌握UML建模,熟悉S.O.L.I.D原则,了解设计模式
- 实验三:敏捷开发与XP
- 简要内容: 安装alibaba 插件,解决代码中的规范问题;加入不少于三个JUnit单元测试用例;练习重构和了解密码学。
- 实验四:Android程序设计
- 简要内容: Android Stuidio的安装测试,界面布局的设计学习,第二个界面(新的Activity的创造),气泡的设计,运行书上代码并理解,第一次在虚拟手机上看到自己做的小型APP,可以说是炒鸡开心啦。
- 实验五:密码学算法应用报告
- 简要内容:与结对小伙伴分工,一人充当客户端,一人充当服务器。进行互相通信,在通信过程中完成中缀转后缀、后缀表达式计算、3DES算法和DH算法进行加密,解密,进行对一些基础密码的了解和实践。
团队项目报告链接汇总
- 第一周-四则运算-阶段总结
- 简要内容:和结对小伙伴们对于整个题目进行了大体的分析和要点记录,确定了几个必有的模块,对于每个模块的实现进行了一定的讨论,大体用那些方法和那种循环进行了确定,具体分配任务和实现。
- 第二周-四则运算-整体总结
- 简要内容:在第二周时画出了类图,完全实现加减乘除混合运算,但是没有彻底解决括号问题。测试类一直在补充,但是没有完全成型。类图重新完善了一下。
- 第三周-四则运算-挑战出题
- 简要内容:结对编程的总结之作,对整个过程的总结,包括我们的编程思路,具体涉及到的类和编写方法。以及和结对小伙伴一起编程的生活记录。
A SPECIAL LEAF
- 获小黄衫感想
- 简要内容:一份从天而降的惊喜╰(°▽°)╯ 降临在一个觉得自己很差劲的废柴小子身上。当废柴小子遇到神秘礼包,她们之间又会碰撞出怎样的火花?本次解密到此为止,欲知后事如何,请听下回分解。
代码托管链接
给出statistic.sh的运行结果
说明本学期的代码量目标达到没有?
❀❀❀肯定达到了呀,好多打的代码都被自己弄不见了也有七千多行,估计实际达到一万行代码了,啊哈哈写预备作业的时候的担心太多余了,真心觉得。❀❀❀
加点代码,改点代码是理解的最好方式,参考编程的智慧,谈谈你的心得
回答:纸上得来终觉浅,绝知此事要躬行。编程在于编,所以自己通过理解去形成思维逻辑架构,再一点一点写出来。只有在写的过程中你才知道哪里理解的不透彻,不正确。我记得第一篇学习的博客就是娄老师的做中学
有「做中学(Learning By Doing)」的概念,最早可能是知道了Pragmatic的DaveThomas提出的CodeKata(代码套路)。套路(Kata)指针对某一种特定技术或技能进行重复性的练习,从而将其熟练掌握。这个概念借鉴于武术,指的是可以独自或多人共同练习的一系列动作、招式。
做中学是很重要的实践理论,只有去亲身体验才能把虚无的一些东西掌握在自己手中。看了老师分享的《编程的智慧》,才知道反复琢磨后留下来简单、直观、无懈可击的代码才是好的编程作品。
积极主动敲代码做到没?教材实践上有什么经验教训?
回答:嗯,做到了。连最长最长的代码都自己手动敲了,但是很遗憾的是,我在敲的时候好像脑子不怎么动,还是得看书理解再机械去敲。刚开始在linux下敲的时候总是找不到错误,很费时间很费眼睛,后来用了IDEA后就好很多啦。不过好像在学习最后一章的时候因为工作量大,王老师给了我们课本例子,所以最后一章好像是我粘贴上去的。算是我做到了吧哈哈。
课堂项目实践
-
实践1
- 生成[-10,10)之间的随机数PseudoNumber,并输出PseudoNumber;
- 输出PseudoNumber的二进制、十六进制形式;
-
实践2
- 编写一个Book类,其实例数据分别表示书名、作者、出版社以及版权日期。
- 定义一个Book构造方法,接收并初始化实例数据;为所有实例数据定义获取和设置他们的方法
- 定义一个toString方法,返回几行描述该图书的字符串。
- 创建一个Bookshelf驱动类,其main方法实例化并输出一些Book对象。
-
实践3
- 编译并运行PP7.4
-
实践4
- 使用for循环计算n的阶乘,并截图上传。
- 使用while循环计算n的阶乘,并截图上传。
-
实践5
- 命令行参数测试
从命令行传入 学号、课程的成绩,计算平均成绩,并输出 - 输入 java computeAverage 20172301 98 99 100
- 输出:2017 2301' average score is :99
- 使用边长参数列表实现。
- 命令行参数测试
-
实践6
- 已知抽象类Animal,定义Cow类和Sheep类,继承Animal类,并测试
-
实践7
- 使用选择和插入排序法,写出第3次排序的结果:
3 1 9 3 6 2 10
- 使用选择和插入排序法,写出第3次排序的结果:
-
实践8
- 1.从键盘可以输入任意个整数(int);
- 2.写入文件;
- 3.从文件读取所有的整数;
- 4.使用插入排序对读取的整数进行排序,并将排序的结果写入原文件。
- 5.使用try-catch语句处理IO异常,例如文件创建异常
-
实践9
- 使用递归实现;
- 输入一个数n;
- 使用递归计算F(n)的值;
- 写入文件中。
-
实践10
- 完成P397页例题中的节点删除和插入操作,并测试
- 完成插入、删除功能
- 加分项:用Magazine类实现Comparable接口,并对链表中的杂志按照字母顺序排序,并输出。
-
实践11
- 下载附件中的world.sql.zip, 参考http://www.cnblogs.com/rocedu/p/6371315.html#SECDB,导入world.sql
- 编写程序,查询世界上超过“你学号前边七位并把最后一位加到最高位,最高位为0时置1”(比如学号20165201,超过3016520;学号20165208,超过1016520)的所有城市列表,运行并截图上传(Java代码截图、运行结果)。
SQL语句:SELECT * FROM city WHERE city.Population>5000000
- 编写程序,查询哪个国家的平均寿命最长,哪个国家的平均寿命最短,并截图上传(Java代码截图、运行结果)
SQL语句:SELECT * FROM country WHERE country.LifeExpectancy=(SELECT MAX(country.LifeExpectancy)FROM country) SQL语句:SELECT * FROM country WHERE country.LifeExpectancy=(SELECT MIN(country.LifeExpectancy)FROM country)
- 编写程序,查询世界上的所有中东国家的总人口
SQL语句:SELECT SUM(Population) FROM country WHERE country.Region="Middle East"
-
实践12
- 在Android平台上开发移动程序,模拟栈的操作:Push、Pop。
-
实践13
- 开发一个Android应用程序,要求:输入一个中缀表达式,输出后缀表达式。
-
实践14
- 开发一个android应用程序,完成以下功能:
- 随机生成一个中缀表达式,并使用控件显示。
- 将该表达式转换为后缀表达式,并使用控件显示。
- 计算后缀表达式的值,并使用控件显示。
- (选做)显示每一步操作数栈和操作符栈的变化过程。
-
实践15
- 伙伴1编写服务器端程序,接收客户端发送的数据(形式如下:12 15 8 100 25 34 19),将其排序后,发回给客户端。
- 伙伴2编写客户端程序,将一串字符串(形式如下:12 15 8 100 25 34 19)发送给服务器端,接收排序后的程序,并显示。
课堂实践对提高应用能力有帮助吗?
回答:毋庸置疑,肯定有提高的。更能激发动手能力,知识应用能力。
课堂实践上自己有什么经验教训?
回答:课前要好好准备自学内容,上课集中精力听老师的精讲,一般老师都会把比较难的板块细节精讲所以把握重点就不会交不上作业啦!
课堂实践上对老师有什么教学建议?
回答:我觉得挺好,就是有时候作业内容可以均衡一下,有的一周很多,有的一周比较少点。
课程收获:像是文科但又那么有哲理性,是一门全新的语言,训练了我的思维能力和自学能力。课程收获与不足
自我不足:没有好好训练自己的解决问题的能力,总希望别人告诉我,不自主。这应该是我最大的问题啦。
自己的收获(投入,效率,效果等)
自己需要改进的地方
回答:我觉得投入的一直不错,效率时高时低,起起落落。效果在我身上就是基本掌握了基础和用法。 馨雨同学露出尴尬而又不失礼貌的微笑
结对学习是不是真正贯彻了?写一下你提供的帮助或接受了什么帮助,并对老师提供参考建议
回答:
于我而言,结对编程是一种学习模式。能让思维更加活跃,困难更快解决,探讨更加深入,学习更加高效;
但是这并不意味着我们不去努力,把任务全交给很强的队友来做。想想我们当初的结对期望,再看看落实在自己身上的样子;不可置否,我自己就曾经把好多任务扔给了队友做(在进行四则运算时),自己在编程方面贡献不多,所以一定要一起学习,一起去思考,一起去做项目。我相信只有当我们聚精会神、齐心协力真正做出一件事情时才能让我们感受到结对编程的快乐和满满的自我实现感。
问卷调查
1.你平均每周投入到本课程有效学习时间有多少?
- 回答:平均每周晚自习和周末其中一天都投入到了本课程,不敢说都有效,一部分有效吧。具体没有精确计算过。
2.每周的学习效率有提高吗?你是怎么衡量的?
- 每周的学习效率都不太一样,主要衡量就是当老师布置书上练习和课堂实践时,自己去做的速度和掌握能力。
3.蓝墨云班课的使用对你的学习有促进吗?有什么建议和意见吗?
- 嗯,前期有时间看资源的话还是很不错的,后面自己越来越忙,越来越懒,好多资源都没有打开,所以如果好好利用的话肯定是有促进的。建议给自己的:是让自己有时间多看看,动起来。
4.你觉得这门课老师应该继续做哪一件事情?
- 每周博客,坚持让学生先去学再深入讲,
5.你觉得这门课老师应该停止做哪一件事情?
- 停止变帅!o( ̄▽ ̄)d (哈哈,我真的不知道要停止什么)
6.你觉得这门课老师应该开始做什么新的事情?
- 应该多给我们设置一点好玩的实验,像上次Anroid,自己弄出来一个小型App就很有意思啦
7.其他任意发挥
- 感谢王老师一学期的辛勤付出.❀总是看老师上课前风风火火跑楼梯怕给我们上课迟到;总是不怕麻烦帮我们答疑调试;总是微笑着给我们讲课,及时在蓝墨云上给我们布置任务.超级感谢!!!
- 感谢张旭升学长的作业答疑和编程检查.基本每天在晚自习在912教室中帮我们答疑,大家学到多晚,他就陪我们学多久;无论自己忙不忙,都会给我们很认真很耐心的讲解问题和卡壳点.超级感谢!!!
- 感谢刘伟康学长的博客点评和实验批阅.每篇博客都能得到学长非常细心的查看和评论,从头到尾始终如此.总是看到评论时间特别晚,确实是为我们付出了很多.超级感谢!!!
- 感谢一同学习的小伙伴们,有几个非常耐撕(NICE)的小伙伴,经常帮助我,非常感谢大佬们带小弟,感动地不得了.超级感谢!!!