旧文新发:我心飞翔之ACM感想

也许ACM在大多数参加比赛的人心里都是一段难以忘怀的记忆,长长的一段日子虽然有艰辛,有困苦,但当一切都远去,再回忆起来,细细品尝的时候,大都苦里仍带着丝丝的甜。而我,却另有一番心路历程。

记得大一刚进师大的时候,ACM的知名度远没有现在的高。开学典礼上,我第一个举手提问,问的就是有关ACM竞赛的事情。后来才知道那个回答我问题的和蔼的,说话很有气质的老头就是我们信息院的院长沈复兴老师。他的回答并没有让我顺利的找到“组织”。又过了几天,因偶然的机会,从一个当时还不知道名字的同学那里了解到ACM招新的信息。还记得那天是9月6号的傍晚,本来说是在演播楼106。当时找演播楼106可费劲了。当我好不容易找到了106,过来一位师兄说改地方了。。。。。。

那 位师兄就是我们第一任的教练:胡博。他带了我们一年。那一年里,所有的记忆里都有一股阳光的味道,暖暖的,清新而怡然。还是接着说那个晚上吧。那天去的人 不多,而且大部分的“元老们”都在接下来的日子里因为种种原因离开了这支本就不那么庞大的队伍。那天晚上最惊讶的事情莫过于看见在教室的靠中间的位置坐着 一个女生了。参加计算机比赛女生本来就不多,像那样的可以称为“美女”的就更是凤毛麟角了。这就是大学吧,我这么对自己说。

202.112.88.161,第一个记住的IP,是为ACM训 练而配置的服务器。那时候机房的摆设跟现在很不一样。机器是绕着墙根的,围成一圈。服务器在进门的右手边的墙角,声音很大。那时候机房的钥匙也托管的,只 要是机房内的成员,都可以到管理员那里拿钥匙开门。那时候北大还没有建立起题库,所有训练都是在浙大上进行。记忆很深刻的是,胡博给我们一周的时间,让我 们从Pascal转到C。而我们,却真的做到了。

那一年过的很快。第一场雪,对我们这些南方来的人是那么的新奇;第一个寒假,我没有回家,大部分时间泡在机房里面;第一阵风,让我们对即将到了的沙尘暴充满了恐惧;第一次比赛,观众席上的我们却比赛场上的选手更兴奋。ACM教会了我很多很多,甚至英语的四六级的顺利通过,都是托它的福。

大二的时候,情况有了变化。胡博走了,训练也紧张起来。特别是临近网络预选赛的时候。刚刚计划组队的时候,队里面只有4个大二的队员。他们三个组成了一个队,留下了我一个人。后来,苟苟和主席来了,加上当时大一的小宇,我们组成了全新的Arbiter队。说起这个队名,还很有一番来历呢。当时不知道是谁说排名的时候相同名次的会按字母顺序排,我们于是就决定选一个A打头的词。差不多相当于random了好一会,最后苟苟选中arbiter的时候,得到了全队上下的一致通过。接着,Arbiter队通过民意选举,选出了各级领导。苟苟荣任队长,主席的名字也是因为他的职位。而我,当时作为第一秘书就任。结果,小宇成了队中唯一的“平民”。

时 光推移到这里的时候,虽然一路上有些许辛苦有些许坎坷,但我一直还是满怀着希望的。可是接下来发生的一些事情,让我一下子从山顶跌落到了谷底。第一次的上 场机会因为某种原因被剥夺,我才知道,并不是所有的梦想都那么完美,也并不是所有的付出都能被承认。一直在心里纯洁得如一张白纸的赛场,也会因为利益的需 要而染黑。世界上没有绝对,有的只是大家都心照不宣的游戏规则。

离开了ACM近一年,直到大二暑假新赛季集训。又一次放弃了回家,仅仅因为ACM在我心中,是OI的延续,是对自己OI留下的遗憾的唯一弥补机会。其实ACM里有很多大牛值得学习的,像刘汝佳(感谢他赠送的《算法艺术与程序设计竞赛》),施遥等名人就不用说了,还有Cavendish,锯子等好多和我一样默默无闻却又比我牛的多的人们,正是因为竞赛,让我们从陌生到认识,让我们有了共同语言。每次比赛前夕的祝福短信,每次赛场上的鼓励的眼神,每次比赛完了的祝贺,都是无法忘怀的感动。

