【工程与计算机】一石二鸟:开发游戏为申美国名校加码

近年来,美国大学的计算机(Computer Science, CS)和电子工程(Electrical Engineering, EE)专业录取要求随着申请人数的增加逐渐水涨船高。但另一方面,国内的相关工程教育却基本是缺位的。为了弥补这种差距,陈欣老师在过去的几年里,通过我们的规划项目辅导了一批学员。通过身体力行的学习利用专业知识解决生活中的问题,他们走出了自己的舒适区。事实证明,学校对这份努力也是相当认可的。

为了帮助到更多的人,陈欣老师在此整理一些往年的成功项目经验,并同简化过的项目源代码一道与大家分享。希望能够抛砖引玉,给同学们一些思路和帮助,为之后的申请助一臂之力。毕竟短期看,CS/EE是在美国本土就业的捷径,能够较为迅速的收回教育投资;长远看,CS/EE的相关技能也能在诸多行业里起到点石成金之效。

问题

对于我们上一次的分享,有家长提出疑问,觉得孩子如果没有游泳队的特殊背景,是否就没办法做出那样“高大上”的项目呢?事实上不是这样子的。陈欣老师认为工程项目的含金量,很大程度上还是在于孩子自己的兴趣、创意和深入程度。而这几个元素都是可以在之后的美国大学申请过程充分体现出来的。相对而言,做项目的契机反而没有那么重要。原则上只要是生活中的、感兴趣的问题,都可以来用技术手段尝试解决。

我们今天分享的这个案例,之前对AADPS有关注的朋友们应该有些印象。这是一个对电脑游戏(具体来说,是点击式的冒险游戏)有特别热情的小姑娘。在我的指导下,她自己撰写了剧本,并用手机拍摄和录制了图片以及语音素材,最终以自己的日常生活为蓝本完成了生平第一个游戏。在十二月的校友面试中,她在自己的手机上向面试官展示了游戏,得到了很大的认可,最终也如愿入读了ED的名校。下面就让我们来看一看,这个游戏背后的原理是怎样的吧。

工具

JavaScript语言

JavaScript是一种动态、无数据类型的高级解释型语言。名字里带有的Java字样只是当初由于市场宣传考虑而做出的决定,虽然语法上的确与Java有一定相似性,但是本质上是完全不同的东西。JavaScript与HTML和CSS一起并称互联网三大核心技术。几乎所有的现代浏览器都支持JavaScript,因此是开发网页应用和游戏所必不可少的工具。随着JavaScript平台技术的改进,这一语言由于其方便快捷的特性,运用的领域也扩展到游戏编程、桌面程序和服务器应用等。

CreateJS


CreateJS是一组模块化的JavaScript库,用于开发基于HTML5现代互联网互动内容。几个主要组件有与HTML5 Canvas交互用于绘制图形和响应触控事件的EaselJS,生成过渡动画的TweenJS,播放声音和音乐的SoundJS以及加载资源素材的PreloadJS。可以在这里下载CreateJS。

Atom


由于JavaScript在浏览器里执行的特性,我们一般不需要单独的集成开发环境(IDE),可以利用浏览器自带的调试工具进行调试。对于代码的编辑,可以使用Github开发的Atom。Atom是一个本身基于JavaScript的现代跨平台代码编辑器,可以任意更换主题或者安装插件以扩展新功能。可以在这里下载Atom。

原理

Bitmap位图对象

Bitmap是CreateJS提供的基础对象之一,用于实现在stage上渲染图像素材。Bitmap可以用图片的路径初始化,也可以用现成的HTML元素(比如已经被PreloadJS加载好的素材)来初始化。

通过stage的addChild方法,可以渲染位图对象。反过来使用removeChild可以从画面上移除已渲染的对象。

x与y位置坐标

x和y表示Bitmap在上层stage或者说容器里面的相对坐标,是大于零的整数。注意对于电脑和手机屏幕的绘图,坐标系和我们常见的数学平面直角坐标系略有不同。编程中的坐标系以屏幕的左上角为原点,然后y轴的方向要反过来。像下面这样。

regX与regY参考点坐标

reg在这里是参考点(registration point)的缩写。regX代表参考点相对于位图左上角原点在X轴上向右的位移,regY则代表参考点相对于位图左上角原点在Y轴上向下的位移。

举例来说,我们希望在stage的正中央显示一个素材。直接把x和y分别设置成stage的宽(width)和高(height)的一半,效果会是这样:

显然这不是我们需要的结果。因为是把素材左上角的原点和stage的中心对齐了,而我们是希望素材的中心对齐stage中心。因此应该同时把regX和regY分别设置成素材本身宽和高的一半,就能得到正确的结果:

scaleX与scaleY缩放比例

顾名思义,是在横轴和纵轴上对素材大小进行缩放。如果设置scale大于1,则是拉伸;小于1,则是压缩。一般没有特殊需求的话,会把scaleX和scaleY设置成同样的值,这样素材就会均匀的放大或者缩小。

面向过程编程与面向对象/事件编程

从本质上来说,计算机的编程都是面向过程的编程。这是因为我们目前所用到的所有电脑都是基于冯·诺伊曼结构(von Neumann architecture),要求中央处理单元按顺序读取和处理指令。当然,指令本身可以有无条件或者有条件的跳转,然后在更高的层面上就可以进行循环和分支等复杂操作。但是究其更本,这一过程是线性的、机械的。

那么为了让程序的开发过程与人们生活的直观感受更加一致,也提升程序本身的可读性与可维护性。计算机科学家们提出了面向对象/事件编程的理论并开发了相关的工具。对这个新的编程模型而言,对象内部含有表述自身状态的数据或称属性,可以有一系列函数或称方法来与外界互动。更妙的是,程序员可以设定对象针对用户的一系列操作事件进行响应。仅当事件在不特定时刻发生以后,才执行对应的操作。当然,在幕布后面,本质上代码的执行还是过程式的。比如事件的响应实质上是由持续不断的循环来实现的。现代微处理器的速度是如此之快,能够间歇性的运行这个循环,定期检查每一个事件是否被触发,而不让用户感到丝毫卡顿。

