20182301 2019-2020-1 《数据结构与面向对象程序设计》第1周学习总结

教材学习内容总结

教材第一章-绪论的主要内容是:了解java程序设计语言的基本情况和本书的专业术语的介绍。
我认为我需要掌握以下几点:

  • 准确判断java标志符是否正确?
  • 了解身为一名程序员的方向感与使命感
  • 准备好Linux虚拟机,ubuntu,vim,java的编写编译环境。
  • 了解基本语言,编写简单程序。

教材学习中的问题和解决过程

  • 问题1:区分类名,方法名,标志符,保留字
  • 问题1解决方案:
  • 类名:相当于C语言的函数名,自由发挥。要求:字母数字下划线,不以数字为开头,允许$符号
  • 方法名:相当于C语言的变量。
    要求:方法的名字的第一个单词应以小写字母作为开头,后面的单词则用大写字母开头写,不使用连接符。例如:addPerson。
    下划线可能出现在JUnit测试方法名称中用以分隔名称的逻辑组件。一个典型的模式是:test_,例如 testPop_emptyStack。
    图片解释
  • 标志符:编程程序时使用各种各样的字称为标识符。可以自由发挥,也可以在某个程序中拥有特定的。
  • 保留字:不论在哪里,都表示特殊意义。
    图片如下:
  • 问题2:关于编译错误,逻辑错误,运行错误的区分
  • 问题2解决方案:简单地说,编译异常就是运行之前就可以看到的,被系统提示到的那些错误;而运行错误是指运行后看到的错误。逻辑错误就是运行后得不到想要的结果。从这里,可以大概了解定义,实际应用靠以后慢慢了解。
  • 问题3:Java文档生成器
  • 问题3解决方案:
    • javadoc是一个工具,它检查源代码,然后按HTML格式生成关于Java源代码的文档。
    • Javadoc注释以/**开头,以*/结尾,这个格式的注释会被Javadoc工具检查及处理,java注释可以写在多行上。
    • Javadoc有两种标签:1-块标签(@auther)2-内嵌标签{}中。

代码调试中的问题和解决过程

  • 问题1:代码编写完毕后,不能用javac编译
  • 问题1解决方案:在学姐的帮助下,发现原虚拟机上已经安装java,但经多方试验不可使用。故再次安装新虚拟机,从头开始完善系统。
  • 问题2:在初写代码时,只是一昧的模仿,出现类名编写错误
  • 问题2解决方案:简单的把类名修改成和文件名一致。
  • 问题3:对于代码托管的脚本内容的打印
  • 问题3解决方案:1.安装增强功能,进行共享剪切板。2.进行邮件发送,可粘贴。3.手动打字。

代码托管

