首页
法学研究所概况
国际法研究所概况
研究人员
科研成果
学术活动
法学刊物
法学教育
图书馆
工作平台
搜索

 

English

日本語

한국어

编程与法律学习——中国社科大讲座要点
杨延超
字号:

2020年5月29日,杨延超副研究员应邀参加了中国社会科学院大学主办的“人工智能”系列讲座,杨延超副研究员针对“人工智能对于法律的挑战”进行了线上讲解。针对同学们关切的话题:计算机编程与法律学习之间也进行了细致交流。

 

一、编程是否有利于法学研究?

 

每每谈及法律人是否要学习编程,似乎又回到几十年前,法律人是否要努力学习好英语的问题了。时至今日,外语作为一门工具,它对于学习法律的好处已是自不待言。同样,今天要回答法律人学习编程的问题,首要明确的,依旧是学习编程对于学习法律益处是什么?这里我结合10余年的编程学习,谈一点体会。 

编程最初的学习无疑是枯燥的,但是当可以用编程来解决问题时,就变得奇妙和有趣。我最先感受到它的魅力,是在判例研究中帮助我迅速洞察到“真相”。法学研究往往要借助于判例完成论证。比如,人们常说“七年之痒”,这一结论对吗?于是,你就可以写一段程序,让计算机告诉你真相,噢,原来结婚三年左右,才是离婚率最高的。再比如,我想了解这样一个事实,疫情是否属于不可抗力,如果以此为由主张解除合同,法院又是否会支持呢?如果使用案例查询系统,固然可以找到个别案例,但没有办法形成宏观整体的数据,更没有办法得出概率性结论,然而写一段程序,就可以让计算机来回答你想知道的一切。其实,在很多时候,计算机给予我们的答案,与我们的感觉完全不一致,但数据是不会说谎的,所以一篇法学学术论文如果能够借助编程寻找到更多的真相,其研究方法或者研究结论都会更可靠。 当然,如果你喜欢,编程还可以帮助你做更多的事情。你甚至可以编写一段程序,让计算机随时提醒你,何时何地又发生了什么样的法律事件等。你可以设定程序提醒你的时间,也可以设定你喜欢的和不喜欢的内容。这不仅会让你提升法学研究的效率,也会让研究视野更加广阔。 

其实,对于法律人而言,学习编程的意义还远非如此。当下大量与智能模块有关的知识产权纠纷中,借助计算机程序,就很容易找到专利侵权的问题以及解决方案。在面对一个专利侵权,尤其是涉及到与计算机编程有关的专利侵权时,“纯粹”的法律往往会显得很苍白。

 

二、法科生如何学习编程语言?

 

由于文理分科,法学院一般不开设编程教学。文理分科是人们传统的一种观念,以至于法学院学生在课余时间更愿意阅读哲学、经济学等书籍,几乎没有人会去学习编程,直至人工智能概念兴起,大家才逐渐意识到学习编程的意义。

学习编程,首先要选择一门编程语言。在计算机的发展历程中,计算机语言也在不断进化,优胜劣汰,还记得当年我们在读初高中时学习的语言现在几乎都已经不存在了。所以选择一门有“前途”的语言也就至关重要了。当下主流的编程语言有C、Python、Php、Java、JavaScript、Go、Mysql、Linux等。这其中的绝大多数语言我都在实验室用到过,应当说每种语言的特点各有不同。C语言的典型特点是运行效率高、编写效率低,因此,它比较适合于硬件应用,如控制机器人手臂,C语言的优势明显。然而,在法学研究中大多涉及到法律逻辑的判断,如果用C语言写,那会是一件十分费时费力的事情。Python、Php、Java都属于比较优秀的后端语言,涉及到人工智能时,当属Python的名气最大。其实在绝大多数场景下,要实现一个功能时,比如让计算机在指定图片上写一段话,这三种语言都是可以实现的,只不过,它们各自又有不同的特点,Python主打的是与高等数学的结合与运用,Php主打的是网站的建设(如与WEB的结合),Java主打的是程序的安全性等。JavaScript主要为前端语言,如果你设计一个很酷炫的动态效果,就需要用到JavaScript语言。Mysql属于数据库语言,如果编程中涉及较大规模的数据,几乎都需要使用Mysql数据库;Linux属于操作系统语言,如果你要选择服务器的话,Linux的操作系统要远胜于Windows。 