就我们具体的例子而言,在loadScene函数里,通过循环的方式把每一个物件的mousedown事件(手机触摸屏的点击实质上也是触发mousedown事件)绑定到了onMousedown这个自定义的函数上。然后onMousedown自身根据所触发事件的对象和当前stage里各对象的状态来进行不同的响应。一个明显的例子是当拾起物件时,可以把画面背景切换到模糊的版本,造成视觉上的景深特效。

示例


上图展示了项目源码实际执行的场景。在运行miniweb.exe这个本机服务器之后,即可在浏览器地址栏里输入localhost:8000加载游戏。单击窗口中的箭头按钮后,游戏切换到示例场景。接着第一个物件——石板被自动点击拾起,可以在点击一下查看提示。依次找到三个物件并查看提示后示例场景结束并黑屏。

浏览器里单击F12可以打开调试工具。对于源代码的编辑,可以用Atom File菜单里的Add Project Folder...打开htdocs目录。其中index.html是游戏的载体网页,游戏主程序是src目录下的myapp.js文件。

思考

  1. 我们知道,大家平时是习惯竖屏使用智能手机的。但是对于游戏来说,很多情况下横屏的显示效果要更好。那么怎样来处理原始素材和坐标系,能够直接(指不打开屏幕依据重力感应自动旋转的选项)实现横屏显示的效果呢?对于不同屏幕尺寸,又怎样能确保物件不会错位?
  2. 对于流程较长的游戏,需要有中途保存和之后恢复进度继续游完的手段。可以通过哪些途径(提示:至少有三种以上方案)达到这个目的呢?
  3. 在目前的示例程序里,如果事先知道特殊物件的位置,就有可能跳过既定的流程。那么通过什么办法,在目前事件驱动的基础上可以引入更加有挑战性的解谜流程?
  4. 假定游戏已经完成了。你没有收费的打算,但是希望更多的人可以体验到你的作品,有哪些分发的途径呢?在游戏本身的设计里可以加入哪些元素来鼓励大家分享?

以上就是我们今天分享的案例,欢迎大家登陆网站后下载项目源码,通过实践来加深理解。简单的疑问可以评论在文章下,陈欣老师将会在有空时予以解答。如果对我们的服务项目感兴趣,希望获取陈欣老师一对一指导的,可以加上老师的私人微信zipspeed。

版权申明

本文为AADPS原创,保留著作及出版权利。欢迎非盈利性质的转载,但须保留作者和原始发布地址。

本文的原始发布地址是https://aadps.net/2018/10164.html。我们每年夏季会更新最新美国大学本科申请文书题目和权威院校指南,欢迎把网站加入浏览器收藏夹。

UCSD初见

September 10th, 2014

来到UCSD20天了。

作为三学期(quarter)制的学校,SD要到9月底才正式开学,而开学第一堂课,甚至“晚点”到10月初。由于申请了早到过渡项目(International Triton Transition Program),我提前了一个月来到这里,在国际学生中心的工作人员和志愿者的协助下,熟悉了圣地亚哥和拉霍亚(圣地亚哥的suburb区,UCSD所在地),渐渐熟悉了校园,并在写作课老师的带领下,一周三次学习美国大学本科写作。

虽说这三周除了写作训练,我并没有上更多的课,technically我在SD的学术生活还没有正式开始。但正是这三周的空闲时间,让我对UCSD有了一个相对初步的认识。

环境

先从气候开始说起。作为加州最南端的学校,SD的气候较干燥爽朗,较干燥爽朗,一年之中春冬相对湿润(相对。。),如果在南方长大,不太习惯干燥的气候,刚到那几天同学们的嗓子可能会不太舒服,但很快就会好。夏天不热,连冷气都不需,但每天都是愉快的艳阳高照(can’t live without sunscreen!);听说冬天温度也很适宜,不会有零下,所以总体而言SD的气候还是非常棒的,每天对着明媚的阳光会想要哼一哼歌。

就地理环境而言,校园临海,从Muir College(SD本科六大学院之一)最西端的宿舍走到太平洋(Pacific Shore)也只需要15~20分钟,UCSD世界闻名的海洋研究院就坐
落在那里;在校园里的某些地势高的食堂和宿舍就能看见海,非常赞。校内公车四通八达,校内各处都有车站,坐车到周围的好几个shopping mall都只要10~20分钟,非常方便。

就校园环境而言,SD校园遍布热带植物,还有一条人工阶梯式的小河,很有趣。由于建校于1959年,属于比较年轻的大学,校园里的建筑大多具有现代风格,尤其是飞碟式的图书馆,还有工程学院研究生楼顶上,那个好像从天上落下来的小房子。从校园里某些地势高的食堂和宿舍还能看见海,非常赞。校内免费公车四通八达,校园里各处都有车站,坐车到周围的好几个shopping mall都只要10~20分钟,很方便。不过不得不吐槽的是,SD的校园实在是太大了,我探索了好几天,都没有完全走遍。。据UCSD中国学生学者联合会CSSA说,UCSD主要校园占地面积约5平方公里,约是USC的五倍,UCLA的三倍。。。

上课

在ITTP,我们上的课分为两类,一是以介绍美国文化背景,让国际学生更早适应环境为目的的大lecture,在100人左右的教室;还有一类是15人的小课,由Teaching Assistant指导我们顺利适应美国本科写作要求。这两类授课方式也是本科课堂中最常见的两大形式。在UCSD,大一的基础课,如化学、微积分等,一般是由大课和小讨论会结合。也就是说,一周2~3节教授的大lecture,容纳100人左右;一周1~2节由TA带领的讨论课,将上 lecture的人分成15人左右的组,各自去不同的教室参加讨论课。如果在lecture的时候遇到问题但却没能及时解决的,在讨论课上可以提出来;另外,讨论课的时候TA可能会提供一些额外的材料来帮助理解lecture,所以一定要参加 .

说到这边的课程,不得不说一下选课。在UCSD,两节课之间的课间只有10分钟,所以选课的时候,不仅要注意所选的课时间是否冲突,更要留心两门课的教室离得远不远。会有同学大一没注意,选了两门时间上紧挨着的课,但生物课的教室在校园最西边,而微积分在最东头。。。如果没有自行车/滑板,十分钟是一定走不过去的。。。

还有clicker。这是一种长的像遥控器一样的装置,学生上课前先在网上注册自己的clicker,然后每节课点按clicker来签到、回答问题或是完成quiz。还是蛮好玩的。有的课程,尤其是大课,需要clicker,学校书店就能买到。