上周考试错题总结

  1. 填空: Linux Bash可以使用 help. man (info) 命令查找命令的帮助信息。
  2. 填空:在Linux系统里,(root) 账户拥有整个系统至高无上的权力
  3. 填空:Linux bash中,Ctrl+a快捷键的作用是(将光标移至输入行头,相当于Home键)
  4. 判断:Linux Bash中可以使用man pintf查看c语言中printf函数的帮助文档。(*)
  5. 填空:在Ubuntu中,使用(sudo apt-get install ddd)来安装ddd软件。
  6. 填空: 在Linux里面可以使用(chmod)命令修改文件的权限
  7. 填空: Linux Bash中,使用(groups) 命令来查看用户属于哪些用户组
  8. 填空: Linux里面没有C盘D盘,其文件系统的目录是由(FHS)标准规定好的,
  9. 判断: Linux Bash中,cd ~ 命令可以切换到'home'目录(ok)
  10. 判断: Linux Bash中,pwd是passwd的缩写,可以修改用户密码的。(x
  11. 判断: Linux Bash中,强行删除test文件的命令是(rm -f test).
  12. 填空: Linux Bash中,使用(tab) 进行命令补全。
  13. 填空: Linux Bash中,使用(ls)命令列出文件和目录.
  14. 填空: Linux Bash中,使用cat命令带行号查看test内容的命令是(cat -n test).
  15. 填空: Linux Bash中,使用echo查看环境变量PATH值的命令是(echo $PATH)
  16. 填空: Linux Bash中,查找home目录中昨天创建的文件的命令是(find ~ -ctime 1).
    理解:文件的 Access time,atime 是在读取文件或者执行文件时更改的。
    文件的 Modified time,mtime 是在写入文件时随文件内容的更改而更改的。
    文件的 Create time,ctime 是在写入文件、更改所有者、权限或链接设置时随 Inode 的内容更改而更改的。
  17. 判断: Linux Bash中使用tar命令把home目录打包成home.tar的命令是( tar -cf home.tar ~)
  18. 填空:Linux Bash中zip命令使(-e)参数可以创建加密压缩包。
  19. 填空: Linux Bash中(touch test)命令可以创建一个空白文件test.
  20. 填空: Linux Bash中,ls.| sort命令的功能是(显示当前目录内容并排序)
  21. 填空Linux Bash中,使grep查找当前目录下*.c中main函数在那个文件中的命令是( grep main *.c)
  22. 填空: linux Bash中,使用wc统计hello.c和main.c有几行代码的命令是( wc -l hello.c main.c)
  23. 判断: Linux Bash中,set/env/exprot三个命令功的等价。(X)
  24. 填空: linux bash中,把ls命令显示当前目录的结果存入ls.txt的命令输出重定向命令是(ls>ls.txt)
  25. 填空: Linux Bash中(cheat find)命令可以查find命令的使用事宜。
    理解:cheat命令需要先安装Python,再进行安装,更深层次的了解了虚拟机的构成。

原因:此次把全部的考试题打上,主要是因为在答题时并不是理解的答得,而是借助了开卷考试,现在对于这些有了更多的了解,希望借此进行复习与深刻理解。

结对及互评

评分标准

  1. 正确使用Markdown语法(加1分):

    • 不使用Markdown不加分
    • 有语法错误的不加分(链接打不开,表格不对,列表不正确...)
    • 排版混乱的不加分
  2. 模板中的要素齐全(加1分)

    • 缺少“教材学习中的问题和解决过程”的不加分
    • 缺少“代码调试中的问题和解决过程”的不加分
    • 代码托管不能打开的不加分
    • 缺少“结对及互评”的不能打开的不加分
    • 缺少“上周考试错题总结”的不能加分
    • 缺少“进度条”的不能加分
    • 缺少“参考资料”的不能加分
  3. 教材学习中的问题和解决过程, 一个问题加1分

  4. 代码调试中的问题和解决过程, 一个问题加1分

  5. 本周有效代码超过300分行的(加2分)

    • 一周提交次数少于20次的不加分
  6. 其他加分:

    • 周五前发博客的加1分
    • 感想,体会不假大空的加1分
    • 排版精美的加一分
    • 进度条中记录学习时间与改进情况的加1分
    • 有动手写新代码的加1分
    • 课后选择题有验证的加1分
    • 代码Commit Message规范的加1分
    • 错题学习深入的加1分
    • 点评认真,能指出博客和代码中的问题的加1分
    • 结对学习情况真实可信的加1分
  7. 扣分:

    • 有抄袭的扣至0分
    • 代码作弊的扣至0分
    • 迟交作业的扣至0分

点评模板:

  • 博客中值得学习的或问题:

    • 对于难点刨根问底的精神
    • 正则表达式与通配符的区别(见魏同学博客)
    • echo命令(见冷同学博客)
  • 代码中值得学习的或问题:

    • 代码现在处于基础阶段,暂无发现。
  • 基于评分标准,我给本博客打分:13分。得分情况如下:

    • 正确使用Markdown语法 1分
    • 模板中的要素齐全 1分
    • 教材学习中的问题和解决过程 3分
    • 代码调试中的问题和解决过程 2分
    • 感想,体会不假大空 1分
    • 排版精美的 1分
    • 进度条中记录学习时间与改进情况 1分
    • 点评认真,能指出博客和代码中的问题 1分
    • 错题学习深入 1分
    • 结对学习情况真实可信 1分
  • 参考示例

点评过的同学博客和代码

  • 本周结对学习情况

  • 结对学习内容

    • 通过实验楼学习基础知识,不理解的相互讨论,以及对于基本知识的背诵
  • 上周博客互评情况

其他(感悟、思考等,可选)

本周的学习内容虽然简单,但是也花费了大量的时间。
有句话说得好:“万事开头难。”我相信“功夫不负有心人”,在我打好基础后,我在以后的学习上会事半功倍的。加油!
另外对于linux一系列命令真的是被磨得没脾气,我相信我以后也会因此做事更加沉稳。

学习进度条

代码行数(新增/累积) 博客量(新增/累积) 学习时间(新增/累积) 重要成长
目标 5000行 30篇 400小时
第一周 69/200 2/2 30/20 基础扎牢

尝试一下记录「计划学习时间」和「实际学习时间」,到期末看看能不能改进自己的计划能力。这个工作学习中很重要,也很有用。
耗时估计的公式:Y=X+X/N ,Y=X-X/N,训练次数多了,X、Y就接近了。

参考:软件工程软件的估计为什么这么难软件工程 估计方法

  • 计划学习时间:20小时

  • 实际学习时间:30小时

  • 改进情况:已经可以基本掌握linux基本命令,书写简单代码。另外虽然时间够长,但是代码实在是太少了,花费在基础设施的实践太多,以后要在代码上下功夫。

(有空多看看现代软件工程 课件
软件工程师能力自我评价表
)

参考资料