11月13号,结束的日子。我成了新的Arbiter队的队长,我坐在了北大阳光大厅的5号座位上。我很庆幸自己已经足够的看淡了奖牌了。没有想象中的紧张,没有想象中的慌乱。一切都像平常的一次在线比赛一样。比赛开始后,按照赛前的安排开始看题。没过几分钟,我们对面的那个队有一个队员开始给其他队员讲E题,我赶紧侧着耳朵听。他讲的很清楚,而且他们队有人开始在机器上敲代码。于是我赶紧换成E题看,并在10分钟内让邹宗尧明白了E题要干吗。49分钟的时候,邹宗尧过了E,一次AC。望着那两个普通得不能再普通的字母的组合,大脑竟然一时转不过来,不知道该如何反应。看场上,有人过了G,于是我开始看G。小宇在看A,而且有了想法。他和邹宗尧讨论了一会就开始上机做,我特意叮嘱邹宗尧给做了几个测试数据。G题是Prim最小生成树的变种,却不能用Prim贪心算法来做,我觉得不那么好做,于是换看B和C。B是二部图匹配,但在赛场上我没有看出来。我以为是贪心,想了几个贪心原则,但还是一直有反例。再看C,似乎是简单的搜索。回头看小宇,WA了一次,心里一急,因为我没有看A题,心里不清楚他是否可以做出来。于是我就开始在纸上写C。邹宗尧为小宇找出了一个问题,小宇改了后再交,AC了!当时我们的排名已经进了前20了。我让小宇下来想一下G,我开始上机敲C。很不幸,在刚敲完代码,一次编译通过的喜悦还没有过去,我自己做的一个测试数据宣告了我的算法的失败。因为使用了二进制,改起来的很困难的,我立刻让出机器,让邹宗尧做D。起先我和他讨论D的问题,我觉得可以用随机化算法二次检验的方法来做,而邹宗尧也不负众望,很快写出了代码。检查了一会后试着交了一次,WA了。接下来的两个小时里面,我和邹宗尧两个人就在检查,发现问题,修正,提交,WA的循环中郁闷着。小宇在我们检查问题的空当里把他的C代码敲了进去,却来不及提交,比赛就结束了。

比赛结束了,我的OI,ACM生 涯也结束了。只是这一次,结束得很完美,没有遗憾,没有大喜大悲,也没有任何的值得留恋的东西落下。也许最后需要对很多人说谢谢,我的竞赛辅导老师,我的 中学一起参加比赛的伙伴们,我的队友,我的朋友们,太多太多了。很多时候我的“谢谢”并没有说出口,但我希望你们都知道,我谢谢你们!

北师大地名来源和典故

从北到南,从西到东:

1、励耘路
著名文献学家、我们的老校长陈垣(在教九外面的小花园里有陈老校长的塑像)的书屋名字叫“励耘书屋”。后来中文系著名教授、文献学研究专家启功先生为报师 恩,在陈垣校长逝世19年之后,设立了励耘讲学助学基金。此后,师大的实验班等都以“励耘”命名,借此表达陈垣老校长和启功先生对师大学子的治学期望。

2、丽泽路
《易经·兑卦》:“丽泽兑,君子以朋友讲习。”
丽,是依附相连的意思。丽泽兑,是指两泽相连、相互滋益的样子。结合后一句来说,就是讲朋友同学之间相互分享自己的学习心得,交流自己所长,补己之短,双方在学识上相互帮扶提高。

3、乐育路
有一个词叫:菁莪乐育
“菁莪”指的是《诗经· 小雅· 南有嘉鱼之什· 菁菁者莪》。
“乐育”指的是汉代毛亨在《毛诗诂训传》里对这首诗的注解:“《菁菁者莪》,乐育材也。君子能长育人材,天下喜乐之也。”
这段话的意思说的应该是品德高尚乐于育人的好老师,或者是做老师者的一种职业向往。