交流

三周以来,这边的同学、老师和国际学生中心的工作人员给我留下了深刻的印象:大家都是一副always ready to help的状态。虽说为了考试也练过口语,但真正在全英文环境下交流还是会怯场,但看到大家都这么好接近,我也就完全放开了。只要不谈敏感话题,大家都可以很欢快的聊天。所以完全不用羞涩,如果你太过reserved或是安静,大家反而会觉得你高冷,而不愿和你多交流。。还有很重要的一点,就算是和中国小伙伴一起,在其他国家的同学都在场的时候,还是最好用英文交流,这样更尊重在场其他人的感受,更礼貌。

中国学者联合会

UCSD中国学生学者联合会(CSSA)是UCSD最大的华人学生组织。至今已经有30年的历史了。不得不说,来到SD后我深刻感受到了CSSA像家人一样的爱。首先,第一天来到这里,待在SD参加小学期(summer session)的学长学姐就从SD专程到LA国际机场接机,到了校园后又帮我们move in,第二天还抽出时间带我们去校园外办手机套餐和银行卡。学长学姐们都特别热心,有关学校的任何问题都可以问他们,他们都会耐心的回答。最感动的莫过于中秋节的时候了,怕我们想家,学长学姐还请我们这些初来乍到的小伙伴一起去他们的房子里做菜吃饭,还有现做的月饼,激动难忘!

来SD三周了,我也渐渐适应了这里的气候,环境和大家的交流方式,再过一周ITTP就要结束了,新学期就要开始,期待ing~~~

版权申明

本文著作权归原作者所有。了解更多AADPS学员的第一手感想

本文的原始发布地址是https://aadps.net/2018/8077.html

我与AADPS的缘分

收到NYU的录取通知书的时候,我就知道我的申请季已经落幕了。回顾我的整个申请过程,似乎没有其他同学那样紧张刺激,也没有经历太多的心酸和泪水。我一直在以一种异常冷静和平和的心态面对每一个结果。我并没有比别人拥有更好的活动,更高的标化,这种高枕无忧的镇定自若其实来源于AADPS的陈欣老师和小A老师给予我的每一次帮助。

在我看来整个申请过程是一件特别麻烦的事情。正是AADPS的陈欣老师和小A老师帮我把这个过程化繁为简。其中,我特别喜欢由陈欣老师建立的note系统。我所有的个人资料,每一个申请有关的账号密码,包括各种文书内容和题目都详细的井井有条的记录在我自己的note页面里,我的父母,负责我的老师们以及我自己都可以随时更改里面的内容,并且不同的人的更改也可以用不同的颜色标识出来,非常方便。由于在申请的时候会需要填写大量重复的信息,或者类似的文书,这种时候陈欣老师就会直接用我的个人资料里的信息帮我填写好,帮我省去了很多事情,同时也改善了我丢三落四的毛病。陈欣老师真的是一个非常细心的老师,我整个申请季的资料提交上没有出现过任何差错。

身边的朋友总是跟我吐槽他们中介的各种问题,要么就是像《人民的名义》里的孙连城一样,上班时候庸庸碌碌效率极低,每天晚上定点下班根本找不到人,要么就是由于师生比的失调导致学生排队修改文书,每个人的文书也只能粗略的提几条修改意见自己去领悟。每次听他们说这些,我都很庆幸自己选择了AADPS,我从未遇到过这些问题。我的每一篇文书都经过了陈欣老师的亲自的翻译和修改。我遇到事情总是喜欢拖延,因此,陈欣老师总是早早地就提醒我要写的文书题目,与我讨论出一个适合我的写作方案。 陈欣老师似乎总是在上班的,无论什么时候什么地点,当我遇到问题求助时,他总是会以最快的速度回复我。有时候我写完文书已经快要晚上12点了,陈欣老师却依然耐心的帮我修改。这样的工作态度让我有一种安全感,并且从容不迫的度过了每一个deadline。

最感谢的是陈欣老师帮我准备的活动。因为我是想申computer science专业,在我第一次来到AADPS时就提出了用java做一些程序的活动。但是要知道当时的我并没有任何编程基础,全都是陈欣老师利用自己的时间手把手教会我的。

总之,整个申请季,在AADPS的保驾护航下我顺利的获得了满意的offer,也不愧于自己的努力和付出。

版权申明

本文著作权归原作者所有。了解更多AADPS学员的第一手感想

本文的原始发布地址是https://aadps.net/2018/11183.html

靠谱的留学机构

申请季结束,自己孩子拿了个满意的offer。开心之余,回想自己寻找留学咨询机构的经历,写出来给大家分享。本文没有受陈老师的邀请,也不是陈老师的的水军。仅是希望更多申请大学的孩子能少走弯路,找到靠谱的留学咨询老师。


距离孩子申请大学还有两年多的时间,我开始考虑是否要请机构来指导孩子完成大学申请。工作之余,我逛各种留学论坛,太傻,尚友的精华帖都仔细看过,这些论坛里免费的大学申请网络课程也看过。做足了这些功课,我对大学申请流程了然于心。至此,我认为大学申请是个规范的流程,只要自己足够用心,不吝惜时间,不需要借助任何咨询机构也能完成申请程序的流程。

大学申请的各个步骤都顺利,直到开始申请文书的准备。这期间,我看过网友对各种留学中介机构的控诉,也仔细研究了留学论坛里网友的DIY的建议、攻略。我认为DIY文书可以锻炼孩子的能力,我鼓励孩子自己准备文书,不借助任何咨询机构。我给孩子买了诸如《哈佛成功申请文50篇》、《美国大学申请文章写作解析》各种文书指导,但是我和孩子读过之后,感受是更加迷茫,无所适从。我意识到大学申请文书,不仅仅是英文写作,还有文书选题的切入点,文风的把握,这些不是读几篇范文能解决的。申请流程等信息可以通过百度,某论坛,留学论坛来获得,而写作策略与水平不是能突击提高的。

迷茫之后,我开始重新考虑DIY的风险。毕竟,大学申请是孩子人生当中一次重要的选择。自己所有关于大学申请的信息均来自网络,网友的水平不得而知,信息的可靠性难以考证。虽说完全DIY能够锻炼能力,大学申请失误的代价是昂贵的。我重新开始考虑选择留学申请机构。