对于初学编程的法科生,不宜一下子涉猎太多语言,可以首选一门语言作为主攻方向。当然,首推Python语言。Python的代码比较简洁,对于法科生来说上手上快一些。上手快也就意味着学习过程中容易获得成就感,这对于激励学习编程会起到良性作用。其次,它集中了太多的资源,它的名气越大,它集合的资源也就越多,这个道理容易理解,比如你开发一个API的应用,如果你不开放Python端口也就意味着将失去一大部分程序开发者。几乎所有与人工智能相关的应用模块都允许Python调用。

即便如此,法科学在学习编程时还是要有充分的思想准备。学习任何一门编程语言,都需要持之以恒才能有效果。现在有很多学习Python的广告,有针对成人的,也有针对小朋友的,广告内容大都有“速成”和“无所不能”的概念。这些都是商家骗人的谎言,对于小朋友而言,那根本不是编程,只是以编程为幌子的游戏;即使对于成人而言,要能够真正将编程作为一种工具,也绝非一朝一夕的事情。我举个例子,比如要编写一个程序,来寻找“精神损害赔偿案件中”法院判决最高的数额是多少?看似简单的一个问题同样会用到不少计算机技术,你至少要了解:(1)Python语言的编写规则;(2)Mysql数据库的运行规则;(3)案件类型的程序判断方法;(4)数据极值的统计方法。要完成这样一件小事,对于上述技术的了解都是不可或缺的。还不要说,涉及大数据运算时的分布式计算等更为复杂的问题了。因此,广告宣传中那些可以在短期内“速成”,并且“无所不能”,是完全不现实的。 

法科生学习计算机编程,虽要克服技术障碍,但也有先天的优势,计算机程序与法律在本质上同为“语言”,而且它们都讲语言逻辑。法科生的法律推理逻辑在计算机编程中可以彰显较大的优势。计算机程序同样会用到类似“大前提”、“小前提”、“结论”的推理逻辑,这与法律逻辑如出一辙。当然,它们共通的逻辑内涵又会展现出截然不同的艺术形式:对于法律而言,无论如何你都可以得出你的结论(哪怕是凭借天然的善恶感觉);但计算机就一样了,长篇大论中哪怕只有一个细微的错误,整个程序都将无法运行,这或许是计算机学习中最痛苦的一件事情;与之对应的巨大愉悦便是计算机被赋予思想后的超级思考能力。

最后,在学习计算编程中,还要正确处理好高等数学、编程、法学三者之间的关系。如果仅仅只是基于前面所说法学研究的目的,只需熟练运用编程语言即可,不需要对高等数学花太多时间研究;当然,如果你要挑战与人工智能相关的项目时,学习高等数学又是必须的。先学高等数学,再学计算机编程这是一个比较理想的状态。然而,对于大多数法科生来说,这种学习方法不太现实,容易因长期看不到学习成果而放弃。一个比较好的方法,是用计算机去验证高等数学,一个复杂的高等数学公式在计算机中会变得很简单,如此学习容易看到成绩,也会对高等数学有另外一个维度的理解。任何时候,法科生都需要明确自己学习高等数学的目的,绝不是成为数学家,而是服务于自己的法学研究。不同的学习目的也注定了不同的学习方法。

 

结语未来法律人

 

随着人工智能技术的发展与成熟,可以预见,法律与编程的距离会越走越近,直至最终“联姻”。编程或将成为未来人工智能法的必修课程。可以想象,在不久的未来,律师们在法庭上激烈角逐的背后恰是计算机语言(包括辩词中会大量的计算机统计数据作为支持)。法官也会借助计算机寻找真相,追求正义。法学家们也会利用编程技术来请求计算机辅助研究。目前,美国很多法学院已经开始推行计算机教学,我国教育部门也开始重视计算机教学,某些中学也已经开始引入了计算机教学。法科生学习编程语言,无论是基于理论研究亦或是法律实践都将大有裨益。

 

作者:杨延超,中国社会科学院法学研究所副研究员。