4、木铎路
《论语·八佾》:“天下之无道也久矣,天将以夫子为木铎。”
这是孔子说的一句话,意思是说,天下腐败黑暗太久了,上天要把我当做木铎。”意思很明白,出色的教育可以为驱除天下的黑暗和腐败起巨大作用。
在古代“铎”是一种以金属为框的响器。以木为舌者称为木铎,以金为舌者则称金铎;木铎为文,用以宣政布政;金铎为武,用以指挥军队。孔子以木铎自况,说自己是上天派来教化民众的。
此后“木铎”就成了教师的别名。所以北师大便以“木铎”作为校徽标志物。(就在京师广场上,以前不知道师弟师妹们是否明了它的含义)

5、金声路
《孟子·万章下》:“集大成也者,金声而玉振之也。”
比喻音韵响亮、和谐,也比喻人的知识渊博,才学精到。

6、辅仁路
《论语·颜渊》:“君子以文会友,以友辅仁。”
意思是说君子以文章学问来结交朋友,依靠朋友帮助自己培养仁德。
师大的前身就是辅仁大学。辅仁大学旧址在后海那边,风景独好,值得一去。(在我看来,那些剥落了油漆的雕梁画栋,逼逼仄仄的木楼梯,比北大的未名湖博雅塔要美一百倍)

7、立身路
《孝经》:“立身行道,扬名于后世。”
通过提高自身的道德修养,完善自己的为人处世态度,从而身后留名。
这是古人“修身齐家治国平天下”的人生哲学的另一种诠释方法。

8、兰蕙公寓
屈原诗:“余既滋兰之九畹兮,又树蕙之百亩。”
用兰和蕙的清雅出尘,象征人品的高洁。(我觉得这个典故蛮牵强的,但是这是古代文学史课上李山老师说的。。。而且住在里面的人和这个典故真是太不搭界了。。。)

9、乐群食堂
很多人不认识乐群食堂外墙上启功先生写的那个字。在古代,“群”字是上下结构,后来整理字形的时候改成了左右结构。启功先生用的是古代的“群”字写法。
《礼记·学记》:“比年入学,中年考校,一年视离经辨志,三年视敬业乐群,五年视博习亲师,七年视论学取友,谓之小成;九年知类通达,强立而不反,谓之大成。”
讲古代入学之后的种种考试及其考试内容。第一年考察学生阅读文献的技能,第三年考察其是否专心致志认真学习,是否和同学之间关系融洽、彼此都有学业上的增益和品德上的扶持。

10、新松公寓
杜甫诗《将赴成都草堂途中有作先寄严郑公五首》其四:“新松恨不高千尺,恶竹应须斩万竿。”
意思是盼望新松长得又高又快,而那种随处乱生的恶竹却应除去。言外之意是帮扶君子、惩治小人。

转自 蛋蛋网 http://www.oiegg.com

喝醉后,便离开

四年只在一瞬间
轻轻的来了
又要轻轻的离开
曾经的迷茫与希望
曾经的泪水与笑颜
都会在有一天
重新浮上你我的心田
怀念
竟是那样一只
        彩色的帆

路,依然在前方
让我们,且行
                         且珍重。。。

散伙饭过后,最后一次住在宿舍,最后一次在宿舍通宵,最后一次,看一眼师大的太阳,也最后一次当一回文学青年,写下这些文字。

毕业典礼

终于,大学毕业了。

院毕业典礼上,一位不记得名字的老教授,将我的学士帽上的穗子从右边拨拉到左边,然后冲我微微一笑,轻轻地说:祝贺你毕业!那一刻,世界在我脑中成为一片空白,唯一留下的只有一个词:毕业。。。

院毕业典礼上拿到的只是一个学位证书的壳,里面的最重要的内容还要等全校毕业典礼后才能拿到。上午的毕业合影,我们居然是以京师大厦为背景。我站在第一排的靠左边,旁边的是别老师。别老师在拍照之前还说了句:很荣幸——当时我们的头上的学士帽的穗子还都是垂在右边的。等到中午大家从敬文讲坛出来的时候,穗子就都在右边晃荡了。

