https://github.com/Centurybbx/sp18-century/tree/master/proj0

proj0的具体实现在上面的Github中。

在proj0中我明显感受到国外大学对于教学课程的严谨性和权威性,之前只是听说过测试(刚学习的小白),没想到在CS61B中老师为了方便测试学生所写代码的准确性,提前写好了不少测试类,直接运行即可。并且它的教程完全是保姆式的,完全是在手把手的教课,对于新手程序员来说简直是不要太好。

下面主要谈一下它的设计方面:

这个项目里面其实自己并没有写多少高大上的代码,感觉它的实现还是挺简单的,主要是基于牛顿定律和一些物理公式的推导得出来的。但是它的设计却让我感觉非常巧妙,例如在Planet中它先是循序渐进的让我们写出一个calcDistance(Planet p)方法来计算两个天体之间的距离,随后根据这个写calcForceExertedBy(Planet p)方法,用来计算两个天体之间的引力作用。随后又引出calcForceExertedByX(Planet p)和calcForceExertedByY(Planet p)两个方法来计算X和Y轴上力的分量,最后再写出calcNetForceExertedByX(Planet[] ps)/calcNetForceExertedByY(Planet[] ps)引用上面的方法来计算出多个引力作用的结果,感觉很妙!

总体来说这个项目还是挺简单的,因为好多轮子已经造好了,比如StdDraw/In这些工具类已经封装好了很多方法,直接看着API文档调用就好了。

-------------------------------------------------------------------------------------------------------

刚刚用gradescope评估了一下评分,发现它提示我有一点小问题——原来是变量作用域的问题,我用public修饰的G(一个系数)要改为private.....这真的好严谨,爱了爱了!这课不好好学完全是浪费啊!

proj0的具体实现 #CS61B-sp18的更多相关文章

  1. CS61B sp2018笔记 | Lists

    Lists csdn同作者原创地址 1. IntLists   下面我们来一步一步的实现List类,首先你可以实现一个最简单的版本: public class IntList { public int ...

  2. CS61B HW0

    The Enhanced For Loop public class EnhancedForBreakDemo { public static void main(String[] args) { S ...

  3. CS61b proj1a

    得分46.25有一个点的bug不会修(希望大佬带我),style没有注意.1.LinkedListDeque.java public class LinkedListDeque <T>{ ...

  4. diff and patch

    A patch captures the changes of two different files (oldfile and newfile). Given the oldfile and the ...

  5. 麻省理工18年春软件构造课程阅读02“Java基础”

    本文内容来自MIT_6.031_sp18: Software Construction课程的Readings部分,采用CC BY-SA 4.0协议. 由于我们学校(哈工大)大二软件构造课程的大部分素材 ...

  6. Java学习资源整理(超级全面)

    这里整理一些自己平常搜集的比较好的关于Java的学习资源,主要包括博客站点.书籍.课程等. 了解Java最新资讯 这部分主要是了解与Java相关的动态以及信息,能够拓展我们的视野以及寻找一些好的ide ...

  7. Java中的Iterable与Iterator详解

    在Java中,我们可以对List集合进行如下几种方式的遍历: List<Integer> list = new ArrayList<>(); list.add(5); list ...

  8. CS61A hw01

    前不久在知乎上看到CS61A 和CS61B spring18 开课的消息.上去看了一眼,发现真的不错,所有proj hw都可以本地测试!也就是说除了没有课程成绩和官方讨论区和TA解答外,这个课完全可以 ...

  9. 1732157 - Collecting diagnosis information for SAP HANA [VIDEO]

    Symptom SAP Support asked you to provide a collection of the relevant diagnosis files (also known as ...

随机推荐

  1. HTTP 协议详解(二)

    前面一篇已经说过了 HTTP 的基本特性,HTTP 的发展史,前情回顾.这一篇就更详细的 HTTP 协议使用过程一些参数配置,缓存,Cookie设置相关的细节做一些梳理. 数据类型与编码 在 TCP/ ...

  2. mysql根据一张表更新另一张表数据

    UPDATE channelcountry, appywproducts SET channelcountry.ChannelName = appywproducts.YWNameCN WHERE c ...

  3. 《MapReduce: Simplified Data Processing on Large Clusters》论文研读

    MapReduce 论文研读 说明:本文为论文 <MapReduce: Simplified Data Processing on Large Clusters> 的个人理解,难免有理解不 ...

  4. 免费馅饼——移动dp

    免费馅饼 题目描述 SERKOI最新推出了一种叫做"免费馅饼"的游戏: 游戏在一个舞台上进行.舞台的宽度为 \(W\) 格,天幕的高度为 \(H\) 格,游戏者占一格. 开始时游戏 ...

  5. KMP入门

    First.先上一份最原始的无任何优化的代码(暴力): #include <iostream> #include <cstring> using namespace std; ...

  6. 题解:2018级算法第六次上机 C6-危机合约

    题目描述 样例: 实现解释: 没想到你也是个刀客塔之二维DP 知识点: 动态规划,多条流水线调度?可以看做一种流水线调度 坑点: 输入内容的调整(*的特殊判定),开头结尾的调整策略 从题意可知,要做的 ...

  7. 深圳有为JAVA笔试

    深圳有为JAVA笔试 1.定义一个线程类有几种方法?分别是什么? 答:两种方法,一种继承Thread类,重写run()方法,第二种实现runnable接口,实现run()方法. 2.抽象类和接口的区别 ...

  8. Go的100天之旅-常量

    常量 简介 道可道,非常道.这里常道指的永恒不变的道理,常有不变的意思.顾名思义和变量相比,常量在声明之后就不可改变,它的值是在编译期间就确定的. 下面简单的声明一个常量: const p int = ...

  9. Sequential Minimal Optimization: A Fast Algorithm for Training Support Vector Machines 论文研读

    摘要 本文提出了一种用于训练支持向量机的新算法:序列最小优化算法(SMO).训练支持向量机需要解决非常大的二 次规划(QP)优化问题.SMO 将这个大的 QP 问题分解为一系列最小的 QP 问题.这些 ...

  10. project facet java 1.8 is not supported解决办法

    Right click on project -> Properties -> Search for Project Facets -> Java (Version)