持续学习促进技术成长。不久前,领科教育上海校区优秀学生叶宇恒独立开发出一套语言支持工具!已参与软件著作权的申请。接下来,我们一起去认识这位编程少年和他开发的编程工具。
AS-5叶宇恒是一位酷爱编程的少年,已有5年的编程经验,在2022美国计算机科学联赛全明星赛中荣获全球个人铜奖、全国个人金奖和全国团队铜奖。除了计算机竞赛,他在物理、数学等世界性学术竞赛中也屡获佳绩。
编程工具的生成
叶宇恒编写的是怎样的一套编程工具,有哪些功能呢?叶同学对此做了详细地介绍,“很荣幸为大家介绍我的这套编程工具。这是一套为支持CAIE伪代码的运行所构建程序,它是基于c#、typescript语言编写的。它有四个主要功能,一是可以将伪代码直接在计算机上运行;二是支持在VSCode内使用配套插件对代码进行高亮与提示补全;三是任何语法错误将在编辑器内直接显示;四是有较为直观的报错信息提示用户。
当问及编写这套编程工具的初衷是什么,叶同学说是为了帮助大家提升编程学习的便利性和效果,“修CAIE计算机的同学会接触到一种CAIE创建的虚构语言(伪代码),但一直没有对应工具能在计算机上直接运行这些代码,导致可能忽略一些语法或者逻辑上的问题。因此,我希望能够通过编写一套工具能更好的帮助大家,能为同学们提供直接在计算机上方便编写伪代码的功能,且能自动分析代码,检查语法正确性,并且及时发现逻辑上的失误。其内置的代码补全也有利于加深对语言的印象与记忆。”
编程从来都不是容易的事,需要用到物理、数学、计算机等等的知识,并综合运用这些知识来解决一个实际问题。在编写这套语言支持工具的过程中,叶宇恒同样遇到了一些挑战,“实现一套语言的运行时以及相关套件是我多年前就有的想法。今年,在Darren何老师的建议和指导下,我首次尝试独立编写完整的语言支持工具。虽然有几年的编程经验,但在编写过程中,还是遇到了不少意想之外的问题 :首先是项目结构的确定,创建初期结构变换频繁需要经过多次尝试;等待后端程序大致搭好后还需要学习VSCode插件编写,为此,我利用业余的时间查阅了大量的网络资料,最终实现了语言支持插件的功能;还有一个关键点是让我感触最深的是,一个好的编程工具,不仅仅在于功能的实现,还需要考虑到用户的体验,让工具的使用过程更加人性化 。”
对于叶宇恒来说,尽管完成这套语言工具的过程困难,但收获满满,“项目的编写过程使我加深了对编译器原理的理解,使我了解到开发软件的一套流程,也让我体会到了通过编程帮助他人带来的成就感。
谈学习经验和规划
在今年的CAIE大考中,叶宇恒取得了IGCSE计算机科学A*的好成绩。问及如何才能学好编程,叶宇恒建议既要重视课本中的基础理论知识,也要重视编程实践,以及持续自我学习,熟悉各种编程概念和语言。
对于刚升入A Level阶段的同学来说,选择大学专业成为首要问题。谈到对于当前的学业和未来的升学规划,叶宇恒说道:“我觉得计算机工程是一件非常有意义的事,未来希望能在计算机软件工程方面有所发展。目前,我也在为实现这个目标而努力,已经学习了部分编译原理,在网络、AI使用、硬件编程、软件及游戏开发方向都有所接触,还利用业余时间制作了一些小项目,和计算机相关的领域我都有兴趣尝试。最近我正在为USACO竞赛做学习准备,希望能和有同样爱好的同学一起讨论学习。
指导老师的评价
一般来说,热爱编程的人具有逻辑严密、思路清晰的特点,这在叶宇恒的身上得到了印证。在访谈中,了解到他能很快地理解问题的本质,并清晰地阐述回答。同样,叶宇恒的指导老师Darren He对他给予了很高的评价,“叶宇恒同学学习刻苦认真,善于在不断挑战困难中获得自我的成长,他不仅在IG时期学习成绩始终是保持在A*,而且在去年美国计算机科学联赛(ACSL)中,斩获了中国区金奖和全球铜奖的佳绩。在待人接物上,叶宇恒在课堂上积极配合老师讲解题目,帮助他人解决实际编程困难,受到了同学们的认可。暑假期间,他积极探索,并成功开发出符合CAIE Pseudocode语法的插件平台,这个平台大大方便了学生们学习和练习CAIE计算机科学的Pseudocode编程,也一定程度上减轻了老师的教学负担,提高了教学效率。”
叶宇恒编写的语言支持工具当前处于专利申请中,等到获得计算机软件著作权和完成测试后,将会上线到应用平台,借此能实现他想帮助更多同学高效学习编程的梦想。我们希望叶同学将好学钻研的态度坚持下去,正如何老师的寄语那样,“希望在未来的日子里,叶宇恒同学能继续发扬自身稳打稳扎,勇于探索创新的精神,引领更多的同学在计算机编程水平上得到提升。”叶宇恒能够成功开发出编程工具,离不开何老师的指导和计算机学科组老师的培养。最后,祝愿叶宇恒顺利获得计算机软件著作,感谢所有计算机老师的辛勤付出和悉心栽培!
2023领科春季招生考试
第二场考试时间:12月3日(周六)
考试科目:数学、英语
考试对象:在读初三、高一学生
考试地点:上海松江区涞亭南路559号