中午,宿舍一起聚餐——最后一次聚餐。地点定在北门的福口居,因为福口居的酒水饮料是免费的。人来的很齐,8个人都到了——大约北师大也就西西320这么一个宿舍有8个人的吧。魏涛(保研,北京工业大学),杨树(考研,北大深圳研究院),唐福林(也就是偶啦,工作,新浪爱问),马江舰(保研,北师大教育技术),马驰初(工作),李昊华(出国,韩国),刘庆欢(工作,厦门某中学),于庆利(工作,延庆基层)。大家都喝的有点高,因为好久没有这么尽兴的喝酒了,而且以后可能这样的机会也不多了。

中午的酒还没有彻底醒过来,晚上原观鸟网站的大伙又一起吃饭。肖雯(已经升级为肖老师了),紫萧(正准备出国),李文(保研,北师大计算机系),张族昕(工作),马江舰还有我,吃饭时的桌子被我们弄的一塌糊涂,要吃蛋糕了干脆换到旁边服务员刚刚收拾干净的另一张桌子上。观鸟网站的大家因为都还留在北京,没有一点分别的气氛,大家像开生日party一般,拿着蛋糕上的奶油抹脸,还用肖雯的专业数码相机拍照。

今宵酒醒何处?杨柳岸,晓风残月。

针对Web服务器总体优化

毕业论文《高并发高流量网站架构》后续关注

一、文件系统
在fstab里加入noatime,如
#cat /etc/fstab
/dev/sda1          /home                  ext3    noatime,defaults        1 2
reboot或者重新mount生效


二、Tcp优化

在/etc/sysctl.conf里加入
net.ipv4.netfilter.ip_conntrack_tcp_timeout_syn_recv = 3
net.ipv4.tcp_syncookies = 1 #启用syncookies
net.ipv4.tcp_max_syn_backlog = 8192 #定义backlog队列容纳的最大半连接数
net.ipv4.tcp_fin_timeout = 30
net.ipv4.tcp_keepalive_time = 1800
net.ipv4.tcp_window_scaling = 0
net.ipv4.tcp_sack = 0
net.ipv4.tcp_timestamps = 0
老实说,对于sysctl.conf究竟能不能用起来还真不知道


三、虚拟内存优化

/etc/sysctl.conf
vm.lower_zone_protection = 100
四、I/O调度器
在grub.conf的相应启动选项里加入elevator=deadline,如:
kernel /vmlinuz-2.6.6 ro root=/dev/sda6 elevator=deadline
这里用了Deadline的I/O调度器,它比系统默认的AnticipatoryI/O调度器更为小巧,在数据吞吐量非常大的数据库系统中表现得更有优势。


五、内核源代码参数修改

修改/usr/src/linux/include/linux/posix_types.h
#define __FD_SETSIZE 1024 65536
设置fd_set支持的最大数量
修改/usr/src/linux/include/linux/fs.h
#define INR_OPEN 1024 ?nbsp;65536
#define NR_FILE 8192 ?nbsp;65536
#define NR_RESERVED_FILES 10 ?nbsp;128
设置最大打开文件数量(TCP连接数量)
修改/usr/src/linux/include/net/tcp.h
#define TCP_TIMEWAIT_LEN (60*HZ) ?nbsp;1*HZ
#define TCP_SYNACK_RETRIES  5 ?nbsp;3
设置在backlog队列里的半连接的重试次数,每次都会花相应的时间,本质上
也是减少重试时间
make menuconfig中,去掉没用的选项,打开以下选项的开关:
High Memory Support (支持4GB以上内存)
Symmetric multi-processing support (支持多CPU)
TCP syncookie support (可以防DOS)
设置文件打开数等的其他方法(好处就是可以不重新编译内核)
在 /etc/init.d/sshd里加入(统一加在. /etc/rc.d/init.d/functions行后面)
ulimit -n 65535 >;/dev/null 2>;&1
ulimit -u 16384 >;/dev/null 2>;&1
重起sshd:nohup /etc/init.d/sshd restart &
BTW:其实limits.conf不好,因为他需要root su – user遗传给普通用户
如果直接远程登陆是没效果的
六、apache
1、安装:采用worker线程工作模式
./configure –prefix=/prefix
–enable-mods-shared=all
–enable-deflate
–with-mpm=worker
chmod +s /prefix/bin/httpd #允许普通用户也可以启动apache
2、配置:httpd.conf
Timeout 60
KeepAlive On
MaxKeepAliveRequests 150
KeepAliveTimeout  5
StartServers        3
MaxClients        3200  #支持3200个客户端哦
ServerLimit        32
MinSpareThreads    50
MaxSpareThreads    250
ThreadLimit  200
ThreadsPerChild    100
MaxRequestsPerChild 0
#上面的几个参数对机器要求比较高,如果是比较差的机器,每台机1000个连接最多了,你可能要重新设置参数UseCanonicalName Off
HostnameLookups Off
ServerSignature Off