周边的有孩子留学的同事亲戚选择过有名气的留学咨询机构并推荐给我。各种调查之后,我对这些大牌留学机构存有疑虑。留学申请服务中最重要是的文书指导老师,而一些机构推荐的年轻文书老师自己没有留学经历,我很难相信他们对留学申请有深刻的体会,而那些机构中金牌文书老师收费翻倍。一次,在网上闲逛的时候,我注意到AADPS陈欣的博客。不同于其他博客的复制粘贴或者转载,陈欣老师的博客内容大多有感而发,美国大学申请策略的博文见地也非常独到。我怀着浓厚的好奇搜素了陈欣老师的履历,逐条阅读陈老师在某论坛中对留学申请问题的回答。我惊奇的发现陈欣老师满足我对申请老师的全部要求:有在美国的留学经历,在国内某大牌机构多年的从业经验,过硬的英文文字表述能力,最难的是有理工科的教育背景。(貌似我接触过的留学申请顾问很少有理工科背景啊。我相信只有自己在理工类学科研修过,才有资格指导理工大学的申请。)

后面的故事估计大家都猜到了:我电话联系了陈欣老师,如愿为孩子请到了一位认真负责的师长。我很庆幸,通过陈老师的帮助,孩子拿到了理想的offer. 我也很欣赏陈老师辅导孩子的文书的写作方式,没有全部包办,而且给孩子适当的指导,让孩子的写作能力有很大的提升。我现在已经习惯性关注AADPS的公众号,时时看看推文,很多推文对留学的孩子非常有帮助。

总结我对选择申请留学机构的建议:

  • 如果经济条件允许,请一个留学申请的咨询机构是必要的,毕竟,大学申请的试错成本太高。
  • 机构不在大小与名气,重要的指导老师的能力、经验和阅历。
  • 隔行如隔山。文书指导教师最好有着你申请专业相关的研究经历,这样的老师对专业的认识全面,对专业申请的时候才能给出最合理的建议。我个人对这点非常看重。

版权申明

本文著作权归原作者所有。了解更多AADPS学员的第一手感想

本文的原始发布地址是https://aadps.net/2018/11143.html

小物理学家的申请经历

作为一个sat1980和托福103的人,我本在申请完后不抱太大希望能录到满意的学校,结果我被录到了UCSB的College of Creative Studies。我也是惊呆了!

在如此不好的标化成绩下,我想为什么我还是能录到前五十的7所学校,还能被这个学院录取。所以才有了后面这几点我想啰嗦一下的事情,希望对大家能有点滴帮助。

首先你要好好看!我知道有一些人没有申这个学院是因为他们根本就没看见!所以未来的同学们要注意这点啊。

虽然我的成绩如此之渣,但是我的活动还是很给力的。我的活动就两个主题:喜欢物理,热爱运动。想来上高中以来,坚持了三年的事情也就是这两件。物理方面,由于高二下之前我还是一个高考党,我从高一开始一直上竞赛班。对高中物理知识铺垫完毕后我参加了一个理论物理学家班浏览了一遍四大力学。申请季之前,物理方面我的主要成就就是获得了2014年中国青年物理学家锦标赛(CYPT)的第六名(这不仅是我的物理方面的主活动之一,也是common essay的素材来源)。与此同时,我每周也在与教练练习乒乓球,并在高一下的时候组织了学校的乒乓球"球王争霸赛"。高二上时,也带领班里飞盘队拿了年级冠军。但这些还是不够。时间来到六月底,在与陈欣老师的第一次谈话中,我定下了暑假的活动计划:中科院的实习以及青岛鲁能的乒乓球集训。这样就可以更加突出这两条主线,也为各种essay打足了素材。(还拿到了导师和教练的推荐信~)我并不是像那些活动大神神马的到处比赛,组织社会上的活动,长期志愿服务等等,我只是干着自己喜欢干的事情,一直干。

活动准备完,我就跑到冲分班去了...过程惨烈,结果也不尽如人意。而且我的sat作文是6分...6分啊!我的文书啊!要我来写出精彩的文章估计是不可能得了。所以文书方面采用的策略是,我写出文章的(不能看的)初稿,火速发给陈欣老师,(老师改完后发回来,由我和我妈一起看,然后改一改,再加点建议后火速发回去,讨论)...重复括号内步骤。我不擅长写文章,但我擅长逗比...所以初稿我尽量写的有趣一些(虽然最后大部分由于文笔不行被删掉了),并且提供尽量多的细节供修改的人筛选。这时候大量活动就体现出好处来了。commom里面我就用了cypt和中科院实习的部分内容。而负责我的文书的陈老师又是物理系毕业的,能体会并写出我作为一个物理爱好者对事情的独特感受。策略,大量活动,好的老师,也是我申请很成功的一个关键。

当然面试是少不了的。要说服招生官这个只考了不到2000分的孩子是个好孩子是一件比较困难的事情,所以面试成了一个非常好的途径。我选的是InitialView这个面试机构,因为感觉比较轻松,起码没有鬼畜的打分嘛。这个部分就需要自己多练了。写稿子,改稿子,背稿子。正式面试之前还接受了陈老师的一轮“鞭策”。“可以加一些肢体语言”陈老师挥舞着双手说。“你可以身体前倾一些表示你很感兴趣”那段时间,除了说话,我基本就处于来回转头并“嗯嗯”的状态(不要问为什么我回“嗯嗯”对方还在继续聊)。面试,其实也就是聊天啦,虽然环境布置一点都不像聊天的场景,而且会有一些压抑的感觉,不过一和面试官聊起来就会忘掉这些。当然,准备不完美的话必定会遇到自己不熟悉的问题,比如我竟然忘了准备“你们学校是什么样的”这个问题。当然这时候就按自己想说的说就好,都是刷过托福的嘛。当然到自己的主场的时候(熟悉的问题)就可以发挥了。这个时候都不用注意什么,你自己就high起来了,自动开启两眼放光和手舞足蹈buff。这个面试,我发给了所有接受的学校。

