20172301 2017-2018-2《程序设计与数据结构》课程总结
每周作业链接汇总
- 预备作业1
- 简要内容:对上学期的认识和总结,对专业和老师的期望。
- 预备作业2
- 简要内容:关于技能和学习技能经验。
- 预备作业3
- 简要内容:安装虚拟机和Linux命令学习。
- 第一周作业
- 简要内容:
- 计算机系统的组成
- 有关网络的基础知识,包括因特网,万维网,URL
- Java编程语言基本了解,包括注释,标识符,保留字
- 程序开发和编程语言的了解,包括开发环境,错误还有语义语法
- 简要内容:
- 第二周作业
- 简要内容:Scanner类的主要运用。
- 第三周作业
- 简要内容:
- import 声明,指定程序中要用的包和类。
- String类,创建对象,对字符串进行编辑。
- Random类,取随机数。
- Math类,有关数学的计算。
- 格式化输出:NumaberFormat类,DecimalFormat类,printf方法
- 枚举型,作用之后会有。 枚举型作用
- 包装器类
- 简要内容:
- 第四周作业
- 简要内容:
- 类与对象的关系。
- 有关软件开发的步骤。
- 简要内容:
- 第五周作业
- 简要内容:
- 条件语句和ArrayList类。
- 循环语句。
- 简要内容:
- 第六周作业
- 简要内容:有关数组的基本知识。
- 第七周作业
- 简要内容:有关继承。
- 第八周作业
- 简要内容:有关多态。
- 第九周作业
- 简要内容:
- 有关异常和I/O流。
- 有关递归。
- 简要内容:
- 第十周作业
- 简要内容:有关集合。
- 第十一周作业
- 简要内容:有关Android的基本开发。
自认为写得最好一篇博客是?为什么?
我觉得是第七周的博客。因为我的每一篇博客版式相同,是否出色也就在内容是否深刻。而第七周,我对于教材的内容和代码问题都有很深的思考。
作业中阅读量最高的一篇博客是?谈谈经验
无独有偶,和大家的经验差不多吧。阅读数都是前几篇很高。
写博客的经验?博客就像总结,总是要有自己的东西存在的,自己的东西越多,那么这篇博客也就越有意义。
实验报告链接汇总
- 实验一
- 实验名称:Java开发环境的熟悉
- 简要内容:练习(通过命令行和IDEA两种方式实现)换成前两周项目内容。
- 实验二
- 实验名称:Java面向对象程序设计
- 简要内容:
- 初步掌握单元测试和TDD
- 理解并掌握面向对象三要素:封装、继承、多态
- 初步掌握UML建模
- 熟悉S.O.L.I.D原则
- 了解设计模式
- 实验三
- 实验名称:敏捷开发与XP实践
- 简要内容:
- 代码规范
安装alibaba 插件,解决代码中的规范问题。 - 协同测试
- 重构
- 密码学应用
完成Java密码学相关内容的学习
- 代码规范
- 实验四
- 实验名称:Android程序设计
- 简要内容:
- Android Stuidio的安装测试
- Activity测试
- UI测试
- 布局测试
- 事件处理测试
- 实验五
- 实验名称:服务器与客户端
- 简要内容:
- 实现中缀表达式转后缀表达式的功能
实现从上面功能中获取的表达式中实现后缀表达式求值的功能 客户端让用户输入中缀表达式,然后把中缀表达式转化为后缀表达式,把后缀表达式通过网络发送给服务器
服务器计算后缀表达式,把结果发送给客户端客户端让用户输入中缀表达式,然后把中缀表达式转化为后缀表达式,把后缀表达式用3DES或AES算法加密后通过网络把密文发送给服务器
服务器接收到后缀表达式表达式后,进行解密计算后缀表达式的值,把结果发送给客户端客户端让用户输入中缀表达式,然后把中缀表达式转化为后缀表达式,把后缀表达式用3DES或AES算法加密通过网络把密文发送给服务器
客户端和服务器用DH算法进行3DES或AES算法的密钥交换
服务器接收到后缀表达式表达式后,进行解密计算后缀表达式的值,把结果发送给客户端客户端让用户输入中缀表达式,然后把中缀表达式转化为后缀表达式,把后缀表达式用3DES或AES算法加密通过网络把密文和明文的MD5値发送给服务器
客户端和服务器用DH算法进行3DES或AES算法的密钥交换
服务器接收到后缀表达式表达式后,进行解密,解密后计算明文的MD5值,和客户端传来的MD5进行比较,一致则计算后缀表达式的值,把结果发送给客户端
- 实现中缀表达式转后缀表达式的功能
团队项目报告链接汇总(四则运算)
- 第一周:阶段总结
- 简要内容:UML的绘制和项目时间分配
- 第二周:整体总结
- 简要内容:关键代码的编写(中缀转后缀和后缀计算)
- 第三周:挑战出题
- 简要内容:附加题(括号计算、写入文件和输出文件)
代码托管链接
说明本学期的代码量目标达到没有
达到了,因为格式化了磁盘,一些代码还未上传。
加点代码,改点代码是理解的最好方式,参考编程的智慧,谈谈你的心得
- 我认同编者的观点,写代码就和写作一样。
- 是需要反复的推敲和修改的,没有什么是一蹴而就的。就像我们所申报的项目一样,很多项目都已经有了实验的结果,那么还有什么研究的价值。同样是有的,我们可以优化代码,简化程序,让实验结果更加精准,更加贴近于实验目的。
- 是需要一笔一画记录的。写代码也需要灵感,也需要思路。同于文章结构一样,要在脑海中幻化出代码整体的骨架,再填充其血肉。而非枯坐一上午,就可以实现的。需要我们在灵感来的时候多加积累。我们需要记录,记录灵感,记录错误,也是为了更好的总结。
- 是需要美观的。我们写作都会尝试用优美的辞藻,整齐的格式分段。代码也需要我们有一个格式的规划。这样,不仅是方便别人更好的理解和开发,更是对自己编程素质的一种培养。
- 是需要逻辑的。一个编程者,要始终清楚自己代码的逻辑架构。是怎样环环相扣的,而非东拼西凑。
- 加代码,是对代码的优化,是对格式的规范。并不是最短的代码才是最好的。比如if语句的花括号不可以省略,else语句尽量写。条件判断和循环更加详细。
- 改代码,则是对代码的升华,是对思路的调整。我们的代码并不是无懈可击的,我们需要修改,臻于完美。
积极主动敲代码做到没?教材实践上有什么经验教训?
- 我觉得衡量是否积极仅靠代码行数是片面的。如何主动,是需要莫大的兴趣的,而非像一个码农一样机械地复制粘贴代码一样。
- 教材实践刚开始能给我提供很多思路,我可以根据书上的例子来编写自己的程序。同样,尽信书则不如无书,教材中也是存在错误的,有时候往往实践才是检验真理的唯一标准。
课堂项目实践
- 计算n!
- 命令行参数测试
- 继承-练习
- 后缀表达式
- 排序
- IO操作及异常处理
- 递归
- 链表插入和删除
- 数据库操作实践
- Android课堂实践:栈
- Android表达式计算
- Android-中缀转后缀
- Socket编程
课堂实践对提高应用能力有帮助吗?
有。课堂实践一定程度上考验的是我们对于课堂知识的合理运用能力和独立思考解决问题的能力。锻炼我们的逻辑思维和设计代码的能力。
课堂实践上自己有什么经验教训?
首先,对于上课的讲解的关键代码一定要理解。而不是似懂非懂。这样才能更好的运用于实际运用之中。
课堂实践上对老师有什么教学建议?
因材施教吧。代码讲解的太过于详细,我们实践就好像在复制代码,没有自己思考的空间。但是,代码解释不清,我们又不能合理的运用,形成障碍。
课程收获与不足
自己的收获
- 首先,对于java语言有了基本的了解,Android开发也会基本的操作。能够自己动手编写和运行某一些小程序。
然后,学会了拆解电脑。类似笔记本硬盘的安装、更换,Windows系统的恢复和重装。 (唉,一言难尽)
最后,也就是一些团队合作和自己独立思考的一些经历。
自己需要改进的地方
- 代码的系统性。 我一般写一个代码的时候,喜欢把他们拆分成一个个小部分。然后哪个来了灵感,就会记下来填充进去。这样最后的代码整体看上去就缺少了一些“灵性”。很难站在一个更高的角度看这个代码,不能一目了然。例如,有时候我就会定义多个相同名称的局部变量。读者很容易混淆某一部分和某一部分的意义。
我觉得,我应该适当添加一些注释,有助于理解。 - 不坚定。 当我一次次遇到问题的时候,总以为能够解决了,却又出现了新的问题,让我觉得有些崩溃。难以坚持下去。
- 得过且过。 不能先人一步,总是在博客结束前一个小时才提交博客。拖延症患者。
结对学习是不是真正贯彻了?
- 三人结对学习气氛良好,经常有小规模的争辩和讨论。但是时长两个人探讨问题的同时会冷落第三个人。合理的分工同样会使效率增高。但是,同时每个人可能只着重于自己的部分,而忽略了全面的学习。
问卷调查
你平均每周投入到本课程有效学习时间有多少?
有一定的学习兴趣,至少十个小时左右。
每周的学习效率有提高吗?你是怎么衡量的?
看每周的学习任务和难度。学习效率我是通过对于某部分的理解程度衡量。
蓝墨云班课的使用对你的学习有促进吗?有什么建议和意见吗?
有一定帮助。资料和视频课程能解决我某些方面的困惑,了解更多有关内容。
你觉得这门课老师应该继续做哪一件事情?
课堂对于一些关键知识点和代码的讲解。
你觉得这门课老师应该停止做哪一件事情?
过多的讲一些超过课程外的内容。有一定难度。
你觉得这门课老师应该开始做什么新的事情?
多引导和开发我们有关java代码设计方面的能力,能够培养我们独立思考和编写程序。