论文资料收集

  1. 互联网时间线:

http://www.zakon.org/robert/internet/timeline/ (原文)

http://chin.icm.ac.cn/zakon/HIT-GB.html (原文中给出的中文翻译,但我这里打不开)

http://www.fulin.org/paper/internet_timeline.html (转载)

2. 分语言互联网统计

http://www.glreach.com/globstats/index.php3

3.中国互联网调查

http://www.cnnic.net.cn/index/0E/index.htm

4.

今日关注:公益广告

 首发:福林雨博客 http://www.fulin.org/blog/

播客搜索:公益广告

1。http://v.blog.sina.com.cn/b/1022204-1195883527.html

浓郁的京味,优雅的提琴,邻家扎着羊角辫的女孩,儿时跳绳的记忆,巷口邮递员的车铃声,摇篮里的笑声,这是我见过的最为感动的公益广告。

2。http://v.blog.sina.com.cn/b/707491-1026119041.html

这个曾经在电视上看见过:关心他人,快乐自己。很多的时候,其实都只是举手之劳。背景音乐不错。

3 。http://v.blog.sina.com.cn/b/425382-1072143054.html

国外的广告更多时候关心的是“人”作为个体的关怀。一个小孩剪一缕自己的头发作为礼物送给因化疗而脱发的伙伴,换来伙伴以帽子回赠。整个过程中没有对白,有的只是音乐,笑容,和独白。

4 。http://v.blog.sina.com.cn/b/1278456-1271040353.html

http://v.blog.sina.com.cn/b/706182-1227387171.html
因为小蔡,每每看到关怀残障人士的片,都会深有感触,甚至听到刘德华的助盲音乐,都会感动的不行。其实关心他人,也是关心自己。

5。 http://v.blog.sina.com.cn/b/658871-1402034524.html

http://v.blog.sina.com.cn/b/1319630-1479835292.html

总有很多的时候,不由的想起自己的小时候,想起那些艰难的岁月。一直在想,什么时候自己也能帮助某个人点亮心中的灯,照亮前进的路,也算是对以前帮助过自己的人的,一个微不足道的答谢。其实他们需要的很少,仅仅是,一个机会,长大成人。

6 。http://v.blog.sina.com.cn/b/644341-1248049811.html

自己没有考研,并不意味着自己就没有体会过考研的寂寞。孙悦的《我的祝福记得吗》,多年没有听了,但再次听到时,感触依旧。亲爱的朋友啊,风雨艰难永远是昨天!

7。 http://v.blog.sina.com.cn/b/1606175-1268872162.html

我们在寻找一个眼神,然后让微笑像空气一样,我们在寻找一种单纯,然后让感动像音符一样,我们在寻找一种温暖,然后让幸福像孩子一样。世界那么大,只要我们心在一起。

8。 http://v.blog.sina.com.cn/b/400890-1252721971.html
http://v.blog.sina.com.cn/b/495486-1261359184.html