最后,我还想说下申请后的事情。在申请之后,我还是干着自己喜欢的事情。毕竟在做那道经典的作文题“是享受现在还是为将来做准备”的时候我第一印象是享受现在。这让我并没有接着考SAT(我不知道这样是不是一个比较好的选择),并没有去学AP课程,而是和我的小伙伴们一起参加了2015年的CYPT。这占用了我第一季度的大部分时间。这对之后CCS的申请是有很大帮助的。这体现在两方面:第一,CCS在联系我说我简历中的内容有什么更新的时候,我可以自豪的回一句CYPT全国第二。第二,CCS问我你学过Calculus吗?我想这在这个比赛里是家常便饭啊,我就随便扔了一个需要解简单微分方程的题目的理论构建过程过去。这封信也成功的让我敲开了CCS物理系的大门。

其实并没什么秘诀。David Gross教授(是UCSB的哦!虽然是挖来的)在背景开分享会的时候我去了一趟。教授给我们年轻人的建议就是Aim High and Follow Your Heart。目标要高,所以我也申了前10的大学,并且每一篇文书都认真写,虽然知道录取几乎不可能。追随自己的心,所以我一直一直在物理的海洋里遨游。这样一定不仅会让招生官看到一个自带圣光的你,也能让你慢慢看到自己身上的圣光,我觉得后者,是更重要的。祝大家都能拿到自己满意的录取结果喽~

版权申明

本文著作权归原作者所有。了解更多AADPS学员的第一手感想

本文的原始发布地址是https://aadps.net/2018/7701.html

鱼与熊掌——对于选择学校的一些想法

经过慎重的选择,我打算毕业以后去宾州州立大学帕克分校(以下简称PSU)就读。作为一个普普通通的美高学生,我的托福和ACT成绩都算不上高,能在2017年的申请季收获这样一个结果,我非常满意。对于我这种标化成绩处在不上不下的尴尬位置的同学,综合各方面选择适合自己的学校显得尤其重要。所以我在这篇文章里想主要想谈一谈我的对于选择学校的一些感悟。

说实话,在之前等offer的时候,我并没有感到十分焦急。因为在很早我就收到了我的我的第一封offer,而且就是PSU的offer。我在早申阶段并没有填ED,而PSU就是我EA的第一选择。虽然之后的RD阶段还收到了一些排名更高的学校的offer,但是综合考虑来看,我还是觉得PSU最适合我。

这有很大一部分要感谢陈欣老师在选校方面对我的建议。在敲定申请的学校之前我和陈老师聊了很久。即使我在美高上学,对很多大学都略有了解,但是在资源整合上还是远远不及陈老师专业。陈老师对各个学校都有比较深刻的了解,能从学术环境、地理位置、录取条件、硬件设施等等各方面帮我还原一个比较全面、客观的大学面貌。

综合我的各方面的因素,陈老师给我推荐的第一个学校就是PSU。时间证明,这个选择是绝对正确的。在offer基本上都到齐了以后,我对每个给我offer的学校进行了更加深入的了解和比较;最后发现,最适合我的果然还是PSU。哪怕是综合排名高上PSU不少的学校,可能在专业、学费或者地理位置上或多或少的不如PSU。至此,我更加佩服起了陈老师的专业性和先见之明。

其实,最让我感激的还是陈老师的对我的耐心。我是一个非常纠结的人,看到什么学校都想要申,生怕自己到最后没有大学读。但是哪有人有这么多精力可以把每个学校的文书都写一遍?如果我一个人来申请,我肯定会如履薄冰,半天也拿不定主意。即使陈老师给了我非常详实的建议,我还是瞻前顾后,问出许多即使陈老师也不甚了解的极其偏门或细致的问题。但是陈老师从来没有流露过一丝不耐烦,每次都是尽其所能的来回答我的疑问。

其中我印象最深刻的一次,是我想知道PSU每年获得的捐款是多少。就这个疑问我搜索了很久还是没能得出答案。将这个疑问告诉陈老师后,他也没能立即给出我答案。我以为这事可能就这么过去了,但是没想到一天以后,陈老师经过仔细的搜查,终于在 Endowments Currently Greater than $1 Billion 的 List 上找到了PSU收获的捐款——PSU在2015年度所收获的捐款为36亿美元。

经过此次以后,我非常信任陈老师给我给我做出的建议。而最终申请的结果也印证了我的想法。我对于选择学校的建议是,虽然一定要细致的挑选学校,但是也不可本末倒置,花了太多时间和精力研究太多太杂的大学,反而忽略了文书的雕琢和对确定要申请的大学的深入了解。我所做的决定是在选择学校方面,一定程度上听取我所信任的专家——陈欣老师的建议,并将大部分的精力放在有限的几个我所要申请的几个学校。非常幸运在申请的时候能有陈老师这样的耐心的专家从旁指点,最终收获了满意的结果。

版权申明

本文著作权归原作者所有。了解更多AADPS学员的第一手感想

本文的原始发布地址是https://aadps.net/2018/10964.html

历尽波折、修成正果——UCLA录取感言

拿到UCLA的录取通知书后,心里感慨万千。最多的还是感恩——感恩这个申请季、感恩能在申请季里能够遇到AADPS的陈欣老师。

初识AADPS是在11月底,离加州截止日期只有一周多的时间。当时自己的状态就是无头苍蝇,因为之前合作的中介给我改文书不仅拖稿严重而且文书的水平远远不够我的预期,让我一度觉得迷茫和无所适从。后来在网络上搜索到了AADPS的文书和院校指南,刚开始也是抱着试一试的心态,但收到老师给我改的第一篇文书,我便认定了陈欣老师。记得那天下午,我给陈欣老师通电话,讲了我手头的素材以及我的一些初步想法。凭着丰富的经验,老师一针见血的指出了关键所在——把我夏校上课的经历上升到对critical thinking的深度探讨。就这样,本来有些跑偏但是自己却不知道如何纠正的文书被拉回到了正确的轨道上来。

