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

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

教材学习内容总结

  • 在第二章的学习中,首先学习了Java编程的基本格式,然后学会了定义、赋值、使用各种数据类型的变量,可以独立打印数据到屏幕上,最后掌握了如何使用Scanner类的一般使用方法。
  • 从第三章中,我学到了由String、Math、Random等类创建对象(即实例化对象),如果要使用Java.long包以外的类,要使用import声明,最后枚举类型,包装类没有看懂。

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

  • 问题1:“new运算符返回新创建对象的引用”不了解
  • 问题1解决方案:new运算符用来实例化一个对象,操作返回了新对象的地址,之后我们就可以用点运算符直接访问它的方法。
  • 问题2:书上Math类中,static double ceil (double num)和static double floor (double num)的含义没有理解,不明白num的上下界是什么
  • 问题2解决方案:参看同学所编辑的程序运行情况,现这两个方法把输入的浮点数取整,ceil是上取整,floor是下取整。
  • 以下是编程截图:



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

  • 问题1:编写一个生成(-10~10)范围的一个随机数,使用nextFloat(-10)造成编译错误
  • 问题1解决方案:nextFloat()只能返回0.0到1.0(不含)之间的一个数,只有nextInt(int num)括号里包含数字,仅仅使nextFloat()在输出时进行简单代数运算即可完成。
  • 问题2:当install时,给出下面提示:

    E: Could not get lock /var/lib/dpkg/lock-frontend - open (11: Resource temporarly unavailable)
    E: Unable to acquire the dpkg frontend lock (/var/lib/dpkg/lock-frontend), is an other process using it?
  • 问题2解决方案:、
  • kill当前进程,在某一次输入apt-get后没等进程结束就关了终端和虚拟机,导致apt一直在被占用。调出运行目录,kill带有apt的进程,再次install即可。

代码托管

上周考试错题总结

  • Java byte codes are directly executable whereas Java source code is not. (Java字节码是可以直接执行的,而Java源代码则不是。)
    A true
    B false
    理解:其实两者都不可直接执行
  • Java byte codes are directly executable whereas Java source code is not. (Java字节码是可以直接执行的,而Java源代码则不是。)
    A true
    B false
    理解:其实两者都不可直接执行
  • "println" as "printn" will result in (将“println”打印为“printn”将会导致)
    A a syntax error (语法错误)
    B a run-time error (运行时错误)
    C a logical error (逻辑错误)
    D no error at all (根本没有错误)
    E converting the statement into a comment (该语句转换成注释)
    理解:单纯没有记住英语含义。
  • When executing a program, the processor reads each program instruction from (当执行一个程序时,处理器从___读取每个程序指令)
    C .registers stored in the processor (储存在处理器中的寄存器)
    D .main memory (主存储器)
    理解:处理器直接从主存储器(内存),读取程序指令。寄存器用来暂存指令、数据和地址,因为容量太小,不可能放下太多的程序指令。
  • As in the other members of the C family of languages (C, C++, C#), Java interprets a zero value as false and a non-zero value as true.
    B false
    理解:Java有true,false,并不完全是0为假非0为真的逻辑判断.
  • 判断: Linux Bash中使用tar命令把home目录打包成home.tar的命令是( tar -cf home.tar ~)
    填空:Linux Bash中zip命令使(-e)参数可以创建加密压缩包。
    填空: Linux Bash中(touch test)命令可以创建一个空白文件test.
    填空: Linux Bash中,ls.| sort命令的功能是(显示当前目录内容并排序)
    填空Linux Bash中,使grep查找当前目录下.c中main函数在那个文件中的命令是( grep main .c)
    填空: linux Bash中,使用wc统计hello.c和main.c有几行代码的命令是( wc -l hello.c main.c)
    判断: Linux Bash中,set/env/exprot三个命令功的等价。(X)
    填空: linux bash中,把ls命令显示当前目录的结果存入ls.txt的命令输出重定向命令是(ls>ls.txt)
    填空: Linux Bash中(cheat find)命令可以查find命令的使用事宜。

结对及互评

评分标准

  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分

点评模板:

  • 博客中值得学习的或问题:
    • 同学们已经有意识的遇见错误就截图,给后面写博客的各种方便很多,我一直忘记只能重新敲一遍。
  • 代码中值得学习的或问题:
    • 条条大路通罗马,好多同学可以曲线思维弄出代码,听他们讲解后真的很佩服。
  • 基于评分标准,我给本博客打分:XX分。得分情况如下:xxx

  • 参考示例

点评过的同学博客和代码

  • 本周结对学习情况
    • 20182305
    • 结对照片
    • 结对学习内容
      • XXXX
      • XXXX
      • ...
  • 上周博客互评情况

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

  • 每节课的考试让我十分吃不消,不只是英语单方面的问题,Java也有许多问题亟待解决,因为课本版本不同,找起知识点来比较麻烦。
  • 第三周过去,已经可以独立编写一些程序,但是仍然复杂的不会,命令字符类还很生疏,还得多看多练。
  • 在完成课后练习时甚至一度忘记vim中java的格式,只有动手敲代码才能充分暴露自己的问题。往往自己敲一小段代码,就会发现一大把编译错误。通过不断解决BUG,我们对Java的理解与掌握才能不断提高。只有不断练习,才不会出现这样的问题。

学习进度条

代码行数(新增/累积) 博客量(新增/累积) 学习时间(新增/累积) 重要成长
目标 5000行 30篇 400小时
第一周 200/200 2/2 20/20
第二周 350/500 2/4 24/38
第三周 512/1000 3/7 22/60

参考资料

猜你喜欢

转载自www.cnblogs.com/kv888777/p/11567202.html