都是姚明的。一个是保护野生动物:拒绝购买野生动物制品,没有买卖,就不会有杀害。一个是关怀AIDS。

9。待续

软件操作手册

操作手册.mht powered by 唐福林 马江舰 李文 Page 1 of 3
木铎软件工作室 第 1 页 共 3 页

Muduosoft@126.com
Copyright ?2004-2007 Muduosoft
All Rights Reserved
Title: 离散数学图论教学辅助
Version: 1.0.0
Rel. Date: 28 Sep 2004
Publisher: Muduosoft
Support: Muduosoft@126.com
Release: Shareware
Requires: Win95/98/NT4/2000/ME/XP
Needs:IE 5 or later,Chinese suported
图论教学辅助软件操作手册

图论教学辅助软件说明

 一不小心,在某个很久没有光顾的角落里翻出了这样一篇说明。回想当年,挥斥方遒,不禁会心一笑:软件做的不怎地,说明倒写的像模像样了。当年的那些伙伴,大都留在学习继续深造,只有自己,早早的出来工作呢。特留此存念。

图论教学辅助软件说明

图论教学辅助软件是北京师范大学信息科学学院离散数学教学辅助软件设计课题的一个组成部分,由副教授冯速老师指导,北京师范大学信息科学院李文,马江舰,唐福林承担主要开发任务,于2004年7月立为“京师杯”课外科技学术比赛的一个项目,2004年暑假第一版的开发完成,同时完成了第二版设计及开发的准备工作。
现软件第一版即测试版发行,您可以通过各种渠道获得我们的软件的试用版,并在遵守以下协议的前提下自由的使用和传播。具体使用方式见 操作手册.html。如果在使用中有任何问题与疑惑,您可以联系 muduosoft@126.com 以寻求帮助。
北京师范大学信息科学院木铎软件工作室由唐福林,马江舰,李文自发组织的非盈利性的,为促进学习和交流的团体,为本软件唯一合法版权拥有人。第二版设计说明见 后续开发说明.html 。
感谢:首先需要感谢冯速老师作为我们的指导老师,在整个开发过程中给予我们的各种关怀和资助,在此无法一一列举。其次感谢学校团委的“京师杯”项目组的指导老师们,给了我们一个展示自己才华的平台。感谢所有关心我们项目进展的老师,同学们,感谢所有提供帮助的学长,网友们。最后,我想,我们还需要感谢我们的队友,感谢我们自己,也感谢我们的上帝。
离散数学图论教学辅助软件 版本 1.0.0 用户协议
本协议是您与木铎软件工作室之间关于本工作室产品的法律协议。
一旦安装、复制或以其他方式使用本软件产品,即表示同意接受协议各项条件的约束。如果您不同意协议的条件,则不能获得使用本软件产品的权力。
在您使用本软件产品之前,请务必阅读此《协议》,任何与《协议》有关的软件、电子文档等都应是按本协议的条款而授予您的,同时本《协议》亦适用于任何有关本软件产品的后期发行和升级。您一旦安装、复制、下载、访问或以其它方式使用本软件产品,即表示您同意接受本《协议》各项条款的约束。如您不同意本《协议》的条款,那么,版权所有人则不予将本软件产品的使用权授予您。在这种情况下,您不得使用、复制或传播本软件产品。
一、软件产品保护条款
1、本软件由木铎软件工作室开发。本软件产品受中华人民共和国版权法及国际版权条约和其他知识产权法及条约的保护。
2、用户不得:
删除本软件及其他副本上一切关于版权的信息;
对本软件进行反向工程,如反汇编、反编译等;
本软件产品是被当成一个单一产品而被授予许可使用,不得将各个部分分开用于任何目的行动。
3、复制、分发和传播:
您可以复制、分发和传播无限制数量的软件产品,但您必须保证每一份复制、分发和传播都必须是完整和真实的,包括所有有关本软件产品的软件、电子文档,版权和商标宣言,亦包括本协议。
本软件可以独立分发亦可随同其他软件一起分发,但如因此而引起任何问题,版权人将不予承担任何责任。
4、免费使用和个别授权:
本软件产品只许个人用户免费使用,不得出售,不得用于商业目的的活动之中。本软件产品不能用于销售或随同旨在获益的软件产品或产品包一起分发。
如有任何组织或个人利用本软件以任何方式为公众服务并同时满足其自身特定目的而分发、复制和传播本软件产品,均须得到版权人授权同意后方可进行,否则视为侵权。
5、如果您未遵守本协议的任何一项条款,版权所有人有权立即终止本协议,并保留通过法律手段追究责任。
6、 用户保证:
本软件版权人特此申明对本软件产品之使用不提供任何保证。版权人将不对任何用户保证本软件产品的适用性,不保证无故障产生;亦不对任何用户使用此软件所遭遇到的任何理论上的或实际上的损失承担负责。使用本软件产品由用户自己承担风险,在适用法律允许的最大范围内版权所有人在任何情况下不就因使用或不能使用本软件产品所发生的特殊的、意外的、非直接或间接的损失承担赔偿责任。即使已事先被告知该损害发生的可能性。
用户须明白,使用本软件产品可能会受到各个环节不稳定因素的影响。因此服务存在因不可抗力、计算机病毒或黑客攻击、系统不稳定、用户所在位置、用户关机以及其他任何技术、互联网络、通信线路原因等造成的服务中断或不能满足用户要求的风险。
7、本软件产品(包括但不限于本软件产品中所含的任何图象、照片、动画、文字和附加程序(applets))、随附的印刷材料、及本软件产品的任何副本的一切所有权和知识产权,均由版权人木铎软件工作室拥有。通过使用本“软件产品”可访问的内容的一切所有权和知识产权均属于各自内容的所有者拥有并可能受适用著作权或其它知识产权法律和条约的保护。本《协议》不授予您使用这些内容的权利。
9、木铎软件工作室具有对以上各项条款内容的最终解释权。