之后常规申请阶段,老师给我改的文书,没有一篇让我失望的。对英语的熟悉程度就不用说了,感觉陈欣老师了解的领域非常多,不管是我写why eassy或是对某个文章、专业的学术探讨,老师总有他独特的见解,融合到文章里,便凸显出我的独特之处。在老师的指导下,我也逐渐摸索出了一些窍门:申请学校最主要的还是去找自己和学校的契合点。学校的特点在官网上很难看出来,最主要的还是去扒一些网站,看看学生是怎么评价这个学校的,再描述自己的时候找出自己与学校相同的气质,体现在文书里,就是亮点。讨论文书的过程中,陈欣老师非常负责,而且有耐心。就算是下班时间当我找老师探讨文书方面的事情时,老师也会和我一同讨论到我解决问题。因为我本身是对文书要求非常高的人,每篇文书总会改来改去,陈老师也会陪着我一篇一篇过文书,直到我们双方都觉得无可挑剔了,才去交稿。

所有文书递交后,我也没让自己闲下来,忙着在节假日的时候给学校发祝福和照片,又给一个大学写了love letter。陈老师也是有求必应,以改文书的认真态度,帮助我一字一句审核了这些内容。

出结果之前,我就跟我爸妈讲,不管这次最后录得怎样如何,这次申请和文书写作的经历都是我宝贵的财富。不仅是在按时完成各项繁琐工作时锻炼出了我的细心、耐心、恒心,更重要的是从陈欣老师那里学到了怎么去分析一个事情,怎么去锤炼、拔高自己文章的主题和结构。

那天是3.18号,也是我永生难忘的日子。看看自己的申请季,虽然之前栽了不少跟头、有过迷茫和无所适从,但是拿到结果的那一刻的喜悦回报了中间所有的曲折和努力,也是觉得自己非常幸运能和AADPS有这么一段缘分。

PS:虽然合同上完全没有提及,但是陈欣老师也仔细认真的抽出时间指导了我后续荣誉学院的申请,也同样被顺利录取啦!

版权申明

本文著作权归原作者所有。了解更多AADPS学员的第一手感想

本文的原始发布地址是https://aadps.net/2018/10908.html

【工程与计算机】编程X艺术:听歌识曲

近年来,美国大学的计算机(Computer Science, CS)和电子工程(Electrical Engineering, EE)专业录取要求随着申请人数的增加逐渐水涨船高。但另一方面,国内的相关工程教育却基本是缺位的。为了弥补这种差距,陈欣老师在过去的几年里,通过我们的规划项目辅导了一批学员。通过身体力行的学习利用专业知识解决生活中的问题,他们走出了自己的舒适区。事实证明,学校对这份努力也是相当认可的。

为了帮助到更多的人,陈欣老师在此整理一些往年的成功项目经验,并同简化过的项目源代码一道与大家分享。希望能够抛砖引玉,给同学们一些思路和帮助,为之后的申请助一臂之力。毕竟短期看,CS/EE是在美国本土就业的捷径,能够较为迅速的收回教育投资;长远看,CS/EE的相关技能也能在诸多行业里起到点石成金之效。

问题

AADPS的一位学员恰巧正在同时自学吉他和编程。作为一名初学者,他遇到的一个很大的困难就是很多网上的视频教程没有对应的曲谱。在一番思索之后,他觉得可以利用编程知识,为自己开发一个趁手的专业工具,通过分析音乐音频的方式自动生成对应的曲谱。

工具

Java

Java是一种基于类的面向对象通用编程语言。藉由虚拟机技术,编译好的Java程序可以直接在不同的计算机平台上运行。目前Java是最流行的编程语言,是几乎所有类型的网络应用程序的基础,也是开发和提供嵌入式和移动应用程序、游戏、基于Web的内容和企业软件的全球标准。

TarsosDSP

TarsosDSP是一个用于音频处理的Java库,其目标是为实用的音频处理算法提供一个易于使用的纯Java接口并免去对第三方包的依赖。在设计上,TarsosDSP力图在有能力完成实际工作和足够简明以演示数字信号处理(digital signal processing, DSP)算法之间达到一个平衡。内置的算法包括打击乐音符起始检测器(percussion onset detector)、一系列音高分析算法、Goertzel双音多频解码算法(Goertzel DTMF decoding algorithm)、时域拉伸算法(time stretch algorithm)、重采样、滤波器、简单合成器、音效和变调算法。

JFreeChart

JFreeChart是一个纯Java绘图库,让程序员可以在他们的应用中嵌入专业级的图形。绘图库有一致且被充分说明的接口,支持数十种不同的图表类型,以及输出到应用程序界面、图形文件和矢量图文件的能力。

Eclipse


Eclipse是日前最流行的Java集成开发环境(integrated development environment),由一个基本的工作空间和一个发达的可定制插件系统组成。Eclipse本身也由Java编写,其前身由IBM公司的团队开发,但很快就成为了一个完全开源的项目,由非营利的Eclipse基金会主导。对于本项目,可以使用Eclipse标准版

原理

线程

线程(thread)是操作系统能够进行运算调度的最小单位。通俗的说,我们在计算机上执行的每一个程序,称为一个进程(process),而进程的实际执行则会派生出至少一个线程。同一进程中的多条线程将共享该进程中的全部系统资源,但线程会有自己的调用栈、寄存器环境和本地存储。

对于目的比较简单的程序,单线程模型是完全没有任何问题的。但是对于进行实时多媒体处理的程序,或是需要与用户进行直接且复杂交互的程序,多线程的设计模式就极有必要了。举一个最简单的例子,如果把在屏幕上不断刷新数据的操作和从文件系统里读取数据的操作放到一个循环里,一旦文件系统由于负载较大或者文件被占用的情况而无法及时完成读取,数据的更新也会一并中断。因此较为合理的思路是把这两类操作放在各自的线程里,在正确设计的前提下,它们就能并行不悖的完成各自既定的使命,不让用户有程序失灵的感觉。对于早些年单CPU的情形,不同的线程将轮流分配到CPU的计算时间。但对于现在基本已经普及的多核CPU或者实现复数逻辑处理器的Intel超线程(hyper-threading)技术,不同的线程是可以同时并行运行的。这也是单个程序能充分利用多核CPU计算资源的主要途径。

Java线程


上图展示了一个Java线程的生命周期(life cycle)。在我们自己的程序里,用UpdatePlot这个子类实现了Runnable这个接口。具体而言,唯一需要重写实现的函数是public void run(),即是线程所实际执行的内容。之后在程序实际运行时,则用UpdatePlot的一个实例myPlot来启动线程new Thread(myPlot).start()。注意在设计中非常重要的一点是,对于线程中持续不断的循环或者耗时较长的操作,一般需要定期调用Thread.sleep(time)来将本线程暂时中断。此时操作系统即能将线程挂起,把CPU资源释放给其他需要执行的线程。如果没有加入中断操作或在此处有一些不理想的设计,很容易造成线程占用全部CPU核的情况,但这在大部分时候是没有必要的。

