国际学堂

分享到微信 ×
打开微信“扫一扫”
即可将网页分享至朋友圈
【国际学堂】Jon Sporring教授:“函数式编程是未来的一种发展趋势”
文:罗莎 图:卿晗 来源:新闻中心 时间:2019-09-08 6679

  “如果你想确认自己的程序是正确的,那么函数式编程可以帮你做到这一点。”来自丹麦哥本哈根大学的Jon Sporring教授着清新干净的衬衣,准点出现在接受采访的会议室里,谈起今年暑期来电子科大教授的函数式编程一课,温和谦逊的他专业又有范儿。

  作为曾在IBM阿尔马登研究中心、希腊FORTH计算机视觉与机器人实验室、麦吉尔大学计算机科学学院等地从事计算机科学研究工作的学者,Jon Sporring教授在图像处理的数学方法方面,有着深入的研究与丰富的经验。今年暑期,受计算机科学与工程学院邀请,Jon Sporring教授做客我校2019年“暑期学校-国际学堂”,带来《面向函数范式编程基础》课程,吸引了全校40余名学生选课学习。

函数式编程:高性能计算的一个重要领域

7054ab346e005b86be419bacea5ec7b8.jpg

  “我坚信对于高性能计算来说,这会是一个很重要的领域。”在对函数式编程有多年研究经历的Jon Sporring教授看来,函数式编程语言更加简单,在高性能计算领域能起到很好的证明作用,会成为未来的一种发展趋势。

  众所周知,高性能计算对未来十分重要,同其它的一些编程工具一样,对一个从事编程的程序员而言,函数式编程正在编程的进步中,发挥其独特且重要的作用。Jon Sporring教授介绍说,函数式编程会用到数学函数,因能有效地分析程序,因此更具有实用性。在哥本哈根大学,Jon教授研究的一部分内容就是将函数式编程翻译成其它的编程语言,例如Intel GPU,AMD GPU,研究发现,函数式编程与高级计算的融合将更加智能,比如F sharp 或者其它我们正在使用的语言更有优势。

  Jon Sporring教授举了一个现实的例子来说明这一趋势。正如GPU在不断地更新换代,明年可能Intel又会发布新的GPU。如果你用旧的GPU来书写了程序,那么接下来你也许必须进行修改才能让编程语言和新的GPU匹配,但是在高性能函数式编程中并不存在这样的问题,你只需要重新编译就可以了,计算机会替你完成最困难的部分。

  此外,函数式编程范式主要是将函数和向量作为一种方法来构建适用于并行化的程序,这些程序能够更容易地说明安全漏洞的正确性,并且程序本身不太容易出现安全缺陷。 “因为函数式编程采用的语言较为特殊,所以我们制作出来的程序能更好地避免黑客侵袭”,Jon Sporring教授解释说。

课程学习:提升学生撰写英文学术报告的能力

  《面向函数范式编程基础》课程将编程语言F#(Fsharp)作为工具,帮助学生理解函数式编程范式,是许多国际院校计算机专业学生的必修内容。除介绍F#(F sharp)外,整个授课期间,Jon Sporring教授也对函数式编程中最基本的概念,如函数、闭包、递归、列表和编程模式等进行了深入讲解,帮助成电学子能尽快掌握这门编程工具。

  哥本哈根大学开设的计算机科学研究生课程,要求学生具有一些编程范式的操作经验,并且只招收进修过命令式编程范式和面向对象式编程范式课程的学生,所以这门课是针对丹麦哥本哈根大学计算机科学研究生课程的必要补充,以帮助学生更好地满足专业的要求。

  谈起在电子科大开设《面向函数范式编程基础》课程的初衷,Jon Sporring教授说,哥本哈根大学和其他很多学校都要求本科生和研究生具有运用多种编程方式进行工作的经验,比如函数式编程和命令式编程,“我们教给学生这些知识之后,当他们本科毕业就会有更多的选择,为本科生今后的深造打下更加扎实的科研基础。”

  在我校授课期间,Jon Sporring教授的课程分为理论讲解和实战练习两大板块,除有效介绍函数式编程,还在课程讲授中潜移默化地培养了学生撰写英文学术报告的能力。

  Jon Sporring教授特意为同学们准备了一个考试,想看看大家到底学得怎么样。根据教授的过往经验,不仅仅是UESTC的学生,很多来自哥本哈根的中国学生都不适应这样的报告撰写方式。“今天我们进行了一轮评估,看看学生们的想法。结果这个测试的效果是很好的。如果我们能再上一次这门课的话,可能会做一些小的改动,但是我已经很满意了。”Jon Sporring教授微笑着表示。

  “严谨的Jon Sporring教授要求所有作业必须以英文完成。通过学习该门课程,不仅了解了函数式编程,也有效训练了自己撰写相关英文学术报告的能力” ,同学们一致表示受益匪浅。“通过完成课程作业,我们逐渐了解了如何去完成一篇高质量的学术报告,这为我将来打算申请哥本哈根大学的硕士项目打下了相关知识和技能的储备基础。”,学生代表郭虎说。