木铎软件工作室

2004年9月

当时的结题报告

 

图论教学辅助软件结题报告

200410

小组成员:李文,马江舰,唐福林

离散数学是一门理论性较强的学科,因其抽象化程度高等特点,一直是计算机科学教育中的一大困难,而离散数学中的图论,更是以其繁多的定义,定理,推理,成为难中之难。我们的辅助软件在这样的需求背景下在我们的心中酝酿,逐渐明朗成型。

起步:

72—711

我们在03级刚进行完离散课程学习的同学中展开问卷调查,以获得更多关于离散数学教学的意见和建议。

经过小组及名成员的讨论,得出初步方案:

1. 针对概念多及难以记忆的特点,此软件应该注重在加强概念的可理解性方面着手,将概念由难化易

2. 将抽象复杂的符号语言转化为形象简单的图形语言

3. 适当加入一些趣味性的有助于理解记忆的插曲

4. 要始终贯彻让软件向人性化的方向发展,建立和谐友好的人机环境

 

设计:

712721

1. 访问离散课授课老师

2. 分析老师的需求

3. 细化框架设计

72281

1. 协商确定软件需要实现的各种功能

2. 初步确定软件的界面形式,并预测编程过程中的困难

3. 分头看书找资料,解决可能会有的困难

总结出的技术难题:

a) 多个图共存(解决:不允许)

b) 写详细说明文档,并做正式的进度控制(解决:找替代方法和参考别人的成功案例)

c) 右键快捷菜单(解决:留待第二版)

木铎软件工作室 f) 工具栏(寻求帮助中)

2 页 共 3 Muduosoft@126.com d) 拖动时重画(取消背景,直接重画)

e) 小标签实现(手工画)

g) Chm帮助系统(寻求帮助中)

 

实现:

82811

1. 写详细设计文档

2. 编写图论各种算法函数并测试

在这个阶段我们实现的算法有:

a) 将图的存储结构转化为邻接矩阵的形式;

b) 求该图的闭包,即为该图的可达矩阵;

c) 判断一个图是否为另一个图的生成子图,或者是否为另一个图的诱导子图;