对于Java本身来说,设计上是不推荐直接从外部终止线程,而会希望run()函数执行完既定工作并自己正常结束。示例代码里通过myPlot来派生线程进行图表数据的定期更新。但事实上所使用的TarsosDSP库同样会内部派生用于音频处理和回放的线程,下面提到的Java图形界面库还会派生用于处理GUI事件的线程。

图形用户界面

顾名思义,图形用户界面(Graphical User Interface, GUI)是相对于早期终端命令行界面(Command Line Interface, CLI)而言更加友善的人机交互模式,也是现在个人电脑普及的最重要因素。图形用户界面可以让用户直观的通过鼠标甚至触屏与屏幕上的可视化元素互动。当然为实现这一目标,无论是在硬件上还是软件上都提出了更高的要求。

Swing

Swing是目前Java最主要的图形组件库(GUI widget toolkit),基于更早的awt(abstract window toolkit)之上、但纯粹由Java实现而非利用本地操作系统所提供的图形组件。这些特性让采用Swing的程序可以更加方便的跨平台运行,且系统里还内置了一些主题,让组件的风格可以与本地系统大致保持一致。

相对于其他一些采用标记语言的GUI解决方案(比如微软早年的MFC和新的WPF乃至UAP,以及安卓和苹果应用开发),Swing则采取了相对而言比较抽象、但不引入额外成本的基于组件嵌套的设计模式。一般来说,程序员不会精确设定每个组件的实际坐标,而是将这一任务托付给系统的布局管理器(layout manager)。以下是我们用到的一些重要Swing组件:

  • JFrame:通俗的说就是我们运行程序时见到的窗口。注意窗口本身其实是和程序的执行没有关联的,但在setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE)以后,关闭该窗口也意味着终止程序。
  • JPane:是加载图形组件的容器,也可以嵌套子容器。对于复杂的布局,我们需要利用容器的组合来实现所期待的效果。其他还有JScrollPane、JSplitPane、JTabbedPane等来实现滚动条、分屏、标签页等效果。
  • BorderLayout:因为我们的窗口相对简单,所以只用到了这个最基本的布局管理器。可以把组件/容器安插到布局管理器预制的各个槽位里。在程序运行时,布局管理器将会根据窗口的实际大小来调整各组件/容器的大小。其他的布局管理器还有BoxLayout、GridLayout、FlowLayout等,下图展示了它们的效果。
  • JRadioButton:单选按钮。在程序里组合起来用于选择输入音源。
  • JCheckBox:复选框。在程序里用于确认是否回放。

当然,我们的图表本身也会生成ChartPanel来插入到上级的JPane里。

事件与监听器

之前已经大致说明了如何用图形组件组合成为应用的用户界面。不过用户界面的最重要一点就是响应用户输入的能力。事实上,相当大一部分Swing组件是可以接受事件(event),并注册动作监听器(ActionListener)来进行对应的处理。事实上awt本身就是一直在执行一个不间断的循环,不断获取用户的交互事件并执行对应的监听器。

对于组件内嵌在主类里的简单程序,直接用监听器一般就能执行期望的操作。但我们的应用里是把音源选择的部分单独封装成一个类。这个类和主类的组件间通讯是通过firePropertyChange和对应的PropertyChangeListener来实现的。

主音高检测

主音高检测其实是一个相对复杂的数学问题,在这边仅做一些定性的、概念上的说明。对于一般乐器实际的发音过程,是由和所演奏音符一致的基频以及一系列以基频为整数倍的倍频所组合而成。基频和倍频的独特组合比例从人的主观感受上来看就是乐器的音色。获取音乐的主音高,就是要在排除倍频和音乐中其他干扰的前提下,把这个基频的频率确认出来。

获取基频的主要方式有两大途径。对于频域(frequency domain)途径主要的思路是将波形进行傅里叶变换(Fourier transformation),直接分解成由不同频率简谐波所组成的频谱,再通过基频倍频之间的比例关系推算出基频。对于时域(temporal domain)途径主要的思路是利用自相关函数(autocorrelation function)提取出声音波形里有效的周期性信息作为基频。两类方法各自适用于不同的情形,在实际应用中也有将它们组合起来的做法。

我们当前采用了基于时域的McLeod法(McLeod Pitch Method, MPM)。比较有意思的地方在于归一化方差函数最大值阈值k的设定,以及方差函数计算的优化,有兴趣可以细读这篇论文

示例


上图展示了项目源码实际执行的场景。在选择对应的音源输入后,分析器就自动开始工作。对于笔记本一般可以选择内置的麦克风,而台式机可能需要外接麦克风或者带麦克风的摄像头。下面可以勾选是否回放麦克风的输入,如果只有外放而没有耳机的话,建议关闭这一选项。

窗口中部和底端的两张实时绘制的折线图分别展示音强(loudness)和主音高(pitch)随时间的变化,单位是分贝(dB)和赫兹(Hertz)。

思考

  1. 如何根据音强和主音高的数据生成曲谱?
  2. 在实际分析音乐时,数据会因为各方面的干扰和音乐本身的特性有一定的波动。如何在硬件和软件层面排除这些波动?
  3. 如何处理并正确分解和弦?
  4. 如何在分析一段音频后能迅速在一个曲库中找出对应的乐曲?

以上就是我们今天分享的案例,欢迎大家登陆网站后下载项目源码,通过实践来加深理解。简单的疑问可以评论在文章下,陈欣老师将会在有空时予以解答。如果对我们的服务项目感兴趣,希望获取陈欣老师一对一指导的,可以加上老师的私人微信zipspeed。

版权申明

本文为AADPS原创,保留著作及出版权利。欢迎非盈利性质的转载,但须保留作者和原始发布地址。

本文的原始发布地址是https://aadps.net/2018/11671.html。我们每年夏季会更新最新美国大学本科申请文书题目和权威院校指南,欢迎把网站加入浏览器收藏夹。

学在范德堡是怎样一种体验