课堂成功的法宝:理论与实际操作紧密结合

  “对任何教师而言,让学生对所学课程感兴趣是个很大的挑战,也是我在哥本哈根要面对的问题之一。”在Jon Sporring教授看来,教师上好一门课程,必须有这样几个理念,首先,课程必须要让学生感兴趣,这是一个基础。另外,教师讲授的内容应该能够让学生联想到过去所学的知识,将讲课和实际操作结合起来是非常重要的。

  在Jon Sporring教授的课堂上,他就常常将练习时长安排为听讲时长的两倍,让学生有足够的时间进行自主练习。最重要的是寻找到与课堂内容相关联的练习材料,鼓励学生利用所学工具去探索更大的问题。“这门课上,我们使用了一些自然语言处理材料,甚至让学生们用计算机去分析了一小段安徒生童话。”

  学生代表廖昊东同学对Jon Sporring教授的课堂印象深刻。“练习时间是听讲时间的两倍,我们就有更多的时间来思考程序中的每一步是如何运行的。师生待在教室里的时间更长,学生们做了很多练习,老师也在教室里来回走动、不时和大家交流。我觉得这一点很好。”

  让学生利用所学知识提高分析问题和解决问题的能力很重要。针对这一点,Jon Sporring教授采用的方法是让作业的难度由简到难,循序渐进。首先,教会学生用简单的方式使用工具,接着再让学生自主选择工具来解决更宽泛、更大的问题。“我觉得这就是解决方案,教师应当让学生明确了解自己的角色。正确地处理这一点很困难,但是很重要。”

建言学子:保持激情,刻苦钻研

  不止一次来过成都的Jon Sporring教授对电子科大有良好的印象,除了学校优美的景色,电子科大的学生也给他留下了深刻的印象。

  “这是我首次尝试这样的授课方式,它的效果非常好。学生们给我留下了深刻印象,他们的年级从大一到大二、大三都有,我认为他们都是很好的程序员。而且他们能够很快地掌握我们教授的内容,我感到很惊喜。”采访中,Jon Sporring教授不时微笑,对成电学子的学习接受能力和勤奋好学的精神表示了充分的肯定和赞许。

Jon Sporring采访照.jpg

  “Jon Sporring教授的授课风格印象深刻。记得前天我在编程中遇到了一个问题,我不知道如何解决它,所以向您求助。但是教授并没有直接指出问题所在,而是反过来询问如何用我的方法解决问题。接着,我们一步步得出了结论。我认为教授不仅仅在教给我们知识,更是在培养学生解决问题的能力。”学生代表赵曦远分享了自己的学习感受。他还建议教授在课前就提供练习材料,提前做好一些课前准备,比如安装好解释程序的环境等。

  Jon Sporring教授建言学子保持激情,刻苦钻研。“当你已经对课堂上学到的工具有了初步印象,那么接下来该做的就是乘胜追击,这对还想继续学习硕士课程的同学们不无裨益。工作中你会遇到很多难题,这就要求你开拓思维,努力寻找解决办法。也许在一个方案里C语言可以解决问题,而另一个问题又需要运用函数式编程语言。但是保持开放的思维,坚持学习数学基础知识做好储备,牢记自己在学校学到的知识并将它们应用到实战中无疑是正确的。”


  相关链接:

  计算机学院已连续5年举办暑期国际学堂,邀请国外大学和企业的专家学者,结合学院学科特点和专业特色为本科生开设专业基础、通识教育等国际课程,同时开展学术沙龙等教学科研交流研讨活动。


编辑:罗莎  / 审核:罗莎  / 发布:罗莎