编程方法学 - 公开课学习笔记(九)

               

第25课 设计实用社交网络和线程  2011.9.7

这一课由两个topic,首先以社交网站的例子进一步解释数据管理。在SNS中用porfile来表示一个用户。有下面的属性:name(作为Unique ID),status,image和list of friends(由于name是唯一ID,也就是相当于list of names)。同时一个社会网络要维护好友关系,好友管事是reciprocal(双向),A和B互为好友,即A将B加在list of name中,则B自动在A的list of name中。社交网络删除A时,这项所有关联好友的list中均进行删除。

另一个topic是将并行处理,即线程。计算机分片轮换处理。Thread t= new Thread(x); t.start(); 其中x是接口Runnable的实例,具体描述需要在线程中运行的内容。

有时候,线程之间会共享数据,需要注意数据的一致性,代码的顺序是需要讲究的。例如有A和B两个线程(给出的例子是多个slide,分别由线程处理,看谁先到底某个位置,则变色为红色)。处理为:

a1:检查是否第一
a2:设置共享数据finised[index] = true,用于记录是否到达。
a3:如果是第一,这是为红色。

各线程之间的轮片执行是由系统或者java虚拟机控制的,我们无法保证在执行a1和a2之间是否有其他线程的轮片时间,如果这时候,执行b1,那么可能会出现a是第一,b也是第一个。因此正确的实行顺序应当是a2,a1,a3。

以前我的一个AS的项目,在压力测试中达到99.99993-99.99997%,在运行某段时间(有时是接近几天星期),就会有一个业务失败。当然这6个9的接通率是很符合要求的,已经是大项目中最好的。然而计算机1就是1,0就是0,尤其在压力测试中,并没有特别的异常情况,虽然奇怪,但是绝对算得上电信级,也不在意。后来的后来,终于发现两行代码的顺序出现问题,修订后,在压力测试中可以达到100%。

第26课 标准Java库 2011.9.13

之前的课程主要使用ACM库,对教学很好,这一课介绍标砖的Java库,将从public static void main(String[] args){ }开始执行。在main方法中调用,例如new MyClass().start(args);由于执行完main就结束,通常来讲一般MyClass会是一个线程,所以例子中采用了start()的调用方式。

介绍JAR打包,包括如何调用,以及如何打包(export),以及实现点击运行。如果运行时需要其他的jar包,或者指定运行的main(多个main方便我们调测),需要一个Manifest.mf文件。 命令行:jar cvfm MyClass.jar mainfest.mf  dir/。当然如果使用Eclipse,一步一步按图操作就是了。
Manifest-Version:1.0
Main-Class: MyClass
Class-Path: acm.jar MyClass.jar

介绍Applet。<applet archive=”MyClass.jar” code=”MyClass.class” width=700 height=500></applet>如果需要引用某些文件(例如某些数据来源)。将那些文件也打包进行jar中。

介绍标准Java库中,直接使用Console和JFrame的使用方法。对于JFrame,介绍了repaint(),介绍使用frame.setDefaultCloseOpertion( JFrame.EDIT_ON_CLOSE );来实现关闭窗口,结束程序,否则窗口关闭,但是程序依旧运行。 记录这个,因为之前俺一直这么罗嗦地写:检查到关闭窗口就结束程序……,惭愧。
frame.addWindowListener(new WindowAdapter(){
    public void windowClosing(WindowEvent e){
        System.exit(0);
    }
});

介绍了几本java的书,好厚……,居然没有Thinking in Java,我觉得这本书很不错。看着这些几百页甚至上千页的书,把书读薄是非常重要的。

第27课 CS课程 2011.9.14

CS106A的主体课程结束。计算机科学(CS)不是计算机编程,在本课程中介绍相关学习的科目,也记录下来,不定以后去翻翻。CS106B是接下来的课程,采用C++语言。CS103有关离散数学。CS107讲述low-level的编程,CS108是有关对象系统和大型应用;CS140是操作系统,CS161是数据结构。CS121/221讲AI(人工智能),设计机器人,生物计算,数据分析等等。

此外计算机科学还包括图像(电影图像,数字图片),数据库,加密,机器学习(Machine Learning),HCI(人机互动)。

与CS相关的有EE(我就是学EE的,想想没剩下什么,基本上考完试就忘记了),Math+CS,Symbol System。

有很多关联的学科,CS+Bussiness,CS+biology,CS+law(IP,copyright)等等。

如果是学生,可能会听到热血沸腾

第28课 最后一课 2011.9.15

在这一课中给出图形竞赛的获奖者并演示的作品,不错。接着介绍课程期末考试需要考察的内容,并复习了所学。这课学习内容而言没有什么新的知识。

And,我也终于将这课程给看完了。就像看书,英文书籍讲得比国内写得要清楚,治学态度不同,延至工作,包括规范、标准、论文、专利,书籍编写,也是浮夸甚多,而挂头名者,无论文章、项目,常具体内容不知为何,实际负责之人,能在倒数若干入围则幸甚,尚众多努力者,不闻其名。学术之氛围,怠矣,名所趋,利所趋,何以治学?

相关链接:我的与编程思想相关的文章

           

再分享一下我老师大神的人工智能教程吧。零基础!通俗易懂!风趣幽默!还带黄段子!希望你也加入到我们人工智能的队伍中来!https://blog.csdn.net/jiangjunshow

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值