大一时觉得所在大学不甚合意,于是决定转学。申请过程中选择了约翰霍普金斯PhD的陈兄,因为相信一个作为本就在顶尖学府中学习生活过多年的人,能有更深入的了解和切身体验。后考入范德堡。不得不提一句,两个学校名次相差二十名,其学生以及教学水准的本质差距还是很大的。范德堡呢,人人都是学霸 。某也见过许多转学生,一转来就询问:纳什维尔有什么好玩的,有什么好看的,那么范德堡真的不适合你。第一,纳什维尔真的没有什么好玩的,第二,范德堡学习很忙,很累,并没有那么多时间玩。

关于申请问题,这里闲话几句。对于钢琴小提琴这种人人都会的技能,能够让你standout的只有恒心以及性格,e.g. 钢琴十二年,时常在各种大小场合表演等等。中国学生通常觉得个人比赛中,尤其是学术竞赛中,获得奖项是很令人印象深刻的经历,但前十五学校不会这样认为。除非是国际奥林匹克数学竞赛一等奖这种例外,否则他们想看到的只有你是如何与队友合作帮助你的“团队”获得第一。成绩不是非常重要,或者说:如果你成绩很好但除了学术方面的成就外没有拿得出手的经历,那么你一定进不了前十五。如果你的成绩不算非常好但除此以外有很独特(并把独特发挥到杰出)的能力,那么前十五可以有。

对于范德堡,它的地域很独特,属于乡村小镇,有些人喜欢,有些人不喜欢。当然作为大部分从中国北京上海这种熙熙攘攘的大城市出来的学生,许多人都会表示不喜欢。对此我的评价是范德堡很安静,可以陶冶性情。而这种陶冶可以在之后的人生中有很大帮助。你能从这里得到的,和从纽约市中心的哥伦比亚得到的,是两种不一样的四年。范德堡和很多其他前十五学校不一样的,比如免申请费,四年住校,学费问题(一会细述),以及不管是单人间,双人间,三人间或者套间,房费都是一样的(和免申请费一样,为了平等,让贫困学生也能住和富有学生一样的宿舍)。这其中的种种让我在申请中和申请后都感受到了最大的善意,使得我最后选择了范德堡。范德堡要求学生有广博的学识,最主要的文理学院要求学生必须要上至少七个系的课程,除了自己本身的专业之外,必修数学,科学,人文,美国文化,世界文化等才可毕业。同时,为了鼓励学生多学多看,上4~6节课的学费是一样的,不像其他学校,多上一个学分就要多交一个学分的学费。因此导致,抱着不上白不上的占便宜心态,很多学生(包括我)都会选择每学期上6节课,导致课业很重,学习很累,学习完了很满足(finger crossed)。范德堡近年对中国学生有扩招的趋势,我们这届只有二十左右的中国学生,然现在的大一约有九十多人。当然还是不要忘了看去年的录取率。范德堡的教育学院,医学院,全美都名列前茅。所有本科学生中一半乃至更多的学生都会double教育学院的HOD专业,类似于人力资源,很多金融巨擘都会专门点名招收此专业的学生。对于想学商的学生,范德堡有金融硕士(你会发现很多藤校并没有)。好像透露了太多内幕,该回归沉默了。

当年在陈兄的帮助下来到了范德堡,今年申请研究生过程中,陈兄作为朋友身份也多有建议。经过多番考虑,明年会去康奈尔读商。同学们出路大多不错。希望明年看到你出现在范德堡~

版权申明

本文著作权归原作者所有。了解更多AADPS学员的第一手感想

本文的原始发布地址是https://aadps.net/2018/10905.html

康奈尔申请心得

能够被康奈尔大学的文理学院录取,对我而言,绝对是个惊喜,因为我的标化考试成绩并不占优势。好运气加上在文书中表现出的和学校理念的契合,帮了我很大的忙。

整个申请对我来说就是一个不断了解自我,不断了解学校,最后选择一个最适合的切点的过程。在我刚刚开始通过网络,找到AADPS并加入他们的美本申请服务的时候,我是很茫然的。自己无非是一个普通的中国女孩,容易沉默,有点小兴趣,有些小活动,在课内表现还不错。但如何定位自己,如何将自己充分地在文书中展现出来,都是我十分困惑的地方。

AADPS的老师帮助了我很多。在两次的brainstorm中,陈欣老师很耐心地从多个方面帮我发散思维,从兴趣爱好,到所遇到最尴尬的事,最有成就感的事……慢慢地,我可以把我内心真正的想法讲述出来。我的common主文书讲述的就是我自己生活中的困惑,在文书修改的同时,我也对自己进行不断的反思和改变。当文书最终定稿的时候,我的困惑也找到了合适的解决方法。

在Why major 和Why college文书的写作上,陈欣老师更是给了我大力的帮助,不仅是在遣词造句上,更是在与学校主旨的契合上。如何让生物专业的主题突出又不失新颖,如何能够在表达自己的同时展现出对文理学院多元化知识的渴望?陈欣老师敏锐的洞察力还有广博的学识发挥了作用~根据我的家庭背景,陈老师找到了中药这个很适合而且很新颖的切入点,还建议我加入屠呦呦研究员获得诺贝尔奖的元素,使得专业文书从一个独特的角度表现了我对于植物、人类和自然相互关系的思考,既符合一个高中生对于周围世界的真实感知,又不失科学性和严谨性。文书中,陈欣老师还引用了圣经故事,令我十分惊艳,感觉文章妥妥地上了一个高度。

我还参加了康奈尔的校友面试。记得北京那一天下了很大的雪,陈欣老师依旧早早地到了约定的地点,为我做模拟面试。也正是在那次模拟面试中,陈欣老师指出了我许多专业名词的漏洞,并帮我分析了回答问题的结构。在他的提醒下,我做了充分的准备,并和康奈尔的校友共度了快乐的40分钟。面试给我最深刻的感受是,互相的交流是最重要的,不是自说自话,而是认真倾听,思考,讨论。只要真诚、乐观、对学校热爱,就可以留下不错的印象。

再回顾我的康奈尔申请,我想收获的远不止于一个心仪学校的offer。

版权申明

本文著作权归原作者所有。了解更多AADPS学员的第一手感想

本文的原始发布地址是https://aadps.net/2018/8806.html