d) 判断一个输入的度的序列是否为一个图的度的序列;

e) 求图中各点的出度和入度;

f) 对图进行深度优先遍历和广度优先遍历;

g) PrimeKruskal算法构造图的最小生成树;

h) 求图的拓扑排序;

i) 利用图的拓扑排序求该图的关键路径;

j) 求图中由某一点出发两点间的最短路径。

 

我们的算法使用的是C++类封装的形式给出,留出一些调用接口。这样,给我们后来的界面设计提供了很大的方便。

812817

1.协调整个项目组的工作

2.继续编写图论各算法函数

3.画基本界面

4.考虑演示算法的实现

5.写菜单响应函数,及决定如何调用其他人写的函数

6.点,边存储数据及响应各种操作的类的编写并测试

项目组的工作步入正轨之后,有一些问题就渐渐暴露出来了,像中间版本的管理,文档的管理等很多小的细节问题却困扰我们很久。决心在第二版的开发中使用专业管理软件,开始因为缺乏数据及一些必要的说明,界面在初步画的时候,有很大的盲目性,导致后面整合后需要返工,点边类在最开始设计的时候有很多地方没有考虑到,特别是与其他人的程序的接口,数据的引用,修改权限等等。

在这个阶段结束的时候,我们手里已经有了一个基本可以运行,可以演示部分简单功能的程序了。但因为整个界面都是用windows C API 函数画成,给你的感觉不象别的程序那样华丽。我们划出一块定理公式区,给出演示的时候遵循的定理公式。还列出点,边,图的各种属性,以及数学运算用的图的矩阵。虽然都不是那么完美,但都可以工作了。这是我们感到欣慰的地方。

82291

1. 整合所有代码,调试

2. 完善功能

3. 制定测试方式和数据

4. 编写文件读入存储类

问题:

1. 在各自独立编写的文件整合到一块的时候,缺乏大型工程经验的弊端就显露无遗了。我们的几个工程几乎无法整合。头文件的包含问题就困扰了我们2天,还有全局变量,函数原形申明等等。。。

2. 花费了很大心思手工画出来的界面自己看着不觉得,但与别人的界面一比较,我们几乎想放弃了。幸好,在指导老师的鼓励下坚持了下来。

3. 由于第一次编写win32程序,当程序调试完毕后,整合在一起了,却总出现很多逻辑问题。还是不习惯消息驱动机制吧。

到开学的时候,我们的程序大体上已经成型了。除了帮助菜单项和原来设计中有的教程之外。在技术上,就是有一个toolbar(工具条)没能加上去,以及本来打算的关于选项的美化没有能够实现。在功能上,也基本上实现了那些算法的演示。还提供了几类重要的、常见的图:欧拉图,哈密尔顿图,二部图等的判断,以及平行边,自环等与边相关的判断。

92日以后

测试整合的代码,修正bug。以及编写说明,操作手册等等

总结自己在这个项目完成过程中的种种失误,及收获,为继续开发下一个版本做准备

做下一个版本的框架计划

1. 一些常用功能的实现:帮助菜单,反馈信息,升级等还没有实现

2. 还有一些菜单项响应没有实现

3. 软件存在一些未知错误,会不经常的被强行关闭

4. 原打算附带一个教程,但至今没有找到好的

5. 有几个算法与界面的接口还有待修改完善

至此,我们的第一个项目终于画上了一个不是很圆的句号。粗略统计了一下,在一个多月的努力过程中,我们一共手写了超过2M的代码,最后的定稿包括17个源代码文件,共近2000行代码。如果再算上调试,整合等环节,可以说,这个看似简陋的程序也是我们花费了巨大的心血,付出了巨大的努力才得以实现得。

因为缺乏经验,确实在整个过程中遇到了很大的困难,而我们的第一个软件看上去似乎有些幼稚,但这是我们第一次尝试的结果,有了第一次,我相信以后我们会做得更好。我也希望我们这个软件及以后的版本能对以后的离散学习者有些切实的帮助。

 

 

(copyright @ 北师大“京师杯” 版权所有,转载前请联系作者!)